Analyse de rétro-ingénierie du RAT PureRAT abusant de msbuild.exe, extraction de l'infrastructure C2, des API d'évasion .NET, de la manipulation du système de fichiers et des mécanismes de persistance VBScript.
L'analyse mémoire avec Process Hacker révèle que PureRAT s'exécute via msbuild.exe (un outil de build légitime de Microsoft) et se connecte à plusieurs serveurs C2.
MSBuild.exe (PID 2056).pure8s.ddnsfree.com52.241.248.38HKEY_CURRENT_USER\Software\95082F4ACEBFA802830...Erişim izinlerinize izin verilmeyen bir... (message d'erreur d'accès refusé).msbuild.exe est un outil légitime détourné pour l'exécution.
Vue Process Hacker montrant les chaînes de msbuild.exe avec le domaine C2 (pure8s.ddnsfree.com) et l'IP (52.241.248.38).
L'analyse mémoire avec Process Hacker de msbuild.exe révèle que PureRAT utilise des API de manipulation .NET et d'évasion pour éviter la détection.
DisableNativeImageLoad – Désactive le chargement d'images natives (évasion).FlsSetValue / FlsGetValue – Fiber Local Storage (anti-débogage).OpenProcessToken / GetTokenInformation – Manipulation de jetons (élévation de privilèges).CreateBoundaryDescriptorW – Crée des descripteurs de limite (évasion de sandbox).mscordacwks.dll – DLL de débogage .NET (évasion potentielle du débogage).AssemblyPath / BindingConfiguration – Chargement d'assemblys .NET.WerRegisterRuntimeExceptionModule – Manipulation du rapport d'erreurs.AttachThreadAlwaysOn – Attachement de thread (injection).AssemblyPath et BindingConfiguration confirment l'utilisation de .NET.DisableNativeImageLoad et CreateBoundaryDescriptorW aident à éviter la détection.OpenProcessToken permet la manipulation de jetons.FlsSetValue et AttachThreadAlwaysOn compliquent l'analyse.
Vue Process Hacker montrant DisableNativeImageLoad, OpenProcessToken et d'autres API d'évasion.
L'analyse Binary Ninja du code DisableNativeImageLoad sauvegardé révèle que PureRAT utilise la manipulation d'assemblys .NET et des structures de données basées sur XML.
MicrodomImplementation – Implémentation du DOM XML de Microsoft.CreateMicrodomSource – Crée une source DOM XML (configuration).DsiGBufferedStream – Flux tamponné pour le traitement des données.CRTIXMLDSIGBaseHasher – Hachage de signature numérique XML.CRTIXMLDSIGEnvelopedSignatureTransformer – Transformation de signature XML.AssemblyPath – Chemin d'assembly .NET.BindingConfiguration – Configuration de liaison .NET.DsiGBufferedStream gère de grands flux de données.DisableNativeImageLoad empêche le chargement d'images natives, compliquant l'analyse.
Vue Binary Ninja montrant MicrodomImplementation, DsiGBufferedStream et les API de signature XML.
Cette section poursuit l'analyse Binary Ninja du code DisableNativeImageLoad de la section précédente. Elle révèle des opérations sur le système de fichiers et la manipulation de CDF (Component Definition File) utilisées par PureRAT.
DeleteFile, QueryAttributesFile, QueryDirectoryFile, WriteFile, ReadFile, CopyFile, CreateHardLinkOrCopyFile, CreateFile – contrôle complet du système de fichiers.(ReferenceIdentityList != 0) || (CurrentPosition == 0) – valide les références CDF.(NewCdf->Flags & ~((0x00000001) | (0x00000002))) == 0 – vérifie les indicateurs CDF.CreateFile(da={da}, oa={oa}, fa={fa}, sa={sa}, cd={cd}, co={co}):(st={st}.h={h}) – construit dynamiquement des chemins de fichiers.
Vue Binary Ninja montrant les opérations sur les fichiers, la validation CDF et la construction dynamique de chemins.
L'analyse mémoire avec Process Hacker de msbuild.exe révèle que PureRAT utilise .NET Remoting et des API de proxy pour la communication inter-processus et l'injection de code.
GetServerDomainIdForProxy – Récupère l'ID de domaine du serveur pour le proxy.RegisterAssembly – Enregistre un assembly .NET.CreateProxyForDomain – Crée un proxy pour un domaine.MarshalToBuffer / UnmarshalFromBuffer – Sérialise/désérialise des données.GetLocalSignature – Récupère la signature locale.ThrowException – Lève des exceptions (gestion des erreurs).UnsafeCast / UnsafeEnumCast – Conversion de type non sécurisée (évasion).ExecuteBackoutCodeHelper – Exécute du code de restauration.GetServerDomainIdForProxy confirme l'utilisation du remoting.CreateProxyForDomain permet l'IPC.MarshalToBuffer et UnmarshalFromBuffer gèrent les données.UnsafeCast et UnsafeEnumCast aident à contourner la sécurité des types.
Vue Process Hacker montrant GetServerDomainIdForProxy, RegisterAssembly et d'autres API Remoting.
Cette section poursuit l'analyse Binary Ninja du code GetServerDomainIdForProxy de la section précédente. Elle révèle la communication HTTP, l'utilisation de COM (Component Object Model) et les opérations sur le système de fichiers isolé utilisées par PureRAT.
Content-Type: %s Content-Length: %d Accept: %s – utilisé pour la communication C2.CoTaskMemAlloc et IsolationImplementation::Com – alloue de la mémoire pour les objets COM.*ppClsid = (CLSID *)... – attribue un identifiant de classe COM.IsolatedFilesystemObject et RtlIsIsolatedFilesystemObjectHandleValid – valide les handles du système de fichiers isolé.
Vue Binary Ninja montrant les en-têtes HTTP, l'allocation de mémoire COM, l'attribution de CLSID et les API du système de fichiers isolé.
Cette analyse a mis au jour PureRAT, un RAT fileless sophistiqué qui s'exécute via msbuild.exe et utilise des techniques d'évasion .NET avancées.
msbuild.exe.pure8s.ddnsfree.com et 52.241.248.38.DisableNativeImageLoad et OpenProcessToken.DeleteFile, WriteFile, ReadFile, CopyFile, CreateFile).HKEY_CURRENT_USER\Software\95082F4ACEBFA802830...).pure8s.ddnsfree.com et l'IP 52.241.248.38.msbuild.exe.DisableNativeImageLoad et OpenProcessToken.msbuild.exe.L'échantillon PureRAT analysé est disponible sur MalwareBazaar pour ceux qui souhaitent mener leur propre analyse :
Outils utilisés : Process Hacker, Binary Ninja, x64dbg