Ejemplo básico de tcpdump

tcpdump es una aplicación de consola que nos permite analizar el tráfico de la red. Con la misma podremos ver los paquetes que se envían por y hacia una interfaz de red en su “estado natural”. Es decir, por ejemplo, si utilizamos un protocolo no cifrado, como telnet, ftp o http, podríamos ver la lo que el server ftp le envia al cliente y a la vez, lo que el cliente envía al server, empezando por el nombre de usuario y contraseña.

Veamos un breve ejemplo de captura de paquetes en una sesión telnet.

Para este ejemplo se utilizó:

  • Linux Ubuntu con servidor ftp (Pure-FTPd) y dirección IP 192.168.0.6 en la interfaz Eth0
  • PC Windows, con cliente telnet y dirección IP 10.0.0.6

Ejemplo:

  • En el servidor Linux se ejecutar: sudo tcpdump -ieth0 -A -s1500 port 21 2> tcpdump.txt 1>> tcpdump.txt. Analizamos los parámetros:
    • -ieth0: para capturar los paquetes de la interfaz eth0
    • -A: para imprimir cada paquete  en ASCII. En ocasiones suele ser útil utilizar -X, que imprime los datos de cada paquete en hexadecimal y ASCII
    • -s1500: tamaño de los paquetes que va a recoger
    • port 21: para capturar los paquetes dirigidos al puerto 21 (ftp)
    • 2> tcpdump.txt: para redireccionar el standar error a un archivo
    • 1>> tcpdump.txt: para redireccionar el standar output a un archivo
  • En el cliente Windows haremos las siguientes pruebas:
    • Ejecutar desde el símbolo del sistema: ftp 192.168.0.6 e ingresar el usuario y contraseña, pepe y pepepass, esperar que nos devuelva error (pues ese usuario no existe)
    • Sin salir del shell del ftp, ejecutar close
    • Nuevamente desde el shell ejecutar open 192.168.0.6 e ingresar el usuario y contraseña, luciano y luciano. Ese usuario y contraseña existen, por lo tanto nos dará la bienvenida.
    • Salir del ftp ejecutando by

Ahora, veremos los resultados en el símbolo de sistema de Windows y en el archivo tcpdump.txt donde redireccionamos el stderr y stdout del tcpdump.

  • En el cliente ftp Windows podemos visualizar la conexión al ftp, el mensaje de bienvenida y la solicitud de usuario y password. Puedes ver que hicimos dos veces la autenticación, pues intencionalmente utilizamos un usuario y password equivocado en el primer intento.
