26/3/07

Wireshark 101 - Como capturar trafico


Con este post, estoy dando inicio a lo que se podría llamar un tutorial sobre Wireshark, como he comentado en otros posts, Wireshark es un analizador de protocolos open source y es una de mis herramientas favoritas, que además es de suma utilidad para la resolución de problemas de redes.

Antes que nada, una palabra de advertencia, la captura de tráfico en una red puede ser ilegal, o puede estar prohibida por las reglas de seguridad de la empresa, asi que antes de conectar un analizador de tráfico a cualquier red, favor asegurarse que cuenta con el permiso respectivo y que esta conciente de las implicaciones que puedan derivarse de esta actividad, para efectos de este tuturial, lo mejor es establecer un laboratorio aislado sin conexión a la red de la empresa, o hacerlo desde una red casera.



Una vez hecha la advertencia, el primer aspecto que me gustaría tratar, es sobre como capturar tráfico, especificamente donde ubicar el wireshark para poder capturar el tráfico que se desea ver en la red, para ello estaré haciendo referencia a la siguiente figura

Supongamos que queremos capturar (desde una laptop), el tráfico entre un servidor y la PC de un usuario que esta experimientando problemas para acceder a dicho servidor. Lo más probable es que esten conectados a través de un switch como se muestra en la figura 1a, si este es el caso, al conectar la laptop, no podremos ver el tráfico entre la PC y el Servidor, unicamente será posible ver el tráfico destinado a la laptop y tráfico de Broadcast, para sobreponernos a esto tenemos tres opciones:


Opción 1 El switch es administrable: En este caso, consultar en la documentación del mismo, como configurar un Port Mirroring, suponiendo que el Servidor esta ubicado en el puerto 1, la PC en el puerto 2, y la laptop con wireshark en el puerto 3, debería configurarse el port mirroring para copiar los puertos 1 y 2 en el puerto 3. Como configurar el port mirroring depende de cada fabricante, lo ideal es consultar el manual del switch, o en la página web del fabricante, en el caso de Cisco, el port mirroring se le denomina SPAN (Switch Port Analizer).

Opción 2 El switch es administrable pero no soporta port mirroring, o no es administrable: En este caso, la opción que tenemos es conectar un pequeño hub, como se ilustra en la figura 1b, en este caso, la idea es conectar el hub a un puerto del switch y conectar la PC, el servidor y la laptop al hub, en este caso si se podrá ver todo el tráfico ya que en un hub, el tráfico en cada puerto es visible en todos los demás puertos. Las desventajas de esto, es que el hub no funciona a full duplex, además es muy probable que la velocidad sea a 10 mientras que los puertos del switch funcionen a 100 o aún a 1000, así que si esta es una red en producción el acceso al servidor se puede ver severamente afectado para el resto de usuarios, asi que usar esta opción con mucha precaución y solo despues de haber considerado el impacto que tendrá en los usuarios.

Opción 3 Utilizar un network tap: Esta pienso que es la poción ideal, un network tap, es un dispositivo pasivo que se puede insertar en la red y permite ver el tráfico que esta pasando a través de la misma, por ser un dispositivo pasivo no interfiere en ninguna manera en la configuración, incluso en caso de falla del tap el tráfico sigue pasando por la red. Existen diferentes tipos de taps, pero en esencia la función es la misma, permitirnos visibilidad del tráfico. Aunque esta es la opción ideal, es probable que sea la más dificil de conseguir, sin embargo, si es posible, vale la pena conseguir algunos taps y tenerlos a la mano para cuando se presenten esos problemas extraños en la red, para aprender más sobre taps, y ver lo que es posible con estos, recomiendo visitar la página de algunos fabricantes, normalmente se encontraran descritas las diferentes tecnologías de taps, y como utilizarlos eficientemente, entre los fabricamentes de taps puede mencionar, Datacom Systems, Netoptics, y Network Critical.

Estos son solo algunos de los escenarios, pero en general la idea es la misma, en un hub se puede observar todo el tráfico de la red (sin embargo es muy poco comun hoy en día encontrar una red basada unicamente en hubs), en un switch es necesario configurar port mirroring, y con un tap se pueden establecer puntos de monitoreo permanentes.

38 comentarios:

Anónimo dijo...

Como puedo realizar una captura por medio de linea de comandos y por este mismo medio exportar a un formato plano o que lo pueda leer en otro formato todo realizarlo por comandos

Gracias

Hector Munguia dijo...

Amigo, para capturar mediante la línea de comandos, debes utilizar tshark (desde el directorio donde esta instalado wireshark), para exportarlo a otro formato, puedes utilizar editcap, ambas son utilerias de línea de comandos de wireshark, si solo ejecutas tshark verás una lista de opciones, igualmente con editcap.

Mastropiero dijo...

Quisiera saber por que puerto wireshark realiza las esuchas, es decir este captura tráfico pero por que puerto de nuestra máquina lo hace?

Hector Munguia dijo...

Santiago, Wireshark no utiliza ningun puerto para capturar el trafico, las tarjetas de red normalmente estan programadas para responder al trafico que esta dirigida hacia ellas esto es como un filtro que impide que otro tipo de trafico sea visible para cualquier programa que esta utilizando la tarjeta. Lo que hace Wireshark es poner la tarjeta en modo promiscuo, en otras palabras elimina este filtro y permite que todo el trafico que pasa por la tarjeta sea visible, de esta manera un sniffer puede capturar todo el trafico que pase por la tarjeta.

Anónimo dijo...

hola
he leido y me ha gustado, he instalado el wireshark, pero no se como utilizarlo, he visto la documentación, aunqhe no soy muy bueno en ingles.

en donde encuentro o como busco información acerca de lo el programa me muestra, como lo interpreto, se que muestra el protocolo utilizado, la ip origen y la destino, pero hay información la cua no se como interpretarla.

Por lo que he entendido uno puede parametrizar el tráfico que deseo obtener, hay una función acerca de un puerto especíco de la máquina el cual pueda verificar.

gracias.

Anónimo dijo...

hola de nuevo, que pena molestrar tanto.

quisiera saber como funciona el protocolo DQDB de la IEEE 802.6.
Entiendo que maneja dos banderas R(Solicitud) y B (ocupado), aparte de tres contadores.
1) las cabeceras manejan los slots los cuales los va poniendo en cola, ¿Cada cabecera maneja los slots para los dos buses?.
2) ¿Cuando las cabeceras envian los datos de los slots esto funciona como un token ring o lo maneja dinámicamente?
3) ¿Si un host hace una petición el algoritmo de cola decide sobre que bus desea enviarlo?

Gracias att grupo_unad@yahoo.com

Anónimo dijo...

un enlace para ver el funcionamiento del protocolo DQDB es http://www-entel.upc.es/xavierh/dqdb/index116.htm

att grupo_unad@yahoo.com

Anónimo dijo...

saludos a todos en especial a leonel, me ha interesado el wireshark ya que mi necesidad es saber quien hace descargas en una red wireless de musica en mp3 asi como videos, me gustaria saber que filtro se utilizaria para hacer eso y como configurarlo. gracias

Anónimo dijo...

JRPRMERLIN: Buenas tardes para detectar quien te consume tu ancho de banda tienes que aplicar el analisis de los resultados o puedes combinar herramientas, por ejemplo un programa de control de contenido sin filtrar esto genera una radiografia de lo que hacen tus usuarios, por otro lado el WireShark te indica que timpo de protocolo tiene mayor actividad, eso te permite combinar el resultado e identificar el problema presente ya que no siempre es un usuario puede ser un virus el del problema

Anónimo dijo...

Hola una duda un poco enrevesada: Wireshark cuando captura 1 trama ,cuando marca el tiempo que vemos reflejado?, al inicio de la trama, al final de la trama,... (es decir el tiempo que marca es el del inicio de la captura de esa trama, o el del fin de captura de esa trama o el tiempo de algun punto de referencia).

gracias

Anónimo dijo...

Salud amigo tengo la ip de la empresa bloqueada por spam, estoy utilizando el correo de otra empresa (que me bloqueo)porque no tengo servidor de exchange aun,me baje el wireshark 1.0.3 pero me quede como el otro amigo con la duda de como interpretar la información que me arroja donde busco , como se cual estación me está generando spam en mi red.

Muchisimas gracias de antemano

Anónimo dijo...

