analizando la red con tcpdump

Click here to load reader

Post on 23-Jun-2015

535 views

Category:

Documents

3 download

Embed Size (px)

TRANSCRIPT

Analizando la red con TCPDump / Windump

Una de las actividades ms comunes en la administacin de una red o administracin de seguridad es la del anlisis de trfico de dicha red. No slo el trfico que fluye a travs de nuestra LAN si no que tambin debemos analizar el trfico entrante y saliente hacia internet a trves de los servicios que tengamos instalados, proxies, etc. Esto es as porque, como ya sabeis, es necesario para la deteccin de problemas y sobre todo para detectar trafico no esperado, presencia de puertas traseras, escaneos y cualquier otra intrusin. Existen muchas herramientas que pueden sernos muy ltiles dependiendo del S.O. y tipo de red por ejemplo. Una de estas herramientas, un sniffer de red, basada en la librera de captura de paquetes (pcap) y que adems funciona en plataformas tanto windows como LInux/UNIX es TCPDump ( Linux ) / Windump ( Windows ) esta ltima hace uso de la librera Winpcap. Estas dos libreras son unsadas por otras herramientas como Ethereal o Snort e incluyen un lenguaje de filtro comn para todos. Quizs Windump/TCPDump no sea la herramienta perfecta atendiendo a la interpretacin fcil de los datos reportados, pero si que es de las mejores en cuanto a su potencia y cantidad de datos de que nosp provee. Una vez instalada la libreria y el programa en si, tan slo debemos de introducir en la lnea de comandos: ( haremos referancia a Windump, para windows, aunque casi todo es vlido para su versin Linux.code:

C:\scan>windump windump: listening on\Device\Packet_{604C8AE3-5FAC-45A 17:18:16.375082 FIERY.138 > 192.168.4.255.138: >>> NBT UDP PACKET(138) Res=0x1102 ID=0xE IP=192 (0xc0 0xeb) Port=138 (0x8a) Length=187 (0xbb) Res2=0x0 SourceName=FIERY X2E NameType=0x00 (Workstation) DestName= WARNING: Short packet. Try increasing the snap length 17:18:16.679312 INFO2.1027 > INFO8.3233: udp 256 17:18:16.792878 arp who-has FIERY tell INFOGRAFIA3 17:18:16.793204 arp reply FIERY is-at 0:c0:85:27:39:15 17:18:16.793217 INFOGRAFIA3.137 > FIERY.137: >>> NBT UDP PACKET(137): QUERY; REQUEST; BROADCAST 17:18:16.793729 FIERY.137 > INFOGRAFIA3.137: >>> NBT UDP PACKET(137): QUERY; POSITIVE; RESPONSE; UNICAST 17:18:16.898314 INFO8.3233 > INFO2.3234: udp 256 17:18:17.185571 0:a0:c9:1c:c1:f5 > Broadcast sap e0 ui/C >>> Unknown IPX Data: (43 bytes) vaya, a parte de unas peticiones ARP, parece que no nos enteramos de casi nada. A aparte de esto windump capturar TODOS los datos de trfico de nuestra red y puede ser que los datos a travs de la consola vayan tan rpido y de tal cantidad que nos sea imposible discifrar o ver algo Veamos entonces como funciona Windump, como interpretar sus datos y como sacar el mximo partido de el. NOTA: Esta mini-explicacin de windump es muy bsica y me saltar algunas cosas, si hay interes por este tema pues profundizamos lo que haga falta. Hay que decir que windump interpreta los datos dependiendo del protocolo involucrado en la captura, esto es obvio, ya que no es lo mismo una captura de consulta DNS que un inicio de sesin o establecimiento de conexin TCP o una captura icmp. Aunque las diferencias son pocas. En una captura icmp aparece la palabra icmp, sin embargo en una captura tcp no

aparece esta palabra. Veamos el establecimiento de una conexin TCP.code:

9:24:00.494825 INFOGRAFIA3.1087 > ABANCECOMU.8080: S 2740385268:2740385268(0) w in 64240 (DF) 09:24:00.495018 ABANCECOMU.8080 > INFOGRAFIA3.1087: S 4260015886:4260015886(0) a ck 2740385269 win 64240 (DF) 09:24:00.495039 INFOGRAFIA3.1087 > ABANCECOMU.8080: . ack 1 win 64240 (DF) Estas tres trazan se refieren a un inicio de sesin de TCP. En este caso INFOGRAFIA3 ( que soy yo mismo ) quiere iniciar una sesion con ABANCECOMU al proxy establecido en el para consultar una determinda pgina web usando http. Vemos el modelo de establecimiento de conexin a tres bandas de forma muy clara. El formato para la salida de los datos es la siguiente: fecha src > dst: flags data-sqno ack window urgent options fecha nos da la hora en que se produjo el evento en formato hora:minutos:segundos.microsegundos o milisegundos src y dst son las direcciones IP y puertos TCP/UDP de las conexiones fuente y destino. > direccin de flujo de los datos flags son una combinacin de los posibles banderas de un segmento/datagrama TCP/UDP: S (SYN), F (FIN), P (PUSH), R (RST) y "." (no hay flags). data-sqno1describe el nmero de secuencia de la porcin de datos. ack es el nmero de secuencia del prximo byte que espera recibir el otro extremo TCP/UDP. window es el tamao de la ventana que advierte el receptor al transmisor. urgent indica que hay datos urgentes en ese segmento/datagrama. options son las opciones TCP que suelen estar entre corchetes del tipo < >, por ejemplo el tamao mximo del segmento (ej. ) Hemos dicho que el ejemplo anterior trata de una conmexin TCp. Pero como se realiza esta: Una conexin TCP se realiza en tres pasos. Es lo que tcnicamente se llama three-way handshake: 1. En el sistema / host que inicia la conexin o cliente (INFOGRAFIA3.1087), enva un paquete de SYN con un nmero de secuencia inicial (740385268) y final (740385268) asociado a esta conexin al sistema / host destinatario o servidor (ABANCECOMU.8080). Como no se transmiten datos, el numero de secuencia inicial y final son los mismos y los datos 0 (0). 2. Este responde con un paquete SYN-ACK (acuse de recibo) confirmando la recepcin del

SYN inicial enviado por (INFOGRAFIA3.1087) y envindole a su vez su propio nmero de secuencia inicial (4260015886) y final (4260015886) y ACK+1 (2740385269). Estos nmeros de secuencias son absolutos. Windump/TCPDump para no mostrar nmeros demasiado grandes muestra nmeros desecuencia relativos. En el paso siguiente pasa esto mismo. 3. Para finalizar, el cliente (INFOGRAFIA3.1087) reconoce la recepcin del SYN del servidor (ABANCECOMU.8080) mediante el envo de un ACK (1). Vemos que hay un "." con lo que deducimos que no hay flag (en este caso SYN). Este es el momento en que queda establecida la conexin. Ya se puede iniciar la transferencia de datos entre (INFOGRAFIA3.1087) y (ABANCECOMU.8080). Veremos ms adelantes capturas de consultas DN0, UDP, escaneos de puertos, troyanos, etc. Algunas opciones de Windump. Para ver las interfaces de que disponemos:code:

C:\scan>windump -D 1.\Device\Packet_{604C8AE3-5FAC-45A5-BFAA-81175A8C32BF} (3Com EtherLink PCI) 2.\Device\Packet_NdisWanIp (NdisWan Adapter) No queiro que me resuleva los nombres de host.code:

C:\scan>windump -n Cantidad de informacin que nos devuelve.code:

C:\scan>windump -v o -vv Filtros de Windump. Puede ser que no nos interese ver todo el trfico, sino slo un determinado protocolo o un slo host, etc. Captura el trfico de origen y destino slo en el host INFOGRAFIA3 (se puede poner tambien la IP)code:

C:\scan>windump host INFOGRAFIA3 Captura el trfico de origen host INFOGRAFIA3code:

C:\scan>windump src host INFOGRAFIA3 Captura todo el trfico cuyo puerto de destino sea 8080code:

C:\scan>windump dst port 8080

windump: listening on\Device\Packet_{604C8AE3-5FAC-45A5-BFAA81175A8C32BF} 09:50:18.618057 INFOGRAFIA3.3039 > ABANCECOMU.8080: S 3194034207:3194034207(0) w in 64240 (DF) 09:50:18.618224 INFOGRAFIA3.3039 > ABANCECOMU.8080: . ack 1114838386 win 64240 ( DF) 09:50:18.643251 INFOGRAFIA3.3039 > ABANCECOMU.8080: P 0:611(611) ack 1 win 64240 (DF)

Captura todo el trfico cuyo puerto de origen o destino sea 8080code:

C:\scan>windump port 8080 Captura todo el trfico icmpcode:

C:\scan>windump icmp windump: listening on\Device\Packet_{604C8AE3-5FAC-45A5-BFAA81175A8C32BF} 09:53:00.509648 SERVING > 192.168.2.75: icmp: echo request 09:53:00.509729 192.168.2.75 > SERVING: icmp: echo reply 09:53:00.811224 SERVING > INGEN12: icmp: echo request 09:53:00.811410 INGEN12 > SERVING: icmp: echo reply Combinando filtros.code:

C:\scan>windump tcp and port 8080 windump: listening on\Device\Packet_{604C8AE3-5FAC-45A5-BFAA-8117 09:55:49.116908 ABANCECOMU.8080 > INFO8.3132: P 1224555679:122455 805272 win 63910 09:55:49.119780 ABANCECOMU.8080 > INFO8.3132: FP 348:802(454) ack 09:55:49.119872 INFO8.3132 > ABANCECOMU.8080: . ack 803 win 7958 09:55:49.211881 INFO8.3132 > ABANCECOMU.8080: F 1:1(0) ack 803 wi 09:55:49.211970 ABANCECOMU.8080 > INFO8.3132: . ack 2 win 63910 Bueno hay muchsimos filtros ms y maneras de combinarlos, anidarlos, etc. si el tema este es de inters podemos seguir adelante. __________________ Un saludo,

Analizando la red con TCPDump ( Parte II )

Esta es la segunda parte del hilo sobre: Analizando la red con TCPDump / Windump que se encuentra en: Hilo de la primera parte. Ya coment que Windump / TCPDump tiene filtros para su mejor manejo. Estos filtros pueden llegar a ser tan sofisticado como queramos y extrar cualquier tipo de datos de los apquetes que circulen a travs de nuestra red. Como la mejor manera de explicar el funcionamiento de los filtros es la practica, vamos a analizar una combinacin y encadenamiento de filtros coun un ejemplo: Tenemos el servidor de correos un tanto colapsado, este servidor no aguanta demasiadas conexiones, o el trfico es mayor de lo previsto. Analicemos entonces que es lo que pasa. Vamos a crear un filtro para averiguar las conexionesal puerto 110 de nuestro servidor.code:

C:\scan>windump -qn -X -s 0 tcp[13] = 2 and port 110 Aqu vemos algunas opciones ya comentadas y otras nuevas: q estableceremos el indicador de salida rpida que har que nos devuelva menos informacin y que las lneas sean ms cortas. Esto es as porque en realidad slo nos interesa los host/IP y las amrcas de tiempo, ya que como veremos ms adelante estamos filtrando establecimientos de conexin TCP al puerto 110. -n no resolver nombres de host -X vuelca en la consola los datos. - s 0 es el snaplen. A cero estamos cogiendo los paquetes complet