ftp 192.168.0.6
Connected to 192.168.0.6.
220———- Welcome to Pure-FTPd [privsep] [TLS] ———-
220-You are user number 1 of 50 allowed.
220-Local time is now 14:42. Server port: 21.
220-This is a private system – No anonymous login
220-IPv6 connections are also welcome on this server.
220 You will be disconnected after 15 minutes of inactivity.
User (192.168.0.6:(none)): pepe
331 User pepe OK. Password required
Password:
530 Login authentication failed
Login failed.
>close
221-Goodbye. You uploaded 0 and downloaded 0 kbytes.
221 Logout.
>open 192.168.0.6
Connected to 192.168.0.6.
220———- Welcome to Pure-FTPd [privsep] [TLS] ———-
220-You are user number 1 of 50 allowed.
220-Local time is now 14:42. Server port: 21.
220-This is a private system – No anonymous login
220-IPv6 connections are also welcome on this server.
220 You will be disconnected after 15 minutes of inactivity.
User (192.168.0.6:(none)): luciano
331 User luciano OK. Password required
Password:
230 OK. Current directory is /home/luciano
>by
221-Goodbye. You uploaded 0 and downloaded 0 kbytes.
221 Logout.
  • La salida del tcpdump es más compleja, entre los datos se puede apreciar un timestamp de cada paquete, la IP y puerto del cliente, el ack o acknowledgement (número de acuse de recibo), etc (todos estos, atributos propios del protocolo de control de transmisión.
    • 14:47:34.557556 IP 192.168.0.4.local.4795 > 192.168.0.6.local.ftp: . ack 1 win 17520
  • Además podemos distinguir el usuario y la contraseña de ambos intentos de conexión y sin ningún tipo de cifrado:
    • …….|….c?.P.C08…USER pepe
    • ……..c?.|…P….W..331 User pepe OK. Password required
    • …….|….c?.P.C.Z… PASS pepepass
    • ……..c?.|…P…….530 Login authentication failed
    • …….|….c?.P.B. b..QUIT
    • …….<%.N…HP.C0….USER luciano
    • ……….H<%.\P…….331 User luciano OK. Password required
    • …….<%.\…pP.C…..PASS luciano
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 1500 bytes
38 packets captured
38 packets received by filter
0 packets dropped by kernel
093486765(0) win 16384 <mss 1460,nop,nop,sackOK>
E..0.v@….H

…….|…….p.@………….
14:47:34.557498 IP 192.168.0.6.local.ftp> 192.168.0.4.local.4795: S 2925739634:2925739634(0) ack 2093486766 win 5840 <mss 1460,nop,nop,sackOK>
E..0..@.@.&.

……..c>r|…p……………
14:47:34.557556 IP 192.168.0.4.local.4795> 192.168.0.6.local.ftp: . ack 1 win 17520
E..(.w@….O

…….|….c>sP.Dp.=……..
14:47:34.379708 IP 192.168.0.6.local.ftp> 192.168.0.4.local.4795: P 1:321(320) ack 1 win 5840
E..hp.@.@…

……..c>s|…P….u..220———- Welcome to Pure-FTPd [privsep] [TLS] ———-
220-You are user number 2 of 50 allowed.
220-Local time is now 14:47. Server port: 21.
220-This is a private system – No anonymous login
220-IPv6 connections are also welcome on this server.
220 You will be disconnected after 15 minutes of inactivity. 14:47:34.516066 IP 192.168.0.4.local.4795> 192.168.0.6.local.ftp: . ack 321 win 17200
E..(..@….;

…….|….c?.P.C0.=……..
14:47:37.271760 IP 192.168.0.4.local.4795> 192.168.0.6.local.ftp: P 1:12(11) ack 321 win 17200
E..3..@…..

…….|….c?.P.C08…USER pepe14:47:37.271823 IP 192.168.0.6.local.ftp> 192.168.0.4.local.4795: . ack 12 win 5840
E..(p.@.@…

……..c?.|…P…….
14:47:37.272347 IP 192.168.0.6.local.ftp> 192.168.0.4.local.4795: P 321:358(37) ack 12 win 5840
E..Mp.@.@…

……..c?.|…P….W..331 User pepe OK. Password required

14:47:37.433257 IP 192.168.0.4.local.4795> 192.168.0.6.local.ftp: . ack 358 win 17163
E..(..@….&

…….|….c?.P.C..2……..
14:47:40.887394 IP 192.168.0.4.local.4795> 192.168.0.6.local.ftp: P 12:27(15) ack 358 win 17163
E..7..@…..

…….|….c?.P.C.Z… PASS pepepass

14:47:40.928542 IP 192.168.0.6.local.ftp> 192.168.0.4.local.4795: . ack 27 win 5840
E..(p.@.@…

……..c?.|…P….^..
14:47:52.703447 IP 192.168.0.6.local.ftp> 192.168.0.4.local.4795: P 358:391(33) ack 27 win 5840
E..Ip.@.@…

……..c?.|…P…….530 Login authentication failed

14:47:52.824051 IP 192.168.0.4.local.4795> 192.168.0.6.local.ftp: . ack 391 win 17130
E..(..@…..

…….|….c?.P.B..#……..
14:47:54.649346 IP 192.168.0.4.local.4795> 192.168.0.6.local.ftp: P 27:33(6) ack 391 win 17130
E…..@…..

…….|….c?.P.B. b..QUIT

14:47:54.649413 IP 192.168.0.6.local.ftp> 192.168.0.4.local.4795: . ack 33 win 5840
E..(p.@.@…

……..c?.|…P….7..
14:47:56.912427 IP 192.168.0.6.local.ftp> 192.168.0.4.local.4795: P 391:458(67) ack 33 win 5840
E..kp.@.@…

……..c?.|…P…XP..221-Goodbye. You uploaded 0 and downloaded 0 kbytes.
221 Logout.

14:47:56.913919 IP 192.168.0.6.local.ftp> 192.168.0.4.local.4795: F 458:458(0) ack 33 win 5840
E..(p.@.@…

……..c@<|…P…….
14:47:56.914340 IP 192.168.0.4.local.4795> 192.168.0.6.local.ftp: . ack 459 win 17063
E..(..@…..

…….|….c@=P.B………..
14:47:56.914345 IP 192.168.0.4.local.4795> 192.168.0.6.local.ftp: R 33:33(0) ack 459 win 0
E..(..@…..

…….|….c@=P…
………
14:48:04.680108 IP 192.168.0.4.local.4812> 192.168.0.6.local.ftp: S 1009100365:1009100365(0) win 16384 <mss 1460,nop,nop,sackOK>
E..0.B@….|

…….<%.M….p.@.9………..
14:48:04.680236 IP 192.168.0.6.local.ftp> 192.168.0.4.local.4812: S 3481964295:3481964295(0) ack 1009100366 win 5840 <mss 1460,nop,nop,sackOK>
E..0..@.@.&.

………..<%.Np….O……….
14:48:04.680352 IP 192.168.0.4.local.4812> 192.168.0.6.local.ftp: . ack 1 win 17520
E..(.C@…..

…….<%.N….P.Dp.s……..
14:48:09.995764 IP 192.168.0.6.local.ftp> 192.168.0.4.local.4812: P 1:321(320) ack 1 win 5840
E..h..@.@.&.

………..<%.NP…….220———- Welcome to Pure-FTPd [privsep] [TLS] ———-
220-You are user number 2 of 50 allowed.
220-Local time is now 14:48. Server port: 21.
220-This is a private system – No anonymous login
220-IPv6 connections are also welcome on this server.
220 You will be disconnected after 15 minutes of inactivity.

14:48:10.126131 IP 192.168.0.4.local.4812> 192.168.0.6.local.ftp: . ack 321 win 17200
E..(.n@….X

…….<%.N…HP.C0.s……..
14:48:12.741696 IP 192.168.0.4.local.4812> 192.168.0.6.local.ftp: P 1:15(14) ack 321 win 17200
E..6.}@….;

…….<%.N…HP.C0….USER luciano

14:48:12.741755 IP 192.168.0.6.local.ftp> 192.168.0.4.local.4812: . ack 15 win 5840
E..(..@.@.(.

……….H<%.\P…/…
14:48:12.742292 IP 192.168.0.6.local.ftp> 192.168.0.4.local.4812: P 321:361(40) ack 15 win 5840
E..P..@.@.’.

……….H<%.\P…….331 User luciano OK. Password required

14:48:12.942759 IP 192.168.0.4.local.4812> 192.168.0.6.local.ftp: . ack 361 win 17160
E..(..@….B

…….<%.\…pP.C..e……..
14:48:15.765483 IP 192.168.0.4.local.4812> 192.168.0.6.local.ftp: P 15:29(14) ack 361 win 17160
E..6..@….1

…….<%.\…pP.C…..PASS luciano

14:48:15.803185 IP 192.168.0.6.local.ftp> 192.168.0.4.local.4812: . ack 29 win 5840
E..(..@.@.(.

……….p<%.jP…/…
14:48:21.058831 IP 192.168.0.6.local.ftp> 192.168.0.4.local.4812: P 361:574(213) ack 29 win 5840
E…..@.@.’B

……….p<%.jP…?]..230 OK. Current directory is /home/luciano

14:48:21.191415 IP 192.168.0.4.local.4812> 192.168.0.6.local.ftp: . ack 574 win 16947
E..(..@….

…….<%.j…EP.B3.W……..
14:48:24.176680 IP 192.168.0.4.local.4812> 192.168.0.6.local.ftp: P 29:35(6) ack 574 win 16947
E…..@…..

…….<%.j…EP.B3[…QUIT

14:48:24.176747 IP 192.168.0.6.local.ftp> 192.168.0.4.local.4812: . ack 35 win 5840
E..(..@.@.(.

……….E<%.pP…….
14:48:24.177144 IP 192.168.0.6.local.ftp> 192.168.0.4.local.4812: P 574:641(67) ack 35 win 5840
E..k..@.@.’.

……….E<%.pP…….221-Goodbye. You uploaded 0 and downloaded 0 kbytes.
221 Logout.

14:48:24.178496 IP 192.168.0.6.local.ftp> 192.168.0.4.local.4812: F 641:641(0) ack 35 win 5840
E..(..@.@.(.

………..<%.pP….p..
14:48:24.178776 IP 192.168.0.4.local.4812> 192.168.0.6.local.ftp: . ack 642 win 16880
E..(..@…..

…….<%.p….P.A..P……..
14:48:24.178975 IP 192.168.0.4.local.4812> 192.168.0.6.local.ftp: R 35:35(0) ack 642 win 0
E..(..@…..

…….<%.p….P…E<……..

Fuente: luauf.com

Matías Moreno Cárdenas

Publicado por: Matías Moreno Cárdenas

Analista de Seguridad IT y hacking ético / Desarrollador de Software Multiplataforma. Actualmente analista de seguridad informática y hacking ético en Grupo SIA

Deja un comentario