Cada una va a contar la parte que le tocó. D IS CL AI ME R Fabi R. Cuenca M. Sol González Security Analyst Security Analyst LinkedIn @soleninternet Nadie resultó herido en la preparación de esta charla. O si?
un reporte de IA marcó la presencia de un infostealer SEÑALES QUE CORRELACIONÓ Defender Trojan:Win64/StealC.DA!MTB CASO PRIORIZADO Path sospechoso Descarga de un ejecutable StealC
identificó el StealC Contención Lo detuvo Correlación la IA armó el caso priorizado POR QUÉ NO LO DEJAMOS AHÍ Infostealer aunque esté frenado, la presencia ya es señal Solo IA ningún ojo humano lo había mirado en detalle Un medium la severidad no cuenta toda la historia analistas vieron la alerta. Llegó por el reporte de IA.
qué pasó realmente EL “PLAN” No confiar solo en la etiqueta de severidad ni en la IA Reconstruir el incidente de punta a punta Empezar por la telemetría, no por la muestra Recién después, abrir el binario
que varios para stalkear a su ex T+0 T+~3m T+3 a 12m T+~12m T+12m native-instruments[.]com rutracker[.]org Primer sitio de piratería patchedfiles · userscloud · plugintorrent · plugingrab HTTPS 259 MB + 188 MB Sitio oficial. Ve el precio. audioz · audiosex[.]pro · crackingpatching Foros warez y cracks File lockers y torrents Descarga del ZIP con el instalador
relanza a sí mismo 5 ejecuciones en total el resumen del caso decía 2 %TEMP%\<GUID>_Kontakt8.zip.f62\ \Downloads\ Kontakt8_v76_Win.exe └ Kontakt8_v76_Win.exe self-relaunch ─ = FLStudio2025_v50_Win.exe (mismo SHA-256) - VT
durante más de una hora 28,309 Conexiones HTTP salientes, desde el proceso ~7 / seg 16.6 MB 139.75 MB durante 64 min 55 s consistente con exfiltración después el proceso se calla Frecuencia sostenida Enviados Recibidos
rompecabezas Navegación / HTTP Antivirus / EDR Pivot del usuario legítimo a 8 sitios warez en 12 minutos StealC.DA!MTB y luego PowerShell Obfuse.PGOR!MTB bloqueado Flujos de red Sistema de archivos Descargas de 259 MB y 188 MB. Ráfaga de 28,309 conexiones Scripts .ps1 con nombre random y RyGkmppeEqha.exe en Roaming 1 host Ejecución de procesos Analytics de la plataforma 5 ejecuciones en Temp (ZIP) y Downloads, con self-relaunch Path sospechoso, descarga y beaconing
mano es .NET. Traducción: agarré el loader, no el stealer LO QUE VI LO QUE SABÍA C++ StealC está escrito en código nativo ≠ .NET Windows Forms, 1.59 MB, entropía 7.900: hay algo empaquetado adentro «¿Es StealC… o no es StealC?» El static dice .NET, el manual dice C++.
de fogatas. Que encima funciona perfecto UpdateFirePhysics() Física fuego, combustible y oxígeno Extras timers de cocina, chispas, diario de sesión Objetivo que nada parezca raro desde afuera UpdateSparks() Código decompilado en dnSpy: lógica real de simulación, no un stub.
· version resources ▪ afuera: FlameWatcher PEStudio · file metadata ▪ adentro: xzKv.exe Mismo hash Entropía 7.900 xzKv.exe · MyApplication.app 01 Aug 2026 11:56:24 UTC para los dos nombres de archivo hay algo empaquetado template genérico; observación de una sola muestra Post Operation Endgame
del binario: el código que acomoda los botones dnSpy · Program.Main() // frmFire.InitializeComponent() · entre labels y botones... this.xxa = frmFire.MonadicPixelFold.Fold(Resources.TY, 89088); Assembly assembly = AppDomain.CurrentDomain.Load(this.xxa.ToArray()); Type type = assembly.GetExportedTypes()[0]; EN CRIOLLO qKDt y TY en los recursos Agarra la imagen TY Saca 89,088 bytes de los recursos de sus píxeles Los carga como assembly .NET en memoria Nunca escribe un .dll en disco
¿Qué ven acá? ¿Es una imagen rota? ¿Es una textura de un videojuego? ¿Es arte generativo? Ninguna. Es un PE entero. 5.6–5.7 bits/byte de entropía, cerca del máximo de 8.0
leer los píxeles por columnas en vez de por filas lectura normal: filas C LA VE D E EVA SI ÓN 1 · Carga el bitmap TY o qKDt de sus propios recursos 2 · Lee por columnas for x… for y… al revés del orden estándar 3 · Extrae RGB cada canal de cada píxel es un byte 4 · Reconstruye el PE concatena bytes hasta armar el header MZ 5 · Carga en memoria AppDomain.Load, sin escribir a disco el loader: columnas El archivo es un bitmap válido: el antivirus lo trata como imagen benigna. TY se lee RGB por columnas sin cifrar; qKDt suma BGRA más un XOR con la clave rfq.
strings contaron la historia entera Str ecnatsnIetaerC ~~18804~~ C: \ builder_v3 CreateInstance escrito al revés Delimitador: 714B4474 → qKDt, 726671 → rfq Ruta de compilación del operador Firma del builder, no del payload Patrón de parseo del builder \ build \ json.h Leak de OpSec: confirma linaje v3
igual que el que abriste vos // Call stack capturado en vivo (WinDbg) KERNEL32!WriteProcessMemory PID 5740 PID 5640 · mismo binario SessionVault_Manager!MonitorThreadProc+0x12a SmartOptimization!Form1..ctor+0x8f mscorlib!Activator.CreateInstance 4f3c97948a...exe (Stage 1) 1 2 3 4 Suspendido Vaciado Escritura Reanudar crea un hijo con CREATE_SUSPEND ED NtUnmapViewOfSection sobre el hijo WriteProcessMemory mete el StealC x64 SetThreadContext + ResumeThread
LA CADENA . La imagen Con las piezas juntas armé un mapa detallado: tres de los cuatro stages nunca tocan disco C2 server Add-MpPreference Obfuscated PowerShell carga TY ejecuta User qKDt / rfq RGB 89,088 B FLStudio2025_ v50_Win.exe Bitmap TY SmartOptim ization.dll Defender exclusion child process BGRA + XOR Bitmap qKDt (domain not recovered) entry point WPM SessionVault_ Manager.dll decoy in memory ConfuserEx STAGE 1 STAGE 2 STAGE 3 Process hollowing Hollowed process same binary StealC payload memory-only STAGE 4 SOLO EN MEMORIA · STAGES 2 –4 Credential theft Fuente: FlameWatcher Campaign
targets, sacamos hipótesis de quién es el usuario QUÉ CARGA EN MEMORIA Navegadores Cookies Correo CONFIRMADO Chrome (bypass App-Bound Encryption), Brave, Edge sesiones activas para saltar MFA Outlook (2013–2016) y Foxmail HIPÓTESIS SOBRE LA VÍCTIMA Le gustan los juegos el stealer apunta a tokens de Steam Hace música buscaba cracks de Kontakt 8 y FL Studio Trabaja con servidores FTP / SSH Gaming Extra sesiones guardadas de WinSCP tokens de Steam DPAPI y Credential Manager tenía sesiones de WinSCP guardadas Reusa credenciales por eso un solo host expone tanto Ojo: es perfilado, hipótesis, no dato confirmado. PERFILADO
un incidente: es un producto LA PREGUNTA VIEJA Este caso Otra submission un lure distinto ¿Qué se ejecutó en este host? ¿Está limpio el endpoint? ¿Cerramos el ticket? LA PREGUNTA NUEVA ¿Qué componente estamos siguiendo? MISMO SHA-256 (STAGE 4) e05bc2dfb93f…6738ea f ¿Qué campañas comparten este build? download - windows update[.]live:5173 ¿Qué indicadores tienen vida útil larga? C2 de esa otra submission. No es el de este build (se genera por build) builder_v3 en los strings linaje de builder de tercera generación
precio, soporte, panel y clientes StealC Modelo Malware-as-a-Service por suscripción Desde enero 2023, foros XSS y Exploit Precio aprox. $280 a $880 por 1 a 6 meses Autor actor conocido como «Plymouth» Incluye panel web, builder y soporte Ranking top 5 de infostealers activos QUÉ ROBA · CONFIRMADO EN EL PAYLOAD Navegadores Cookies Correo FTP / SSH Steam DPAPI
que Plymouth prepara la v3 Ene 2023 2024 Mar 2025 Jun 2026 Jun 2026 Nace StealC v1 Bypass App-Bound StealC v2 Venta de código v2 Operation Endgame Primera versión comercial en foros rusos Evasión de la nueva protección de Chrome Reescritura, panel nuevo, descifrado server-side Plymouth vende 2 copias a $60.000 c/u (ZeroFox) 326 servidores y 142 dominios caídos (Europol) Ago 2026 Nuestro caso builder_v3 en los strings del payload
en detección que sigue valiendo mañana 1 2 3 4 Reporte de IA Alerta medium Telemetría Base de bichos StealC marcado en el cliente No la vio un analista como crítica Navegación, red y PowerShell El caso pasa a análisis profundo 8 La campaña MaaS, ecosistema y hunting durable 7 El mapa Cadena de 4 stages + builder_v3 6 5 Píxeles y stages La muestra Imágenes que cargan código Static .NET: es un loader, no StealC
Próximo episodio: Loading Clicks Fix.exe Loading Clicks Fix.exe Mañana 9/10 · [10:30 hs] · [sala D] Del CAPTCHA falso al Win + R, y lo que pasa después de apretar Enter. Hasta mañana: no peguen nada en Win + R. 95%
IA levantó la mano. Las dos fuimos, investigamos y encontramos la campaña. LA CUENTA La licencia de Kontakt 8 sale $499. El usuario ahorró $499 y perdió sus credenciales de Chrome, sus sesiones de WinSCP, sus tokens de Steam y su contraseña de Outlook. Hagan las cuentas. ¡Gracias! ¿Preguntas?