Análisis de ingeniería inversa del RAT PureRAT que abusa de msbuild.exe, extrayendo infraestructura C2, APIs de evasión de .NET, manipulación del sistema de archivos y mecanismos de persistencia en VBScript.
El análisis de memoria con Process Hacker revela que PureRAT se ejecuta mediante msbuild.exe (una herramienta de compilación legítima de Microsoft) y se conecta a múltiples servidores C2.
MSBuild.exe (PID 2056).pure8s.ddnsfree.com52.241.248.38HKEY_CURRENT_USER\Software\95082F4ACEBFA802830...Erişim izinlerinize izin verilmeyen bir... (mensaje de error de acceso denegado).msbuild.exe es una herramienta legítima abusada para la ejecución.
Vista de Process Hacker mostrando cadenas de msbuild.exe con el dominio C2 (pure8s.ddnsfree.com) y la IP (52.241.248.38).
El análisis de memoria con Process Hacker de msbuild.exe revela que PureRAT utiliza manipulación de .NET y APIs de evasión para evitar la detección.
DisableNativeImageLoad – Deshabilita la carga de imágenes nativas (evasión).FlsSetValue / FlsGetValue – Fiber Local Storage (anti-depuración).OpenProcessToken / GetTokenInformation – Manipulación de tokens (escalada de privilegios).CreateBoundaryDescriptorW – Crea descriptores de límite (evasión de sandbox).mscordacwks.dll – DLL de depuración de .NET (posible evasión de depuración).AssemblyPath / BindingConfiguration – Carga de ensamblados .NET.WerRegisterRuntimeExceptionModule – Manipulación del informe de errores.AttachThreadAlwaysOn – Adjuntar hilo (inyección).AssemblyPath y BindingConfiguration confirman el uso de .NET.DisableNativeImageLoad y CreateBoundaryDescriptorW ayudan a evitar la detección.OpenProcessToken permite la manipulación de tokens.FlsSetValue y AttachThreadAlwaysOn complican el análisis.
Vista de Process Hacker mostrando DisableNativeImageLoad, OpenProcessToken y otras APIs de evasión.
El análisis con Binary Ninja del código guardado de DisableNativeImageLoad revela que PureRAT utiliza manipulación de ensamblados .NET y estructuras de datos basadas en XML.
MicrodomImplementation – Implementación de XML DOM de Microsoft.CreateMicrodomSource – Crea una fuente XML DOM (configuración).DsiGBufferedStream – Flujo con búfer para el procesamiento de datos.CRTIXMLDSIGBaseHasher – Hashing de firmas digitales XML.CRTIXMLDSIGEnvelopedSignatureTransformer – Transformación de firmas XML.AssemblyPath – Ruta del ensamblado .NET.BindingConfiguration – Configuración de enlace de .NET.DsiGBufferedStream maneja grandes flujos de datos.DisableNativeImageLoad impide la carga de imágenes nativas, complicando el análisis.
Vista de Binary Ninja mostrando MicrodomImplementation, DsiGBufferedStream y APIs de firmas XML.
Esta sección continúa el análisis con Binary Ninja del código de DisableNativeImageLoad de la sección anterior. Revela operaciones del sistema de archivos y manipulación de CDF (Component Definition File) utilizadas por PureRAT.
DeleteFile, QueryAttributesFile, QueryDirectoryFile, WriteFile, ReadFile, CopyFile, CreateHardLinkOrCopyFile, CreateFile – control total del sistema de archivos.(ReferenceIdentityList != 0) || (CurrentPosition == 0) – valida referencias CDF.(NewCdf->Flags & ~((0x00000001) | (0x00000002))) == 0 – comprueba los indicadores CDF.CreateFile(da={da}, oa={oa}, fa={fa}, sa={sa}, cd={cd}, co={co}):(st={st}.h={h}) – construye rutas de archivos dinámicamente.
Vista de Binary Ninja mostrando operaciones de archivos, validación de CDF y construcción dinámica de rutas.
El análisis de memoria con Process Hacker de msbuild.exe revela que PureRAT utiliza .NET Remoting y APIs de proxy para la comunicación entre procesos y la inyección de código.
GetServerDomainIdForProxy – Recupera el ID de dominio del servidor para el proxy.RegisterAssembly – Registra un ensamblado .NET.CreateProxyForDomain – Crea un proxy para un dominio.MarshalToBuffer / UnmarshalFromBuffer – Serializa/deserializa datos.GetLocalSignature – Recupera la firma local.ThrowException – Lanza excepciones (manejo de errores).UnsafeCast / UnsafeEnumCast – Conversión de tipos insegura (evasión).ExecuteBackoutCodeHelper – Ejecuta código de reversión.GetServerDomainIdForProxy confirma el uso de remoting.CreateProxyForDomain permite IPC.MarshalToBuffer y UnmarshalFromBuffer manejan datos.UnsafeCast y UnsafeEnumCast ayudan a eludir la seguridad de tipos.
Vista de Process Hacker mostrando GetServerDomainIdForProxy, RegisterAssembly y otras APIs de Remoting.
Esta sección continúa el análisis con Binary Ninja del código de GetServerDomainIdForProxy de la sección anterior. Revela comunicación HTTP, uso de COM (Component Object Model) y operaciones de sistema de archivos aislado utilizadas por PureRAT.
Content-Type: %s Content-Length: %d Accept: %s – utilizado para la comunicación C2.CoTaskMemAlloc e IsolationImplementation::Com – asigna memoria para objetos COM.*ppClsid = (CLSID *)... – asigna un identificador de clase COM.IsolatedFilesystemObject y RtlIsIsolatedFilesystemObjectHandleValid – valida identificadores de sistema de archivos aislado.
Vista de Binary Ninja mostrando encabezados HTTP, asignación de memoria COM, asignación de CLSID y APIs de sistema de archivos aislado.
Este análisis descubrió PureRAT, un RAT fileless sofisticado que se ejecuta mediante msbuild.exe y utiliza técnicas avanzadas de evasión de .NET.
msbuild.exe.pure8s.ddnsfree.com y 52.241.248.38.DisableNativeImageLoad y OpenProcessToken.DeleteFile, WriteFile, ReadFile, CopyFile, CreateFile).HKEY_CURRENT_USER\Software\95082F4ACEBFA802830...).pure8s.ddnsfree.com y la IP 52.241.248.38.msbuild.exe con comandos inusuales.DisableNativeImageLoad y OpenProcessToken.msbuild.exe.La muestra de PureRAT analizada está disponible en MalwareBazaar para quienes deseen realizar su propio análisis:
Herramientas utilizadas: Process Hacker, Binary Ninja, x64dbg