Filtro de Captura: Un ejemplo practico

<!– @page { margin: 2cm } P { margin-bottom: 0.21cm } A:link { so-language: zxx } –>

En una entrada anterior presente la forma básica de llevar a cabo un filtrado de paquetes en Wireshark, mostrando las dos opciones principales disponibles que son el filtrado de visualización y el filtrado de captura.

Del filtrado de visualización ya se hablo antes, consiste, en escancie, en capturar todos los paquetes en la red almacenándolos en la memoria y luego visualizar los que se deseen.

Por su parte los filtros de captura le indican a Wireshark solo capturar y almacenar en memoria los paquetes que coincidan con las características indicadas en dicho filtro.

La diferencia entre estos dos filtros puede llegar a ser decisiva si se planea capturar y analizar una cantidad inmensa de paquetes o capturar por un periodo de tiempo prolongado, ya que por muy exagerado que suene si es posible que una red conlleve un trafico de tal magnitud que una captura de paquetes pueda llenar por completo la memoria de una computadora en cuestión de unas horas, lo que llevaría a que el sistema operativo se caiga o cierre el programa que esta consumiendo la memoria, en ambos casos todos los datos se perderían.

Para prevenir este caso podemos usar un filtro de captura el cual, como ya se menciono, le indicara a Wireshark a solo almacenar los paquetes que deseamos analizar y descartar el resto lo que ahorrara memoria y hará mas sencillo el análisis, al eliminar datos innecesarios que solo pueden ser considerados ruido al momento de examinar la captura.

Para ejemplificar esto se hará un sencillo experimento en el que veremos la diferencia entre ambos filtros, el experimento consistirá en capturar un tipo muy especifico de paquetes, que en este caso serán las respuestas a un ping.
<!– @page { margin: 2cm } P { margin-bottom: 0.21cm } A:link { so-language: zxx }

–>

Procedimiento

Antes de comenzar sera necesario que tenga a la mano tanto Wireshark (y privilegios de administración si es que Wireshark no se configuro para cuentas de usuario regular), el programa ping y una conexión a Internet, ya que tenga ambos programas y acceso a Internet puede comenzar.

Para comenzar sera necesario que haga un ping a una pagina conocida, en este caso particular haremos dicho ping a google.com, si esta usando Windows es posible que necesite la opción -t para que ping se mantenga enviando paquetes, hecho esto inicie wireshark y comience a capturar datos.
Figura 1: Ping a google.com
Espere un par de minutos y después detenga la captura, si lo desea en ese tiempo acceda a una pagina de Internet para dar mas variedad a los paquetes capturados.
Figura 2: Paquetes Capturados.
Figura 3: Últimos paquetes capturados.
  <!– @page { margin: 2cm } P { margin-bottom: 0.21cm } A:link { so-language: zxx }

–>

Como podrá ver en este ejemplo se capturaron 11167 paquetes en 121 segundos como muestra la Figura 3 y de tipos muy variados como muestra la Figura 2
Sin embargo de esos paquetes solo unos son los paquetes que deseamos ver
Por esto vamos a filtrar las respuestas de ping esto se hace con la expresión “icmp.type==8”, la cual pondremos en el campo de filtros y nos dará un resultado como el mostrado en la Figura 4

Figura 4: Respuestas al Ping
Como nota adicional el tipo de paquete ICMP se puede consultar dentro del propio paquete en el campo “Type” como se ve ne la Figura 4.
Ahora pasaremos al filtro de captura para observar las diferencias, antes de comenzar es necesario hacer énfasis en que cada tipo de filtro tiene sus propios términos para identificar el tipo de paquetes, esto se puede consultar a mas detalle en la documentación de Wireshark.
Para comenzar necesita acceder a las opciones de captura y poner el filtro “icmp[icmptype]=icmp-echoreply” como muestra la figura 5
Figura 5: Opciones de captura.
  <!– @page { margin: 2cm } P { margin-bottom: 0.21cm } A:link { so-language: zxx }

–>

Hecho eso acceda a las paginas de internet que desee, mande correos, abra programas de mensajeria, vea algun video en internet, wireshark mostrara una pantalla como la de la Figura 6

Figura 6: Capturados

  <!– @page { margin: 2cm } P { margin-bottom: 0.21cm } A:link { so-language: zxx } –>

Ahora sera necesario que abra dos ventanas de la linea de comandos y ponga en una el comando “ping -t www.google.com” y en la otra “ping -t www.yahoo.com.mx” como se ve en la Figura 7
Figura 7: Ping a google y yahoo
<!– @page { margin: 2cm } P { margin-bottom: 0.21cm } A:link { so-language: zxx }

