Analisi di reverse engineering del RAT PureRAT che abusa di msbuild.exe, estraendo l'infrastruttura C2, le API di evasione .NET, la manipolazione del file system e i meccanismi di persistenza VBScript.
L'analisi della memoria con Process Hacker rivela che PureRAT viene eseguito tramite msbuild.exe (un legittimo strumento di build Microsoft) e si connette a più server C2.
MSBuild.exe (PID 2056).pure8s.ddnsfree.com52.241.248.38HKEY_CURRENT_USER\Software\95082F4ACEBFA802830...Erişim izinlerinize izin verilmeyen bir... (messaggio di errore di accesso negato).msbuild.exe è uno strumento legittimo abusato per l'esecuzione.
Vista di Process Hacker che mostra le stringhe di msbuild.exe con il dominio C2 (pure8s.ddnsfree.com) e l'IP (52.241.248.38).
L'analisi della memoria di msbuild.exe con Process Hacker rivela che PureRAT utilizza la manipolazione .NET e API di evasione per evitare il rilevamento.
DisableNativeImageLoad – Disabilita il caricamento delle immagini native (evasione).FlsSetValue / FlsGetValue – Fiber Local Storage (anti-debug).OpenProcessToken / GetTokenInformation – Manipolazione dei token (privilege escalation).CreateBoundaryDescriptorW – Crea descrittori di confine (evasione sandbox).mscordacwks.dll – DLL di debug .NET (potenziale evasione del debug).AssemblyPath / BindingConfiguration – Caricamento di assembly .NET.WerRegisterRuntimeExceptionModule – Manipolazione della segnalazione errori.AttachThreadAlwaysOn – Aggancio dei thread (iniezione).AssemblyPath e BindingConfiguration confermano l'uso di .NET.DisableNativeImageLoad e CreateBoundaryDescriptorW aiutano a evitare il rilevamento.OpenProcessToken consente la manipolazione dei token.FlsSetValue e AttachThreadAlwaysOn complicano l'analisi.
Vista di Process Hacker che mostra DisableNativeImageLoad, OpenProcessToken e altre API di evasione.
L'analisi con Binary Ninja del codice DisableNativeImageLoad salvato rivela che PureRAT utilizza la manipolazione di assembly .NET e strutture dati basate su XML.
MicrodomImplementation – Implementazione Microsoft XML DOM.CreateMicrodomSource – Crea una sorgente XML DOM (configurazione).DsiGBufferedStream – Stream bufferizzato per l'elaborazione dei dati.CRTIXMLDSIGBaseHasher – Hashing della firma digitale XML.CRTIXMLDSIGEnvelopedSignatureTransformer – Trasformazione della firma XML.AssemblyPath – Percorso dell'assembly .NET.BindingConfiguration – Configurazione di binding .NET.DsiGBufferedStream gestisce grandi flussi di dati.DisableNativeImageLoad impedisce il caricamento delle immagini native, complicando l'analisi.
Vista di Binary Ninja che mostra MicrodomImplementation, DsiGBufferedStream e le API di firma XML.
Questa sezione prosegue l'analisi con Binary Ninja del codice DisableNativeImageLoad della sezione precedente. Rivela operazioni sul file system e la manipolazione di CDF (Component Definition File) utilizzate da PureRAT.
DeleteFile, QueryAttributesFile, QueryDirectoryFile, WriteFile, ReadFile, CopyFile, CreateHardLinkOrCopyFile, CreateFile – controllo completo del file system.(ReferenceIdentityList != 0) || (CurrentPosition == 0) – valida i riferimenti CDF.(NewCdf->Flags & ~((0x00000001) | (0x00000002))) == 0 – verifica i flag CDF.CreateFile(da={da}, oa={oa}, fa={fa}, sa={sa}, cd={cd}, co={co}):(st={st}.h={h}) – costruisce dinamicamente i percorsi dei file.
Vista di Binary Ninja che mostra operazioni sui file, validazione CDF e costruzione dinamica dei percorsi.
L'analisi della memoria di msbuild.exe con Process Hacker rivela che PureRAT utilizza .NET Remoting e API proxy per la comunicazione inter-processo e l'iniezione di codice.
GetServerDomainIdForProxy – Recupera l'ID del dominio server per il proxy.RegisterAssembly – Registra un assembly .NET.CreateProxyForDomain – Crea un proxy per un dominio.MarshalToBuffer / UnmarshalFromBuffer – Serializza/deserializza dati.GetLocalSignature – Recupera la firma locale.ThrowException – Genera eccezioni (gestione degli errori).UnsafeCast / UnsafeEnumCast – Cast di tipo non sicuro (evasione).ExecuteBackoutCodeHelper – Esegue codice di backout.GetServerDomainIdForProxy conferma l'uso del remoting.CreateProxyForDomain consente l'IPC.MarshalToBuffer e UnmarshalFromBuffer gestiscono i dati.UnsafeCast e UnsafeEnumCast aiutano a bypassare la sicurezza dei tipi.
Vista di Process Hacker che mostra GetServerDomainIdForProxy, RegisterAssembly e altre API di Remoting.
Questa sezione prosegue l'analisi con Binary Ninja del codice GetServerDomainIdForProxy della sezione precedente. Rivela la comunicazione HTTP, l'uso di COM (Component Object Model) e operazioni su file system isolato utilizzate da PureRAT.
Content-Type: %s Content-Length: %d Accept: %s – utilizzata per la comunicazione C2.CoTaskMemAlloc e IsolationImplementation::Com – alloca memoria per oggetti COM.*ppClsid = (CLSID *)... – assegna un identificatore di classe COM.IsolatedFilesystemObject e RtlIsIsolatedFilesystemObjectHandleValid – valida gli handle del file system isolato.
Vista di Binary Ninja che mostra intestazioni HTTP, allocazione di memoria COM, assegnazione CLSID e API del file system isolato.
Questa analisi ha portato alla luce PureRAT, un sofisticato RAT fileless che viene eseguito tramite msbuild.exe e utilizza avanzate tecniche di evasione .NET.
msbuild.exe.pure8s.ddnsfree.com e 52.241.248.38.DisableNativeImageLoad e OpenProcessToken.DeleteFile, WriteFile, ReadFile, CopyFile, CreateFile).HKEY_CURRENT_USER\Software\95082F4ACEBFA802830...).pure8s.ddnsfree.com e l'IP 52.241.248.38.msbuild.exe con comandi insoliti.DisableNativeImageLoad e OpenProcessToken.msbuild.exe.Il campione PureRAT analizzato è disponibile su MalwareBazaar per chi desidera condurre una propria analisi:
Strumenti utilizzati: Process Hacker, Binary Ninja, x64dbg