Foros del Web » Administración de Sistemas » Seguridad y redes »

Analizando la red con TCPDump / Windump

Estas en el tema de Analizando la red con TCPDump / Windump en el foro de Seguridad y redes en Foros del Web. Una de las actividades más comunes en la administación de una red o administración de seguridad es la del análisis de tráfico de dicha red. ...
  #1 (permalink)  
Antiguo 15/01/2003, 03:16
Avatar de Alfon
Colaborador
 
Fecha de Ingreso: octubre-2000
Mensajes: 1.976
Antigüedad: 23 años, 6 meses
Puntos: 14
Analizando la red con TCPDump / Windump

Una de las actividades más comunes en la administación de una red o administración de seguridad es la del análisis de tráfico de dicha red. No sólo el tráfico que fluye a través de nuestra LAN si no que también debemos analizar el tráfico entrante y saliente hacia internet a tráves de los servicios que tengamos instalados, proxies, etc. Esto es así porque, como ya sabeis, es necesario para la detección de problemas y sobre todo para detectar trafico no esperado, presencia de puertas traseras, escaneos y cualquier otra intrusión.

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 librería de captura de paquetes (pcap) y que además funciona en plataformas tanto windows como LInux/UNIX es TCPDump ( Linux ) / Windump ( Windows ) esta última hace uso de la librería Winpcap. Estas dos librerías son unsadas por otras herramientas como Ethereal o Snort e incluyen un lenguaje de filtro común para todos. Quizás Windump/TCPDump no sea la herramienta perfecta atendiendo a la interpretación fácil 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 sólo debemos de introducir en la línea de comandos: ( haremos referancia a Windump, para windows, aunque casi todo es válido para su versión Linux.

Código:
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 tráfico de nuestra red y puede ser que los datos a través de la consola vayan tan rápido 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 máximo partido de el.

NOTA: Esta mini-explicación de windump es muy básica 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 sesión o establecimiento de conexión 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 conexión TCP.

Código:
9:24:00.494825 INFOGRAFIA3.1087 > ABANCECOMU.8080: S 2740385268:2740385268(0) w
in 64240 <mss 1460,nop,nop,sackOK> (DF)

09:24:00.495018 ABANCECOMU.8080 > INFOGRAFIA3.1087: S 4260015886:4260015886(0) a
ck 2740385269 win 64240 <mss 1460,nop,nop,sackOK> (DF)

09:24:00.495039 INFOGRAFIA3.1087 > ABANCECOMU.8080: . ack 1 win 64240 (DF)
Estas tres trazan se refieren a un inicio de sesión 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 página web usando http. Vemos el modelo de establecimiento de conexión 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.

> dirección de flujo de los datos

flags son una combinación 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 número de secuencia de la porción de datos.

ack es el número de secuencia del próximo byte que espera recibir el otro extremo TCP/UDP.

window es el tamaño 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 tamaño máximo del segmento (ej. <mss 1460,nop,nop,sackOK>)

Hemos dicho que el ejemplo anterior trata de una conmexión TCp. Pero como se realiza esta:

Una conexión TCP se realiza en tres pasos. Es lo que técnicamente se llama three-way handshake:

1. En el sistema / host que inicia la conexión o cliente (INFOGRAFIA3.1087), envía un paquete de SYN con un número de secuencia inicial (740385268) y final (740385268) asociado a esta conexión 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 recepción del SYN inicial enviado por (INFOGRAFIA3.1087) y enviándole a su vez su propio número de secuencia inicial (4260015886) y final (4260015886) y ACK+1 (2740385269).

Estos números de secuencias son absolutos. Windump/TCPDump para no mostrar números demasiado grandes muestra números desecuencia relativos. En el paso siguiente pasa esto mismo.

3. Para finalizar, el cliente (INFOGRAFIA3.1087) reconoce la recepción del SYN del servidor (ABANCECOMU.8080) mediante el envío 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 conexión. Ya se puede iniciar la transferencia de datos entre (INFOGRAFIA3.1087) y (ABANCECOMU.8080).

Veremos más adelantes capturas de consultas DN0, UDP, escaneos de puertos, troyanos, etc.

Algunas opciones de Windump.

Para ver las interfaces de que disponemos:

Código:
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.

Código:
C:\scan>windump -n
Cantidad de información que nos devuelve.

Código:
C:\scan>windump -v o -vv
Filtros de Windump.

Puede ser que no nos interese ver todo el tráfico, sino sólo un determinado protocolo o un sólo host, etc.

Captura el tráfico de origen y destino sólo en el host INFOGRAFIA3 (se puede poner tambien la IP)

Código:
C:\scan>windump host INFOGRAFIA3
Captura el tráfico de origen host INFOGRAFIA3

Código:
C:\scan>windump src host INFOGRAFIA3
Captura todo el tráfico cuyo puerto de destino sea 8080

Código:
C:\scan>windump dst port 8080
windump: listening on\Device\Packet_{604C8AE3-5FAC-45A5-BFAA-81175A8C32BF}
09:50:18.618057 INFOGRAFIA3.3039 > ABANCECOMU.8080: S 3194034207:3194034207(0) w
in 64240 <mss 1460,nop,nop,sackOK> (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 tráfico cuyo puerto de origen o destino sea 8080


Código:
C:\scan>windump port 8080
Captura todo el tráfico icmp

Código:
C:\scan>windump icmp
windump: listening on\Device\Packet_{604C8AE3-5FAC-45A5-BFAA-81175A8C32BF}
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.

Código:
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 muchísimos filtros más y maneras de combinarlos, anidarlos, etc. si el tema este es de interés podemos seguir adelante.
__________________
Un saludo,

Alfon
http://seguridadyredes.nireblog.com
  #2 (permalink)  
Antiguo 15/01/2003, 08:21
Avatar de Giondo  
Fecha de Ingreso: diciembre-2002
Ubicación: en algun lugar del mundo
Mensajes: 565
Antigüedad: 21 años, 4 meses
Puntos: 0
De acuerdo


EXELENTE !!!
muy lindaaa info...

aunque para mi me gusta mas el ethereal al tener la interfaz grafica me ayuda bastante.. y para mi gusto se puede interpretar todo bastante facil
pero es cuestion de gusto...

NOTA: para que leyo esto y le intereza .. tener en cuenta.. que para caputra de datos de esta manera.. SIEMPRE es recomendable una placa de red de las mas baratas.. alguna onboard o realtek.. ya que esas dejan pasar cosas al procesador y permite que este tipo de programas las capturen...
y otra cosa nada mejor que una de esas placas y un HUB para detectar cualquier problema en la red y si necesitan mayor seguridad en la transferencia de datos..

Alfon: muyyy bien la info !!!!!
__________________
Welcome to The Human Race
  #3 (permalink)  
Antiguo 15/01/2003, 09:32
Avatar de Alfon
Colaborador
 
Fecha de Ingreso: octubre-2000
Mensajes: 1.976
Antigüedad: 23 años, 6 meses
Puntos: 14
Giondo, si que es verdad que la interpretación de datos es más fácil de asimilar con ethereal, pero cualitativamente es mejor TCPDump / windump. Otra cosa es que la explicación de los filtros es la misma ya que se basan en la misma libreria de captura de datos: libcap.

Por cierto, eso de que un sniffer de red sólo funciona en las tarjetas más baratas me lo tienes que explicar.
__________________
Un saludo,

Alfon
http://seguridadyredes.nireblog.com
  #4 (permalink)  
Antiguo 15/01/2003, 12:13
Avatar de Alfon
Colaborador
 
Fecha de Ingreso: octubre-2000
Mensajes: 1.976
Antigüedad: 23 años, 6 meses
Puntos: 14
Análisis de un scaneo -sT con nmap con puerto destino cerrado.

Se trata de un escaneo usando paquetes TCP. Tipo de escaneo TCP Conect(). El destino puede logear nuestra IP ya que se realiza una conexión completa con la máquina destino.Permite saber rápidamente si el puerto está o no abierto en la máquina destino.

- si recibe un RST/ACK el puerto está cerrado.

- si recibe un SYN/ACK el puerto está abierto --> envia un ACK estableciendo conexión.

lo vemos mejor con windump.

Código:
A) 08:24:18.393108 INFOGRAFIA3.1024 > ABANCECOMU.8021: S 2632227152:2632227152(0) win 16060 <mss 

1460,sackOK,timestamp 232602[|tcp]> (DF)

08:24:18.393167 ABANCECOMU.8021 > INFOGRAFIA3.1024: R 0:0(0) ack 2632227153 win 0
Es este caso el puerto está cerrado. Lo vemos en el flag R.
__________________
Un saludo,

Alfon
http://seguridadyredes.nireblog.com
  #5 (permalink)  
Antiguo 15/01/2003, 13:56
Avatar de Giondo  
Fecha de Ingreso: diciembre-2002
Ubicación: en algun lugar del mundo
Mensajes: 565
Antigüedad: 21 años, 4 meses
Puntos: 0
jeje no es que solo funciona en las placas baratas..

sino de que funciona mejor en las placas baratas...
pasa que las placas caras (3com , etc).. tienen procesadores.. y esos hacen algunas de las tareas ... como devolver alguna peticion de mac por ej,.. siempre depende de la placa .. y eso ni siquiera llega al microprocesador.. o sea que la PC ni se entera.. entonces cuando capturas con soft como ni paso por el procesador.. no te captura nada...

pero en las placas baratas.. todas las tareas se las delega al microprocesador... encontes podes capturar mas cosas..
(por algo salen mas baratas :P, sino todas las placas serian iguales )

es simplemente eso...
__________________
Welcome to The Human Race
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 2 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 05:06.