–>

Y que de pronto en Wireshark se vera una pantalla como la figura 8
Figura 8: Paquetes capturados
<!– @page { margin: 2cm } P { margin-bottom: 0.21cm } A:link { so-language: zxx }

–>

Que como puede ver son las respuestas de google y yahoo
Aqui puede observar la principal diferencia y ventaja de los filtros de captura ya que estos solo capturan lo que se desea ignorando todo lo demás, de modo que si se sabe que se desea analizar puede ignorar el resto, ahorrando memoria y haciendo mas legibles las estadísticas que se pueden generar desde Wireshark.
Anuncios

Visualizando el Modelo OSI

Uno de los primeros temas teóricos que suelen verse al principio de los cursos de redes es el modelo con el cual se han estructurado las transmisiones en una red de datos, y que describe las diferentes capas que componen la red y la función que realizan, este modelo es conocido como el Modelo OSI.

Figura 1: Modelo OSI.

Si bien en mis cursos de redes la importancia de dicho modelo siempre fue mencionada y todos los libros de redes que leí siempre tomaban su tiempo en describir su estructura y razones de ser, temo decir que fue hasta hace poco que pude comprender realmente su funcionamiento y mas importante aun, la razón de ser de varias de las capas en si.

Esto podría parecer extraño (mas en un blog que durante meses no hablo de otra cosa), sin embargo si solo se ve tal como esta en los libros un par de detalles del modelo OSI lucen en extremo redundantes.

Tener dos capas (o niveles en la Figura 1) dedicadas al direccionamiento suena redundante y la capa de Transporte parece no estar bien definida, después de todo esas tres capas parecen quedar en lo que hace el protocolo TCP/IP y eso sin mencionar las capas de Sesión, Presentación y Aplicación que no parecen tener protocolo que las cubra, ¿O no?

Pues no, esas valerosas afirmaciones sobre el protocolo TCP/IP y las capas superiores del modelo se basan en suposiciones *erradas* de como funciona una red, ciertamente tienen cierta lógica tras de si y algunas nomenclaturas parecen darles valides esto sin mencionar que los componentes de una red se diseñaron para ser transparentes al usuario, es obvio que no son visibles para el usuario final.

Sin embargo existen herramientas que nos permiten examinar a mas detalle lo que ocurre dentro de una red, de modo que podamos ver no solo los datos que se deseaban emitir, si no también los datos y parámetros usados y generados por cada etapa de la transmisión, es al examinar estos que las razones de la estructura del modelo OSI quedan claras.Una de estas herramientas es el analizador de paquetes de red.

Una muestra de esto puede verse en la figura 2, en la cual se capturo un paquete de una transferencia HTTP y las diferentes secciones mostradas en Wireshark se conectaron con su capa correspondiente del modelo OSI.

Figura 2: Correspondencia con el Modelo OSI.

De este modo es mas sencillo visualizar la función de cada capa,y varias de las “valerosas afirmaciones” empiezan a lucir menos como el resultado de aplicar lógica y mas como el resultado de sobre simplificaciones de como funciona una red.

Como ultimo, y para dejar en claro los detalles que no muestra del todo, se enlistara a que capa corresponde cada uno de los protocolos mostrados en la Figura 2 y una breve explicara en que forma su función corresponde a la capa que se indica.

Antes de hacer esto hay que indicar que si bien Wireshark si muestra algo que podría corresponderse con la capa física, esto no es del todo correcto, puesto que la capa física no se indica por las tramas emitidas, si no por frecuencias y voltajes eléctricos y es mas fácil de visualizar con un osciloscopio

  • Ethernet – Capa de enlace de datos: La función de Ethernet es proporcionar los mecanismos para el direccionamiento *físico* manejando a nivel tarjeta de red a donde deben de enviarse los paquetes.
  • Internet Protocol – Capa de red: Maneja como se direcionan los paquetes a nivel software, permitiendo cambiar el hardware sin modificar el sistema en si.
  • Transfer Control Protocol – Capa de Transporte: Permite las transferencias orientadas a conexión y la fiabilidad del sistema.
  • Capa de aplicación – HTTP: En esta capa están los protocolos que ya cumplen una función y envían datos que son usados o solicitados por aplicaciones.

Simulación y Detección de un ataque.

Una de las posibilidades de la captura y analisis de paquetes proporcionados por Wireshark es la habilidad de detectar si provienen de una fuente maliciosa, con lo cual las acciones acordes pueden tomarse para mitigar los efectos.

