Seguridad Informática · Práctica de Laboratorio

HTTP Security Lab

Manual de Prácticas de Laboratorio

Asignatura Seguridad Informática Nivel Ciclo Formativo / Universidad Duración 90 minutos (práctica completa) Herramienta HTTP Security Lab (HTML — sin instalación) Autor unfantasmaenelsistema.com
⚠  Este laboratorio es SOLO para uso educativo en entornos locales controlados.
Nunca realizar estas prácticas contra sistemas de terceros.

01 Introducción y Objetivo

En esta práctica aprenderás por qué el protocolo HTTP es inseguro y por qué HTTPS es necesario para proteger las comunicaciones en internet. Utilizarás el HTTP Security Lab, una herramienta interactiva que simula la captura y análisis de tráfico de red en tiempo real.

¿Qué aprenderás?

  • Visualizar cómo los datos viajan en texto plano a través de HTTP.
  • Capturar e interpretar peticiones GET y POST simuladas.
  • Identificar credenciales, mensajes y archivos expuestos en la red.
  • Comprender la diferencia técnica entre HTTP y HTTPS/TLS.
  • Reconstruir objetos (imágenes, archivos) desde tráfico HTTP capturado.
  • Entender ataques reales: sniffing, MITM y session hijacking.

La herramienta

El laboratorio se ejecuta como un único archivo HTML que se abre directamente en cualquier navegador moderno (Chrome, Firefox, Edge). No requiere instalación, conexión a internet durante la práctica, ni permisos especiales.

✅  Apertura rápida

1. Localiza el archivo HTTP_Security_Lab.html en tu escritorio o carpeta del curso.

2. Haz doble clic sobre él — se abre en tu navegador.

3. Verás la interfaz con el menú lateral izquierdo con 5 módulos.

4. ¡Ya estás listo para empezar!

Estructura de la herramienta

La aplicación tiene 5 módulos accesibles desde el menú lateral izquierdo:

MóduloIcono¿Qué hace?
Sniffer📡Lista todos los paquetes HTTP capturados con su detalle completo.
Laboratorio🧪4 ejercicios interactivos: login, mensaje, imagen y upload.
HTTP vs HTTPS⚔️Comparativa visual del mismo tráfico cifrado vs no cifrado.
Reconstrucción🖼️Muestra archivos recuperados desde tráfico HTTP interceptado.
Teoría📚Base teórica: protocolos, ataques y buenas prácticas.

02 Práctica 1 — El Sniffer HTTP

En el módulo Sniffer simularás la captura de tráfico de red como lo haría Wireshark, pero enfocado en tráfico HTTP educativo. Aprenderás a leer e interpretar los paquetes capturados.

ℹ  Concepto clave

Un sniffer es una herramienta que captura y analiza el tráfico de red. Wireshark es el sniffer más usado en ciberseguridad. Esta práctica reproduce su funcionamiento de forma visual y segura en un entorno local simulado.

2.1 — Iniciar la captura

1
Haz clic en el módulo 📡 Sniffer en el menú lateral izquierdo.
2
Pulsa el botón ▶ Iniciar Captura en la barra superior derecha. El punto verde parpadeará indicando que la captura está activa.
3
Observa cómo los paquetes van apareciendo en la tabla uno a uno, simulando tráfico de red en tiempo real.
4
Deja correr la captura durante al menos 30 segundos para obtener una muestra representativa.
5
Pulsa ■ Detener cuando tengas suficientes paquetes (mínimo 6–8 recomendado).

2.2 — Leer la tabla de paquetes

Cada fila representa un paquete HTTP capturado. Familiarízate con las columnas:

ColumnaSignificado
#Número de secuencia del paquete.
TiempoHora exacta en que se capturó el paquete.
OrigenIP del dispositivo que envió el paquete (cliente).
DestinoIP del servidor que recibe el paquete.
MétodoOperación HTTP: GET (pedir recurso) o POST (enviar datos).
URI / InfoRuta del recurso solicitado, p.ej. /login o /image/foto.jpg
TamañoCantidad de bytes del paquete completo.
⚠Alerta roja si el paquete contiene datos sensibles en texto plano.

2.3 — Analizar el detalle de un paquete

Haz clic sobre cualquier fila de la tabla. El panel derecho mostrará el contenido completo del paquete con sintaxis resaltada en colores.

1
Haz clic en la fila del paquete POST /login. Observa el icono ⚠ rojo en la columna de alerta.
2
En el panel derecho verás los Headers HTTP con sintaxis resaltada: métodos en verde, claves en naranja, valores en blanco.
3
Más abajo aparece el Body HTTP con las credenciales marcadas en rojo — completamente visibles en texto plano.
4
Lee la nota educativa al pie del panel: explica por qué estos datos son peligrosos en HTTP.
5
Repite el proceso con los paquetes POST /message y POST /api/card.
⚠  ¿Qué observas en el Body?

