Parte 1 | Parte 2 | Parte 3 | Parte4 | Parte 5 | Parte 6 | Parte 7 | Parte 8 | Parte 9 / 1 | Parte 9 / 2
Hola a todos. Soy Alfon, más sobre mí en mi Blog: http://seguridadyredes.nireblog.com/. Esta va a ser mi primera colaboración en este gran sitio que es Daboweb. Mis áreas de interés, que serán en las que centre mis colaboraciones, son todo lo concerniente a Snort, Wireshark. Análisis tráfico de redes y forense, IDS, Scapy, Nmap, Antisniffers, etc. Espero que sea de vuestro interés. Gracias a todo el equipo de Daboweb por darme la oportunidad de coloborar en el sitio.
Para interpretar y correlacionar una captura realizada en un determinado sniffer, disponemos, en los diferentes programas de captura de paquetes, de una serie de herramientas que facilitan esta labor. No es siempre totalmente necesario, pero si es una ayuda a la hora de extraer información, evidencias forenses, o cualquier tipo de dato que necesitemos de una forma más rápida, sencilla y, en algunos casos, más visual, sobre todo cuando se trata de grandes archivos de captura.
Antes de seguir. ¿Qué es una captura de red ?. Una captura de red no es otra cosa que la recolección de los paquetes transmitidos y recibidos en la red por hosts o dispositivos que se encuentran en una red local. Para esta función, el dispositivo de red o tarjeta de red debe estar configurada en modo promíscuo.
De esta forma no se descartan las tramas de red no destinada a la MAC en la cual se encuentra el software capturador de red o sniffer y, de esta forma, se puede «ver» todo el tráfico que circula por la red. Esto es así en una red no conmutada o, dicho de forma más sencilla, una red mediante hubs.
Si la red está formada por switches, el poner la tarjeta de red en modo promíscuo solo nos serivirá para «ver» nuestro tráfico (unicast) y el tráfico broadcast. Sobre la posición de un capturador de red o sniffer, dependiendo de la arquitectura o topología de red, tenemos más información en este enlace de mi blog personal.
Si realizamos una captura con TCPDump ó WinDump para sistemas Windows, la salida que obtendremos será algo parecido a esto:
>windump -i1 -tn tcp windump: listening on \Device\NPF_{024A36DD-4864-4F08-918F-2C5CBA916541} IP 192.168.1.5.2335 > 63.245.217.36.80: S 4142637947:4142637947(0) win 64512 <ms s 1460,nop,nop,sackOK> IP 63.245.217.36.80 > 192.168.1.5.2335: S 1131876005:1131876005(0) ack 414263794 8 win 65535 <mss 1460,nop,nop,sackOK> IP 192.168.1.5.2335 > 63.245.217.36.80: . ack 1 win 64512 IP 192.168.1.5.2335 > 63.245.217.36.80: P 1:581(580) ack 1 win 64512 IP 63.245.217.36.80 > 192.168.1.5.2335: . ack 581 win 64955 IP 192.168.1.5.2337 > 209.85.227.147.80: S 1497586508:1497586508(0) win 64512 <m ss 1460,nop,nop,sackOK> IP 63.245.217.36.80 > 192.168.1.5.2335: P 1:487(486) ack 581 win 64955 IP 209.85.227.147.80 > 192.168.1.5.2337: S 1076404124:1076404124(0) ack 14975865 09 win 65535 <mss 1460,nop,nop,sackOK> IP 192.168.1.5.2337 > 209.85.227.147.80: . ack 1 win 64512 IP 192.168.1.5.2337 > 209.85.227.147.80: P 1:626(625) ack 1 win 64512 IP 192.168.1.5.2341 > 208.122.31.3.80: S 3188780077:3188780077(0) win 64512 <mss 1460,nop,nop,sackOK> IP 209.85.227.147.80 > 192.168.1.5.2337: P 1:237(236) ack 626 win 64910 IP 209.85.227.147.80 > 192.168.1.5.2337: . 237:1697(1460) ack 626 win 64910 IP 209.85.227.147.80 > 192.168.1.5.2337: P 1697:2048(351) ack 626 win 64910 IP 192.168.1.5.2337 > 209.85.227.147.80: . ack 2048 win 64512
De esta captura podemos extraer algunos datos. Solo tenemos tres IP involucradas. Obtenemos las IP, puertos, banderas o flags, números de secuencia, acuse de recibo, tamaño de ventana,… También vemos un establecimiento de conexión a tres pasos, etc.
Pero si se trata de una captura con decenas de IPs, varios protocolos, etc. La interpretación de los datos y su correlación se hace más compleja. Solo disponemos de la gestión de filtros para obtener una información algo más detallada según los propósitos y objetivos de la captura, pero poco más, nosotros tendremos que interpretar los datos, que está pasando o qué problema tenemos en nuestra red analizando la secuencia de los paquetes .
Otros programas como Tshark, incluyen, además de filtros, diferentes tipos de estadísticas. De esta forma, tenemos una ayuda a la interpretación de la captura que nos permite obtener una información partiendo de un fichero de captura .pcap o una captura normal. Las estadísticas nos informarán del uso de la red, protocolos involucrados en las capturas y estádisticas de uso, comunicaciones entre hosts, etc.
Además podemos aplicar filtros a las estadísticas de tal forma que la información obtenida por ellas es altamente personalizable y flexible.
Un ejemplo de estadísticas con Tshark.
Si ejecutamos tshark -i1 -nqzio,stat,1,ip,tcp,icmp,»tcp.port == 80″ el resultado es:
>tshark -i1 -nqzio,stat,1,ip,tcp,icmp,"tcp.port == 80" Capturing on 3Com EtherLink PCI (Microsoft's Packet Scheduler) 252 packets captured =================================================================== IO Statistics Interval: 1.000 secs Column #0: ip Column #1: tcp Column #2: icmp Column #3: tcp.port == 80 | Column #0 | Column #1 | Column #2 | Column #3 Time |frames| bytes |frames| bytes |frames| bytes |frames| bytes 000.000-001.000 4 285 3 193 0 0 0 0 001.000-002.000 2 184 0 0 0 0 0 0 002.000-003.000 1 92 0 0 0 0 0 0 003.000-004.000 1 92 0 0 0 0 0 0 004.000-005.000 0 0 0 0 0 0 0 0 005.000-006.000 0 0 0 0 0 0 0 0 006.000-007.000 0 0 0 0 0 0 0 0 007.000-008.000 0 0 0 0 0 0 0 0 008.000-009.000 0 0 0 0 0 0 0 0 009.000-010.000 17 2299 15 2115 0 0 15 2115 010.000-011.000 142 38665 141 38573 0 0 141 38573 011.000-012.000 37 8062 36 7970 0 0 36 7970 012.000-013.000 2 184 0 0 0 0 0 0 013.000-014.000 15 890 14 798 0 0 14 798 014.000-015.000 9 548 8 456 0 0 8 456 015.000-016.000 3 240 0 0 2 148 0 0 016.000-017.000 2 148 0 0 2 148 0 0 017.000-018.000 2 148 0 0 2 148 0 0 018.000-019.000 2 148 0 0 2 148 0 0 019.000-020.000 0 0 0 0 0 0 0 0 020.000-021.000 1 92 0 0 0 0 0 0 ===================================================================
Como veis, podemos establecer estadísticas por protocolos y por aplicación de filtros. Todo ello ordenado por columnas que nos mostrarán información sobre número de paquetes y bytes.
Si seguimos complicando la cosa, Wireshark (aquí para descargar) por ejemplo, contempla dos tipos de filtros: de captura y de visualización. Una vez filtrados los paquetes, Wireshark dispone de varias herramientas para interpretar y analizar el resultado de las capturas como Expert Infos y Expert Info Composite, Follow TCP Stream, IO Graph, Geolocalización, varios tipos de estadísticas, etc.
En otro nivel, disponemos de Xplico. Con esta herramienta podemos abrir una fichero de captura .pcap y tener ordenado y clasificado el tráfico por categorías tales como Web, Mail, VoIp, Chat, Imágenes, videos, Geolocalización con Google Earth…. incluso decodificar tráfico teniendo en cuenta las aplicaciones tales como programas de mensajería, Telnet, Facebook, etc.
Abajo. Interface de Xplico.
En el último nivel podemos situar un tipo de software como NetWitness Investigator. Netwitness posee una gran capacidad de captura de paquetes, con lo que necesita también, un buen soporte de almacenamiento y procesamiento.
Además, podemos importar nuestros ficheros .pcap generados mediante TCPDump, Windump, Tshark, Wireshark, etc. Pero la característica más importante de esta herramienta es su altísima capacidad de análisis de los datos obtenidos, correlación, clasificación, rapidez de análisis, interpretación visual e intuitiva de datos compaginado con la muestra de datos en bruto, contenido de los paquetes diferenciando los campos y cabeceras. Es capaz también de analizar los datos por sesiones.
Podemos incluso interpretar los datos dentro del contexto, dentro de una lógica. De esta forma, se convierte un una herramienta de análisis forenses con capacidad de descubrimiento de amenazas, malware, fugas de información, investigación forense y otros aspectos dentro de un ambiente corporativo.
Otro tipo de ayuda para la interpretación del tráfico de red es la del tipo visual, es decir, las gráficas. De esta forma podemos representar mediante gráficas, de varios tipos, las relaciones y diálogos entre host, puerto, etc. Otra variante de este tipo de herramietnas puede ser la representación grafíca, no ya de los host, sino de los paquetes y los atos de campos contenidos en ellos. dos herramietnas de este tipo que veremos serán AfterGlow y TNV.
Hasta aquí un resumen del objetivo y de lo que será esta serie de artículos dedicado a las herramientas y ayudas a la interpretación de capturas de red. Iremos mostrando de que forma podemos interpretar los datos usando las herramientas que nos proporcionan, a distintos niveles: WinDump / TCPDump, Wireshark, Xplico y NetWitness.