Para desmostrar esto se propone una sencilla simulación en la cual dos computadoras atacaran a una tercera y es ataque sera visualizado en Wireshark.

Requerimientos.
Para llevar a cabo este experimento sera necesario contar con lo siguiente:

  • Tres computadoras conectadas en red.
  • Las direcciones IP de las computadoras.
  • Wireshark instalado en al menos uno de los equipos.
  • Ping disponible en al menos dos de los equipos.

Para conseguir las direcciones IP de los equipos basta consultar las propiedades de la conexión , las cuales son accesibles desde el panel de control en los sistemas Microsoft Windows o por medio del comando ipconfig, ambos le entregaran la dirección IP del equipo, asegúrese de anotarlas.

Procedimiento.

Una vez que las tres computadoras esten conectadas en linea y la maquina victima reciba y responga a los ping enviados arranque Wireshark en la maquina victima y comienze a capturar paquetes, durante esto ponga atencion a la columna tipo, ya que asi podra saber cuales son los protocolos que comunmente arriban, un ejemplo de como se ve el trafico normal puede  observarse en la Figura 1 donde se que si bien los paquetes ARP son comunes tambien hay paquetes de otros protocolos y hay varios microsegundos entre los paquetes.

Figura 1: Trafico Normal.

Ahora que a tiene una vista del trafico usual de la red es el momento de comenzar la simulación del ataque, para hacer esto ingrese el siguiente comando en las maquinas atacantes

ping -t ip-victima

Este comando comenzara a enviar solicitudes de respuesta de forma continua a la dirección IP indicada mismos que seran respondios por el receptor.

Esto puede observarse desde Wireshark, si comienza o ya esta capturando paquetes al momento en que el ataque comienze obtendra una pantalla similar a la Figura 2

Figura 2: Paquetes ICMP.

Como podra observar ahora esta presente una gran cantidad de paquetes \emph{ICMP}, los cuales se visualizan mejor aplicando el filtro de visualizacion del mismo nombre, en estos paquetes pueden observarse una serie de caracteristicas particulares.

Primero que hay paquetes generados tanto por el atacante, los cuales estan descritos como Echo (ping) request en el campo Info, asi como paquetes generados por la maquina victima identificados como Echo (ping) reply, por lo que en efecto el responder a los las solicitudes de ping consume recursos de la maquina victima.

Observaciones
Al comezar este experimento se observo un problema con el comando ping, pese a tener las direcciones IP de todas las computadoras utilizadas y verificar la conexión, el ping siempre regresaba el mensaje 100% packet loss esto se debio a que los sistemas utilizados, Microsoft Windows XP y Microsoft Windows 7 tienen habilitado el cortafuegos por defecto, por lo que, para realizar el experimento, fue necesario deshabilitarlo en la maquina victima.

Captura de paquetes en redes inalámbricas Wi-Fi.

Como se menciono anteriormente es posible realizar capturas y análisis de paquetes en redes inalámbricas por medio de los módulos AirPcap de Riverbed Technology.

Estos módulos, los cuales se presentaron en una entrada anterior proporcionan el hardware y soporte necesarios para capturar, visualizar y analizar los encabezados IEEE 802.11.

Instalación de los modulos AirPcap.

Antes de proceder con el experimento es necesario instalar correctamente tanto los módulos como los controladores de software.

Para esto es necesario contar con el sistema operativo Microsoft Windows XP o superior y ya tener Wireshark instalado en el sistema, una vez cumplidos estos requerimientos puede instalar los controladores, los cuales pueden obtenerse ya sea desde el disco incluido con los módulos, o desde la pagina del fabricante[1], en cualquier caso basta con seguir las indicaciones del instalador, el cual le pedirá reiniciar el sistema una vez que termine.

Existe un problema que puede presentarse tras la instalación y que se manifiesta con Wireshark congelándose al iniciar si el modulo esta conectado a la computadora, este es un problema con el registro del sistema ya es del conocimiento del fabricante y la solución puede consultarse en la sección de preguntas frecuentes de Riverbed Technology [2].

Una vez que la instalación se halla realizado correctamente conecte el modulo AirpCap a un puerto USB e inicie Wireshark, si todo salio bien obtendrá una pantalla similar a la figura 1.

Figura 1: Pantalla de inicio de Wireshark con el modulo conectado

Capturando paquetes.

Para comenzar la captura de paquetes pulse sobre la interfaz AirPCap USB wireless capture adapter nr. 00 la cual representa al modulo AirPCap, hecho esto obtendra una pantalla similar a la figura 2.

Figura 2: Capturando paquetes Wi-Fi.