username=admin aparece en texto plano, legible sin ninguna herramienta especial.

password=password123 es completamente visible para cualquier observador en la red.

En una red real, cualquier persona con Wireshark en la misma WiFi vería exactamente esto.

2.4 — Usar los filtros

La barra lateral izquierda contiene filtros para ver solo los paquetes que te interesan:

  • ALL — Muestra todos los paquetes capturados.
  • GET — Solo peticiones GET (descarga de recursos: páginas, imágenes…).
  • POST — Solo peticiones POST (envío de datos: logins, formularios, uploads).
  • IMG — Solo paquetes que contienen imágenes transferidas.

Cuando termines, pulsa 💾 Exportar en la barra superior. Se descargará un archivo JSON con todos los paquetes capturados.

📝  Preguntas de reflexión — Práctica 1

1. ¿Cuántos paquetes con datos sensibles (⚠) has capturado? ¿Cuáles son?

2. ¿Qué diferencia hay entre un paquete GET y uno POST?

3. Si estuvieras en una cafetería usando la WiFi pública, ¿qué información podrían robar?

4. ¿En qué columna puedes ver la IP del ordenador que se ha conectado al servidor?

03 Práctica 2 — Laboratorio Interactivo

El módulo Laboratorio contiene 4 ejercicios que simulan situaciones reales de tráfico HTTP inseguro. En cada uno generarás un paquete y verás exactamente cómo aparecería en la red.

Ejercicio A — Login inseguro

Este ejercicio simula el envío de un formulario de inicio de sesión a través de HTTP. Es el escenario más habitual de robo de credenciales.

1
Haz clic en 🧪 Laboratorio en el menú lateral.
2
En el panel Login Inseguro (HTTP POST), introduce cualquier nombre de usuario y contraseña ficticios. Ejemplo: tu_nombre y contraseña_prueba.
3
Pulsa el botón rojo 📤 Enviar POST /login.
4
Observa el bloque Paquete capturado: verás el cuerpo del POST con username=XXX&password=XXX completamente visible.
5
En el módulo Sniffer (menú lateral) aparece automáticamente un nuevo paquete POST /login con el icono ⚠. Haz clic en él para ver el detalle completo.
⚠  Punto clave

Las credenciales no están cifradas. Un atacante con acceso a la red vería exactamente:

POST /login HTTP/1.1
username=tu_nombre&password=contraseña_prueba

Esto es exactamente lo que Wireshark muestra en un ataque de sniffing real.

Ejercicio B — Mensaje privado

Este ejercicio simula el envío de información personal o financiera a través de una aplicación web sin HTTPS.

1
En el panel Mensaje Privado, cambia el contenido del campo Mensaje privado por información sensible ficticia: número de teléfono falso, un PIN, una dirección, etc.
2
Pulsa 📤 Enviar POST /message.
3
El bloque inferior mostrará el body JSON con tu mensaje completamente visible.
4
Reflexiona: ¿qué ocurriría si alguien captura este paquete en una red WiFi abierta?
ℹ  Escenario real — Firesheep (2010)

Este patrón es exactamente lo que ocurría en aplicaciones bancarias y de mensajería que no usaban HTTPS. El ataque Firesheep permitía robar sesiones de Facebook, Twitter y muchas webs con un solo clic desde la misma red WiFi.

Ejercicio C — Transferencia de imagen

Las imágenes también viajan en claro cuando se sirven por HTTP, permitiendo recuperarlas íntegramente desde los paquetes.

1
En el panel Transferencia de Imagen, modifica la URL: escribe http://127.0.0.1:8080/image/foto_dni.jpg.
2
Pulsa 📤 GET /image.
3
Observa los Headers de respuesta: Content-Type: image/jpeg y Content-Length en bytes.
4
Los magic bytes FF D8 FF E0 son el inicio de todo archivo JPEG — un atacante los detecta para extraer la imagen del tráfico.
5
Navega al módulo 🖼️ Reconstrucción para ver cómo quedaría el archivo recuperado.

Ejercicio D — Upload de archivo

El envío de archivos por HTTP es especialmente peligroso porque el contenido completo del fichero viaja en el cuerpo de la petición.

1
En el panel Upload de Archivo, escribe como nombre: datos_personales.txt
2
En el campo Contenido simulado, escribe información confidencial ficticia: nombre, DNI falso, dirección, contraseña de prueba.
3
Pulsa 📤 POST /upload.
4
El bloque inferior muestra el multipart HTTP completo, con el nombre del archivo y el contenido íntegro visibles.
5
Anota: ¿qué cabecera indica el nombre del archivo en el multipart? ¿Y el tipo de contenido?
📝  Preguntas de reflexión — Práctica 2

1. En el Ejercicio A, ¿dónde exactamente aparece la contraseña dentro del paquete HTTP?

