AVILX
THREAT INTELLIGENCE REPORT · MALWARE ANALYSIS · 2026
AgentTesla
Malware Analysis & Threat Intelligence Report
Análisis completo de un RAT/Infostealer .NET — análisis estático con dnSpyEx, análisis dinámico con ANY.RUN, extracción de config cifrada, IoCs, MITRE ATT&CK y reglas YARA.
| Tipo de amenaza | RAT / Infostealer |
| Lenguaje | .NET (C#) |
| Plataforma | Windows PE32 |
| Familia | AgentTesla |
| Fuente | MalwareBazaar |
| Herramientas | dnSpyEx · x64dbg · ANY.RUN · Python |
| Analista | Jesús Ávila (Avilx) |
| Fecha | 06 de Octubre 2026 |
| Portafolio | avilx.dev |
Documentación de análisis de malware | Entorno aislado controlado
Resumen Ejecutivo
AgentTesla es un RAT (Remote Access Trojan) e infostealer comercial activo desde 2014, vendido en foros underground como Malware-as-a-Service por precios que van desde $15 hasta $69 USD por suscripción mensual. Es uno de los malware más distribuidos globalmente, consistentemente en el top 10 de familias de malware más detectadas según reportes de Cofense, ANY.RUN y Check Point.
Capacidades principales
-
Keylogging — captura todas las pulsaciones del teclado
-
Robo de credenciales — más de 70 aplicaciones: Chrome, Firefox, Outlook, Thunderbird, FileZilla, WinSCP, OpenVPN, y más
-
Captura de pantalla — screenshots periódicos del escritorio
-
Clipboard hijacking — monitoreo del portapapeles
-
Exfiltración — vía SMTP, FTP, HTTP o Telegram Bot API
Entorno de Análisis
Infraestructura
| Componente | Especificación |
|---|---|
| Host | BlackArch Linux, kernel 7.2.7-arch1-1, AMD64 |
| Hipervisor | KVM/QEMU con virt-manager 12.7.0 (libvirt) |
| VM Análisis | Windows 10 Enterprise 22H2 (Evaluation, 90 días) |
| Disco VMs | /dev/nvme0n1 --- 238 GB ext4, montado en /mnt/vms |
| Red setup | NAT 192.168.122.0/24 --- internet durante instalación |
| Red análisis | Aislada --- sin internet durante ejecución del malware |
| Sandbox online | Any.run (tier gratuito) |
El plan original contemplaba VirtualBox o VMware como hipervisor. Durante el setup,
virtualbox-host-modules-arch no existía para el kernel 7.2.7, y VMware falló por dependencias faltantes (vmware-keymaps). Se adoptó KVM/QEMU por ser nativo al kernel Linux, sin módulos externos que compilar ni que se rompan con actualizaciones.Preparación del entorno Windows
Para evitar que Windows Defender interfiera durante el análisis, se desactivaron las protecciones en tiempo real y se agregaron exclusiones sobre las carpetas de trabajo.
# PowerShell como Administrador
Set-MpPreference -DisableRealtimeMonitoring $true
Set-MpPreference -DisableIOAVProtection $true
Set-MpPreference -DisableBehaviorMonitoring $true
New-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows Defender" `
-Name "DisableAntiSpyware" -Value 1 -PropertyType DWORD -Force
Add-MpPreference -ExclusionPath "C:\Users\Flare-Malware\Downloads"
Add-MpPreference -ExclusionPath "C:\Tools"
Herramientas
| Herramienta | Entorno | Uso |
|---|---|---|
| dnSpyEx | VM Windows | Decompilador .NET |
| de4dot | VM Windows | Deobfuscador .NET |
| x64dbg | VM Windows | Debugger dinámico |
| Process Monitor | VM Windows | Actividad de archivos y registro |
| Wireshark | VM Windows | Captura de red |
| DetectItEasy | VM Windows | Identificar packer |
| file / strings | BlackArch | Reconocimiento estático |
| checksec | BlackArch | Mitigaciones del PE |
| Python | BlackArch | Scripts de extracción |
| Any.run | Online | Sandbox dinámico |
Obtención del sample
SHA256 verificado en tres puntos: MalwareBazaar, VM Windows y BlackArch. Nombre original:
Shipment_Invoice_and_Packing_List.com.exe. Señuelo de factura de envío dirigido a empresas — vector de phishing típico de AgentTesla. El imphash coincide con muestras de Formbook y SnakeKeylogger, indicando un loader o empaquetador compartido.Flujo de red: NAT activo durante instalación de herramientas → descarga del sample → verificación SHA256 → aislamiento de red con
virsh detach-interface → ejecución del malware.Transferencia al host para análisis estático
Para correr file, strings y checksec desde BlackArch sin riesgo de ejecución, el sample fue transferido al host vía HTTP usando el servidor embebido de Python en la VM.
Un ejecutable PE32 de Windows no puede ejecutarse en Linux sin Wine. La transferencia al host para análisis estático es segura porque
file, strings y checksec solo leen bytes del binario, nunca lo ejecutan.Fase 1: Reconocimiento Estático
Identificación del binario
Black4rch # file sample.exe
sample.exe: PE32 executable for MS Windows 6.00 (GUI),
Intel i386 Mono/.Net assembly, 3 sections
El binario es un
PE32 executable, Intel i386, Mono/.Net assembly con 3 secciones. Compilado para 32 bits para maximizar compatibilidad con infraestructura legacy. Las 3 secciones estándar de .NET (.text, .rsrc, .reloc) sugieren ausencia de packer externo — aunque puede existir ofuscación interna. Confirmar con DetectItEasy.Mitigaciones del PE
Black4rch # winchecksec sample.exe
Warn: No load config in the PE
Results for: sample.exe
Dynamic Base : "Present"
ASLR : "Present"
High Entropy VA : "Present"
Force Integrity : "NotPresent"
Isolation : "Present"
NX : "Present"
SEH : "NotPresent"
CFG : "NotPresent"
RFG : "NotPresent"
SafeSEH : "NotPresent"
GS : "NotPresent"
Authenticode : "NotPresent"
.NET : "Present"
ASLR y NX presentes — mitigaciones básicas activas. SEH y GS ausentes porque el CLR (Common Language Runtime) gestiona excepciones y memoria internamente, sin necesidad de los mecanismos nativos de Windows. Authenticode ausente — el binario no está firmado digitalmente, típico de malware.
.NET: Present confirma que el CLR ejecutará el código y que dnSpyEx podrá decompilarlo a C# casi perfectamente.Strings relevantes
Black4rch # strings -a sample.exe | grep -iE \
"smtp|ftp|telegram|password|aes|key" | head -50
lSystem.Resources.ResourceReader, mscorlib, Version=4.0.0.0...
lSystem.Resources.ResourceReader, mscorlib, Version=4.0.0.0...
[solo referencias al runtime de .NET -- sin strings de C2 en claro]
No se encontraron strings de configuración en claro (SMTP, FTP, AES, passwords). Solo referencias al runtime de .NET (
mscorlib, System.Resources.Runtime ResourceSet). La configuración está cifrada o almacenada en recursos embebidos. Confirmar con FLOSS y dnSpyEx.FLOSS — strings ofuscadas
Black4rch # floss sample.exe 2>/dev/null | grep -iE \
"smtp|ftp|telegram|password|aes|key|mail|host|port|http"
http://semaforhatti.yerel/semalar
OrtalamaIletimSuresiSaniye
RaporTarihi
ISupportInitialize
FLOSS revela una URL interna:
http://semaforhatti.yerel/semalar y strings en turco (OrtalamaIletimSuresiSaniye = promedio de tiempo de transmisión en segundos, RaporTarihi = fecha del reporte). Indica que el operador o el objetivo es de origen turco. La URL .yerel es un dominio local turco — posible infraestructura C2 interna o artefacto del builder.La configuración real del C2 está cifrada dentro del bytecode ofuscado en
.text, no en los recursos embebidos. Requiere análisis en dnSpyEx para localizarla y extraerla.Análisis de estructura PE con pefile
Black4rch # python3 -c "
import pefile
pe = pefile.PE('sample.exe')
print('=== SECCIONES ===')
for s in pe.sections:
print(s.Name.decode().strip(),
'VirtualSize:', hex(s.Misc_VirtualSize),
'Entropy:', s.get_entropy())
print()
print('=== IMPORTS ===')
if hasattr(pe, 'DIRECTORY_ENTRY_IMPORT'):
for lib in pe.DIRECTORY_ENTRY_IMPORT:
print(lib.dll.decode())
for imp in lib.imports:
if imp.name:
print(' ->', imp.name.decode())
"
=== SECCIONES ===
.text VirtualSize: 0xbeb14 Entropy: 7.657726995689024
.rsrc VirtualSize: 0x61c Entropy: 3.462825542308141
.reloc VirtualSize: 0xc Entropy: 0.07763316234324169
=== IMPORTS ===
mscoree.dll
-> _CorExeMain
La sección
.text tiene entropía 7.65, indicando código ofuscado internamente. La sección .rsrc tiene entropía 3.46 — datos sin cifrar — lo que descarta que la configuración AES esté en los recursos. Por lo tanto la configuración cifrada vive dentro de .text, mezclada con el bytecode ofuscado. El único import nativo es _CorExeMain, descartando un stub desempaquetador nativo previo al CLR. Todo el código malicioso opera dentro del runtime .NET.Detección de packer o protector
DIE confirma: lenguaje MSIL/C#, .NET Framework v4.5, CLR v4.0.30319. Protector identificado: .NET Reactor 6.X con
Control Flow + Anti-ILDASM. Ofuscación heurística: Modified EP, CLR constructor alterado, Anti-ILDASM, control flow falso, nombres cortos y fake .cctor. La sección .text comprimida confirma la entropía 7.65 observada con pefile. Requiere deofuscación con de4dot antes de analizar en dnSpyEx.
NETReactorSlayer confirma .NET Reactor como protector y aplica limpieza específica: 102 ecuaciones de control flow resueltas y 24 llamadas al ofuscador eliminadas. No se encontraron strings ni métodos cifrados activos — la protección principal era el control flow y el renombrado de símbolos. Output:
e76c5c...4768_Slayed.exe.Análisis del ensamblado .NET con dnSpyEx
Los metadatos del ensamblado revelan la identidad falsa del malware:
AssemblyCompany = "SemaphoreLine Systems", AssemblyTitle = "SemaphoreLine", AssemblyDescription = "Semafor Hatti Optik Telgraf Simulasyonu" (turco: Simulación de Telégrafo Óptico de Línea de Semáforo). El malware se hace pasar por software legítimo de simulación de infraestructura de semáforos turca. Esto conecta directamente con la URL encontrada en FLOSS (http://semaforhatti.yerel/semalar) y con el nombre del archivo señuelo (Shipment_Invoice_and_Packing_List.com.exe). También se confirma SuppressIldasm en el metadata — la protección Anti-ILDASM detectada por DIE.
El Assembly Explorer muestra 18 clases con nombres ofuscados (
CH8, CmA, CO4, etc.), confirmando que NETReactorSlayer limpió el control flow pero no restauró los nombres. Namespace del ensamblado: Zsbw — nombre ofuscado del proyecto.
SemaphoreLine.Properties solo contiene recursos gráficos del simulador. La configuración de AgentTesla no está en los recursos.
El entry point lanza directamente el formulario del simulador. No hay stub nativo ni descifrador previo al CLR — consistente con el único import
_CorExeMain encontrado en el análisis estático.
La clase principal
RMT inicializa un simulador completamente funcional con strings históricas en turco y francés. No hay referencias a SmtpClient, WebClient ni operaciones de cifrado en este nivel.
La clase
NZ es la configuración del simulador de telégrafo óptico, no de AgentTesla. Parámetros completamente funcionales: ruta "Paris - Lille Optik Hattı", 6 estaciones, 12.5 km de separación, tiempo de respuesta 1200ms. El software falso está completamente desarrollado — no es un disfraz superficial.
La URL
http://semaforhatti.yerel/semalar encontrada en FLOSS no es infraestructura C2 — es el namespace XML del validador de esquemas del simulador, confirmado en yfo.pfn(). Se descarta como IOC.
El campo
Qcd (configuración NZ) solo es consumido por el método de renderizado gráfico OnPaint. No hay ninguna clase que use la configuración para operaciones de red, cifrado o exfiltración.Búsqueda de configuración y lógica maliciosa
La búsqueda de
SmtpClient, WebClient, AesCryptoServiceProvider, NetworkCredential y Assembly.Load en el ensamblado no produjo resultados. Todo el código visible corresponde al simulador de telégrafo: NZ (configuración), yfo (reportes XML), Cci (interfaz gráfica), jp (condiciones climáticas).La carga maliciosa de AgentTesla no es visible en análisis estático. El sample usa inyección de código en runtime — el simulador arranca aparentando ser software legítimo y carga el payload de AgentTesla en memoria. Confirmar en Fase 2 con Process Monitor y Wireshark.
Sandbox online: Any.run
El malware lanza 4 instancias de
sample.exe. PID 3712 es el inicial (padre explorer.exe — ejecución por doble clic del usuario). Los PIDs 2152 y 4836 terminan con exit code 0xFFFFFFFF (terminación anormal — intentos fallidos de auto-inyección). PID 1340 es el payload AgentTesla confirmado via YARA en memory dump.
Any.run extrae la configuración completa de AgentTesla en runtime, invisible en análisis estático. Protocolo de exfiltración: SMTP via
smtp.yandex.com:587. Servidor ruso legítimo usado para evadir firewalls corporativos. Buzón: pungenteporte@ libero.ga — dominio .ga (Gabón) imita libero.it (typosquatting).Indicios de origen en África Occidental: dominio
.ga, typosquatting sobre libero.it, contraseña con frase religiosa cristiana (graceofgod@amen) — patrón documentado en grupos BEC de Nigeria y Ghana. No confirmado — requiere OSINT adicional.Credenciales del buzón de exfiltración redactadas en la versión pública. El buzón probablemente pertenece a una víctima comprometida, no al atacante directamente.
Ruta de ejecución:
C:\Users\ admin\AppData\Local\ Temp\sample.exe — directorio escribible sin privilegios de administrador. Técnica clásica de AgentTesla para ejecutar sin elevar permisos.
PIDs 2152 y 4836 terminaron con
0xFFFFFFFF — intentos fallidos de auto-inyección antes de que PID 1340 lograra ejecutar el payload. El malware usa reintentos como mecanismo de resiliencia.Análisis dinámico en VM Windows
Process Monitor
Process Monitor confirma ejecución del sample:
Thread Create exitoso desde el proceso del malware. El ejecutable fue lanzado por Explorer.EXE (doble clic) y creó hilos activos.Wireshark
Wireshark captura pings ICMP a
8.8.8.8 (Google DNS) generados por el malware — check de conectividad previo al intento de exfiltración SMTP. El proceso terminó al no poder establecer conexión con smtp.yandex.com:587 en el entorno simulado. Análisis dinámico completo confirmado via Any.run.Debugging con dnSpyEx
El debug con dnSpyEx confirmó el flujo de ejecución completo: Entry Point (
Ay()) → constructor RMT() → módulo de protección .NET Reactor → constructor NZ() con valores del simulador en memoria ("Paris - Lille Optik Hattı", IstasyonSayisi = 6, KodKumesi = BHZ.Chappe192). No se encontraron checks de anti-VM en el código — el malware requiere conectividad real a smtp.yandex.com:587 para completar la ejecución. Sin esa conexión el proceso queda en espera indefinida.Fase 3: Threat Intelligence
IOCs
| Tipo | Valor | Fuente |
|---|---|---|
| SHA256 | e76c5c79066d31f5e84b172d61ba575926a | |
| ``` | ||
| 18505efa47a9d9a0c7c1c0ced4768 | MalwareBazaar | |
| ``` | ||
| MD5 | 0a7527626bfbc9702ad9fe8428889361 | MalwareBazaar |
| SHA1 | 6eddd24221c19404b63350c2aee80bf919577d69 | MalwareBazaar |
| SSDEEP | 24576:DgAW/z44/bHJRKEuRvVzh55CFVJe\... | MalwareBazaar |
| Servidor SMTP | smtp.yandex.com | Any.run |
| Puerto | 587 | Any.run |
| Buzón exfil | [email protected] | Any.run |
| Ruta | C:\\Users\\admin\\ AppData\\Local\\Temp\\ sample.exe | Any.run |
| Nombre interno | Zsbw.exe | dnSpyEx |
| Company falsa | SemaphoreLine Systems | dnSpyEx |
| Archivo original | Shipment_Invoice_and_Packing_List.com.exe | MalwareBazaar |
No se encontraron Mutex ni claves de registro en el análisis dinámico local — el malware no completó la ejecución por falta de conectividad a
smtp.yandex.com:587. Datos de comportamiento completos disponibles en el reporte de Any.run: https://app.any.run /tasks/9dc5deb2-bbd4-45f1-8a66-e4f208d173cdInfraestructura C2
Black4rch # dig smtp.yandex.com
;; ANSWER SECTION:
smtp.yandex.com. 600 IN CNAME smtp.yandex.ru.
smtp.yandex.ru. 600 IN A 77.88.21.158
El servidor de exfiltración
smtp.yandex.com resuelve via CNAME a smtp.yandex.ru con IP 77.88.21.158, perteneciente a Yandex LLC (AS13238, Rusia). Es infraestructura legítima — 0/91 detecciones en VirusTotal. Esta es la técnica central de AgentTesla: usar servicios de email legítimos para exfiltrar datos y evadir firewalls corporativos que no bloquean tráfico SMTP saliente a proveedores conocidos. El buzón [email protected] no aparece en ThreatFox — posiblemente una cuenta comprometida recientemente.Resolución DNS:
smtp.yandex.com → CNAME smtp.yandex.ru → A 77.88.21.158. TTL: 600 segundos.Campañas relacionadas
MalwareBazaar confirma el vector de distribución: Malspam — correo spam con adjunto malicioso ejecutable. Esto es consistente con el nombre del archivo señuelo
Shipment_Invoice_and_Packing_List.com.exe — una factura de envío falsa dirigida a empresas de logística o compras. El sample no está asociado a ninguna campaña nombrada en las bases de datos públicas consultadas (MalwareBazaar, ThreatFox). Análisis adicional disponible en Cape Sandbox: https://www.capesandbox.com/analysis/89979/MITRE ATT&CK
| Técnica | Descripción | Observado |
|---|---|---|
| T1566.001 | Phishing: Spearphishing Attachment | Nombre de archivo señuelo: factura de envío |
| T1027 | Obfuscated Files or Information | .NET Reactor 6.X: control flow, Anti-ILDASM, nombres ofuscados |
| T1055 | Process Injection | 4 instancias de sample.exe --- auto-inyección confirmada (Any.run) |
| T1056.001 | Keylogging | Capacidad documentada de AgentTesla --- no observada en entorno de prueba |
| T1555 | Credentials from Password Stores | Capacidad documentada --- no observada en entorno de prueba |
| T1071.003 | Mail Protocols (SMTP) | Exfiltración via smtp.yandex.com:587 --- confirmado Any.run |
| T1036 | Masquerading | Software falso SemaphoreLine Systems, nombre de archivo .com.exe |
| T1547.001 | Registry Run Keys / Startup Folder | No observado --- malware no completó ejecución |
| T1497 | Virtualization/Sandbox Evasion | Requiere conectividad real --- no ejecuta en entorno simulado |
| T1140 | Deobfuscate/Decode Files | Config AES descifrada en runtime --- visible solo en memory dump |
Las técnicas marcadas como "no observadas en entorno de prueba" son capacidades documentadas de AgentTesla confirmadas en reportes públicos y en el análisis de Any.run. No se observaron directamente en el análisis dinámico local por falta de conectividad al C2.
YARA Rules
Regla específica: AgentTesla_SemaphoreLine_Specific_2026
import "pe"
import "dotnet"
import "math"
rule AgentTesla_SemaphoreLine_Specific_2026
{
meta:
author = "Jesus Avila (Avilx)"
date = "2026-10-05"
description = "Detecta AgentTesla disfrazado de software de
simulacion de telegrafo optico turco (SemaphoreLine)"
hash = "e76c5c79066d31f5e84b172d61ba575926a18505efa47a9d9a0c7c1c0ced4768"
tlp = "WHITE"
family = "AgentTesla"
strings:
// identidad falsa del binario
$s1 = "SemaphoreLine Systems" ascii wide
$s2 = "Semafor Hatti Optik Telgraf Simulasyonu" ascii wide
$s3 = "Zsbw" ascii wide
// C2 config cifrada en runtime - no visible en disco
// smtp.yandex.com, [email protected]
condition:
uint16(0) == 0x5A4D and
filesize < 2MB and
pe.number_of_sections == 3 and
pe.number_of_imports == 1 and
dotnet.is_dotnet and
math.entropy(pe.sections[0].raw_data_offset,
pe.sections[0].raw_data_size) > 7.5 and
all of ($s1, $s2, $s3)
}
Regla genérica: AgentTesla_Generic
import "pe"
import "dotnet"
import "math"
rule AgentTesla_Generic
{
meta:
author = "Jesus Avila (Avilx)"
date = "2026-10-05"
description = "Detecta variantes de AgentTesla con exfiltracion
SMTP y protector .NET Reactor"
tlp = "WHITE"
family = "AgentTesla"
condition:
uint16(0) == 0x5A4D and
filesize < 5MB and
pe.number_of_imports == 1 and
dotnet.is_dotnet and
math.entropy(pe.sections[0].raw_data_offset,
pe.sections[0].raw_data_size) > 7.0
}
Validación
Black4rch # yara agenttesla_semaphoreline.yar sample.exe
AgentTesla_SemaphoreLine_Specific_2026 sample.exe
Black4rch # yara agenttesla_semaphoreline.yar /usr/bin/ls
Black4rch # yara agenttesla_semaphoreline.yar /usr/bin/python3
Black4rch #
Black4rch # yara agentTesla_Generic.yar sample.exe
AgentTesla_Generic sample.exe
Black4rch # yara agentTesla_Generic.yar /usr/bin/ls
Black4rch # yara agentTesla_Generic.yar /usr/bin/python3
Black4rch #
Dos reglas YARA validadas contra el sample y binarios limpios sin falsos positivos. La regla específica detecta este sample exacto por sus strings únicas del disfraz turco. La regla genérica detecta cualquier variante de AgentTesla empaquetado con .NET Reactor basada en estructura PE: ensamblado .NET con un solo import nativo y entropía
.text mayor a 7.0.Cadena de ataque
Cadena de ataque completa
Recomendaciones
Vector de entrada — Malspam
-
Implementar capacitaciones periódicas de concienciación sobre phishing, con énfasis en adjuntos con doble extensión (
.com.exe,.pdf.exe) y nombres de archivo que simulan facturas o documentos de envío. -
Configurar el gateway de correo para bloquear ejecutables adjuntos (
.exe,.com,.scr) directamente desde el servidor de email. -
Habilitar la visualización de extensiones de archivo en Windows para que los usuarios vean la extensión real del archivo antes de ejecutarlo.
Método de exfiltración — SMTP
-
Bloquear o restringir tráfico SMTP saliente (puerto 587) a dominios no autorizados por la organización. Si el negocio no usa
smtp.yandex.comcomo servidor de correo, bloquearlo en el firewall perimetral. -
Implementar inspección de tráfico saliente (DLP) para detectar exfiltración de credenciales por email.
-
Monitorear conexiones SMTP salientes inusuales desde estaciones de trabajo — un endpoint nunca debería iniciar conexiones SMTP directamente.
Disfraz de software legítimo
-
Antes de ejecutar cualquier ejecutable recibido por email, verificar el hash en sandboxes públicos como Any.run o VirusTotal. Un archivo legítimo no debería requerir protectores como .NET Reactor.
-
Implementar una política de software autorizado (allowlisting) que impida la ejecución de binarios no firmados digitalmente por proveedores conocidos.
-
Desconfiar de software recibido por email con
Authenticode: NotPresent— software legítimo comercial siempre está firmado digitalmente.
Detección
-
Desplegar las reglas YARA desarrolladas en este análisis en el EDR corporativo para detectar variantes de AgentTesla: la regla específica (
AgentTesla_SemaphoreLine _Specific_2026) detecta este sample exacto y la regla genérica (AgentTesla_Generic) detecta variantes empaquetadas con .NET Reactor y alta entropía. -
Subir los IOCs (SHA256, servidor SMTP, buzón de exfiltración) a la plataforma de threat intelligence corporativa para correlación automática con futuros eventos.
Reflexión Final
Qué salió bien
Todas las herramientas utilizadas durante el análisis estático y dinámico funcionaron correctamente. El punto más destacado fue el análisis en Any.run, ver el malware ejecutarse en un entorno controlado, extraer la configuración SMTP completa y confirmar que era AgentTesla fue un momento muy motivador. A pesar de no encontrar la lógica maliciosa en dnSpyEx durante el análisis estático, Any.run confirmó que era un malware real, lo cual fue una lección importante sobre los límites del análisis estático frente al dinámico.
Otro hallazgo positivo fue entender por qué los autores de malware prefieren compilar en x32 y no x64: maximizar la compatibilidad con infraestructura legacy. Esto no lo sabía antes de comenzar el análisis.
Qué salió mal
El principal obstáculo fue que el malware no ejecutó correctamente en la VM local. A pesar de desactivar Windows Defender, el firewall y usar FakeNet-NG como red simulada, el proceso no completó la exfiltración. Esto limitó el análisis dinámico local y obligó a depender de Any.run para los hallazgos de comportamiento.
Otro problema fue que checksec no es compatible con binarios PE, solo funciona con ELF. Fue necesario instalar winchecksec como alternativa, lo cual no estaba contemplado inicialmente en el flujo de análisis.
También de4dot no reconoció .NET Reactor 6.X porque su base de datos data de 2011-2015. Fue necesario usar NETReactorSlayer como alternativa más actualizada.
Lecciones aprendidas
-
El análisis estático tiene límites claros con malware empaquetado. Cuando el código visible no muestra comportamiento malicioso, el análisis dinámico es indispensable para confirmar la amenaza.
-
Los autores de malware compilan en x32 para maximizar compatibilidad con sistemas legacy — un detalle técnico con implicaciones prácticas directas en el alcance del ataque.
-
Un malware puede estar tan bien disfrazado que el software falso sea funcionalmente completo. Este sample tenía una aplicación de simulación de telégrafo óptico turco completamente funcional, lo que dificultó identificar dónde estaba la lógica maliciosa.
-
Siempre verificar la compatibilidad de las herramientas con el formato del binario antes de iniciar el análisis.
checkseces para ELF,wincheckseces para PE. -
Invertir más tiempo en cada fase del análisis y documentar hipótesis antes de avanzar a la siguiente fase.
Tiempo total
Este análisis se realizó a lo largo de 4 días, combinando la configuración del laboratorio, el análisis estático, el análisis dinámico, la inteligencia de amenazas, las reglas YARA y la documentación del reporte. Para ser el primer análisis de malware real, el resultado fue satisfactorio. Los próximos análisis incorporarán mayor profundidad en cada fase y más tiempo de investigación en las herramientas disponibles.