Análise de engenharia reversa do RAT PureRAT abusando do msbuild.exe, extraindo infraestrutura de C2, APIs de evasão .NET, manipulação do sistema de arquivos e mecanismos de persistência em VBScript.
A análise de memória do Process Hacker revela que o PureRAT é executado via msbuild.exe (uma ferramenta de build legítima da Microsoft) e se conecta a múltiplos servidores C2.
MSBuild.exe (PID 2056).pure8s.ddnsfree.com52.241.248.38HKEY_CURRENT_USER\Software\95082F4ACEBFA802830...Erişim izinlerinize izin verilmeyen bir... (mensagem de erro de acesso negado).msbuild.exe é uma ferramenta legítima abusada para execução.
Visualização do Process Hacker mostrando strings do msbuild.exe com domínio C2 (pure8s.ddnsfree.com) e IP (52.241.248.38).
A análise de memória do msbuild.exe pelo Process Hacker revela que o PureRAT usa manipulação de .NET e APIs de evasão para evitar detecção.
DisableNativeImageLoad – Desabilita o carregamento de imagem nativa (evasão).FlsSetValue / FlsGetValue – Fiber Local Storage (anti-debug).OpenProcessToken / GetTokenInformation – Manipulação de token (escalação de privilégios).CreateBoundaryDescriptorW – Cria descritores de limite (evasão de sandbox).mscordacwks.dll – DLL de depuração do .NET (potencial evasão de depuração).AssemblyPath / BindingConfiguration – Carregamento de assembly .NET.WerRegisterRuntimeExceptionModule – Manipulação de relatório de erros.AttachThreadAlwaysOn – Anexação de thread (injeção).AssemblyPath e BindingConfiguration confirmam o uso de .NET.DisableNativeImageLoad e CreateBoundaryDescriptorW ajudam a evitar detecção.OpenProcessToken permite manipulação de token.FlsSetValue e AttachThreadAlwaysOn dificultam a análise.
Visualização do Process Hacker mostrando DisableNativeImageLoad, OpenProcessToken e outras APIs de evasão.
A análise do Binary Ninja do código salvo de DisableNativeImageLoad revela que o PureRAT usa manipulação de assembly .NET e estruturas de dados baseadas em XML.
MicrodomImplementation – Implementação de XML DOM da Microsoft.CreateMicrodomSource – Cria fonte XML DOM (configuração).DsiGBufferedStream – Stream com buffer para processamento de dados.CRTIXMLDSIGBaseHasher – Hashing de assinatura digital XML.CRTIXMLDSIGEnvelopedSignatureTransformer – Transformação de assinatura XML.AssemblyPath – Caminho do assembly .NET.BindingConfiguration – Configuração de binding .NET.DsiGBufferedStream lida com grandes fluxos de dados.DisableNativeImageLoad impede o carregamento de imagem nativa, dificultando a análise.
Visualização do Binary Ninja mostrando MicrodomImplementation, DsiGBufferedStream e APIs de assinatura XML.
Esta seção continua a análise do Binary Ninja do código DisableNativeImageLoad da seção anterior. Ela revela operações de sistema de arquivos e manipulação de CDF (Component Definition File) usadas pelo PureRAT.
DeleteFile, QueryAttributesFile, QueryDirectoryFile, WriteFile, ReadFile, CopyFile, CreateHardLinkOrCopyFile, CreateFile – controle total do sistema de arquivos.(ReferenceIdentityList != 0) || (CurrentPosition == 0) – valida referências de CDF.(NewCdf->Flags & ~((0x00000001) | (0x00000002))) == 0 – verifica flags de CDF.CreateFile(da={da}, oa={oa}, fa={fa}, sa={sa}, cd={cd}, co={co}):(st={st}.h={h}) – constrói caminhos de arquivo dinamicamente.
Visualização do Binary Ninja mostrando operações de arquivo, validação de CDF e construção dinâmica de caminhos.
A análise de memória do msbuild.exe pelo Process Hacker revela que o PureRAT usa .NET Remoting e APIs de proxy para comunicação entre processos e injeção de código.
GetServerDomainIdForProxy – Recupera o ID do domínio do servidor para proxy.RegisterAssembly – Registra um assembly .NET.CreateProxyForDomain – Cria um proxy para um domínio.MarshalToBuffer / UnmarshalFromBuffer – Serializa/desserializa dados.GetLocalSignature – Recupera assinatura local.ThrowException – Lança exceções (tratamento de erros).UnsafeCast / UnsafeEnumCast – Conversão de tipo insegura (evasão).ExecuteBackoutCodeHelper – Executa código de reversão.GetServerDomainIdForProxy confirma o uso de remoting.CreateProxyForDomain permite IPC.MarshalToBuffer e UnmarshalFromBuffer lidam com dados.UnsafeCast e UnsafeEnumCast ajudam a contornar a segurança de tipos.
Visualização do Process Hacker mostrando GetServerDomainIdForProxy, RegisterAssembly e outras APIs de Remoting.
Esta seção continua a análise do Binary Ninja do código GetServerDomainIdForProxy da seção anterior. Ela revela comunicação HTTP, uso de COM (Component Object Model) e operações de sistema de arquivos isolado usadas pelo PureRAT.
Content-Type: %s Content-Length: %d Accept: %s – usado para comunicação com C2.CoTaskMemAlloc e IsolationImplementation::Com – aloca memória para objetos COM.*ppClsid = (CLSID *)... – atribui um identificador de classe COM.IsolatedFilesystemObject e RtlIsIsolatedFilesystemObjectHandleValid – valida handles de sistema de arquivos isolado.
Visualização do Binary Ninja mostrando cabeçalhos HTTP, alocação de memória COM, atribuição de CLSID e APIs de sistema de arquivos isolado.
Esta análise revelou o PureRAT, um RAT fileless sofisticado que é executado via msbuild.exe e usa técnicas avançadas de evasão de .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 IP 52.241.248.38.msbuild.exe executando comandos incomuns.DisableNativeImageLoad e OpenProcessToken.msbuild.exe.A amostra do PureRAT analisada está disponível no MalwareBazaar para aqueles que desejam realizar sua própria análise:
Ferramentas Utilizadas: Process Hacker, Binary Ninja,x64dbg