Reverse-Engineering-Analyse von PureRAT, das msbuild.exe missbraucht, mit Extraktion der C2-Infrastruktur, .NET-Evasion-APIs, Dateisystemmanipulation und VBScript-Persistenzmechanismen.
Die Speicheranalyse mit Process Hacker zeigt, dass PureRAT über msbuild.exe (ein legitimes Microsoft-Build-Tool) ausgeführt wird und Verbindungen zu mehreren C2-Servern herstellt.
MSBuild.exe (PID 2056).pure8s.ddnsfree.com52.241.248.38HKEY_CURRENT_USER\Software\95082F4ACEBFA802830...Erişim izinlerinize izin verilmeyen bir... (Fehlermeldung „Zugriff verweigert").msbuild.exe ist ein legitimes Tool, das für die Ausführung missbraucht wird.
Process-Hacker-Ansicht mit msbuild.exe-Zeichenfolgen einschließlich C2-Domain (pure8s.ddnsfree.com) und IP (52.241.248.38).
Die Speicheranalyse von msbuild.exe mit Process Hacker zeigt, dass PureRAT .NET-Manipulations- und Evasion-APIs verwendet, um der Erkennung zu entgehen.
DisableNativeImageLoad – Deaktiviert das Laden nativer Images (Evasion).FlsSetValue / FlsGetValue – Fiber Local Storage (Anti-Debug).OpenProcessToken / GetTokenInformation – Token-Manipulation (Rechteausweitung).CreateBoundaryDescriptorW – Erstellt Boundary Descriptors (Sandbox-Evasion).mscordacwks.dll – .NET-Debugging-DLL (potenzielle Debugging-Evasion).AssemblyPath / BindingConfiguration – Laden von .NET-Assemblys.WerRegisterRuntimeExceptionModule – Manipulation der Fehlerberichterstattung.AttachThreadAlwaysOn – Thread-Anbindung (Injection).AssemblyPath und BindingConfiguration bestätigen die .NET-Nutzung.DisableNativeImageLoad und CreateBoundaryDescriptorW helfen, der Erkennung zu entgehen.OpenProcessToken ermöglicht Token-Manipulation.FlsSetValue und AttachThreadAlwaysOn erschweren die Analyse.
Process-Hacker-Ansicht mit DisableNativeImageLoad, OpenProcessToken und weiteren Evasion-APIs.
Die Binary-Ninja-Analyse des gespeicherten DisableNativeImageLoad-Codes zeigt, dass PureRAT .NET-Assembly-Manipulation und XML-basierte Datenstrukturen verwendet.
MicrodomImplementation – Microsoft-XML-DOM-Implementierung.CreateMicrodomSource – Erstellt eine XML-DOM-Quelle (Konfiguration).DsiGBufferedStream – Gepufferter Stream für die Datenverarbeitung.CRTIXMLDSIGBaseHasher – XML-Digital-Signatur-Hashing.CRTIXMLDSIGEnvelopedSignatureTransformer – XML-Signaturtransformation.AssemblyPath – .NET-Assembly-Pfad.BindingConfiguration – .NET-Bindungskonfiguration.DsiGBufferedStream verarbeitet große Datenströme.DisableNativeImageLoad verhindert das Laden nativer Images und erschwert die Analyse.
Binary-Ninja-Ansicht mit MicrodomImplementation, DsiGBufferedStream und XML-Signatur-APIs.
Dieser Abschnitt setzt die Binary-Ninja-Analyse des DisableNativeImageLoad-Codes aus dem vorherigen Abschnitt fort. Er zeigt Dateisystemoperationen und CDF-Manipulation (Component Definition File), die von PureRAT verwendet werden.
DeleteFile, QueryAttributesFile, QueryDirectoryFile, WriteFile, ReadFile, CopyFile, CreateHardLinkOrCopyFile, CreateFile – vollständige Dateisystemkontrolle.(ReferenceIdentityList != 0) || (CurrentPosition == 0) – validiert CDF-Referenzen.(NewCdf->Flags & ~((0x00000001) | (0x00000002))) == 0 – prüft CDF-Flags.CreateFile(da={da}, oa={oa}, fa={fa}, sa={sa}, cd={cd}, co={co}):(st={st}.h={h}) – konstruiert Dateipfade dynamisch.
Binary-Ninja-Ansicht mit Dateioperationen, CDF-Validierung und dynamischer Pfadkonstruktion.
Die Speicheranalyse von msbuild.exe mit Process Hacker zeigt, dass PureRAT .NET-Remoting- und Proxy-APIs für Interprozesskommunikation und Code-Injection verwendet.
GetServerDomainIdForProxy – Ruft die Server-Domain-ID für den Proxy ab.RegisterAssembly – Registriert eine .NET-Assembly.CreateProxyForDomain – Erstellt einen Proxy für eine Domain.MarshalToBuffer / UnmarshalFromBuffer – Serialisiert/Deserialisiert Daten.GetLocalSignature – Ruft die lokale Signatur ab.ThrowException – Löst Ausnahmen aus (Fehlerbehandlung).UnsafeCast / UnsafeEnumCast – Unsichere Typumwandlung (Evasion).ExecuteBackoutCodeHelper – Führt Backout-Code aus.GetServerDomainIdForProxy bestätigt die Remoting-Nutzung.CreateProxyForDomain ermöglicht IPC.MarshalToBuffer und UnmarshalFromBuffer verarbeiten Daten.UnsafeCast und UnsafeEnumCast helfen, die Typsicherheit zu umgehen.
Process-Hacker-Ansicht mit GetServerDomainIdForProxy, RegisterAssembly und weiteren Remoting-APIs.
Dieser Abschnitt setzt die Binary-Ninja-Analyse des GetServerDomainIdForProxy-Codes aus dem vorherigen Abschnitt fort. Er zeigt HTTP-Kommunikation, COM-Nutzung (Component Object Model) und isolierte Dateisystemoperationen, die von PureRAT verwendet werden.
Content-Type: %s Content-Length: %d Accept: %s – wird für die C2-Kommunikation verwendet.CoTaskMemAlloc und IsolationImplementation::Com – reserviert Speicher für COM-Objekte.*ppClsid = (CLSID *)... – weist einen COM-Klassenbezeichner zu.IsolatedFilesystemObject und RtlIsIsolatedFilesystemObjectHandleValid – validiert Handles des isolierten Dateisystems.
Binary-Ninja-Ansicht mit HTTP-Headern, COM-Speicherzuweisung, CLSID-Zuweisung und APIs des isolierten Dateisystems.
Diese Analyse hat PureRAT aufgedeckt, ein hochentwickeltes fileloses RAT, das über msbuild.exe ausgeführt wird und fortgeschrittene .NET-Evasion-Techniken verwendet.
msbuild.exe.pure8s.ddnsfree.com und 52.241.248.38 her.DisableNativeImageLoad und OpenProcessToken.DeleteFile, WriteFile, ReadFile, CopyFile, CreateFile).HKEY_CURRENT_USER\Software\95082F4ACEBFA802830...).pure8s.ddnsfree.com und IP 52.241.248.38.msbuild.exe achten, die ungewöhnliche Befehle ausführt.DisableNativeImageLoad und OpenProcessToken erkennen.msbuild.exe überwachen.Das analysierte PureRAT-Sample ist auf MalwareBazaar für alle verfügbar, die eine eigene Analyse durchführen möchten:
Verwendete Tools: Process Hacker, Binary Ninja, x64dbg