Notara una serie de diferencias en comparación con la captura atravez de Ethernet estas son:

  1. La lista de paquetes no muestra ningún coloreo.
  2. La columna de protocolo muestra uniformemente \emph{IEEE 802.11}.
  3. El área de detalles del paquete muestra los campos de la cabecera IEEE 802.11
  4. El dialogo de expresiones de filtrado ahora incluye filtros para IEEE 802.11

Fuera de estas diferencias pueden efectuarse todas las funciones de Wireshark, ya
sea almacenar los paquetes, ordenarlos según tipo, numero, fecha y aplicarles filtros.

 Filtrando paquetes Wi-Fi.

Como se menciono todas las características de Wireshark están a disposición para analizar los paquetes Wi-Fi, incluyendo el muy completo sistema de filtrado el cual incluye los campos en la sección adecuada del dialogo de expresiones de filtrado, mostrado en la figura 3.

Figura 3: Campos para filtrar paquetes Wi-Fi.

Con el fin de demostrar algunas de las posibilidades se presentara un ejemplo sencillo.

Filtrando paquetes de datos.

Una de las características de Wi-Fi es su uso de diversos tipos de paquetes los cuales se encargan de la señalización, control y envío de datos.

El que halla diversos tipos de paquetes puede hacer algo engorroso el capturar los paquetes deseados, pero para eso puede aplicarse un filtro muy sencillo el cual solo mostrara los paquetes que contengan datos.

Para hacer esto introduzca la expresión data en el campo de filtros y presione Apply, como muestra la figura 4.

Figura 4: Filtro Data.

Notara que el campo Info de la mayoria de los paquetes comienza ahora con la palabra “Data” y si da doble click sobre cualquiera de los paquetes encontrara que poseen la cabecera Data, como muestra la figura 5.

Figura 5: Contenido de un paquete de datos.

Referencias
[1] – Riverbed Support: Software – Wireshark
[2] – Riverbed Technology – AirPcap Frequently Asked Questions

Captura de paquetes Wi-Fi en Wireshark : Módulos AirPCap

De todas las características proporcionadas por Wireshark hay una en particular que no le fue, ni puede ser, programada, el soporte por parte de la industria.

Esto no puede demostrarse mejor que observando los módulos AirPCap creados por la compañía Riverbed Technology, estos son módulos de hardware los cuales le permiten a Wireshark realizar una función que normalmente no podría realizarse, la captura y análisis de paquetes Wi-Fi.

Ahora si bien con determinados modelos de tarjetas de red es en efecto posible realizar capturas sobre una red inalámbrica, como muestra la figura 1.

Figura 1: Interfaz Inálambrica en Wireshark.

El resultado de esta captura no muestra toda la información que podría obtenerse ya que como muestra la figura 2 se muestra la información de las cabeceras Ethernet para abajo, pero no el encabezado Wi-Fi.

Figura 2: Captura Inalambrica solo con Wireshark.

Módulos AirPCap NX.

Los módulos AirPCap NX, como el mostrado en la figura 3 son adaptadores que le permiten a los analizadores de protocolos de red, como lo es Wireshark, comprender y proporcionar información sobre protocolos inalámbricos, como lo es el IEEE 802.11.

Figura 3: Modulo AirPcap NX.

En conjunto con los drivers y plugins para Wireshark, incluidos junto con el modulo, proporcionan las siguientes características:

  • Integración completa con Wireshark para un completo análisis de WLAN, visualización y reporte.
  • Monitoreo de múltiples canales.
  • Portátil y versátil.
  • Instalación fácil y sencilla.
  •  Rendimiento profesional.
  • Captura en canales de 20Mhz y 40MHz.
  • Soporte de IEEE 802.11a/b/g/n.
  • Decodificación detallada de las tramas de control, manejo y datos.
  • Dos antenas internas mas dos conectores MC-Card para antenas externas.
  • Soporte de MIMO 2×2.
  • Soporte de captura Multicanal.
  • Modulaciones CCK, OFDM, HT-OFDM y MCS 0-15.

A su vez el empaque de los módulos puede observarse en las figura  4 .

Figura 4: Empaque del módulo AirPcap.

Este contiene lo mostrado en la figura 5, Un par de antenas, manual, disco de controladores, cables conectores y el modulo en si.
Figura 5: Contenido.

Filtros de Visualización


La forma mas inmediata y sencilla de utilizar un filtro en Wireshark es el filtro de visualización, este consiste en aplicar un filtro a los paquetes ya capturados de modo que el área de datos visualice únicamente los paquetes que cumplan con las condiciones impuestas por el filtro.

