Underc0de

[In]Seguridad Informática => Hacking => Mensaje iniciado por: ANTRAX en Marzo 22, 2012, 08:53:26 AM

Título: Sniffing con Wireshark
Publicado por: ANTRAX en Marzo 22, 2012, 08:53:26 AM
(http://1.bp.blogspot.com/-NHjzWHEPeq4/TxR3rSSS4iI/AAAAAAAABG4/DroDtosyE6Y/s200/An%2525C3%2525A1lisis-de-tr%2525C3%2525A1fico-con-Wireshark.png) (http://1.bp.blogspot.com/-NHjzWHEPeq4/TxR3rSSS4iI/AAAAAAAABG4/DroDtosyE6Y/s200/An%2525C3%2525A1lisis-de-tr%2525C3%2525A1fico-con-Wireshark.png)
Introducción.

Wireshark es un analizador de paquetes de red, comúnmente llamado sniffer.
Es utilizado por administradores de redes para ver todo el tráfico que está pasando en un momento específico.
Una de las ventajas que tiene, es que es open source y multiplataforma.
Wireshark ofrece distintos tipos de filtros para leer los paquetes. Captura a demás cookies y passwords que veremos a continuación en este paper.
Para instalar wireshark simplemente hay que ir a su página oficial y descargarlo.
http://www.wireshark.org/download.html  (http://www.wireshark.org/download.html%20)
Desde linux, se puede descargar desde la consola.

Sudo apt-get install wireshark

Partes de Wireshark

(http://3.bp.blogspot.com/-tvFndP3EVqc/TxR3c08poaI/AAAAAAAABFg/4BKQNazOqLs/s1600/1.png) (http://3.bp.blogspot.com/-tvFndP3EVqc/TxR3c08poaI/AAAAAAAABFg/4BKQNazOqLs/s707/1.png)

Enumere las partes más importantes del Wireshark para describirlas por separado.
1 – Muestra un listado de las interfaces disponibles que podemos poner a la escucha de paquetes.
2 – Permite configurar algunos parámetros de nuestra interface
3 – El filtro permite filtras paquetes separándolos por IP, protocolos, etc
4 – Listado de paquetes. Muestra un resumen de los paquetes capturados, presionando con el otro botón del mouse se listaran opciones disponibles para manejarlos a gusto.
5 – Panel de vista en Árbol. Muestra el paquete seleccionado con mayor detalle.
6 – Panel de detalle  de los datos. Muestra los datos del panel superior en formato hexadecimal y ascii

También podemos ver en el menú superior las siguientes opciones:

File: Contiene las funciones para manipular archivos y para cerrar la aplicación Wireshark.
Edit: Este se puede aplicar funciones a los paquetes, por ejemplo, buscar un paquetes especifico, aplicar una marca al paquete y configurar la interfaz de usuario.
View: Permite configurar el despliegue del paquete capturado.
Go: Desde acá podemos ir a un paquete especifico, volver atrás, adelante, etc.
Capture: Para iniciar y detener la captura de paquetes.
Analyze: Desde analyze podemos manipular los filtros, habilitar o deshabilitar protocolos, flujos de paquetes, etc.
Statistics: Podemos definir u obtener las estadísticas del trafico capturado.
Telephony: Trae herramientas para telefonía.
Tools: Opciones para el firewall
Internal: Parámetros internos de Wireshark
Help: Menú de ayuda.

Primeros pasos con Wireshark

Una vez instalado, lo abrimos y presionamos sobre el icono marcado en rojo en la imagen

(http://3.bp.blogspot.com/-xbzRUSqlbvs/TxR3aDnkv6I/AAAAAAAABFQ/P6wjlBYCsD8/s1600/2.png) (http://3.bp.blogspot.com/-xbzRUSqlbvs/TxR3aDnkv6I/AAAAAAAABFQ/P6wjlBYCsD8/s349/2.png)

Esto nos permitirá seleccionar nuestra tarjeta de red que pondremos a la escucha de paquetes.

(http://2.bp.blogspot.com/--c4KVDQDCoU/TxR3bPziH-I/AAAAAAAABFY/2JMrRhqkmSY/s1600/3.png) (http://2.bp.blogspot.com/--c4KVDQDCoU/TxR3bPziH-I/AAAAAAAABFY/2JMrRhqkmSY/s706/3.png)

Para saber que tarjeta poner a la escucha, debemos observar cual es la que recibe paquetes.
Se puede observar en la imagen que en mi caso es la wlan0. Una vez identificada, damos en Start para comenzar.

Automáticamente el programa comenzara a capturar paquetes de todos los hosts conectados a la red.
Ahora navegare un poco con mis ordenadores por internet para ver que podemos capturar.

(http://3.bp.blogspot.com/-2MAX9dVQfY8/TxR3gVYTYyI/AAAAAAAABF0/WDhhedpnksI/s1600/4.png) (http://3.bp.blogspot.com/-2MAX9dVQfY8/TxR3gVYTYyI/AAAAAAAABF0/WDhhedpnksI/s706/4.png)

Les mostrare un ejemplo de cómo se manifestó mi wireshark cuando hice un apt-get install en la consola de Linux

(http://1.bp.blogspot.com/-p0j5ZEbzkac/TxR3gN0O6UI/AAAAAAAABFw/IVGPm1eaWJw/s1600/5.png) (http://1.bp.blogspot.com/-p0j5ZEbzkac/TxR3gN0O6UI/AAAAAAAABFw/IVGPm1eaWJw/s706/5.png)

Ahí podemos ver de que ip a que ip se mueven los paquetes y porque protocolo. A demás de esto podemos ver el contenido del paquete que lo veremos más adelante en este mismo paper.
Si observamos la imagen, hay una caja de texto llamada Filter.

(http://2.bp.blogspot.com/-JAf8-fkRaGI/TxR3ecLcY9I/AAAAAAAABFo/ouZEMuzhUjI/s1600/6.png) (http://2.bp.blogspot.com/-JAf8-fkRaGI/TxR3ecLcY9I/AAAAAAAABFo/ouZEMuzhUjI/s657/6.png)

Esa caja de texto, como bien dice su nombre, permite filtrar paquetes. Y ahora veremos algunos de los filtros que posee Wireshark para que podamos usar este sniffer de una forma más eficiente.
En el filtro se pueden usar operadores lógicos como los siguientes:


== (Igual que)
> (Mayor que)
< (Menor que)
!= (Distinto que)
>= (Mayor o igual que)
<= (Menor o igual que)

Basándome en el paper de Datasecurity, les dejo a continuación los parámetros más usados en este sniffer

Filtros por IP

[En todos los ejemplos, reemplazar 0.0.0.0 por la ip a filtrar]

ip.addr = = 0.0.0.0ip.addr = = 0.0.0.0 && ip.addr = = 0.0.0.0 (Para filtrar más de una IP )
ip.addr = = 0.0.0.0 || ip.addr = = 0.0.0.0 (Para filtrar una IP de cualquiera de las dos)

Para filtrar paquetes de la fuente en direcciones IPv4 especificas:

ip.src == 0.0.0.0ip.src == 0.0.0.0 && ip.src == 0.0.0.0 (Para filtrar más de una IP )
ip.src == 0.0.0.0 || ip.src == 0.0.0.0 (Para filtrar una IP de cualquiera de las dos)

Para filtrar paquetes del destino en direcciones IPv4 especificas:

ip.dst == 0.0.0.0ip.dst == 0.0.0.0 && ip.dst == 0.0.0.0 (Para filtrar más de una IP )
ip.dst == 0.0.0.0 || ip.dst == 0.0.0.0 (Para filtrar una IP de cualquiera de las dos)

Nota: Para direcciones IP v6 utilice: ipv6.addr, ipv6.src, ipv6.dst, etc.

Para filtrar paquetes del protocolo ARP entre:

arp.src.proto (dirección del protocolo de la fuente)
arp.src.hw (dirección hardware de la fuente)
arp.dst.hw (dirección hardware del destino)
arp.src.hw_mac (dirección MAC de la fuente)
arp.dst.hw_mac (dirección MAC del destino)
arp.src.proto_ipv4 (dirección IPv4 de la fuente )
arp.dst.proto_ipv4 (dirección IPv4 del destino)

Para filtrar paquetes del protocolo Ethernet:

eth.dst == ff:ff:ff:ff:ff:ff (dirección MAC)
eth.src == ff:ff:ff:ff:ff:ff (dirección MAC)
eth.addr == ff:ff:ff:ff:ff:ff (dirección MAC)

Veremos un ejemplo con uno de los filtros: ip.addr == 192.168.1.37

(http://3.bp.blogspot.com/-0QjTrmHdkw0/TxR3hVzCJ4I/AAAAAAAABGA/6QJRbuL6ZJk/s1600/7.png) (http://3.bp.blogspot.com/-0QjTrmHdkw0/TxR3hVzCJ4I/AAAAAAAABGA/6QJRbuL6ZJk/s706/7.png)

En este caso me debería mostrar los paquetes correspondientes a la ip 192.168.1.37
Se puede ver en verde también 192.168.1.1 y esto es porque hace petición al router.

Filtro por protocolo

Como vimos hasta ahora, este filtro es muy poderoso, pero se darán cuenta de su potencial ahora que filtraremos por protocolo.
Algunos de los filtros son estos: tcp, http, pop, dns, arp, ssl, etc.
Con un Sniffer podemos obtener datos muy importantes. Desde cookies hasta usuarios y contraseñas. A modo ejemplo, abriré un FTP y veremos lo que hace nuestro Wireshark:

(http://2.bp.blogspot.com/-m_S-q_Xftgs/TxR3n4IvA2I/AAAAAAAABGY/4dkpuXLQoI0/s1600/8.png) (http://2.bp.blogspot.com/-m_S-q_Xftgs/TxR3n4IvA2I/AAAAAAAABGY/4dkpuXLQoI0/s706/8.png)
Como se puede ver, solo filtre el protocolo FTP. Y tambien notaremos que sacó mi user y pass del FTP.
Veremos ahora otros de los protocolos que suele capturar. En este caso hare un ping a mi blog www.antrax-labs.org  (http://antrax-labs.org)

(http://1.bp.blogspot.com/-1zkuqbUt7Ds/TxR3loKd_AI/AAAAAAAABGQ/9L3N8izXHwg/s1600/9.png) (http://1.bp.blogspot.com/-1zkuqbUt7Ds/TxR3loKd_AI/AAAAAAAABGQ/9L3N8izXHwg/s706/9.png)

La imagen muestra el protocolo DNS e ICMP. Que si los añadimos en la caja de texto de filtro, nos los filtrara.
Aquí tenemos filtro por DNS

(http://3.bp.blogspot.com/-3pYt5ZFPX0U/TxR3laCNSVI/AAAAAAAABGI/qWXd_2GkqeM/s1600/10.png) (http://3.bp.blogspot.com/-3pYt5ZFPX0U/TxR3laCNSVI/AAAAAAAABGI/qWXd_2GkqeM/s706/10.png)

Cabe aclarar que cada protocolo tiene un color diferente (que puede modificarse a gusto) para resaltarlos y distinguirlos con mayor facilidad.

Otros filtros

Veremos ahora otros filtros de gran utilidad, como este otro que nos permite filtrar por dominio o host

http.host == "DOMINIO"

(http://4.bp.blogspot.com/-CR5aiWCJKlQ/TxR3qOJI2JI/AAAAAAAABGo/_CS0mCWcXfE/s1600/11.png) (http://4.bp.blogspot.com/-CR5aiWCJKlQ/TxR3qOJI2JI/AAAAAAAABGo/_CS0mCWcXfE/s706/11.png)

Acá lo que hice fue poner la url de facebook y robo mi cookie. Veremos ahora un ejemplo con otra web, pero filtrando nada más que el protocolo TCP:

(http://3.bp.blogspot.com/-r3DoGXWdh04/TxR3qgVkA-I/AAAAAAAABGw/82iEnMfLf_4/s1600/12.png) (http://3.bp.blogspot.com/-r3DoGXWdh04/TxR3qgVkA-I/AAAAAAAABGw/82iEnMfLf_4/s706/12.png)

Se puede ver de qué ip privada navego hacia que ip publica. En este caso, la ip pública es la del foro infiernohacker y abajo muestra la url de referencia.

Otras opciones de Wireshark

(http://1.bp.blogspot.com/-ebf_8zcebYU/TxR3p-l5myI/AAAAAAAABGg/kAyTTNm-l-Y/s1600/13.png) (http://1.bp.blogspot.com/-ebf_8zcebYU/TxR3p-l5myI/AAAAAAAABGg/kAyTTNm-l-Y/s585/13.png)

Veremos ahora algo que se llama Go to Packet o ir al paquete. Para usar esta opción basta con ir a GO >> Go to Packet en el menú de la barra superior.
Permite ir a un número de paquete que especifiquemos en el cuadro de texto.

Otras de las opciones muy útiles que tiene Wireshark es la de poder mostrar en formato ascii la lectura de los paquetes capturados para poder así facilitar su entendimiento
Para ir a esta opción colocamos en el filtro HTTP y solo basta con clickear con el botón secundario del mouse y seleccionar Follow TCP Stream

(http://3.bp.blogspot.com/--U2MRT5bo1M/TxR3sjZrYmI/AAAAAAAABHA/3sMUEmVjux0/s1600/14.png) (http://3.bp.blogspot.com/--U2MRT5bo1M/TxR3sjZrYmI/AAAAAAAABHA/3sMUEmVjux0/s706/14.png)

Como se puede ver, se ve mucho más entendible el código y permite tambien pasarlo a Hexadecimal, C Array etc.

Espero que les haya sido de utilidad

ANTRAX
Título: Re:Sniffing con Wireshark
Publicado por: 5TU4RT en Marzo 22, 2012, 02:30:47 PM
Claro que si, de mucha utilidad...

Gracias por compartirnos este Tutorial!


Salu2
Título: Re:Sniffing con Wireshark
Publicado por: baron.power en Marzo 30, 2012, 06:58:41 PM
muy bien explicado, ampliaciones futuras del tuto?
Título: Re:Sniffing con Wireshark
Publicado por: ANTRAX en Marzo 30, 2012, 07:00:00 PM
Lo dudo, esta bastante claro!
Título: Re:Sniffing con Wireshark
Publicado por: REC en Abril 04, 2012, 09:08:01 AM
si antrax! aunque ya avía visto el post en tu blog! :D pues esta muy buenoo!!
Título: Re:Sniffing con Wireshark
Publicado por: zoro248 en Noviembre 12, 2012, 10:06:54 PM
Excelente tuto, gracias por aportar..



<!-- Saludos -->
Título: Re:Sniffing con Wireshark
Publicado por: xxxcoenxxx en Abril 24, 2013, 06:42:07 PM
gracias por el tuto!

tengo una dudilla.
como puedo analizar el protocolo NBNS o el BROWSER? solo consigo numeros y letras que no se interpretar

es normal que la ip de destino sea 192.168.0.255? leyendo acabo de ver que es mi ip broadcast.
Título: Re:Sniffing con Wireshark
Publicado por: Mr. Foster en Abril 25, 2013, 11:21:21 AM
Desde el hipervinculo no accede a la pagina  :o, pero no importa salvo eso excelente aporte  8)
http://www.wireshark.org/download.html (http://www.wireshark.org/download.html)
Título: Re:Sniffing con Wireshark
Publicado por: Anton en Mayo 30, 2013, 08:04:06 PM
Captura tambien https?
Título: Re:Sniffing con Wireshark
Publicado por: ANTRAX en Mayo 30, 2013, 08:45:32 PM
Si bro, pero encriptado

(http://www.etherlook.com/wp-content/uploads/2011/07/wireshark-encrypted-https.png)
Título: Re:Sniffing con Wireshark
Publicado por: [3V1L] en Mayo 30, 2013, 10:56:45 PM
menudo tuto man, gracias por compartirlo
Título: Re:Sniffing con Wireshark
Publicado por: The Antidote en Julio 23, 2013, 06:00:31 PM
Es el sniffer que más uso gracias por los conceptos
Título: Re:Sniffing con Wireshark
Publicado por: Psymera en Julio 24, 2013, 01:42:23 AM
El https se puede desifrar si tienes el certificado adecuado para ello :p
Título: Re:Sniffing con Wireshark
Publicado por: Anton en Julio 24, 2013, 05:55:40 AM
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
El https se puede desifrar si tienes el certificado adecuado para ello :p
Gracias,buscare certificados :D
Título: Re:Sniffing con Wireshark
Publicado por: andrewtwo en Agosto 05, 2013, 12:52:48 AM
Hay algo sobre SSLStrip que descifra todo el tráfico SSL que viaja a través de las páginas web con HTTPS, pero lo que hace realmente SSLStrip es engañar al servidor y convertir todo el HTTPS de una web en HTTP (sin cifrar)

Título: Re:Sniffing con Wireshark
Publicado por: rollth en Enero 28, 2014, 10:49:47 AM
muchas gracias ANTRAX por el tutorial, muy util