Caso Práctico DS1: Análisis de Tráfico Web y Login con Wireshark (2)

Aprender a capturar y analizar tráfico de red con Wireshark, identificar credenciales transmitidas en claro, interpretar paquetes HTTP y localizar patrones que un pentester o analista usaría para detectar:

  • Credenciales expuestas
  • Cookies de sesión
  • Estructura de peticiones al servidor
  • Intentos de ataque (básico)
  • Fingerprinting indirecto del hosting

1. Preparación del entorno

1.1. Material necesario

  • Wireshark instalado
  • Navegador web
  • La URL de vuestra aplicación PHP en el hosting

1.2. Configuración previa

  1. Abrir Wireshark
  2. Elegir la interfaz correcta:
    • En WiFi: suele ser wlan0 o similar
    • En cable: eth0
  3. Aplicad un filtro pre-captura opcional para no saturar: tcp port 80 or tcp port 443

2. Captura del tráfico (la parte divertida)

2.1. Comenzar la captura

  1. En Wireshark → seleccionad interfaz → botón azul Start capture.
  2. Dejad Wireshark escuchando en segundo plano.

2.2. Generar tráfico real

En vuestra aplicación PHP:

  1. Entrad en la página del login.
  2. Haced:
    • 1 intento fallido
    • 1 intento correcto
  3. Navegad un poco por el CRUD (listar, ver, editar).

Esto genera tráfico muy fácil de reconocer.


3. Filtrado y análisis del tráfico HTTP

3.1. Filtrar solo HTTP

En la barra de filtros de Wireshark:

http

Observad cómo aparecen las peticiones:

  • GET /login.php HTTP/1.1
  • POST /login.php HTTP/1.1
  • Peticiones a JS, CSS, etc.

Entrega:

  • Captura del primer filtro HTTP mostrando al menos 8–10 paquetes.

4. Análisis de un login (¡a por credenciales!)

Vamos a buscar el POST del login.

4.1. Filtro preciso del POST

http.request.method == "POST"

Seleccionad el paquete que corresponda a vuestro login.

4.2. Abrir el contenido del POST

En el panel inferior → Hypertext Transfer ProtocolForm-urlencoded.

Deberíais ver algo como:

username=juan
password=1234

(¡si la web no usa HTTPS y el hosting no lo fuerza!)

4.3. Preguntas para entregar

  1. ¿El login viaja en claro o cifrado?
  2. Si viaja cifrado, ¿qué aparece en su lugar?
  3. Si viaja en claro, copiáis:
    • usuario
    • contraseña
    • parámetros adicionales

💡 Esta parte impacta mucho: “Así de fácil es robar credenciales sin HTTPS.”


5. Análisis de cookies y sesión

5.1. Buscar cookies de sesión

Filtro:

http.set_cookie

o:

http.cookie

Localizad:

  • PHPSESSID=xxxxxxx u otro identificador.

5.2. Preguntas para entregar

  1. ¿La cookie tiene flags Secure, HttpOnly, SameSite?
  2. ¿Se envía en la misma petición del login?
  3. ¿Se reutiliza durante toda la sesión?
  4. ¿Podríais robarla si el tráfico no fuese HTTPS?

6. Identificación de servidor y tecnologías mediante tráfico

Aunque no usemos WhatWeb, Wireshark también revela cosas interesantes.

6.1. Buscad cabeceras del servidor

Filtro:

http.server

y:

http.response

Podéis encontrar:

  • Server: Apache/2.4.54
  • X-Powered-By: PHP/8.1.12

7. Detectar patrones de ataque (mini-reto)

Ahora vamos a “jugar” con el tráfico que vosotros mismos habéis generado.

Hacer desde otra máquina:

  • un par de intentos de fuerza bruta
  • navegación rara
  • errores 404
  • probad rutas prohibidas

7.1. Filtrar errores del servidor

http.response.code >= 400

7.2. Preguntas

  1. ¿Qué tipo de errores aparecen más?
  2. ¿Alguna IP destaca como “sospechosa”?
  3. ¿Puedes reconstruir qué intentaba hacer ese cliente?
    (por ejemplo: intentar acceder a /admin/ o /backup/)

8. Bonus: reconstrucción de sesión (Follow TCP Stream)

Seleccionad cualquier paquete HTTP → botón derecho:

Follow → TCP Stream

Miraréis la conversación completa entre cliente y servidor como si fuese un chat textual.

Entrega:

  1. Captura del stream
  2. Comentad:
    • ¿Qué información sensible se ve?
    • ¿Podríais reproducir manualmente alguna petición?

9. Conclusiones finales (informe corto)

Cada alumno debe redactar:

9.1. Hallazgos importantes

  • ¿Se ven credenciales?
  • ¿Se identifican cookies inseguras?
  • ¿Qué tecnologías se filtran?
  • ¿Alguna ruta interesante/extraña?

9.2. Riesgos detectados

3 riesgos mínimos (exposición de tecnología, falta de HTTPS, cookies inseguras…)

9.3. Recomendaciones

3 medidas de mejora:

  • Forzar HTTPS
  • Ocultar versión del servidor
  • Flag HttpOnly en cookies
  • Deshabilitar rutas innecesarias