La captura de paquetes es una forma muy útil de analizar el funcionamiento interno de una red. Hay una variedad de diferentes herramientas disponibles que se desarrollan para este propósito. Uno de ellos es tcpdump. Aquí le mostramos cómo hacer el mejor uso de esta gran herramienta para ingenieros de redes y probadores de penetración por igual.
¿Qué es tcpdump?
tcpdump es una herramienta de análisis de paquetes de red que fue desarrollada y lanzada en 1988 por un equipo de científicos informáticos que trabajaban en el Laboratorio Lawrence Berkeley y su Grupo de Investigación de Redes. Se utiliza para mostrar el contenido de los paquetes que envía y recibe una computadora. La utilidad viene con una variedad de opciones para hacer que la captura de paquetes sea más específica y enfocada. Algunas de estas opciones incluyen diferentes protocolos de red e interfaces de red.
Instalación
Muchas distribuciones de Linux vienen con la utilidad instalada de inmediato. Sin embargo, si su distribución preferida no lo hace, la instalación es afortunadamente rápida y simple.
Si está usando Ubuntu o Debian, por ejemplo, se puede instalar usando apt
:
En CentOS, se hace lo mismo usando yum
:
Y en Arch Linux usando pacman
:
Los basicos
Con tcpdump instalado, puede echar un vistazo al manual usando el -h
bandera:
Esto le muestra una lista de las banderas que puede utilizar al usar la herramienta.
Si desea ver un manual más completo y detallado, puede ver la página del manual (página del manual) utilizando el man
dominio:
Puede ejecutar una captura de paquetes básica escribiendo:
Usando el comando por sí mismo y sin especificar una interfaz de red, la herramienta elegirá una de las interfaces disponibles en su sistema.
Si no desea que tcpdump resuelva los nombres de host y, en cambio, desea que genere solo direcciones IP, puede usar el -n
bandera:
Si desea especificar el número de paquetes que desea capturar, utilice el -c
bandera:
tcpdump -c [number of packets]
Especificación de una interfaz de red
Puede especificar su elección de interfaz de red mediante el -i
bandera:
Dos de los nombres de interfaz de red más comunes en la mayoría de los sistemas son eth0 y wlan0:
tcpdump -i eth0 tcpdump -i wlan0
Si desea capturar datos en todas las interfaces, puede utilizar el any
opción:
Especificación de un puerto/intervalo de puertos
Si solo desea capturar datos que usan un número de puerto específico, use el comando:
tcpdump -i [interface] port [port number]
Supongamos que desea capturar el tráfico en la eth0
interfaz y para el puerto 443 (HTTPS). Escribe lo siguiente:
Además, tcpdump le permite especificar un rango de puertos:
tcpdump -i [interface] portrange [port range]
Especificación de un host o una subred
Habrá momentos en los que desee limitar los paquetes capturados solo a los enviados/recibidos de un host o subred específicos. Afortunadamente, tcpdump te permite hacerlo.
Puede especificar un host utilizando el siguiente formato:
tcpdump -i [interface] host [host]
Como ejemplo, capture el tráfico en la interfaz eth0 y especifique el host como 127.0.0.1 (su propia dirección IP de loopback):
tcpdump -i eth0 host 127.0.0.1
Si desea especificar una subred de red usando la notación CIDR, puede usar el siguiente formato:
tcpdump -i [interface] net [subnet]
Por ejemplo:
tcpdump -i eth0 net 10.0.0.0/8
También puede especificar directamente un host de origen:
tcpdump -i [interface] src [host]
Y un host de destino:
tcpdump -i [interface] dst [host]
Especificación de verbosidad
tcpdump le permite especificar la verbosidad de la captura de paquetes. Esto es muy útil cuando no desea verse abrumado por la cantidad de información durante una captura.
Hay tres opciones incrementales para la verbosidad, las banderas -v
, -vv
y -vvv
:
tcpdump -i [interface] -v tcpdump -i [interface] -vv tcpdump -i [interface] -vvv
La primera opción especifica la menor cantidad de verbosidad, mientras que la tercera opción especifica la mayor parte.
Guardar la captura en un archivo
A menudo es útil guardar los datos capturados en un archivo, para que puedan analizarse e interpretarse más a fondo.
Esto se hace usando el -w
bandera:
tcpdump -i [interface] -w [filename]
Como ejemplo, puede guardar los datos capturados en un archivo llamado «capture.txt»:
tcpdump -i eth0 -w capture.txt
Preguntas frecuentes
1. Recibí un error de «Operación no permitida». ¿Cómo lo resuelvo?
El siguiente es un error común que los usuarios pueden recibir cuando intentan usar tcpdump:
tcpdump le da este error cuando no tiene los permisos necesarios para realizar la captura de paquetes. En la mayoría de los escenarios, puede resolver esto usando sudo
. Por ejemplo:
2. ¿Cómo sé qué interfaces de red están disponibles?
tcpdump tiene una funcionalidad integrada que le permite verificar las interfaces de red disponibles en su sistema.
Para comprobar las interfaces, utilice el -D
bandera: