Tcpdump — Análisis y Filtros de Captura
📘 Concepto general
Tcpdump es una herramienta de línea de comandos que permite capturar tráfico de red y aplicar filtros para mostrar solo los paquetes que nos interesan.
Su uso es esencial en análisis de red, ya que ayuda a:
-
Reducir el ruido y el volumen de tráfico.
-
Ahorrar espacio en disco.
-
Enfocarse en paquetes relevantes (por IP, puerto, protocolo, etc.).
⚙️ Filtros más comunes
| Filtro | Función | Ejemplo |
|---|---|---|
| host | Muestra todo el tráfico hacia o desde un host. | tcpdump host 10.10.10.10 |
| src / dst | Filtra por dirección de origen o destino. | tcpdump src host 10.10.10.10 |
| net | Filtra tráfico de una red completa. | tcpdump net 192.168.1.0/24 |
| proto | Filtra por protocolo (ether, tcp, udp, icmp, etc.). | tcpdump proto 17 |
| port | Muestra tráfico de un puerto específico. | tcpdump port 80 |
| portrange | Especifica un rango de puertos. | tcpdump portrange 0-1024 |
| less / greater | Filtra por tamaño del paquete (en bytes). | tcpdump greater 500 |
| and / && | Ambos filtros deben cumplirse. | tcpdump host 10.0.0.5 and port 80 |
| **or / | ** | |
| not | Niega una condición. | tcpdump not udp |
🔍 Ejemplos prácticos
🎯 Filtrar por host
sudo tcpdump -i eth0 host 172.16.146.2
➡️ Muestra todo el tráfico hacia y desde esa dirección IP.
🎯 Filtrar por dirección de origen
sudo tcpdump -i eth0 src host 172.16.146.2
➡️ Solo muestra los paquetes enviados desde ese host.
🎯 Filtrar por puerto
sudo tcpdump -i eth0 tcp port 443
➡️ Captura tráfico HTTPS (TCP puerto 443).
🎯 Filtrar por rango de puertos
sudo tcpdump -i eth0 portrange 0-1024
➡️ Muestra tráfico de servicios bien conocidos.
🎯 Filtrar por protocolo
sudo tcpdump -i eth0 udp
o con número de protocolo:
sudo tcpdump -i eth0 proto 17
➡️ UDP = protocolo número 17.
🎯 Filtrar por tamaño de paquete
sudo tcpdump -i eth0 less 64
➡️ Paquetes pequeños (por ejemplo, SYN o ACK).
sudo tcpdump -i eth0 greater 500
➡️ Paquetes grandes (transferencias de archivos o datos voluminosos).
🎯 Combinar filtros
-
AND (y): ambos deben cumplirse
tcpdump host 192.168.0.1 and port 23→ Tráfico solo de ese host y solo del puerto 23.
-
OR (o): basta con que se cumpla uno
tcpdump icmp or host 172.16.146.1→ Muestra tráfico ICMP o del host.
-
NOT (no): excluye resultados
tcpdump not tcp→ Muestra todo excepto tráfico TCP.
🧩 Consejos útiles
-
Usa
-v,-vvo-vvvpara más detalle en la salida. -
Usa
-w captura.pcappara guardar los paquetes en un archivo. -
Combina filtros para reducir ruido y enfocar el análisis.
-
Filtra antes de capturar para no llenar el disco.
-
Revisa los paquetes guardados con Wireshark o TShark.