Wireshark Analisis de Trafico y Deteccion de Claves

17
WIRESHARK: ANÁLISIS DE TRÁFICO Y DETECCIÓN DE CLAVES. Autor: César Gómez 14/01/2011

Transcript of Wireshark Analisis de Trafico y Deteccion de Claves

Page 1: Wireshark Analisis de Trafico y Deteccion de Claves

WIRESHARK: ANÁLISIS DE TRÁFICO Y DETECCIÓN DE CLAVES.

Autor: César Gómez

14/01/2011

Page 2: Wireshark Analisis de Trafico y Deteccion de Claves

Introducción

En la actualidad la gran mayoría de los procesos, tareas o tramites que hacemos en nuestro diario vivir, las realizamos frente a un computador, es decir, desde los más trivial como conversar con nuestro amigos o compañeros por chat o algún cliente de mensajería hasta algo más complejo como hacer transacciones de nuestra cuenta corriente en el banco o el pago de impuestos. Debido a la gran cantidad de datos que ingresamos y que circulan por la red, datos como correos, direcciones, números de teléfono, contraseñas, ¿qué tan seguro están esos datos de terceros? Por ahí se ha escuchado incluso de ventas y trafico de base de datos con toda información acerca de personas. ¿Qué tan protegido estamos la navegar por internet?

Ya no basta como era de costumbre hace algún tiempo atrás solo con tener un antivirus o tener constantemente el sistema actualizado (más en el caso de sistemas Windows) sino además de tener un equipo seguro debemos saber cómo está el entorno, es decir, la red en la que estamos, ¿es segura? Quién nos asegura que no hay alguien observando el trafico, viendo que es lo que hacemos, que paginas visitamos, inclusive cuáles son nuestras claves de correo, facebook, cuentas bancarias, sin duda da para temer.

En el presente informe, analizaremos una herramienta muy conocida para el análisis de tráfico llamada “Wireshark” (anteriormente conocida como “Ethereal”) además de otras técnicas usadas para averiguar si hay espías en la red viendo nuestros datos, una guía vital para estar un poco más seguro en la red, aunque por definición ningún sistema es ciento por ciento seguro.

Page 3: Wireshark Analisis de Trafico y Deteccion de Claves

Introducción a la redes para su posterior análisis e interpretación

Para poder trabajar con “Wireshark” debemos conocer o estar relacionado previamente con algunos conceptos básicos de redes con detallamos a continuación.

Dirección ip: básicamente es un identificador numérico único Se usa para identificar cada computador o sistema conectado a Internet o una red local, esta dirección ip esta compuesta de cuatro números separados por puntos, por ejemplo 127.0.1.1 (IPv4).

Dirección MAC: que significa “control de acceso al medio” es un es un identificador de 48 bits asignado generalmente de fábrica de 12 caracteres (6 bloques hexadecimales), que es único para cada dispositivo de hardware en la red. La dirección la podemos ver impresa en nuestra tarjeta de red en algunas ocasiones.

Protocolo: es un conjunto de reglas que son usadas para comunicarse a través de la red, es decir, es una estandarización que permite la conexión y comunicación y también la transferencia de datos entre máquinas, cada protocolo se encarga de una forma específica de intercambio. Para este caso solo nos centraremos en los protocolos de capa 3 en adelante, es decir, protocolos de red y especialmente protocolos de aplicación: FTP, HTTP, MSNMS entre otros.

Puerto: es el valor que se usa para distinguir entre las múltiples aplicaciones que se pueden conectar al mismo anfitrión (HOST), o puesto.

Paquetes de datos: En Internet, los datos se transfieren por paquetes que son un conjunto de datos que conforman una información. Es la unidad fundamental de transporte de información en todas las redes actualmente.

Page 4: Wireshark Analisis de Trafico y Deteccion de Claves

ARP: significa “Protocolo de resolución de direcciones”. Es un protocolo de nivel de red que tiene como responsabilidad encontrar la dirección de hardware MAC que corresponde a una determinada dirección IP. Este protocolo se encarga de traducir las direcciones IP a direcciones MAC, se utiliza una denominada “tabla ARP” que tiene las referencias equivalentes entre sí de cada dirección.

¿Pero qué es Wireshark?

En una definición simple Wireshark es un sniffer (Husmeador) que en el contexto de redes quiere decir que monitoriza el tráfico y captura los paquetes de datos que circulan por una determinada red se usa regularmente para realizar análisis y solución de problemas en redes, este programa es muy conocido, anteriormente llamado “Ethereal” que además es de software libre con licencia GPL y se ejecuta en mas 20 plataformas. Pero también esta herramienta tiene algunos fines no tan puros y transparentes como solo el hecho de dar solución a los problemas de una determinada red, también con esta aplicación podemos obtener otros datos más relevantes, datos importantes que estén circulando en la red como contraseñas de correo, claves bancarias e incluso hasta conversaciones de clientes de mensajería de otras maquinas que estén en la red a cual tengamos acceso.

