Cristian Liotto Posted September 23, 2024 Posted September 23, 2024 (edited) Bom dia pessoal, tudo bem? Sou iniciante e decidi tentar realizar a engenharia reversa de alguns malwares, o primeiro foi um pouco mais antigo para ganhar confiança e este é o segundo que estou fazendo. Se trata de um log stealer feito em.NET e pelo que vi até o momento o fluxo é: .NET (packed e obfuscated) vai colocar no AppData\Roaming uma DLL chamada d3d9.dll, modificar seus atributos para ficar oculta e carregar ela. Essa DLL vai criar um processo em estado suspenso utilizando, o executável do MSBuild.exe e injetar nele um novo executável e após isso fazer o Thread Hijacking. Este terceiro executável por sua vez vai descriptografar e descomprimir uma DLL que será a responsável por fazer as comunicações via rede. Meu problema é que essa ultima DLL, pelo jeito, está utilizando algum packer e não ha nenhuma função de export. Tentei debugar utilizando o rundll32 e passando ela como argumento, mas o processo simplesmente morre, tentei diretamente pelo x64dbg mas também não vai e o Ghidra não reconhece muita coisa. Mesmo considerando o DLL_PROCESS_ATTACH ou DLL_THREAD_ATTACH, acredito que executando o rundll32 funcionaria. Se alguém tiver alguma dica ou ideia do que eu posso tentar agradeço imensamente. File Hashes SHA256: 131e2baac32f898ab2d7da10d8c79f546977bc1d1d585ba687387101610ed3b9 Link para o malware https://bazaar.abuse.ch/sample/131e2baac32f898ab2d7da10d8c79f546977bc1d1d585ba687387101610ed3b9 A parte do malware que vai descomprimir e descriptografar a última parte: A DLL após o processo: Novamente não tenho muita experiencia e qualquer ajuda será bem-vinda. Desde já agradeço a todos! Edited September 25, 2024 by Cristian Liotto Quote
Administrators Fernando Mercês Posted September 25, 2024 Administrators Posted September 25, 2024 Olá! Em 23/09/2024 em 14:00, Cristian Liotto disse: Tentei debugar utilizando o rundll32 e passando ela como argumento, mas o processo simplesmente morre, tentei diretamente pelo x64dbg mas também não vai Se o código malicioso dela tá na DllMain(), você precisa parar lá. Tem duas alternativas simples: por um breakpoint na LoadLibrary() ao debugar o rundll32.exe (passando sua DLL como argumento) ou setando o EIP na mão para a DllMain() ao abrir a DLL direto no x64dbg. Também acho importante ver como o processo chama a DLL. Aï você pode imitar e fazer igual para ver o comportamento malicioso. 🙂 Vê se a aula 21 do AMO te ajuda. 😉 Abraço e boa sorte! Quote
Cristian Liotto Posted October 3, 2024 Author Posted October 3, 2024 Em 25/09/2024 em 17:45, Fernando Mercês disse: Olá! Se o código malicioso dela tá na DllMain(), você precisa parar lá. Tem duas alternativas simples: por um breakpoint na LoadLibrary() ao debugar o rundll32.exe (passando sua DLL como argumento) ou setando o EIP na mão para a DllMain() ao abrir a DLL direto no x64dbg. Também acho importante ver como o processo chama a DLL. Aï você pode imitar e fazer igual para ver o comportamento malicioso. 🙂 Vê se a aula 21 do AMO te ajuda. 😉 Abraço e boa sorte! Agradeço muito o seu comentário e peco desculpas pela demora. Fiz o curso de CERO e parte do AMO antes de me desafiar a pôr em prática os conhecimentos ensinados e confesso que acabei não terminando de assistir todo o curso. Novamente muito obrigado! Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.