
Plugin de consulta de hash da API HashDB para IDA Pro
Plugin de consulta de hash de strings de malware para IDA Pro. Este plugin conecta-se ao Serviço de Consulta HashDB da OALABS.
O banco de dados de algoritmos de hash é open source e novos algoritmos podem ser adicionados no GitHub aqui. Pull requests são maioritariamente automatizados e, desde que os nossos testes automatizados passem, o novo algoritmo estará disponível no HashDB em minutos.
O HashDB pode ser usado para consultar strings que foram hasheadas em malware, clicando com o botão direito na constante de hash na vista de desassembly do IDA e iniciando o cliente HashDB Lookup.
Antes de o plugin poder ser usado para consultar hashes, as configurações do HashDB devem ser configuradas. A janela de configurações pode ser iniciada a partir do menu de plugins Edit->Plugins->HashDB.
Clique em Refresh Algorithms para obter uma lista de algoritmos de hash suportados da API HashDB e, em seguida, selecione o algoritmo usado no malware que está a analisar.
Há também uma opção para ativar XOR com cada valor de hash, pois esta é uma técnica comum usada por autores de malware para ofuscar ainda mais os hashes.
O URL da API padrão para o Serviço de Consulta HashDB é https://hashdb.openanalysis.net/. Se estiver a usar o seu próprio servidor interno, este URL pode ser alterado para apontar para o seu servidor.
Quando um novo hash é identificado pelo HashDB, o hash e a sua string associada são adicionados a uma enum no IDA. Esta enum pode então ser usada para converter constantes de hash no IDA para o nome da enum correspondente. O nome da enum é configurável a partir das configurações no caso de haver um conflito com uma enum existente.
Uma vez configuradas as configurações do plugin, pode clicar com o botão direito em qualquer constante na janela de desassembly ou Pseudocode (Hex-Rays) do IDA e consultar a constante como um hash. O clique com o botão direito também fornece uma forma rápida de definir o valor XOR, se necessário.
Se um hash fizer parte de um módulo, uma caixa de diálogo perguntará se deseja importar todos os hashes desse módulo. Esta é uma forma rápida de obter hashes em massa. Por exemplo, se um dos hashes identificados for Sleep do módulo kernel32, o HashDB pode então obter todas as exportações hasheadas de kernel32.
Após um hash ser resolvido (ou um módulo ser importado em massa), o HashDB analisa a função atual e converte cada constante correspondente para o seu nome de enum — em todos os operandos 0–2, com um fallback de máscara de 32 bits para valores com extensão de sinal. As vistas de desassembly e Hex-Rays são atualizadas automaticamente. Os módulos que já importou são armazenados em cache para a sessão, para que não seja solicitado novamente a importar kernel32 (etc.) a cada novo hash.
O HashDB também inclui uma pesquisa básica de algoritmos que tentará identificar o algoritmo de hash com base num valor de hash. A pesquisa retornará todos os algoritmos que contenham o valor de hash, cabendo ao analista decidir qual (se houver) algoritmo está correto. Para usar esta funcionalidade, clique com o botão direito na constante de hash e selecione HashDB Hunt Algorithm.
Todos os algoritmos que contêm este hash serão exibidos numa caixa de escolha. A caixa de escolha pode ser usada para selecionar diretamente o algoritmo para o HashDB usar. Se Cancel for selecionado, nenhum algoritmo será selecionado.
Em vez de resolver hashes de API individualmente (inline no código), alguns desenvolvedores de malware criam um bloco de hashes de importação na memória. Esses hashes são então todos resolvidos dentro de uma única função, criando uma tabela de endereços de importação dinâmica que é posteriormente referenciada no código. Nestes cenários, a função HashDB Scan IAT pode ser usada.
Simplesmente selecione o bloco de hash de importação, clique com o botão direito e escolha HashDB Scan IAT. O HashDB tentará resolver cada tipo de inteiro individual (DWORD/QWORD) no intervalo selecionado.
O HashDB requer o módulo python requests. Instale-o a partir de uma shell fora do IDA com pip install requests.
Pode então instalar o plugin de duas maneiras:
hashdb.py mais recente para o diretório plugins do seu IDA.O plugin HashDB tem como alvo IDA 7.5+ (incluindo IDA 9.0) com Python 3 e não é compatível com versões anteriores.