Si queremos usar esta aplicación Wireshark en nuestra máquina debemos contar con los permisos necesarios para la instalación y ejecución de este software, es decir, privilegios de Administrador en el caso de Windows o de Root en sistemas Unix.

La última versión estable para descargar la podemos encontrar en:

http://www.wireshark.org/download.html

Page 5: Wireshark Analisis de Trafico y Deteccion de Claves

Preparando Wireshark: configuración

Wireshark posee una interfaz amigable no muy difícil de entender, debemos configurar la aplicación para poder realizar la captura de paquetes y analizar el tráfico para ello debemos establecer la interfaz de red con la cual vamos a trabajar.

Un problema que surge a veces es que Wireshark no nos detecta ninguna interfaz, pero si la aplicación la estamos ejecutando en modo administrador no deberíamos tener mayores problemas. Seleccionamos nuestra interfaz, las opciones más ocurrentes son:

Eth0: si vamos a trabajar sobre una red cableada.

Wlan0: si trabajamos sobre una red inalámbrica.

Para las pruebas que realicé lo hice con la interfaz “wlan0”, es decir, en una red inalámbrica con encriptación tipo WEP. Si vamos a las opciones de la interfaz, en este caso podemos ver más opciones al momento de hacer la captura de datos, por ejemplo poner un “filtro de captura” de un determinado host (facebook.com, google.cl, hotmail.com, etc.) y centrarnos en el análisis de de dicho anfitrión de nuestra máquina. También existe otra opción importante como el hecho de realizar capturas de la red en tiempo real, marcamos esta casilla y comenzamos nuestra captura presionando el botón “start”.

Page 6: Wireshark Analisis de Trafico y Deteccion de Claves

Inmediatamente después comenzamos a ver el tráfico de la red y la recepción de paquetes de datos en Wireshark lo que se más o menos así:

En “Source” y “Destination” vemos el flujo de información respecto de las direcciones ip, en la imagen por ejemplo un servidor de una página nos envía información a nuestra máquina utilizando el protocolo HTTP.

Page 7: Wireshark Analisis de Trafico y Deteccion de Claves

Analizando el tráfico

Como anteriormente señalamos “Wireshark” es un herramienta fundamental a la hora de hace un análisis de nuestras conexiones de la red y detección de posibles problemas en transmisión de paquetes, como lo es la pérdida de paquetes y/o conexión.

En la captura anterior podemos observar que Wireshark no ha detectado problema alguno, en este caso la transmisión de paquetes se encuentra normal.

Pero en este caso en el transcurso de transmisión de paquetes Wireshark nos alerta con una notificación, en este caso “TCP Previous segment lost” esto nos puede indicar por ejemplo que un segmento TCP está presentando problemas.

Estos tipos de problemas pueden producirse por un desorden de paquetes lo que genera que el receptor provoque un ACK duplicado ante un segmento que no sigue la secuencia normal, pero estos problemas también se pueden producir la perdida de algún segmento de datos o un aumento en el tiempo de trasmisión del paquete (retraso del paquete) con los que se esperan nuevos ACK duplicados, pero ¿qué es un ACK? Un Ack (acuse de recibo) simplemente es un mensaje que se usa para confirmar que un mensaje o un conjunto de mensajes (datos) ha llegado correctamente a destino, por ejemplo los datos que se envían de una máquina a otra han llegado correctamente. Gracias a Wireshark y estos análisis podríamos ver cuál es el desempeño de la red en cuestión, y que pasa finalmente con el destino de los datos, si llegan a buen puerto o no.

Page 8: Wireshark Analisis de Trafico y Deteccion de Claves

En Wireshark si nos damos cuenta hay un campo llamado “filters” esta función es muy vital para no colapsar viendo tanta información de una sola pasada (ip, protocolos, tiempo, etc.) Existen una serie de comandos para ir simplificando nuestra búsqueda por ejemplo si queremos discriminar por dirección ip, basta solo teclear el comando “ip.addr==127.0.0.1” por ejemplo para ver solo paquetes de esta máquina, si además de la dirección queremos ver paquetes que utilicen el protocolo HTTP sería “ip.addr==127.0.0.1 and HTTP” esto nos mostraría paquetes de datos de esa ip y con ese protocolo en especifico.

Page 9: Wireshark Analisis de Trafico y Deteccion de Claves