unas preguntas donde puedo localizar con el wireshark las siguientes cosas:
IP origen,IP destino
MAC origen,MAC destino

Kurt Vonnegut dijo...

Que tal!

Tengo un pequeño problema, resulta que estaba corriendo Wireshark, en este proceso se me bloqueó el programa y no alcancé a guardar la captura, pero si sé que quedó almacenada porque el espacio del disco duro se me redujo (si sé que la captura es pesada). Si alguien sabe recuperar los archivos de Wireshark o saben donde quedan almacenados les agradecería la respuesta.

Muchas gracias

Anónimo dijo...

hola yo necesito un puerto espejo y mi problema es que no se lo que tengo si es un hum o un switch , yo lo que utilizo es un router inalambrico y queria tener el puerto espejo en el portatil , que puedo hacer?????

mi msn es : passdata2@hotmail.com

responderme porfavor es urgente
Gracias!

karin dijo...

Hola Leonel, me parecio muy interesante lo que expones y quisiera adentrarme más en es y otros programas, tengo un interes por aprender seguridad infornatica y estoy buscando la manerade aprender de una forma auto-didacta, tu que me recomiendas ¿por donde puedo empesar?, te agradeceria me pudieras dar una idea.

JuanPedro dijo...

Acabo de instalar el wireshark ya que me lo recomendaron para determinar que equipo de mi red puede ser el causante de estar generando spam masivo y que me esten bloqueando para envios de correos, quisiera saber que filtro usar para poder obtener esta informacion.

Gracias

Hector Munguia dijo...

Juan Pedro, lo importante en este caso es que ubiques el wireshark en un punto en el que puedas observar el tráfico que te interesa, supongo que en este caso tendria que ser en la salida a Internet, inicialmente yo capturaria todo el tráfico, tratando de observar comportamiento anormal (por ejemplo un host interno utilizando el puerto smtp), una vez identificado esto podrias usar un filtro de caputura sencillo, por ejemplo host x.x.x.x donde x.x.x.x seria la ip del host sospechoso.

lili dijo...

hola quiesiera saber como obtener todo el trafico de una red lan no de un pc en especifico

leonardo dijo...

hola leonel, este programa tambien sierve para analizar redes inalambricas.
atte
leonardo

leonardo dijo...

hola Leonel, este programa tambien sirve para redes inalambricas?.

atte
leonardo

Anónimo dijo...

Hola Leonel,

Veo que controlas mucho de redes. Tengo un problema y me gustaria consejo. En la red de mi oficina (unas 100 máquinas) salimos a la intranet de la empresa a traves de una linea Macrolan de 2mb. Resulta que en algunos momentos, la linea se satura y se nos cortan las comunicaciones. ¿como puedo utilizaar wireshark pra ver que ip son las que me estan saturando la linea en un determinado instante?

Muchas gracias, espero tu ayuda.

albertoshsh @ hotmail.com

Ivan comesaña dijo...

Buenos dias

Podria crear port mirror para todos los puertos del swich a uno especifico, incluso si utilizo 2 swichs.Es decir lo que explicas en el ejemplo 1 pero a nivel de todos los pcs de la red.

Gracias
Excelente Blogg

victor zurita dijo...

hola me mandaron hacer el analisis de trafico en una transmision por medio de infrarojos, los infrarojos que tengo se conectan al puerto usb quiero saber si con el wireshark puedo hacer esto como lo hago o con que programa me permita trabajar con infrarojos

Anónimo dijo...

Buenos días, tengo una serie de preguntas y dudas sobre wireshark ... y me gustaría si es posible que me dieran respuestas. Mis preguntas son las siguientes:

puede analizar el tráfico de todo el dia en una red en un momento dado (por la tarde) o hay que hacerlo en tiempo real???? Y si se puede, wireshark ha tenido que estar ejecutándose o se puede ejecutar por la tarde y ver el tráfico de la red de todo el día

se puede saber donde ha estado navegando un equipo y lo que han bajado (si ha descargado algo)?

Se puede analizar el tráfico de acceso a archivos almacenados en un servidor o sólo sirve para el tráfico web?

En una red, en la que hay varios ordenadores conectados a un servidor y a un router con acceso a Internet, se puede instalar wireshark en cualquier ordenador para analizar el tráfico de los demásordenadores??? Y se puede analizar el tráfico de web y el de acceso a datos del servidor o solo el de web???