2. ¿Qué significa Content-Type: multipart/form-data en el Ejercicio D?

3. ¿Qué datos de los ejercicios B y D serían especialmente valiosos para un atacante?

4. ¿Por qué los magic bytes son importantes para reconstruir archivos desde tráfico capturado?

04 Práctica 3 — HTTP vs HTTPS

En este módulo compararás visualmente el tráfico HTTP sin cifrar con el tráfico HTTPS cifrado, para entender qué protege realmente TLS.

1
Haz clic en ⚔️ HTTP vs HTTPS en el menú lateral.
2
Observa las dos columnas: izquierda (HTTP, texto plano) y derecha (HTTPS, cifrado).
3
Lee el bloque de código POST /login en HTTP: ¿puedes ver las credenciales?
4
Ahora lee el bloque de HTTPS: solo ves bytes cifrados hexadecimales sin significado legible.
5
Baja por la página y estudia la Tabla Comparativa Completa de características.
6
Continúa hacia el diagrama del TLS Handshake: entiende los 4 pasos del cifrado.
🔓 HTTP — Texto Plano
Puerto 80 — SIN cifrado
POST /login HTTP/1.1 Host: 127.0.0.1:8080 Content-Type: application/x-www-form-urlencoded username=admin&password=password123
🔒 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 [... 137 bytes cifrados ...]

4.1 — TLS Handshake (4 pasos)

1
ClientHello — El cliente anuncia qué versiones de TLS y algoritmos de cifrado soporta.
2
ServerHello + Certificado — El servidor elige el algoritmo y envía su certificado X.509 con su clave pública.
3
Key Exchange (ECDHE) — Cliente y servidor generan una clave de sesión compartida sin transmitirla por la red. Perfect Forward Secrecy.
4
Finished — Sesión cifrada — Desde este momento todo va cifrado con AES-256-GCM. Interceptar el tráfico no revela nada.

4.2 — Tabla comparativa para completar

Rellena esta tabla usando la información del módulo HTTP vs HTTPS de la herramienta:

CaracterísticaHTTPHTTPS¿Por qué importa?
Puerto por defectoescribe aquíescribe aquíescribe aquí
Cifrado del bodyescribe aquíescribe aquíescribe aquí
Credenciales visiblesescribe aquíescribe aquíescribe aquí
Capturable con Wiresharkescribe aquíescribe aquíescribe aquí
Vulnerable a MITMescribe aquíescribe aquíescribe aquí
📝  Preguntas de reflexión — Práctica 3

1. ¿Qué significa ECDHE y por qué garantiza Perfect Forward Secrecy?

2. Si capturas tráfico HTTPS con Wireshark, ¿qué información SÍ puedes ver aunque no veas el contenido?

3. ¿Qué es un certificado X.509 y para qué lo usa TLS?

4. ¿En qué se diferencia TLS 1.3 de versiones anteriores como TLS 1.0?

05 Práctica 4 — Reconstrucción de Objetos

Este módulo muestra cómo un atacante puede recuperar archivos completos desde tráfico HTTP capturado. Es una de las técnicas más impactantes del análisis forense de red.

1
Haz clic en 🖼️ Reconstrucción en el menú lateral.
2
Observa las 6 tarjetas de archivos recuperados: imágenes JPEG, PNG, PDF confidencial, backup SQL y vídeo.
3
En cada tarjeta lee los metadatos: tipo, tamaño, IP de origen y cómo fue capturado.
4
Fíjate en los magic bytes indicados: son los primeros bytes del archivo que permiten identificarlo.
5
Lee el bloque Proceso técnico de recuperación y sus 4 pasos (captura → filtrado → reensamblar → guardar).
6
Estudia el código Python/Scapy al final: así se automatizaría la extracción en un análisis forense real.

5.1 — Magic bytes: identificación de archivos

Los magic bytes son los primeros bytes de un archivo que identifican su tipo, independientemente de la extensión del nombre:

TipoMagic bytes (hex)ASCIIUso en forense
JPEGFF D8 FF E0ÿØÿàImágenes fotográficas — las más comunes en web.
PNG89 50 4E 47.PNGImágenes con transparencia — logos, iconos.
PDF25 50 44 46%PDFDocumentos — muy frecuentes en uploads.
ZIP50 4B 03 04PK..Archivos comprimidos y documentos Office.
MP466 74 79 70ftypVídeos — tamaño grande, fáciles de detectar.

5.2 — Proceso de recuperación con Wireshark

1
En Wireshark, aplica el filtro: http contains "image/jpeg" para aislar respuestas con imágenes.
2
Haz clic derecho sobre un paquete HTTP → Follow → TCP Stream.
3
Selecciona Show data as: Raw y desactiva la dirección del cliente (solo respuesta del servidor).
4
Haz clic en Save as… y guarda el archivo como imagen.jpg. Al abrirlo verás la imagen recuperada.
  Filtros útiles en Wireshark
