tcpdump es un programa informático analizador de paquetes de red de datos que se ejecuta bajo una interfaz de línea de comandos . Permite al usuario visualizar paquetes TCP/IP y otros paquetes que se transmiten o reciben a través de una red a la que está conectado el ordenador. [3] Distribuido bajo la licencia BSD , [4] tcpdump es software libre .
Tcpdump funciona en la mayoría de los sistemas operativos tipo Unix : Linux , Solaris , FreeBSD , DragonFly BSD , NetBSD , OpenBSD , OpenWrt , macOS , HP-UX 11i y AIX . En esos sistemas, tcpdump utiliza la biblioteca libpcap para capturar paquetes. El puerto de tcpdump para Windows se llama WinDump; utiliza WinPcap , la versión de Windows de libpcap.
tcpdump fue escrito originalmente en 1988 por Van Jacobson , Sally Floyd , Vern Paxson y Steven McCanne, quienes en ese momento trabajaban en el Lawrence Berkeley Laboratory Network Research Group. [5] A fines de la década de 1990, había numerosas versiones de tcpdump distribuidas como parte de varios sistemas operativos y numerosos parches que no estaban bien coordinados. Michael Richardson (mcr) y Bill Fenner crearon www.tcpdump.org en 1999.
tcpdump imprime el contenido de los paquetes de red. Puede leer paquetes desde una tarjeta de interfaz de red o desde un archivo de paquetes guardado previamente creado. tcpdump puede escribir paquetes en la salida estándar o en un archivo.
También es posible utilizar tcpdump con el propósito específico de interceptar y visualizar las comunicaciones de otro usuario o computadora. Un usuario con los privilegios necesarios en un sistema que actúe como enrutador o puerta de enlace a través del cual pasa tráfico no cifrado, como Telnet o HTTP, puede utilizar tcpdump para ver los identificadores de inicio de sesión, las contraseñas, las URL y el contenido de los sitios web que se están visitando o cualquier otra información no cifrada.
El usuario puede aplicar opcionalmente un filtro basado en BPF para limitar la cantidad de paquetes vistos por tcpdump; esto hace que la salida sea más utilizable en redes con un alto volumen de tráfico.
Ejemplo de interfaces de captura disponibles en un sistema Linux:
$ tcpdump -D 1.eth0 [Activo, Ejecutando, Conectado] 2.any (Pseudodispositivo que captura en todas las interfaces) [Activo, Ejecutando] 3.lo [Activo, Ejecutando, Loopback] 4.bluetooth-monitor (Monitor de Linux Bluetooth) [Inalámbrico] 5.usbmon2 (Tráfico USB sin procesar, bus número 2) 6.usbmon1 (Tráfico USB sin procesar, bus número 1) 7.usbmon0 (Tráfico USB sin procesar, todos los buses USB) [ninguno] 8.nflog (Interfaz de registro de filtrado de red de Linux (NFLOG)) [ninguno] 9.nfqueue (Interfaz de cola de filtrado de red de Linux (NFQUEUE)) [ninguno] 10.dbus-system (Bus del sistema D-Bus) [ninguno] 11.dbus-session (Bus de sesión D-Bus) [ninguno] 12.bluetooth0 (Adaptador Bluetooth número 0) 13.eth1 [ninguno, desconectado]
En algunos sistemas operativos similares a Unix , un usuario debe tener privilegios de superusuario para utilizar tcpdump porque los mecanismos de captura de paquetes en esos sistemas requieren privilegios elevados. Sin embargo, la opción -Z se puede utilizar para quitarle privilegios a un usuario sin privilegios específico después de que se haya configurado la captura. En otros sistemas operativos similares a Unix, el mecanismo de captura de paquetes se puede configurar para permitir que lo utilicen usuarios sin privilegios; si se hace eso, no se requieren privilegios de superusuario.
Esta herramienta nos va a permitir ver información sobre el tráfico que entra y sale de una interfaz de red determinada. Se trata de una herramienta de diagnóstico que nos va a permitir ver la información de los paquetes. Esta información será de donde provienen los paquetes entrantes y hacia donde se dirigen los paquetes salientes, aportando algo de información adicional. Incluso podremos guardar el resultado en un archivo para echarle un vistazo en otro momento.