Administra tu Blog

¡Crea tu Blog Ya! Fácil y Gratis Píde la luna en Zebehar

Análisis de red con Wireshark. Interpretando los datos.

Wireshark es una herramieta multiplataforma de análisis de red, producto de la evolución de Ethereal. Funciona al igual que lo puede hacer cualquier otro sniffer tal como Windump, TCPDump ó dsniff. Pero, al contrario de estos, lo hace mostrando los datos a través de un entorno gráfico y de forma más amigable y entendible. Este artículo es fruto de varios correos que me han llegado sobre como interpretar los datos mostrados en una captura.

Si bien, el uso de Wireshark esta suficientemente documentado en la red, vamos a repasar muy superficialmente su uso para centrarnos después en como interpretar esos los capturados.

Antes que nada, tras arrancar Wireshark, el menu Capture > Interfaces.... nos muestra la siguiente pantalla:

wireshark

Solo tendremos que pulsar en Start para capturar a través de la interface que nos interese. Inmeditamente Wireshark comienza a capturar.

El problema es que nos lo captura todo, todos los protocolos, etc:

Captura wireshark

Igual no nos interesa capturarlo todo. Queremos filtrar. Para filtrar podemos hacer uso de la ya aprendido en los filtros TCPDump / Windump, ya q ue usa la misma libreria libpcap.

Podemos filtrar a través de Capture Filter o usar el campo correspondiente:

filtros wireshark

Capturamos los paquetesde segmento TCP cuyo destino sea el puerto 34. Pero como ya hemos aprendido a usar filtros más avanzados, introducimos directamente el filtro de esta forma:

icmp[0:1] == 08 (en windump es sufciciente con un solo signo =)

Con lo que capturaríamos los icmp de tipo echo request.

O cualquiera de estos:

ip[9] == 1

tcp dst port 110

http contains "http://www.forosdelweb.com"

frame contains "@miempresa.es"

Con este último filtro capturamos todos los correos con origen y destivo al dominio miempresa.es, incluyendo usuarios, pass, etc.

En suma podemos usar cualquier tipo de filtro de los que usamos con Windump o TCPDump y alguno más propio de Wireshark. En otra ocasión nos centraremos en estos filtros y todas las nuevas posibilidades que nos ofrece wireshark. Ahora vamos a estudiar un poco la intrerpretación de los datos.

Tras una captura nos encontramos con esta salida:

Salida datos wireshark

Se establecen 3 zonas de datos. La primera es la zona de listado de los paquetes capturados con información del Numero de Frame, tiempo en segurdos de la captura, Origen, Destino, protocolo involucrado y por último un campo de información extra que previamente Wireshark a decodificado.

La segunda zona muestra los datos del Frame capturado. En este caso Frame 23 o captura 23 (las numera secuencialmente). nos da información de todos los protocolos involucrados en la captura:

En campo Frame nos muestra información completa de la trama capturada. Tamaño total, etc. A continuación Ethernet II que nos muestra la cabecera Ethernet II que a su vez pertenece a la capa de enlace de datos:

0000 00 04 75 ed 89 c3 00 14 22 5f a9 25 08 00

Nos muestra parte de la cabecer de la trama Ethener II, en este caso:

Destino 6 bytes 00 04 75 ed 89 c3 : MAC destino
Origen 6 bytes 00 14 22 5f a9 25 : MAC origen
Tipo 2 bytes 08 00 : protocolo que viaja en la parte de datos de la trama en este caso IP. 0x0800.

A continuación vemos Internet Protocol con los datos de la cabecera del datagrama IP:

0000 45 00 02 93 e1 8f 00 00 80 06 6f b2 d9 7e 4b de E.........o..~K.
0010 c0 a8 01 1e

Esto ya lo hemos estudiado aquí.

Después no escontramos con Transmission Control Protocol. (TCP):

