1

Tutorial para manejo de comando tcpdump

Este tutorial tiene la finalidad de enseñar un poco acerca del comando tcpdump, que aunque no lo vimos en el curso, me parece muy útil para analizar y capturar el tráfico las tarjetas de red del servidor de linux.

  1. Inicialmente debes conocer las interfaces de red de tu linux. Este proceso lo hacemos con el comando ifconfig
ifconfig

El resultado será parecido al siguiente:

docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255
        inet6 fe80::42:13ff:fe5f:4d35  prefixlen 64  scopeid 0x20<link>
        ether 02:42:13:5f:4d:35  txqueuelen 0  (Ethernet)
        RX packets 786  bytes 47118 (47.1 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 5229  bytes 2389666 (2.3 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0enp2s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.104  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::a51b:1a17:d425:8efd  prefixlen 64  scopeid 0x20<link>
        ether b0:22:7a:ed:f9:55  txqueuelen 1000  (Ethernet)
        RX packets 5785037  bytes 6341747789 (6.3 GB)
        RX errors 0  dropped 42059  overruns 0  frame 0
        TX packets 2054895  bytes 597343407 (597.3 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
  1. Uso de comando tcpdump
tcpdump -i docker0

Este comando captura y muestra en tiempo real el tráfico en la interfaz de red eth0.

-i docker0: Especifica la interfaz de red a escuchar. Puedes reemplazar eth0 con el nombre de la interfaz de red que te interese.
Este comando mostrará información detallada sobre cada paquete capturado, incluyendo direcciones IP, puertos, protocolos y otros detalles.

  1. Uso de comando tcpdump con un host específico.

Puedes usar el comando tcpdump acompañado de la palabra host y después colocas el nombre de host o IP al cual deseas verificar tu tráfico.
Para el siguiente ejemplo utilizaré la busqueda para el local host.

tcpdump -i any host localhost

El resultado será parecido al siguiente:

listeningonany, link-typeLINUX_SLL (Linuxcookedv1), capturesize 262144 bytes
20:20:12.568280IPlocalhost.59042 > localhost.43769: Flags[S], seq 3934381741, win 65495, options[mss 65495,sackOK,TS val 2404266492 ecr 0,nop,wscale 7], length 0
20:20:12.568301IPlocalhost.43769 > localhost.59042: Flags[S.], seq 1494548542, ack 3934381742, win 65483, options[mss 65495,sackOK,TS val 2404266492 ecr 2404266492,nop,wscale 7], length 0
20:20:12.568319IPlocalhost.59042 > localhost.43769: Flags[.], ack 1, win 512, options[nop,nop,TS val 2404266492 ecr 2404266492], length 0
20:20:12.568513IPlocalhost.59042 > localhost.43769: Flags[P.], seq 1:448, ack 1, win 512, options[nop,nop,TS val 2404266492 ecr 2404266492], length 447
20:20:12.568530IPlocalhost.43769 > localhost.59042: Flags[.], ack 448, win 509, options[nop,nop,TS val 2404266492 ecr 2404266492], length 0
20:20:12.584858IPlocalhost.43769 > localhost.59042: Flags[P.], seq 1:106, ack 448, win 512, options[nop,nop,TS val 2404266509 ecr 2404266492], length 105
20:20:12.584866IPlocalhost.59042 > localhost.43769: Flags[.], ack 106, win 512, options[nop,nop,TS val 2404266509 ecr 2404266509], length 0
20:20:12.584872IPlocalhost.43769 > localhost.59042: Flags[P.], seq 106:208, ack 448, win 512, options[nop,nop,TS val 2404266509 ecr 2404266509], length 102
20:20:12.584874IPlocalhost.59042 > localhost.43769: Flags[.], ack 208, win 512, options[nop,nop,TS val 2404266509 ecr 2404266509], length 0
20:20:12.585338IPlocalhost.59042 > localhost.43769: Flags[F.], seq 448, ack 398, win 512, options[nop,nop,TS val 2404266509 ecr 2404266509], length 0
20:20:12.585353IPlocalhost.43769 > localhost.59042: Flags[.], ack 449, win 512, options[nop,nop,TS val 2404266509 ecr 2404266509], length 0
20:20:13.568297IPlocalhost.59046 > localhost.43769: Flags[S], seq 1313835277, win 65495, options[mss 65495,sackOK,TS val 2404267492 ecr 0,nop,wscale 7], length 0
20:20:13.568318IPlocalhost.43769 > localhost.59046: Flags[S.], seq 3361466086, ack 1313835278, win 65483, options[mss 65495,sackOK,TS val 2404267492 ecr 2404267492,nop,wscale 7], length 0
20:20:13.568337IPlocalhost.59046 > localhost.43769: Flags[.], ack 1, win 512, options[nop,nop,TS val 2404267492 ecr 2404267492], length 0
20:20:13.568534IPlocalhost.59046 > localhost.43769: Flags[P.], seq 1:448, ack 1, win 512, options[nop,nop,TS val 2404267492 ecr 2404267492], length 447
20:20:13.568550IPlocalhost.43769 > localhost.59046: Flags[.], ack 448, win 509, options[nop,nop,TS val 2404267492 ecr 2404267492], length 0
  1. Uso de comando tcpdump con filtro de puerto

Puedes usar el comando tcpdump para filtrar por el puerto que necesitas. En este ejemplo utilizaré el puerto 443

tcpdump -i any port 443

El resultado será similar al siguiente:

tcpdump: verboseoutputsuppressed, use-vor-vvforfullprotocoldecodelisteningonany, link-typeLINUX_SLL (Linuxcookedv1), capturesize 262144 bytes
20:23:05.598182IP 52.108.52.22.https > JFORTIZRPW10.50734: Flags[P.], seq 4122892245:4122892278, ack 1473298654, win 2053, length 33
20:23:05.598219IPJFORTIZRPW10.50734 > 52.108.52.22.https: Flags[.], ack 33, win 501, length 0
20:23:05.849703IPJFORTIZRPW10.33078 > a2-19-172-211.deploy.static.akamaitechnologies.com.https: Flags[.], ack 388942433, win 501, options[nop,nop,TS val 3809284169 ecr 210732182], length 0
20:23:05.933930IPa2-19-172-211.deploy.static.akamaitechnologies.com.https > JFORTIZRPW10.33078: Flags[.], ack 1, win 501, options[nop,nop,TS val 210777294 ecr 3809239079], length 0
20:23:05.952189IPJFORTIZRPW10.54702 > 52.96.183.226.443: UDP, length 1250
20:23:05.952229IPJFORTIZRPW10.54702 > 52.96.183.226.443: UDP, length 1250
20:23:05.952238IPJFORTIZRPW10.54702 > 52.96.183.226.443: UDP, length 533

Espero te sirva este turtorial.

Escribe tu comentario
+ 2