Gracias de antemano, espero que responder a estas preguntas, un saludo Curundin

si es posible me gustaria que me respondieran tambien a mi correo; curundin_dae@hotmail.com

Anónimo dijo...

Buenos días, tengo una serie de preguntas y dudas sobre wireshark ... y me gustaría si es posible que me dieran respuestas. Mis preguntas son las siguientes:

se puede analizar el tráfico de todo el día de una red por la tarde o hay que hacerlo en tiempo real???? Y si se puede, wireshark ha tenido que estar ejecutándose o se puede ejecutar por la tarde y ver el tráfico de la red de todo el día

se puede saber por donde ha estado navegando y lo que han bajado (si ha descargado algo) un equipo de la red?

Se puede analizar el tráfico de acceso a archivos almacenados en un servidor o sólo sirve para el tráfico web?

En una red, en la que hay varios ordenadores conectados a un servidor y a un router con acceso a Internet, se puede instalar wireshark en cualquier ordenador para analizar el tráfico de los demás??? Y se puede analizar el tráfico de web y el de acceso a datos del servidor o solo el de web???

Gracias de antemano, espero que responder a estas preguntas, un saludo Curundin

También me gustaría si fuera posible me respondieran a mi correo; curundin_dae@hotmail.com

Hector Munguia dijo...

Curudin;
Con wireshark se puede analizar el trafico de todo un dia, una semana, un mes, el tiempo que quieras, sin embargo el tamaño del archivo seria gigantesco, sin embargo puedes configurar el wireshark para que limite la captura a x cantidad de Mbs, por ejemplo archivos de 2 Mb, cuando la captura alcanza los 2 Mb, se crea un nuevo archivo y asi sucesivamente por el tiempo que quieras. Wireshark es un analizador de paquetes de red, por lo que no esta limitado a trafico web, sino a TODO tipo de trafico. Con respecto a tu pregunta sobre si se puede analizar el trafico de varios servidores, depende, si estas usando un switch administrable puedes configurar un port mirroring y capturar trafico de varios puertos a la vez. Te sugiero ver las otras entradas publicadas en este blog y algunos recursos adicionales que puedas encontrar en la web, para formarte una mejor idea de lo que hace este software.
Saludos
Hector

Anónimo dijo...

Perdona, pero hay algo que no tengo claro, Wireshark solo recoge datos del transito de una red cuando esta en ejecución (para poder analizarlos luego cuando quieras) o se ejecuta el programa y puedes analizar el transito de la red de cualquier momento auque sea de momentos en que el programa no haya estado ejecutándose????

Otra pregunta que no tengo clara es: en una red de varios ordenadores conectados a un router, se puede ejecutar wireshark en cualquier ordenador para analizar el transito de red de todos los demás…. (supongo que lo que hace es analizar el transito del router y luego identificar las direcciones de las maquinas).

Gracias por haber respondido a mis preguntas anteriores, espero respondas estas también (y espero sean las ultimas). Perdona las molestias que haya podido ocasionar y gracias de nuevo.

Un saludo Curundin

Hector Munguia dijo...

Curidin;
Con wireshark puedes analizar unicamente el trafico que has capturado explicitamente, es decir, no puedes analizar trafico que paso por la red en un tiempo pasado, si no tenias una captura con wireshark o alguna otra herramienta capturando trafico.
Con respecto a tu segunda pregunta, cuando configuras wireshark en un servidor, unicamente puedes ver el trafico de ese servidor + el trafico de broadcast que generan otros servidores, en otras palabras en general no puedes ver el trafico de otros servidores. Por eso te explicaba en mi comentario anterior, que si deseas capturar trafico de varios servidores, debes utilizar algo como un port mirroring, con este feature un switch se configura para que copie el trafico de toda una vlan, o de varios puertos a otro puerto especifico donde tu colocarias la captura de wireshark, si todo el trafico esta cruzando por un router, otra opcion es hacer mirroring del puerto del router y ahi podrias ver todo el trafico que esta cruzando por el router.
Espero que esto aclare un poco tus dudas.
Saludos

Juan Miguel dijo...

