🔬 Laboratorio Educativo de Seguridad en Redes
📋 Paquetes Capturados
#TiempoOrigenDestino MétodoURI / InfoTamaño⚠
🔍 Detalle del Paquete
📡
Haz clic en un paquete
para ver su contenido completo
⚠ Login Inseguro (HTTP POST)
🔓 PELIGRO EDUCATIVO: Las credenciales se transmiten en texto plano, visibles en cualquier sniffer de red.
Pulsa Enviar...
📨 Mensaje Privado (HTTP POST)
👁️ INTERCEPTABLE: El mensaje viaja en texto plano. Cualquier nodo de la red puede leerlo.
Pulsa Enviar...
🖼️ Transferencia de Imagen (GET)
💡 Las imágenes por HTTP pueden reconstruirse desde paquetes TCP con Wireshark → Follow TCP Stream.
Pulsa para simular...
📁 Upload de Archivo (POST multipart)
⚡ SIN CIFRADO: El archivo viaja íntegro en el body HTTP, capturable y legible.
Pulsa para ver el multipart...
⚔️
HTTP vs HTTPS
Comparativa visual del tráfico de red
🔓
HTTP — Texto Plano
Puerto 80/8080 — SIN cifrado
POST /login HTTP/1.1 Host: 127.0.0.1:8080 Content-Type: application/x-www-form-urlencoded username=admin&password=password123
⚠️ Las credenciales son completamente visibles. Cualquier persona en la misma WiFi puede leerlas con Wireshark.
🔒
HTTPS — TLS Cifrado
Puerto 443 — TLS 1.3
TLS 1.3 Record Layer Content Type: Application Data (23) Length: 149 Encrypted Application Data: a3 f2 91 4b 7c 02 e8 d1 55 3a 9f b0 c4 17 68 2e 89 4f 0a cc 73 15 b8 e2 40 6d 9c 51 f7 28 a6 30 [... 117 bytes cifrados ...]
✅ Sin la clave privada del servidor es computacionalmente imposible descifrar el contenido.
CaracterísticaHTTPHTTPS
Puerto por defecto80443
Cifrado de datos❌ Ninguno✅ TLS 1.2/1.3
Credenciales visibles✅ Texto plano❌ Cifradas
Capturable con Wireshark✅ TodoSolo metadatos TCP
Autenticación servidor❌ Ninguna✅ Certificado X.509
Integridad de datos❌ Modificable (MITM)✅ HMAC
Vulnerabilidad MITM✅ Trivial❌ Muy difícil
Session Hijacking✅ Posible❌ Protegido
🖥️ CLIENTE
→ ClientHello (versiones TLS, cipher suites)
← ServerHello + Certificado X.509
→ Verificar cert + Key Exchange (ECDHE)
← Finished — sesión cifrada establecida
🔒 Desde aquí todo va cifrado con AES-256-GCM
🌐 SERVIDOR
🖼️
Reconstrucción de Objetos desde Tráfico HTTP
Los archivos transmitidos por HTTP pueden recuperarse íntegramente desde los paquetes de red
⚡ Demostración: Los siguientes archivos fueron "capturados" de un tráfico HTTP simulado. En un ataque real se extraerían de un PCAP con Wireshark → Follow TCP Stream → Save as Raw.
📡
1. Captura
Wireshark captura paquetes TCP puerto 80
🔍
2. Filtrado
Filtrar por Content-Type: image/*
🧩
3. Reensamblar
Follow TCP Stream → extrae bytes del body
💾
4. Guardar
Save As Raw → /recovered_files/
# Extraer imágenes JPEG de un archivo .pcap from scapy.all import rdpcap, Raw packets = rdpcap("captura.pcap") for pkt in packets: if pkt.haslayer(Raw): data = pkt[Raw].load # Magic bytes JPEG: FF D8 FF if b'\xff\xd8\xff' in data: img_data = data[data.index(b'\xff\xd8\xff'):] with open("recovered.jpg", "wb") as f: f.write(img_data) print("✅ Imagen recuperada desde tráfico HTTP")
📚
Teoría: HTTP y Seguridad en Redes
Fundamentos para la clase de ciberseguridad
¿Qué es HTTP?

HTTP (HyperText Transfer Protocol) es el protocolo de comunicación de la web. Funciona sobre TCP/IP y usa el puerto 80 por defecto. El problema fundamental: todos los datos viajan en texto plano, sin ningún cifrado. Cualquier nodo entre cliente y servidor puede leer el contenido íntegro.

Estructura de un mensaje HTTP
── REQUEST ───────────────────────────────────────────── POST /login HTTP/1.1 ← Línea de solicitud Host: www.ejemplo.com ← Headers HTTP Content-Type: application/x-www-form-urlencoded Content-Length: 31 ← Línea en blanco username=admin&password=secret123 ← BODY — visible en red ── RESPONSE ──────────────────────────────────────────── HTTP/1.1 200 OK Set-Cookie: session=abc123token; Path=/ Content-Type: text/html
⚔️ Ataques contra HTTP
1. Man-in-the-Middle (MITM)

El atacante se interpone entre cliente y servidor, interceptando y pudiendo modificar todo el tráfico. En WiFi pública es trivial con herramientas como Bettercap o arpspoof.

Normal: Cliente ──────────────────────→ Servidor MITM: Cliente → ATACANTE lee/modifica → Servidor
2. Packet Sniffing

Con Wireshark o tcpdump en la misma red se captura todo el tráfico HTTP: credenciales, cookies de sesión, datos personales, imágenes, archivos.

3. Session Hijacking

Las cookies de sesión HTTP viajan en texto plano. Un atacante que las captura puede suplantar al usuario legítimo (sidejacking). La herramienta clásica era Firesheep (2010).

AtaqueRequisitoDificultadHerramienta
Packet SniffingMisma red WiFiBajaWireshark, tcpdump
ARP Spoofing + MITMMisma LANMediaBettercap, arpspoof
Session HijackingMisma redMediaHamster, Ferret
DNS SpoofingControl DNS/redAltaBettercap, dnsspoof
🔒 Por qué HTTPS resuelve esto

HTTPS = HTTP + TLS (Transport Layer Security). TLS cifra todo el payload HTTP con criptografía asimétrica para el intercambio de claves y simétrica (AES-256-GCM) para los datos. Incluso capturando todos los paquetes, sin la clave privada es computacionalmente inviable descifrarlos.

Perfect Forward Secrecy (PFS): cada sesión TLS usa claves efímeras únicas que se destruyen al terminar. Aunque se comprometiera la clave privada del servidor en el futuro, el tráfico pasado no sería descifrable.

FunciónAlgoritmo (TLS 1.3)Descripción
Intercambio de clavesECDHEElliptic Curve Diffie-Hellman Ephemeral — PFS garantizado
AutenticaciónRSA / ECDSACertifica la identidad del servidor mediante X.509
Cifrado datosAES-256-GCMCifrado simétrico autenticado de alta velocidad
IntegridadHMAC-SHA-256Detecta cualquier modificación en tránsito
🛡️ Buenas Prácticas
✅ Para Desarrolladores
  • → HTTPS en todos los entornos (dev, staging, prod)
  • → Redirigir HTTP → HTTPS (301 permanente)
  • → HSTS: Strict-Transport-Security max-age=31536000
  • → TLS 1.2 mínimo, preferir TLS 1.3
  • → Certificados válidos (Let's Encrypt es gratuito)
  • → Cookies: Secure + HttpOnly + SameSite=Strict
  • → No datos sensibles en query strings (GET)
✅ Para Usuarios
  • → Verificar 🔒 en la barra del navegador
  • → Nunca introducir credenciales en HTTP
  • → VPN en redes WiFi públicas
  • → Extensión HTTPS Everywhere (o navegador moderno)
  • → Desconfiar de certificados caducados o inválidos
  • → No reutilizar contraseñas entre servicios
  • → Activar autenticación de dos factores (2FA)