Este writeup tiene fines educativos y de práctica profesional. Las respuestas corresponden al laboratorio público de CyberDefenders. Los dominios, direcciones IP, archivos maliciosos y hashes mostrados pertenecen al escenario controlado del reto, no a infraestructura real. El análisis de malware presentado es exclusivamente para formación en forense de red. No se debe intentar descargar, ejecutar ni distribuir ninguno de los artefactos maliciosos mencionados.
0x00 — Introducción
Noveno post de la serie de laboratorios de CyberDefenders. En esta ocasión analizamos DanaBot, un laboratorio de Network Forensics donde investigamos un compromiso que involucra al banking trojan DanaBot y la exfiltración de información confidencial.
El escenario comienza cuando el equipo de SOC detecta actividad sospechosa en el tráfico de red, revelando que una máquina ha sido comprometida y se ha robado información confidencial de la empresa.
Mi misión es utilizar archivos PCAP e inteligencia de amenazas para investigar el incidente y determinar cómo ocurrió el compromiso.
A lo largo de la investigación utilizaremos Wireshark para extraer y analizar artefactos críticos de red, desofuscaremos código JavaScript malicioso, rastrearemos la comunicación con servidores C2, identificaremos los archivos descargados por el malware y calcularemos hashes para validación de IOCs.
Este análisis cubre las fases de acceso inicial, ejecución y persistencia del ataque.
0x01 — El Escenario
| Elemento | Detalle |
|---|---|
| Amenaza | DanaBot — Banking Trojan modular |
| Alerta inicial | Actividad sospechosa detectada en tráfico de red |
| Impacto | Máquina comprometida + exfiltración de datos confidenciales |
| Evidencia | Archivo PCAP con tráfico HTTP malicioso |
| Herramientas | Wireshark, deobfuscators online, file/strings commands |
| Misión | Identificar IP del atacante, archivos maliciosos, TTPs y calcular hashes IOC |
0x02 — Análisis
Q1
¿Qué dirección IP utilizó el atacante durante el acceso inicial?
Lo primero que hago con cualquier PCAP es mirar las consultas DNS. Suele ser lo más rápido para localizar el C2.
Aplicando el filtro dns en Wireshark, identificamos una solicitud DNS realizada al dominio portfolio.serveirc.com.
La respuesta a esta consulta devuelve la dirección IP 62.173.142.148.
Toca validar el dominio. Una consulta rápida en threat intelligence y queda flaggeado como malicioso, como era de esperar.
El análisis de la IP muestra que está localizada en Rusia (AS 34300 - Internet-Cosmos LLC) y ha sido marcada por Fortinet como relacionada con malware.
Esta IP corresponde al servidor de comando y control (C2) desde el cual se descargó el malware inicial.
RESPUESTA Q1
Respuesta: 62.173.142.148
Q2
¿Cuál es el nombre del archivo malicioso utilizado para el acceso inicial?
A por los objetos HTTP. En Wireshark: File → Export Objects → HTTP. Ahí está todo lo que el atacante sirvió al navegador.
En la lista de objetos HTTP exportados, encontramos un archivo llamado login.php que destaca por tener el tipo de contenido application/octet-stream, lo que indica que podría no ser un archivo PHP legítimo sino datos binarios sin procesar.
Un .php servido como application/octet-stream no es PHP, es un payload. Clásico.
Para validar la naturaleza del archivo, lo exportamos y lo analizamos.
Al inspeccionar el flujo HTTP que sirvió este archivo, encontramos información crítica.
El flujo HTTP revela que la respuesta del servidor incluye un encabezado Content-Disposition que específica el nombre del archivo como allegato_708.js, indicando que se trata de un archivo JavaScript servido como adjunto.
El cuerpo de la respuesta contiene código JavaScript altamente ofuscado, caracterizado por nombres de variables largos y caracteres aleatorios.
Ofuscación de manual: nombres de variables aleatorios, strings codificadas… lo de siempre para dificultar el análisis estático.
RESPUESTA Q2
Respuesta: allegato_708.js
Q3
¿Cuál es el hash SHA-256 del archivo malicioso utilizado para el acceso inicial?
Exporto el archivo del PCAP y calculo el hash. Tarda menos en ejecutarse que en escribirlo.
sha256sum login.php
Con el hash en mano, lo busco en VirusTotal o cualquier plataforma de threat intelligence para confirmar que es malware conocido.
RESPUESTA Q3
Respuesta: 847b4ad90b1daba2d9117a8e05776f3f902dda593fb1252289538acf476c4268
Q4
¿Qué proceso se utilizó para ejecutar el archivo malicioso?
El JS está ofuscado, así que toca desofuscarlo. Cargo el código en un deobfuscator online a ver qué hay debajo.
El script desofuscado revela que aprovecha objetos WScript como WScript.CreateObject y WScript.Shell, que son parte integral de la funcionalidad de Windows Script Host (WSH).
El script llama a WScript.CreateObject y WScript.Shell, así que el proceso que ejecuta el payload es WScript.exe. Es el motor de WSH para scripts con interfaz de ventana (CScript.exe sería el equivalente en línea de comandos).
Usa WScript.CreateObject para crear un objeto HTTP, descargar el siguiente stage y ejecutarlo. WSH como primera etapa es un clásico que sigue funcionando.
RESPUESTA Q4
Respuesta: WScript.exe
Q5
¿Cuál es la extensión del segundo archivo malicioso utilizado por el atacante?
El código desofuscado deja claro lo que hace el malware. Paso a paso:
- Genera un nombre de archivo aleatorio de 10 caracteres y le añade la extensión .dll
- Descarga un archivo desde http://soundata.top/resources.dll
- Guarda el archivo descargado en la carpeta temporal del usuario
- Ejecuta el DLL utilizando rundll32.exe llamando a la función start
- Se auto-elimina para borrar rastros de su ejecución
El segundo archivo malicioso descargado por el script es resources.dll, que representa la carga útil principal del ataque.
Un DLL servido por HTTP y ejecutado con rundll32. Sencillo y efectivo, por desgracia.
RESPUESTA Q5
Respuesta: .dll
Q6
¿Cuál es el hash MD5 del segundo archivo malicioso?
Mismo proceso que antes: exporto resources.dll del PCAP y le paso md5sum.
md5sum resources.dll
MD5 tiene sus problemas de colisión, sí, pero sigue siendo el estándar de facto para compartir IOCs. A VirusTotal le da igual que sea MD5 o SHA-256, lo indexa todo.
RESPUESTA Q6
Respuesta: e758e07113016aca55d9eda2b0ffeebe
0x03 — Cadena de Infección
| Fase | Acción | Detalle técnico / IOC |
|---|---|---|
| 1. Acceso inicial | Descarga de JavaScript malicioso | portfolio.serveirc.com → 62.173.142.148allegato_708.js (login.php) |
| 2. Ejecución | WScript.exe procesa JavaScript | SHA-256: 847b4ad90b1daba2d…Código ofuscado → desofuscado |
| 3. Descarga Stage 2 | Script descarga DLL desde C2 | soundata.top/resources.dllHTTP GET request |
| 4. Persistencia | Ejecuta DLL con rundll32.exe | MD5: e758e07113016aca55d9eda2b0ffeeberundll32.exe [random].dll,start |
| 5. Anti-forense | Script se auto-elimina | Borra allegato_708.js del disco |
| 6. Payload final | DanaBot activo en el sistema | Banking Trojan modular + exfiltración |
0x04 — Lecciones Aprendidas
- Ofuscación de JavaScript como evasión
El malware utiliza ofuscación pesada para ocultar su funcionalidad y evadir detección.
Los nombres de variables aleatorios, strings codificados y estructuras complejas dificultan el análisis estático.
Las herramientas de desofuscación online son fundamentales para revelar la verdadera lógica del código malicioso.
- application/octet-stream como bandera roja
El tipo MIME application/octet-stream en archivos con extensiones aparentemente legítimas (como .php) es un indicador de actividad sospechosa.
Los atacantes lo utilizan para servir datos binarios arbitrarios y evadir filtros de tipo de contenido.
Monitorizar descargas con este content-type desde dominios externos debe ser prioridad.
- WScript.exe como vector de ejecución
Windows Script Host (WScript.exe/CScript.exe) es constantemente abusado para ejecutar código malicioso en JScript y VBScript.
Restringir su ejecución mediante políticas de software (AppLocker, WDAC) o deshabilitar WSH en sistemas que no lo requieren reduce significativamente la superficie de ataque.
- Cadenas de infección multi-etapa
DanaBot utiliza una cadena de infección de múltiples etapas: JavaScript downloader → DLL payload → banking trojan.
Cada etapa tiene un propósito específico y facilita la evasión.
Los sistemas de detección deben monitorizar toda la cadena, no solo el payload final, para detectar la infección en sus primeras fases.
- Hashes como IOCs fundamentales
Los hashes criptográficos (MD5, SHA-1, SHA-256) son los IOCs más básicos y efectivos para identificar malware.
Calcular y documentar hashes de artefactos maliciosos permite compartir inteligencia sin distribuir el malware, buscar en bases de datos de amenazas y crear reglas de detección en EDR/XDR.
- Análisis de PCAP para reconstruir ataques
El análisis de tráfico de red capturado permite reconstruir ataques completos incluso cuando el malware se ha auto-eliminado del disco.
Wireshark y la función Export Objects → HTTP permiten recuperar archivos maliciosos, identificar C2 servers y entender las comunicaciones del malware.
Las capturas de red son evidencia forense crítica.
[EOF] “Obfuscation hides malware — deobfuscation reveals the truth”