Banner 1

Wireshark. Analiza el tráfico de una red

Wireshark. Analiza el tráfico de una red


Wireshark (antes llamado Ethereal), es un analizador de protocolos utilizado para realizar análisis y solucionar problemas en redes de comunicaciones para desarrollo de software y protocolos, y como una herramienta didáctica para educación. Es un sniffer que te permite capturar tramas y paquetes que pasan a través de tu interfaz de red. Cuenta con todas las características estándar de un analizador de protocolos.

Cómo instalar wireshark

Para instalar wireshark en Ubuntu, abrimos el terminal (Aplicaciones/Accesorios/Terminal) y escribimos lo siguiente:

  • sudo apt-get install wireshark

Una vez instalado, encontraremos wireshark en Aplicaciones/Internet/Wireshark.

Para Windows podemos bajar Wireshark desde la siguiente página: Wireshak para Windows

Funcionamiento de wireshark

Para empezar a capturar paquetes nos dirigimos a Capture/Interfaces. Aparecerá entonces una lista de nuestros interfaces de red.

Pulsando el botón “Start” de una de las interfaces, empezaremos a capturar paquetes de esa tarjeta de red. Para detener la captura haremos clic sobre Capture/Stop. En la ventana principal de la aplicación aparecerán entonces los paquetes capturados.Wireshark muestra la información capturada en tres secciones principales.

En la primera sección aparece un listado de los paquetes capturados con su información más relevante. En la segunda sección podemos observar los detalles del protocolo seleccionado en la sección 1. En la última sección se muestran los paquetes en bruto, es decir, tal y como fueron capturados por la tarjeta de red.

Filtrando paquetes con Wireshark

Como la información obtenida puede ser muy grande, podemos filtrar los paquetes para mostrar sólo aquellos que cumplen los requisitos indicados. Para filtrar paquetes debemos dirigirnos a Capture/Options y escribir el filtro que queramos en “Capture Filter”.

Veamos a continuación algunos ejemplos de filtros. Para filtrar paquetes en base a una dirección IP o nombre de equipo se utiliza la palabra reservada “host”. Por ejemplo, si quiero capturar solamente el tráfico que vaya hacia o desde la dirección IP 192.168.1.1, escribiría lo siguiente:

  • host 192.168.1.1

Voy a capturar, por ejemplo, los paquetes que se envíen o se reciban desde la dirección IP 217.76.156.108. Esta IP corresponde al servidor que contiene mi página web (www.alejandrox.com). Así pues, voy a Capture/Options y escribo “host 217.76.156.108″ en “Capture Filter”. Pulso a continuación sobre el botón “Start” para comenzar a capturar paquetes. Si ahora voy a la dirección www.alejandrox.com, podré ver que Wireshark comienza a mostrar una lista de paquetes. En la imagen (clic para agrandar) he seleccionado un paquete capturado. Si observáis detenidamente la información (abajo, en la tercera sección), veréis que el paquete contiene capturado contiene texto que aparece en la web.

Después de la palabra reservada “host” podemos poner una dirección IP o el nombre de un equipo. Por ejemplo:

  • host www.alejandrox.com

Para filtrar los paquetes que tienen una dirección exclusivamente como origen podemos utilizar src host. Ejemplo.

  • src host 192.168.1.1

O como destino:

  • dst host 192.168.1.1

Así mismo, es posible filtrar de acuerdo a la dirección de capa 2, es decir, la dirección MAC (en el caso de ethernet). Por ejemplo, para filtrar todo lo que tenga como destino ff:ff:ff:ff:ff:ff utilizariamos el siguiente filtro:

  • ether host ff:ff:ff:ff:ff:ff

O podemos indicar si queremos que capture solo el tráfico que tiene una dirección exclusivamente como origen o destino usariamos alguno de los siguientes:

  • ether src 00:f9:06:aa:01:03
  • ether dst 00:f9:06:aa:01:03

Podemos incluir más de una condición en los filtros que utilicemos. Para ello nos ayudaremos de los operadores lógicos and, or y not. Por ejemplo, si queremos filtrar todos los paquetes que tengan como origen la dirección 192.160.1.1 y tengan como destino la dirección 192.160.1.2, utilizariamos el siguiente filtro:

  • host src 192.160.1.1 and src 192.160.1.2