0000 00 50 12 67 21 9e b2 a5 99 28 f1 c8 50 18 fd b2 .P.g!....(..P...
0010 f5 79 00 00 .y..

Se trata del Segmento TCP. Protocolo involucrado en esta captura. Lo hemos estudiado aquí.

Como ya hemos visto, tenemos información del Puerto de origen, destino, número de secuencia, etc.

Y para finalizar tenemos TCP Segment Data, con todo el contenido del campo Data del segmento TCP.

wireshark Segment Data

En el proximo artículo dedicado a wireshark nos centraremos exclusivamente en los Filtros de Wireshark.

Tags:
Meneame | del.icio.us

Comentarios(13) »

  1. Gerardo Marciales — 16-03-2008 - 22:41:52 GMT 1

    Saludos, me gustaria saber como puedo analizar todo el trafico de una IP especifica de mi LAN, necesito saber todos los puertos que utiliza nuestro equipo ATA.

    Gracias.

  2. alfon — 17-03-2008 - 18:30:58 GMT 1

    En Filtos introduces lo siguiente:
    ip.addr == xxx.xxx.xxx.xxx Con esta notación le decimos a wireshark que capture todos los paquetes con origen y destino con esa IP.
    ip.scr == xxx.xxx.xxx.xxx Capturar con esta IP como origen.
    ip.dst == xxx.xxx.xxx.xxx con esta última notación capturamos los paquetes con esa IP de destino. Podemos usar también el operador != (que no sea igual a).
    También podemops usar filtros que en vez de especificar IP, especifique direcciones Ethernet: eth.dst == ff:ff:ff:ff:ff:ff.

    También lo operadores lógicos:
    ip.scr==80.x.x.x or ip.src==200.80.x.x.

    Saludos,

  3. Raul Cereseto — 06-04-2008 - 15:18:48 GMT 1

    Estimado Alfon:

    Me pregunto si podríamos aprovechar tus brillantes conocimientos sobre redes, para que nos ilustres sobre como detectar la puerta de enlace con Wireshark.

    En otras palabras, mejorar el útil pero algo intuitivo informe que se exhibe en el siguiente link:

    http://www.zero13wireless.net/foro/showthread.php?t=4054

    Desde ya, muchas gracias por anticipado

    Raul

  4. alfon — 07-04-2008 - 09:58:44 GMT 1

    Hola Raul,

    Gracias por los halagos. Poco más que añadir. Me parece correcto, solo que no hace falta añadir las columnas Hardware src addr y Hardware dest addr. En la zona de Frame capturado, el apartado Cabecera Ethernet II nos muestra esa información, eso si, activando las opciones en Name Resolutions.

    saludos,

  5. Maria — 11-04-2008 - 08:45:34 GMT 1

    Hola Alfon!!!
    Tengo un problemita.... estoy trabajando con wireshark, me interesa detectar un tipo determinado de tramas que no esta incluido en el wireshark. Para ello estoy programando en c un disector (un plugin, vamos). Lo que no se, es como enlazar el archivo en c con el programa wireshark.
    No lo veo en ningun tutorial.
    Gracias de antemano.

  6. alfon — 11-04-2008 - 13:59:00 GMT 1

    Hola María,

    No lo hagas con wireshark. Te será más facil hacerlo con windump o directamente usando las librerías pcap.

    Saludos,

  7. Maria — 21-04-2008 - 11:15:33 GMT 1

    Tu solución seria ideal el problema es que debo hacerlo en wireshark. Si tienes alguna sugerencia te lo agradeceria.
    Saludos

  8. alfon — 21-04-2008 - 11:44:19 GMT 1

    Estimada María,

    Wireshark tan solo es un front con unas caraterísticas específicas para capturar packetes, interpretarlos, analizar y realizar estadísticas. Pero siempre usando libpcap. Era por eso mi recomendación. Al ser un programa de interfaz gráfico, poco te queda para integrarlo en unas líneas de programación. Aún así, wireshark puede ser usado por línea de comandos:
    http://www.wireshark.org/docs/wsug_html_chunked/ChCustCommandLine.html
    http://www.wireshark.org/docs/wsug_html_chunked/AppTools.html

    Saludos,

  9. Guerrero — 27-04-2008 - 12:08:39 GMT 1

    Muchas gracias por ayudarnos a todos a entender esta herramienta. Me gustaría saber si es posible obtener el pass de acceso a un router, por ejemplo filtrando por http a traves de la puerta de enlace, y cómo se obtendría, si en texto plano y visible a primera vista, o cifrado. Gracias

  10. alfon — 29-04-2008 - 18:00:09 GMT 1

    Estimado Guerrero,

    Depende de la posición de Wireshark, del protocolo que se use para conectar con el router, etc. Si conectas desde dentro a través de telnet es muy facil. Solo tendrás que filtrar las conexiones al puerto 23 em el filtro display de la forma tcp.port == 23 y listo. eliges una conexión y haces un follow tcp y stream y veras el pass.
    Saludos,

  11. alfonn — 30-04-2008 - 17:10:11 GMT 1

    Estimada María,

    Wireshark si puede ser usado en línea de comandos siendo así más facil para usarlo en programación en C. Se trata de Tshark. EStoy terminando un pequeño artículo para tratar el tema. Aún así entiendo que es mejor ir directamente a las librerias pcap. También hablaremos de ello próximamente.
    Saludos,

  12. javier — 10-05-2008 - 23:35:44 GMT 1

    Saludos

    como puedo ver cuanto ancho de banda esta consumiendo cada ip por el wireshark

  13. alfon — 12-05-2008 - 09:01:13 GMT 1

    Estimado Javier,

    Guarda las capturas con -w nombrearchivo.cap. Usa capinfos con el archivo .cap. Con este programa podrás ver estadísticas lo más apreceidos a ancho de banda.

    Saludos,

TrackBack URI

Dejar un Comentario


<a href> <em> <blockquote> <strong> <cite> <code> <ul> <li> <dl> <dt> <dd>