Amigo Leonel, en primer lugar felicitarte por esta página que, de seguro, me va a aportar muchas cosas. Actualmente no tengo mucho conocimiento de la materia pero estoy deseoso de aprender esa magnífica herramienta de análisis que es WireShark. Echando un vistazo a los filtros de captura y visualización he intentado buscar la sintaxis correcta para, bien desde las opciones de captura o desde la posterior visualización, hacer lo siguiente: quería aplicar filtros a los siguientes host: http://www.google.es y https://www.google.com (conjuntamente) para mostrar primeramente sólo el tráfico HTTP. ¿Qué sería mejor, filtrar en la captura por los puertos o filtrar por los host? ¿Como filtro el host https en captura y en visualización?
Luego quería hacer lo propio pero capturarndo todo el tráfico excepto HTTP y ARP pero también me ha fallado la experiencia. Y para rematar luego queria capturar el tráfico con origen o destino en los puertos 80 y 443. Sé que en el filtro de la captura podría poner algo así como "port 80 and port 443" ¿pero como le añado al filtro los dos host, en esa misma captura o mejor en la visualización con otro filtro? En fin, para ser mi primera experiencia con esta herramienta tengo muchas dudas que debo pulir, empezando por aplicar bien los operadores lógicos, que me siguen liando. Por favor, algún consejo. Otra cuestión que me gustaría preguntarte es sobre la herramienta, o mejor dicho plugin de IE "IEWatch", que he escuchado que permite visualizar sin más que visitar una página web, incluso https, el contenido de la misma, pudiendo ver incluso las cookies, ¿pero sobre una página https supongo que sólo se podrá visualizar el contenido no encriptado o me equivoco? Por otro lado Wireshark podría analizar el contenido de los paquetes con origen/destino el puerto 443 -https-?. Como puedes comprobar soy un mar de dudas.
Muchas gracias por todo (espero que mi poca experiencia no provoque muchas risas), y cordiales saludos,
Juan Miguel (juanmivp@gmail.com)

Anónimo dijo...

Amigo es una información basica pero claro que ayuda.

Pero nada mejor para capturar el trafico de una red que TCPDUM. saludos

ghost.

Monse dijo...

Una pregunta quiero escuchar el trafico de una red inalambrica se hace de la misma forma o como le hago???? espero me puedas ayudar me urge!!!!! poder lograrlo

Anónimo dijo...

Hola,

Necesito capturar el tráfico de la siguiente red: modem de internet - router1 - router2.
Tengo un switch con capacidad de port mirroring.
Básicamente necesito monitorear el tráfico (inbound & outbound) del puerto del router2 que se conecta al router1.
En qué posición debo colocar el switch y como debería configurarlo para capturar el tráfico.

Gracias de antemnano por su ayuda.

Saludos,
Pablo

Unknown dijo...

hola he estado leyendo muchas páginas pero no he logrado dar con una solución rápida...como haría para capturar el tráfico mediante wireshark en una red pequeña que posee un Switch no administrable Sr224 y un Router Tp-link TL-MR3420...cual sería la mejor solución para esto? gracias de antemano

Hector Munguia dijo...

Jose, las unicas opciones son un hub o un tap, ambos no muy faciles de conseguir, que trafico es el que te interesa ver?

Hector Munguia dijo...

Jose, las unicas opciones son un hub o un tap, ambos no muy faciles de conseguir, que trafico es el que te interesa ver?

Unknown dijo...

Hola leonel gracias por tu respuesta, básicamente captar el tráfico generado por navegación web y el generado por una aplicación llamada Logme in, la verdad no se que filtro utilizar para capturar este último, te comento que he conseguido una segunda tarjeta de red, sería adecuado realizar una captura mediante el método de "Hombre en el medio"? será eficaz si lo conecto entre el Switch y el Router? disculpa por no responder antes pero no habia tenido tiempo de revisar y no recibí ninguna notificación en mi correo de tu respuesta, espero saber de usted pronto. Gracias de nuevo.

Unknown dijo...

Otra cosa, pero como haría luego de la captura lograr visualizar y determinar solo el tráfico interno de la red? es decir solo lo que va de salida...es posible que las gráficas de wireshark me muestre solo ese tópico?...gracias de antemano.

Anónimo dijo...

excelente ilustracion, gracias por compartir tu conocimiento