tcpdump es una herramienta de linea de comandos para la captura y analisis de paquetes de red. Es ampliamente utilizada en penetration testing, analisis forense y debugging de red por su capacidad de capturar trafico de manera eficiente y granular.
Esta guia cubre la instalacion, sintaxis, filtros y ejemplos practicos para el uso efectivo de tcpdump.
2. Instalacion
2.1. Arch Linux
sudo pacman -S tcpdump
2.2. Kali/Parrot
sudo apt install tcpdump
2.3. macOS
brew install tcpdump
2.4. Dependencias
tcpdump requiere privilegios de root para capturar trafico. Tambien requiere libpcap.
# Instalar libpcapsudo pacman -S libpcap
3. Sintaxis Basica
3.1. Forma General
tcpdump [opciones] [expresion]
3.2. Listar Interfaces
# Listar todas las interfaces disponibles
tcpdump -D# Mostrar interfaces con numeros
tcpdump -D
3.3. Captura Basica
# Capturar en interfaz especifica
tcpdump -i eth0
# Capturar en cualquier interfaz
tcpdump -i any
# Capturar con cantidad limitada
tcpdump -i eth0 -c 100
Parametro
Descripcion
-i <interfaz>
Interfaz de captura
-c <num>
Numero de paquetes a capturar
-i any
Capturar en todas las interfaces
4. filtros de Captura
4.1. Por Protocolo
# Solo TCP
tcpdump -i eth0 tcp
# Solo UDP
tcpdump -i eth0 udp
# Solo ICMP
tcpdump -i eth0 icmp
# Solo ARP
tcpdump -i eth0 arp
4.2. Por Host
# Filtrar por host
tcpdump -i eth0 host 192.168.1.1
# Solo origen
tcpdump -i eth0 src host 192.168.1.1
# Solo destino
tcpdump -i eth0 dst host 192.168.1.1
4.3. Por Puerto
# Filtrar por puerto
tcpdump -i eth0 port 80
# Puerto origen
tcpdump -i eth0 src port 22
# Puerto destino
tcpdump -i eth0 dst port 443
4.4. Por Red
# Filtrar por red
tcpdump -i eth0 net 192.168.1.0/24
# Red origen
tcpdump -i eth0 src net 10.0.0.0/8
5. Combinaciones
5.1. Operadores Logicos
Operador
Descripcion
and
AND logico
or
OR logico
not
Negacion
5.2. Ejemplos de Combinaciones
# TCP en puerto 80
tcpdump -i eth0 tcp port 80
# Host especifico + puerto
tcpdump -i eth0 host 192.168.1.1 and port 443
# Excluir ICMP
tcpdump -i eth0 not icmp
# Excluir varios puertos
tcpdump -i eth0 tcp and not port 22 and not port 443
# TCP + puerto 80 + no HTTPs
tcpdump -i eth0 tcp port 80 and not port 443
6. Opciones de Salida
6.1. Verbose
# Normal (sin verbose)
tcpdump -i eth0
# Verbose (-v)
tcpdump -i eth0 -v# Muy verbose (-vv)
tcpdump -i eth0 -vv# Todo verbose (-vvv)
tcpdump -i eth0 -vvv
6.2. Numerico
# No resolver DNS
tcpdump -i eth0 -n# No resolver puertos
tcpdump -i eth0 -nn# No resolver nada
tcpdump -i eth0 -nnn