En la imagen anterior aplicamos el filtro “HTTP” para ver paquetes de datos correspondientes al protocolo HTTP, como estamos analizando el tráfico de nuestra propia maquina, abriendo el navegador vamos a alguna página en internet en este caso “google.cl” y Wireshark nos muestra la pagina que estamos visitando como efectivamente aparece en la imagen anterior.

Otros comandos útiles

ip.dst == 127.0.0.1 Visualizar por host destino esta ip.

ip.src == 127.0.0.1 Visualizar por host origen esta ip.

tcp.port ==80 Visualiza todo el tráfico origen y destino de este puerto.

http contains "http://www.virusexpert.cl" nos muestra los paquetes que contienen www.virusexpert.cl en el contenido en protocolo http.

tcp contains "http://www.virusexpert.cl" Nos muestra segmentos TCP que contienen la cadena virusexpert.cl.

frame contains "@virusexpert.cl" Nos muestra todos los correos con origen y destino al dominio virusexpert.cl.

Icmp[0:1] == 08 Es un filtro avanzado en donde nos muestra todo el tráfico icmp de tipo “echo request”.

ether host 00:00:00:00:00:00 Captura datos desde y hacia la dirección esta dirección MAC.

MSNMS Nos muestra el tráfico del mensajero de MSN, incluso las conversaciones.

src port 80 Muestra los paquetes con puerto origen 21.

http.cookie Nos muestra las cookies usadas por el protocolo http.

dst portrange 1-128 Captura paquetes con puerto destino en un rango de puertos 1 a 128 por ejemplo.

Page 10: Wireshark Analisis de Trafico y Deteccion de Claves

Un poco de sniffer, detección de claves y otras técnicas: espía en la red.

Así como podemos ver algunos datos importantes de nuestro propia máquina surge inmediatamente la idea ¿si sucede lo mismo con otro equipo? La respuesta es sí. Si estamos conectado a una red en donde también lo están otras máquinas es relativamente fácil visualizar el trafico de otro máquina en particular y capturar paquetes de datos para ello existe un conocido método MitM (intermediario).

Ataque Man In The Middle (MitM)

Como lo sugiere el nombre de este tipo de ataque, es en donde existe un “espía” o “intermediario” entre la red y alguna máquina. Este tipo de ataque también conocido como “ARP spooning” o “ARP poisoning” (envenenamiento) resulta útil para infiltrarse en una red LAN (red de área local), Modificar el tráfico o inclusive para hacer ataques tipo “DoS” (Denegación de Servicio).

Detallando mas el funcionamiento de este tipo de ataque, el ARP poisoning consiste en enviar mensajes ARP falsos (recordemos que ARP es un Protocolo de resolución de direcciones). El objetivo finalmente es la de asociar la dirección MAC atacante con la dirección ip del nodo atacado, entonces el tráfico que es dirigido a la dirección ip del nodo que está siendo atacado será enviado al atacante, por ejemplo si la máquina atacada está solicitando información a un sitio web esa información será enviada a nosotros, en este caso el atacante puede estar en modo pasivo, solo observando el tráfico, en modo activo en donde hace una modificación de los datos solicitados e incluso hacer una denegación del servicio.

Page 11: Wireshark Analisis de Trafico y Deteccion de Claves

Las pruebas que realicé fueron hechas en un sistema Unix utilizando “Wireshark” y otra aplicación llamada “Ettercap”. Al igual que Wireshark, Ettercap es un sniffer que tiene otras funciones como interceptor y keylogger (registrador de teclas) además soporta las direcciones activas y pasivas de varios protocolos (HTTP por ejemplo) y también es posible inyectar datos en una conexión establecida, en este último caso lo utilizaremos para “envenenar las tablas ARP”.

Ettercap lo podemos encontrar disponible para varias plataformas en:

http://ettercap.sourceforge.net/download.php

Ejecutamos Ettercap para realizar el ataque, al igual que en Wireshark seleccionamos la interfaz a trabajar en este caso para las pruebas realizadas utilicé la interfaz “wlan0” porque estamos conectados en una red inalámbrica (con encriptación WEP).

Una vez seleccionada la interfaz, escaneamos las maquinas que estén conectadas a la red, Ettercap nos muestra cuantas máquinas están conectadas además de otra información, debemos listar las máquinas conectadas para ver las direcciones ip y las direcciones MAC.

Page 12: Wireshark Analisis de Trafico y Deteccion de Claves

Posteriormente seleccionamos el apartado “MitM” y elegimos “ARP Poisoning” para nuestro fin, seleccionamos la opción para conexiones remotas y comenzamos el ataque.

Page 13: Wireshark Analisis de Trafico y Deteccion de Claves

Paralelamente ejecutamos Wireshark con la misma interfaz que Ettercap y agregamos un filtro ingresando la dirección ip que estamos atacando, Wireshark nos mostrará los paquetes de datos de esa máquina en específico y podremos ver información relevante al igual como lo hicimos con nuestra propia máquina en pruebas anteriores.

