// DanaBot — Análisis de troyanos bancarios 

// Network Forensics · Malware Investigation

// Dificultad: Easy

// Categoría: Network Forensics


DISCLAIMER

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.

SERIE // CyberDefenders Labs #09

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

ElementoDetalle
AmenazaDanaBot — Banking Trojan modular
Alerta inicialActividad sospechosa detectada en tráfico de red
ImpactoMáquina comprometida + exfiltración de datos confidenciales
EvidenciaArchivo PCAP con tráfico HTTP malicioso
HerramientasWireshark, deobfuscators online, file/strings commands
MisiónIdentificar IP del atacante, archivos maliciosos, TTPs y calcular hashes IOC

0x02 — Análisis

¿Qué dirección IP utilizó el atacante durante el acceso inicial?

Al analizar el archivo PCAP en Wireshark, comenzamos investigando las consultas DNS realizadas durante la captura. 

Las consultas DNS son un excelente punto de partida para identificar dominios maliciosos que el sistema comprometido intentó resolver.

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.

Para validar la naturaleza maliciosa de este dominio, buscamos en plataformas de threat intelligence. 

Al consultar el dominio en servicios de análisis, se identifica claramente como malicioso.

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: 62.173.142.148

¿Cuál es el nombre del archivo malicioso utilizado para el acceso inicial?

Para identificar el archivo malicioso utilizado en el acceso inicial, examinamos los objetos HTTP transferidos durante la captura. 

En Wireshark, navegamos a File → Export Objects → HTTP para ver todos los archivos descargados mediante HTTP.

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.

El tipo MIME application/octet-stream es un tipo de archivo binario genérico utilizado para representar datos sin procesar que no entran en categorías específicas. 

Es común en escenarios donde archivos maliciosos como ejecutables, scripts ofuscados o datos codificados se transfieren a través de HTTP para evadir mecanismos de detección.

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 especifica 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. 

Esta ofuscación es típica de malware que intenta ocultar su funcionalidad para evadir la detección y dificultar el análisis.

Respuesta: allegato_708.js

¿Cuál es el hash SHA-256 del archivo malicioso utilizado para el acceso inicial?

Para calcular el hash SHA-256 del archivo malicioso, primero lo exportamos desde Wireshark y lo guardamos como login.php

Luego utilizamos el comando sha256sum en Linux para obtener su huella criptográfica.

sha256sum login.php

El hash SHA-256 es un proceso criptográfico que toma una entrada (en este caso, el archivo login.php) y produce una cadena de caracteres de longitud fija, que es única para el contenido específico del archivo. 

Cualquier modificación, incluso de un solo byte, resultaría en un hash completamente diferente.

En ciberseguridad, los hashes se utilizan para verificar la integridad de archivos, identificar muestras de malware conocidas y compartir indicadores de compromiso (IOCs) sin distribuir el malware en sí mismo.

En este escenario, el hash SHA-256 sirve como huella digital del archivo malicioso, permitiendo su identificación y seguimiento en investigaciones de ciberseguridad. 

Los analistas pueden buscar este hash en bases de datos de threat intelligence para obtener información adicional sobre la amenaza.

Respuesta: 847b4ad90b1daba2d9117a8e05776f3f902dda593fb1252289538acf476c4268

¿Qué proceso se utilizó para ejecutar el archivo malicioso?

Para determinar qué proceso ejecutó el código JavaScript malicioso, primero necesitamos entender el contenido del archivo. 

Al analizar el JavaScript ofuscado, utilizamos herramientas de desofuscación online para revelar su verdadera funcionalidad.

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 proceso utilizado para ejecutar el código JavaScript malicioso es WScript.exe

Este es el motor de ejecución de Windows Script Host para scripts con interfaz de ventana (a diferencia de CScript.exe que es para línea de comandos).

Cuando se ejecuta el archivo JavaScript, WScript.exe procesa el código, iniciando los comandos integrados en él. 

El script utiliza WScript.CreateObject para invocar utilidades del sistema, como crear un objeto HTTP para descargar archivos adicionales y posteriormente ejecutar comandos.

Usar WScript.exe garantiza la compatibilidad con el entorno Windows y aprovecha las funciones de scripting integradas para ejecutar la carga útil maliciosa. 

Esta técnica es común en malware que utiliza JScript o VBScript como primera etapa del ataque.

Respuesta: WScript.exe

¿Cuál es la extensión del segundo archivo malicioso utilizado por el atacante?

Al analizar el código JavaScript desofuscado, podemos ver claramente las acciones que realiza el malware.

El script desofuscado revela que:

  • 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. 

Los archivos DLL (Dynamic Link Library) son bibliotecas de código que pueden ser cargadas y ejecutadas por procesos de Windows, lo que los hace un vector popular para distribución de malware.

Respuesta: .dll

¿Cuál es el hash MD5 del segundo archivo malicioso?

Para obtener el hash MD5 del segundo archivo malicioso, primero necesitamos extraerlo del tráfico de red capturado en el PCAP. Utilizando Wireshark, navegamos nuevamente a la función de exportación de objetos HTTP y guardamos el archivo resources.dll.

Una vez exportado el archivo, utilizamos el comando md5sum en Linux para calcular su hash MD5.

md5sum resources.dll

El hash MD5, aunque menos seguro que SHA-256 debido a su susceptibilidad a colisiones, sigue siendo ampliamente utilizado en la comunidad de seguridad para identificar muestras de malware y compartir IOCs. 

Muchas plataformas de threat intelligence y bases de datos de malware indexan archivos por sus hashes MD5 además de otros algoritmos.

Este hash puede ser buscado en plataformas como VirusTotal, Hybrid Analysis o bases de datos de malware para obtener información adicional sobre el comportamiento del DLL, campañas relacionadas y otros indicadores de compromiso asociados.

Respuesta: e758e07113016aca55d9eda2b0ffeebe

0x03 — Cadena de Infección

FaseAcciónDetalle técnico / IOC
1. Acceso inicialDescarga de JavaScript maliciosoportfolio.serveirc.com → 62.173.142.148
allegato_708.js (login.php)
2. EjecuciónWScript.exe procesa JavaScriptSHA-256: 847b4ad90b1daba2d...
Código ofuscado → desofuscado
3. Descarga Stage 2Script descarga DLL desde C2soundata.top/resources.dll
HTTP GET request
4. PersistenciaEjecuta DLL con rundll32.exeMD5: e758e07113016aca55d9eda2b0ffeebe
rundll32.exe [random].dll,start
5. Anti-forenseScript se auto-eliminaBorra allegato_708.js del disco
6. Payload finalDanaBot activo en el sistemaBanking Trojan modular + exfiltración

0x04 — Lecciones Aprendidas

1. 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.

2. 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.

3. 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.

4. 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.

5. 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.

6. 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"