Moderators Leandro Fróes Posted January 5, 2019 at 01:36 AM Moderators Share Posted January 5, 2019 at 01:36 AM Boa noite galera, tudo certo?? Adivinhem o que temos pra esse começo de ano?? Isso mesmo, fim de semana debuggando ?. Queremos também saber o que vocês estão achando, se está muito difícil, muito fácil, se está na medida certa, etc. Lembrando que qualquer feedback é válido. Um ótimo fim de semana e bom debugging. Abs AnalyseMe-05.exe Link to comment Share on other sites More sharing options...
Supporter - Nibble anderson_leite Posted January 5, 2019 at 03:06 PM Supporter - Nibble Share Posted January 5, 2019 at 03:06 PM Opa, analise abaixo. Spoiler Tipo de arquivo: PE EXECompilador/linguagem: Microsoft Visual C/C++Protector/packer: NenhumSHA-256: 006cbf5d7911fda29b25d81abd674284ff7c80af1f8cd1b281fa1be51719ab86Strings interessantes: C:\Users\IEUser\Desktop\App\Release\App4.pdb, FindWindowA, x32dbg, OllyDbg. Strings cifradas via XOR: B8_Trmdvao#Binfw\MqecnfXVkqpucoFoz#Cugpp Cg`ivjknq_@ID{EPK-`ln == C:\Program Files\Oracle\VirtualBox Guest Additions\DIFxAPI.dll B8_silgkwq_Wyqwam11XDpjreppXVonkuqf*s{p == C:\windows\System32\Drivers\Vmmouse.sys Lmymlnb+4,3$(alipcwmbnf? OPME"5*09#Silgkwq#JT"6*19#WV3* == Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ]rb}lmb`.g{a == \payload.exe ivwt:-,6035*ek`er,lvg-gkwlokaf,aiabv.ali == http://2016.eicar.org/download/eicar.comFunções locais maliciosas: 401190 ( Faz checagem se esta rodando em um debugger usando a call IsDebuggerPresent, caso nao esteja, inicia o processo de decifrar as strings em XOR para ser usado na checagem de um possivel ambiente virtualizado. Caso nao esteja rodando em uma VM, faz uma call para FindWindowA para saber se existe algum programa com o titulo "x32dbg" ou "OllyDbg". Se nao existir nenhum debugger rodando no sistema, continua a rodar realiza o download o sample eicar e escreve nos arquivos temporarios como payload.exe) Chamadas à API do Windows e outras bibliotecas: wininet.dll_InternetReadFile, wininet.dll_InternetOpenUrlA, wininet.dll_InternetOpenUrlA, wininet.dll_InternetOpenA, KERNEL32.dll_ExitProcess, KERNEL32.dll_GetProcessHeap,KERNEL32.dll_HeapAlloc, KERNEL32.dll_GetCommandLineA, KERNEL32.dll_WriteFile, KERNEL32.dll_GetTempPathA, KERNEL32.dll_CloseHandle, KERNEL32.dll_GetModuleHandleA, KERNEL32.dll_lstrcatA, KERNEL32.dll_GetStartupInfoA, KERNEL32.dll_IsDebuggerPresent, USER32.dll_FindWindowA.Atividades de rede: Monta uma request com o user agent do firefox(Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)) para baixar o sample eicar, em "http://2016.eicar.org/download/eicar.com"O que o binário faz em linhas gerais: O malware age como um dropper, faz o download o sample eicar e salva nos arquivos temporarios como payload.exe, antes de realizar a atividade maliciosa, é feito uma checagem para saber se esta sendo executado em um debugger, em um ambiente virtualizado ou se existe algum programa aberto com o nome "x32dbg" ou "OllyDbg" para ter total certeza que nao esta sendo executado nenhum debugger. O que foi modificado no sistema: Sample eicar escrito nos arquivos temporarios como payload.exeNotas adicionais: Para remover a checagem do nome da janela, apaguei a call e coloquei instruções NOP no lugar. Mas também poderia ser feito usando o window renamer para realizar um patch no nome da janela. Com base nas analises, notei certos pontos interessantes na estrutura do codigo, algumas calls estao sendo feita via valores guardados nos registradores e nao direto ao endereço da função em si, isso pode ser uma indicativa de que o escritor do malware esta usando "Function pointers" no lugar de chamar a função diretamente, um recurso que guarda o endereco da função em um ponteiro e depois usa a propia variavel para realizar a chamada, isso pode ser usado para não deixar claro em que ponto esta sendo feito uma call. Partes do codigo para decifrar a ofuscação em XOR são repetidas, o que pode indicar o uso de uma funcao macro para decifrar a string ofuscada. Não tenho tanta certeza sobre estas notas, se alguém puder opinar sobre elas, agradeco :D Codigo em python usado para traduzir strings: As analises estão muito boas, evoluindo naturalmente Link to comment Share on other sites More sharing options...
Aof Posted January 9, 2019 at 06:16 PM Share Posted January 9, 2019 at 06:16 PM acho que ta meio fraco @Leandro Fróes Link to comment Share on other sites More sharing options...
Administrators Fernando Mercês Posted January 10, 2019 at 09:17 PM Administrators Share Posted January 10, 2019 at 09:17 PM Em 09/01/2019 em 16:16, Aof disse: acho que ta meio fraco Não entendi. Você quis dizer que está fácil demais? Pode dar mais detalhes? Abraço, Fernando Link to comment Share on other sites More sharing options...
Aof Posted January 11, 2019 at 03:17 AM Share Posted January 11, 2019 at 03:17 AM Em 10/01/2019 em 19:17, Fernando Mercês disse: Não entendi. Você quis dizer que está fácil demais? Pode dar mais detalhes? - aumenta a dificuldade de criptografia. - mudar para outras linguagens de programação - malwares com packer criado pelo mente binaria, pra dificultar mesmo. heheheh - mais dificuldades tipo malwares com um packer muito bom, mas sem nenhuma outra proteção no code. malwares sem packer mas com anti-reverse muito loka. vai alternando entre parte com mais dificuldades. hahahah espero que me entenda. hahahah abraco, aof Link to comment Share on other sites More sharing options...
Administrators Fernando Mercês Posted January 11, 2019 at 05:58 PM Administrators Share Posted January 11, 2019 at 05:58 PM Humm, a tua resposta não parece ser em relação ao desafio 5, mas sim ao futuro do projeto. Vamos lá: 14 horas atrás, Aof disse: - aumenta a dificuldade de criptografia. A gente fez XOR com um byte e depois XOR multibyte. Depois focamos em anti-debug e por isso deixamos a ofuscação de strings de lado. Vamos voltar nisso em breve. 14 horas atrás, Aof disse: - mudar para outras linguagens de programação Não temos esse interesse agora, porque queremos treinar as bases de Assembly. Linguagens como .Net ou Java fugiriam muito destes conceitos. 14 horas atrás, Aof disse: - malwares com packer criado pelo mente binaria, pra dificultar mesmo. heheheh Tempo zero pra investir nisso. Se optarmos por usar packers, vamos nos comerciais mesmo, talvez com pequenas alterações. 14 horas atrás, Aof disse: - mais dificuldades A gente tá tentando tornar mais difícil gradualmente. No 5 foi adicionada a checagem de janelas, que não tinha nos anteriores. Estamos tentando adicionar um ou dois itens de dificuldade por vez. Pra gente parece ok. Nossa intenção é que as pessoas resolvam os desafios. Não que não resolvam. rs Uma coisa é compreender a análise de quem resolveu, outra é resolver mesmo, na mão. Acreditamos que assim que se aprende mesmo e para mais pessoas poderem estudar assim, temos que ir "devagar e sempre". ? Abraço, Fernando Link to comment Share on other sites More sharing options...
Aof Posted January 12, 2019 at 04:11 PM Share Posted January 12, 2019 at 04:11 PM Muito bom @Fernando Mercês concordo plenamente agora com vc. abraco Aof Link to comment Share on other sites More sharing options...
rcimatti Posted February 19, 2019 at 02:12 PM Share Posted February 19, 2019 at 02:12 PM Meio atrasado mas segue minha análise: Spoiler Tipo de arquivo: PE EXE Compilador/linguagem: Visual Studio C/C++ Protector/packer: Nenhum SHA-256: 006cbf5d7911fda29b25d81abd674284ff7c80af1f8cd1b281fa1be51719ab86 Strings interessantes: "C:\Program Files\Oracle\VirtualBox Guest Additions\DIFxAPI.dll" ofuscada em 0x402068, "C:\windows\System32\Drivers\Vmmouse.sys" ofuscada em 0x4020A8, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" ofuscada em 0x4020D0, "http://2016.eicar.org/download/eicar.com" ofuscada em 0x402118, "\payload.exe" ofu] em 0x402108; Funções locais maliciosas: 401190; Chamadas à API do Windows e outras bibliotecas: IsDebuggerPresent, CreateFileA, FindWindowA, InternetOpenA, InternetOpenUrlA, InternetReadFile, InternetCloseHandle, WriteFile, GetTempPathA, lstrcatA; Atividades de rede: Baixa o arquivo em "http://2016.eicar.org/download/eicar.com" usando o user-agent do Firefox; O que o binário faz em linhas gerais: (1) Verifica o retorno da função IsDebuggerPresent para decidir se continua rodando, em seguida (2) tenta abrir o arquivo "C:\Program Files\Oracle\VirtualBox Guest Additions\DIFxAPI.dll" usando a função CreateFileA com dwDesiredAccess = GENERIC_READ (0x80000000) para descobrir se está rodando em uma VM VirtualBox. Logo depois o programa utiliza a mesma função (3) CreateFileA também com modo GENERIC_READ para abrir o arquivo "C:\windows\System32\Drivers\Vmmouse.sys". Novamente caso o arquivo não exista, o programa segue utilizando (4) a função FindWindowA para tentar achar uma janela aberta com o título "x32dbg" e caso encontre encerra a execução. Passando por essa verificação há uma outra igual (5) mas procurando a janela com título "OllyDbg". Se tudo deu certo o programa inicializa uma conexão de internet (6) com a função InternetOpenA e user-agent "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" seguida de uma chamada (7) para InternetOpenUrlA com a URL "http://2016.eicar.org/download/eicar.com". Depois faz a leitura de 68 bytes (0x44) do arquivo remoto recém-aberto com a função (8) InternetReadFile e fecha a comunicação (9) com InternetCloseHandle. Pega o caminho da pasta temporária (10) com GetTempPathA e junta com a string "\payload.exe" (strcat) para criar o arquivo com esse nome na pasta temp com a função (11) CreateFileA e em seguida escrever o conteúdo (12) com WriteFile; O que foi modificado no sistema: O arquivo payload.exe pode ser criado dentro da pasta temporária do usuário (caso o sistema satisfaça as verificações do exe); Vale lembrar que todas as strings utilizadas acima estão ofuscadas no código, para decifrá-las é necessário fazer um XOR dos bytes com a chave [0x01 0x02, 0x03, 0x04, 0x00]. Código python: https://www.mentebinaria.com.br/forums/topic/469-analyseme-nível-03/?do=findComment&comment=1845 Abs, Rafael Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.