# Imágenes JPEG en respuestas HTTP http.response and http.content_type contains "image/jpeg" # Cualquier imagen http.content_type matches "image/(jpeg|png|gif|webp)" # Capturar todos los POST (formularios y uploads) http.request.method == "POST" # Todo el tráfico al puerto 8080 (servidor del lab) tcp.port == 8080
📝  Preguntas de reflexión — Práctica 4

1. ¿Por qué el archivo backup_db.sql es el más peligroso de los recuperados?

2. ¿Qué son los magic bytes y para qué los usa un atacante al analizar tráfico de red?

3. ¿Cómo evitaría HTTPS que se recuperaran estas imágenes y archivos?

4. Describe en tus palabras los 4 pasos del proceso de recuperación.

06 Práctica 5 — Módulo de Teoría

El módulo Teoría consolida todos los conceptos del laboratorio. Léelo después de completar las prácticas anteriores para reforzar los fundamentos.

1
Haz clic en 📚 Teoría en el menú lateral.
2
Lee la sección ¿Qué es HTTP? y el diagrama de estructura de un mensaje HTTP.
3
Estudia la sección Ataques contra HTTP: identifica qué necesita un atacante para cada tipo.
4
Lee Por qué HTTPS resuelve esto: entiende AES-256-GCM y ECDHE.
5
Revisa la tabla de Algoritmos de TLS 1.3 y anota para qué sirve cada uno.
6
Termina con Buenas Prácticas: señala cuáles ya aplicas tú como usuario.

Mapa de ataques — completa la tabla

Tipo de ataque¿Qué roba/hace?DificultadHerramienta real
Packet Sniffingescribe aquíescribe aquíescribe aquí
ARP Spoofing + MITMescribe aquíescribe aquíescribe aquí
Session Hijackingescribe aquíescribe aquíescribe aquí
DNS Spoofingescribe aquíescribe aquíescribe aquí

07 Flujo Completo — 90 minutos

Este es el orden recomendado para completar toda la práctica de forma eficiente:

0–5 min
— Preparación
Abrir el archivo HTML y explorar la interfaz.
Objetivo: familiarizarse con los 5 módulos del menú lateral.
5–20 min
📡 Sniffer
Iniciar captura, observar paquetes, analizar detalle de POST /login y POST /message.
Objetivo: entender qué es un sniffer y cómo se ven los paquetes en texto plano.
20–40 min
🧪 Laboratorio
Completar los 4 ejercicios (A, B, C, D) con datos ficticios propios.
Objetivo: ver en primera persona cómo viajan los datos en HTTP.
40–55 min
⚔️ HTTP vs HTTPS
Leer la comparativa, completar la tabla, estudiar el TLS Handshake.
Objetivo: comprender qué protege TLS y cómo funciona el cifrado.
55–70 min
🖼️ Reconstrucción
Revisar archivos recuperados, leer el proceso técnico, estudiar el código Scapy.
Objetivo: entender el impacto real del sniffing sobre archivos e imágenes.
70–85 min
📚 Teoría
Leer ataques y buenas prácticas. Completar el mapa de ataques.
Objetivo: consolidar el marco teórico del módulo de seguridad.
85–90 min
— Cierre
Exportar la captura (💾) y responder las preguntas de reflexión de cada práctica.
Objetivo: generar los entregables para la evaluación.

08 Entregables y Evaluación

Entregables obligatorios

  • El archivo JSON exportado desde el Sniffer (botón 💾 Exportar), con al menos 6 paquetes capturados incluyendo al menos un POST con datos sensibles.
  • El cuaderno o documento con todas las preguntas de reflexión respondidas (Prácticas 1, 2, 3 y 4).
  • La tabla comparativa HTTP vs HTTPS completada (Sección 4.2 de este manual).
  • El mapa de ataques completado (Sección 6 de este manual).

Rúbrica de evaluación

CriterioPuntosIndicador
Captura correcta: JSON con ≥6 paquetes, al menos un POST con credenciales.2 ptsEntregable 1
Preguntas de reflexión respondidas correctamente (mínimo 3 de cada práctica).4 ptsEntregable 2
Tabla comparativa HTTP vs HTTPS completa y sin errores.2 ptsEntregable 3
Mapa de ataques completo con herramientas correctas.2 ptsEntregable 4
⚠  Aviso legal y ético

Todo lo aprendido en este laboratorio debe aplicarse EXCLUSIVAMENTE en entornos con autorización explícita.

Realizar sniffing de red, ataques MITM o captura de tráfico en redes ajenas es ILEGAL en la mayoría de países y puede constituir un delito informático penado por el Código Penal.

El objetivo de esta práctica es entender los ataques para DEFENDERSE de ellos.