Las ventajas que presentan este tipo de filtros es una mayor versatilidad y simplicidad, puesto que en lugar de seleccionar el filtro y luego capturar los paquetes basta capturar todos los paquetes y luego filtrarlos según sea conveniente lo cual es de gran utilidad si aun no se conoce perfectamente como se manifiesta la situación que se desea analizar.
Sin embargo este tipo de filtros puede causar problemas si se desea realizar un análisis de los paquetes enviados por un tiempo prolongado, ya que el capturar todos los paquetes requiere usar una gran cantidad de memoria y ciclos de procesador para llevar a cabo en análisis.
Para efectuar este filtrado el primer paso a realizar es haber realizado o estar efectuando una captura de paquetes de red, una vez que halla cumplido dicha condición aplicar el filtro es tan sencillo como introducir la expresión del filtro en la barra de filtros.
Para mostrar la operación básica de los filtros de visualización se presenta el siguiente ejemplo
Ejemplo.
Inicialice Wireshark y comience una captura de datos.
Figura 1: Capturando paquetes.

Mientras la captura se esta realizando acceda con el navegador de internet a alguna pagina web, como puede ser http://slashdot.org/
Una vez que la pagina halla descargado por completo y sin detener la captura introduzca en la barra de filtros la expresión
http
Tras lo cual el área de datos lucirá como en la figura.
Figura 2: Filtro http.
Pruebe con las expresiones:
dns
Figura 3: Filtro dns.

arp
Figura 4: Filtro arp.
tcp
Figura 5: Filtro tcp.
También pueden aplicarse filtros mas elaborados, como lo es mostrar solo los paquetes http que provengan de una dirección especifica
ip.addr == 216.34.181.45 && http
Figura 6: http desde 216.34.181.4
Estas son solo algunas de las posibilidades para filtrado, la lista completa puede consultarse desde la documentación oficial de Wireshark.
Referencias

Filtros de captura

Una de las formas en que son aplicables las capacidades de filtrado de Wireshark son los filtros de captura, estos funcionan imponiendo una serie de condiciones que los paquetes deben de cumplir para ser capturados y almacenados en memoria.
Estos requisitos son expresados como cadenas de texto siguiendo el formato de los filtros de Wireshark detallado con anterioridad.
La posibilidad de aplicar filtros durante la captura es una herramienta útil para casos donde capturar todo el trafico en una red, el cual es el comportamiento predeterminado de Wireshark, sea indeseable, ya sea por los altos requerimientos de memoria y procesador que esto requeriría, por que se desea analizar solo una sección de esa red o examinar el comportamiento de un protocolo en particular.
Estos filtros son aplicables en el dialogo de Opciones de captura, el cual puede ser accedido antes de comenzar una captura desde la barra de herramientas o desde el menú “Capture”, al accederlo el dialogo luciera como la figura 1.
Figura 1: Opciones de Captura.
Como podrá observar existe un cuadro de dialogo a la derecha de un botón con la etiqueta “Capture Filter”, es en este campo donde puede ingresar directamente la cadena del filtro, como en el caso del campo de filtro de la barra de herramientas el color de fondo del campo cambiara a verde si se siguió la sintaxis correctamente o a rojo si existe algún error sintáctico.
Una forma mas sencilla de ingresar el filtro es por medio del dialogo de Filtro de Captura, el cual puede accederse al pulsar el botón “Capture Filter”
Figura 2: Filtros de Captura.
Este filtro contiene una serie de ejemplos los cuales puede usar como base, adaptar a sus necesidades y almacenar para poder usarlos con facilidad en el futuro.
Ejemplo.
Digamos que se desea capturar únicamente los paquetes HTTP provenientes de un sitio web en particular.
En este ejemplo particular se desea capturar unicamente los paquetes provenientes del sitio de noticias http://arstechnica.com/ por lo que se accederá al dialogo de opciones de captura y se introducira el filtro:
como muestra la figura
Figura 3: Filtrando del host http://www.arstechnica.com.
hecho esto comience la captura, en un principio no aparecerá absolutamente nada, esto es lógico puesto que no hay ningún paquete enviado o recibido desde el post indicado.
Ahora inicie un navegador de internet y diríjase a la dirección: www.arstechnica.com
Al momento que el sitio comienze a descargar Wireshark comenzara a capturar paquetes, lo que le dara una pantalla similar a la figura
Figura 4: Paquetes capturados.
Notara que la columna “Destination” solo aparecen dos valores, la dirección IP de su computadora y la dirección IP de arstechnica.com
Referencias
WireShark wiki – Capture Filters: http://wiki.wireshark.org/CaptureFilters(visitado el 5-dic-2011)