Podríamos por ejemplo obtener claves de formularios PHP, como nombre de usuario y contraseña, en este ejemplo vamos a una página web donde ingresamos esos datos y si en Wireshark buscamos el protocolo correspondiente (HTTP) con la dirección ip de fuente nos muestra el nombre de usuario y contraseña.

Formulario: http://www.hhtprecipes.com/1/2/forms.php

usuario:guest password:guest123

Page 14: Wireshark Analisis de Trafico y Deteccion de Claves

Tambien en Wireshark existen filtros tan importantes como los de mensajería instantánea (Messenger, ICQ, etc.) Realicé una prueba con MSN Messenger manteniendo una conversación activa, Wireshark es capaz de mostrarnos los mensajes de conversación de la máquina, para ello tecleamos el filtro: MSNMS.

Efectivamente nos muestra los mensajes de conversación “holaaaaa”.

También se podrían usar otras técnicas en paralelo para la detección de claves como el robo de cookies de una cuenta en facebook por ejemplo, este método es usado también para otros servicios como correos electrónicos, redes sociales, y otros servicios de identificación de usuario.

Page 15: Wireshark Analisis de Trafico y Deteccion de Claves

Protección contra ARP Poisoning

Para prevenir este tipo de ataques se pueden utilizar algunos comandos como “netstat” y “arp” ya que generalmente se realiza el mismo procedimiento para la mayoría de las plataformas (sistemas operativos), una vez más utilizamos Wireshark para nuestro propósito.

Ingresando el comando “arp” nos nuestra la dirección ip asociada a la MAC.

Obtenemos el ip del “Gateway” con el comando: netstat –rn

A continuación obtenemos la dirección MAC del “Gateway”: arp –a

Page 16: Wireshark Analisis de Trafico y Deteccion de Claves

La idea de esto es cuando se esté seguro que no se está sufriendo un ataque “MitM” agregar una entrada estática de las direcciones asociadas (IP y MAC) en la tabla ARP, para ello usamos el comando: arp -s IP MAC

Podemos detectar un ataque de este tipo, tanto solo verificando que la MAC listada en lo que retorne el comando “arp –a” sea la dirección MAC verdadera de nuestro Gateway.

En Wireshark también podemos darnos cuenta de este ataque, ingresando el filtro “ARP”. Si observamos el tráfico podríamos darnos cuenta por ejemplo en caso de un ataque:

- Un host está anunciando su MAC sin que otros hosts se lo pidan. - Un host solicita la MAC y hay dos respuestas de la misma IP con MAC diferente. - Wireshark nos envía un mensaje de alerta: duplicate use of <IP> detected!

Page 17: Wireshark Analisis de Trafico y Deteccion de Claves

Conclusiones

Sin duda que muchas veces que navegamos no le damos la suficiente importancia a la seguridad, se refleja en actitudes como: nos conectamos a cualquier red sin importar ni saber lo segura que es, no actualizamos los navegadores ni los sistemas incluso el propio antivirus, ni tampoco buscamos referencias de algún sitio web o cuando instalamos un nuevo programa o juego con parches, etc. Definitivamente el concepto seguridad no pasa mucho por la mente del usuario a la hora de navegar e ingresar datos por la red.

Sin embargo la mala experiencia ocurre cuando de un modo misterioso nos damos cuenta que un extraño se ha metido en nuestra cuenta de facebook por ejemplo y a cambiado nuestro estado y publicado cosas desagradables, o han espiado nuestro correo con información relevante de nuestra vida privada o temas de trabajo, mucho más terrible es cuando nos hemos dado cuenta que han ingresado de manera ilegal en nuestra cuenta del banco y vemos en el registro que se realizaron giros de dinero que nunca hicimos, en ese momento es cuando realmente le damos importancia a la seguridad de nuestra información.

Se sabe que por definición ningún sistema es ciento por ciento seguro, todos los días aparecen nuevas vulnerabilidades o nuevas técnicas de usurpación de identidad como el “Hijacking” que se refiere al robo de información, pero nosotros como usuarios tenemos la obligación de estar al día en temas de seguridad, a veces siguiendo unas simples reglas podemos estar un poco más seguro cuando estemos conectado a internet o alguna red.

En este informe se trató de explicar el funcionamiento de algunas técnicas de monitoreo del tráfico de datos por la red y de cómo forma podríamos detectar una clave, con el fin de enseñar y mostrar las vulnerabilidades, en las pruebas que realicé, en un periodo de no más de 10 minutos ya tenía la contraseña de 3 usuarios de facebook, sin duda Wireshark puede ser un arma de doble filo.