Filtros de display

Otro tipo de filtros que podemos utilizar son los filtros de display, que son mucho más completos y flexibles.Los filtros de display se escriben en el lugar en que se indica en la siguiente imagen. Una vez escrito el filtro, tan sólo hay que pulsar sobre el botón “Aplicar”. Para eliminar el filtro hay que pulsar sobre el botón “Limpiar”.

Wireshark cuenta con un asistente para crear filtros de display. Si hacemos clic sobre el botón “Filter”, aparecerá la siguiente ventana en la que aparecen algunos filtros ya predefinidos. Si queremos capturar, por ejemplo, todo el tráfico HTTP, tendríamos que seleccionar HTTP en la lista de filtros.

Para utilizar filtros de display también podemos hacer clic sobre el botón “Expression”. Aparecerá entonces una ventana como la siguiente.

En esta ventana se muestran una lista enorme de campos para que seleccionemos aguno. Así mismo, es necesario indicar como lo vamos a comparar usando la columna “Relation” y finalmente el valor con el que se será comparado que se indica en “Value”.

Descubriendo contraseñas con Wireshark

En mi página web he creado un pequeño formulario en el que hay que rellenar dos campos, nombre de usuario y contraseña. El formulario lo podéis ver en la siguiente dirección: www.alejandrox.com/validacion.htm

En mi red de área local sospecho que hay varios usuarios que están conectándose a esa página introduciendo su nombre de usuario y contraseña. Vamos a ver cómo podríamos capturar la contraseña que escriben en el campo “Password” muy fácilmente con Wireshark.

En primer lugar empezamos a capturar tramas con Wireshark y esperamos un tiempo prudencial hasta que pensemos que alguien se ha conectado ya a la página y escrito su contraseña.

En mi caso he capturado más de 10000 paquetes en total, ya que hay otros ordenadores de la red que están transmitiendo y recibiendo paquetes. Así pues, tengo que filtrar paquetes de alguna forma para lograr mi propósito.

Lo primero que se me ocurre es filtrar paquetes HTTP. Así pues, escribo http en “Filter” (filtro de display). De esta forma obtengo un total de 140 paquetes, así que tengo que filtrar aún más la información. Lo siguiente que se me ocurre es obtener la dirección IP de www.alejandrox.com para filtrar los paquetes que van dirigidos a esa dirección. ¿Cómo obtengo la dirección IP de www.alejandrox.com? Pues muy sencillo, con un simple ping a www.alejandrox.com:

  • ping www.alejandrox.com

Haciendo un ping obtengo la dirección IP 217.76.156.108. Voy ahora a Wireshark y escribo el siguiente filtro: http and ip.dst==217.76.156.108. !Ahora salen tan sólo tres tramas!. Examino la información de las 3 tramas y me encuentro con esto:

Ya he obtenido la contraseña! (salamandra). Obviamente la contraseña la he podido averiguar porque se transmite en texto plano sin ningún tipo de codificación y a través de una página no segura. La cosa sería muy diferente si ésta fuera encriptada por la red…

Veamos otro ejemplo.

En la red del aula en la que imparto clases hay un servidor de ficheros con IP 192.168.1.254. Voy a copiar un documento de texto plano, que tengo en mi ordenador, a una carpeta del servidor. Se trata de averiguar con Wireshark el contenido de dicho fichero de texto (sin abrirlo, claro). Así que en pongo en marcha Wireshark, copio el documento de texto a una carpeta del servidor y a continuación detengo la captura de tramas.A continuación filtro las tramas para que sólo se me muestren aquellos paquetes que van dirigidos a la dirección 192.168.1.254.

  • ip.dst==192.168.1.254

Examinando la lista de paquetes en Wireshark, observo que en la columna “Info” aparece “Write and Request”. Hago clic sobre el paquete y observo, que en la sección inferior, aparece el contenido del documento de texto (en un lugar de la mancha….)

Podéis encontrar más información de esta excelente herramienta en Planeta-Digital, donde he obtenido la mayor parte de información sobre este programa.


fuente: http://www.alejandrox.com/2007/11/wireshark-analiza-el-trafico-de-una-red/

No hay comentarios:

Powered by Bad Robot
Helped by Blackubay