
Plugin di ricerca hash tramite API HashDB per IDA Pro
Plugin per IDA Pro per la ricerca di hash di stringhe di malware. Questo plugin si connette al servizio di lookup HashDB di OALABS.
Il database degli algoritmi di hash è open source e nuovi algoritmi possono essere aggiunti su GitHub. Le pull request sono per lo più automatizzate e, finché i nostri test automatizzati superano, il nuovo algoritmo sarà utilizzabile su HashDB in pochi minuti.
HashDB può essere utilizzato per cercare stringhe che sono state sottoposte a hash in malware facendo clic destro sulla costante hash nella vista disassembly di IDA e avviando il client HashDB Lookup.
Prima che il plugin possa essere utilizzato per cercare hash, è necessario configurare le impostazioni di HashDB. La finestra delle impostazioni può essere aperta dal menu dei plugin Edit->Plugins->HashDB.
Fare clic su Refresh Algorithms per ottenere un elenco degli algoritmi di hash supportati dall'API di HashDB, quindi selezionare l'algoritmo utilizzato nel malware che si sta analizzando.
È presente anche un'opzione per abilitare XOR con ogni valore hash, poiché questa è una tecnica comune utilizzata dagli autori di malware per offuscare ulteriormente gli hash.
L'URL API predefinito per il servizio di lookup HashDB è https://hashdb.openanalysis.net/. Se si utilizza un server interno proprio, questo URL può essere modificato per puntare al proprio server.
Quando un nuovo hash viene identificato da HashDB, l'hash e la sua stringa associata vengono aggiunti a un enum in IDA. Questo enum può quindi essere utilizzato per convertire le costanti hash in IDA nel nome dell'enum corrispondente. Il nome dell'enum è configurabile dalle impostazioni nel caso ci sia un conflitto con un enum esistente.
Una volta configurate le impostazioni del plugin, è possibile fare clic destro su qualsiasi costante nella finestra di disassembly o Pseudocodice (Hex-Rays) di IDA e cercare la costante come hash. Il clic destro fornisce anche un modo rapido per impostare il valore XOR se necessario.
Se un hash fa parte di un modulo, un prompt chiederà se si desidera importare tutti gli hash da quel modulo. Questo è un modo rapido per ottenere hash in blocco. Ad esempio, se uno degli hash identificati è Sleep del modulo kernel32, HashDB può quindi estrarre tutti gli export con hash da kernel32.
Dopo che un hash è stato risolto (o un modulo è stato importato in blocco), HashDB analizza la funzione corrente e converte ogni costante corrispondente nel nome dell'enum — attraverso gli operandi 0–2, con un fallback di maschera a 32 bit per valori estesi con segno. Le viste disassembly e Hex-Rays vengono aggiornate automaticamente. I moduli già importati vengono memorizzati nella cache per la sessione, quindi non verrà richiesto nuovamente di importare kernel32 (ecc.) per ogni nuovo hash.
HashDB include anche una ricerca algoritmo di base che tenterà di identificare l'algoritmo di hash basandosi su un valore hash. La ricerca restituirà tutti gli algoritmi che contengono il valore hash, spetta all'analista decidere quale (se presente) algoritmo è corretto. Per utilizzare questa funzionalità, fare clic destro sulla costante hash e selezionare HashDB Hunt Algorithm.
Tutti gli algoritmi che contengono questo hash verranno visualizzati in una finestra di scelta. La finestra di scelta può essere utilizzata per selezionare direttamente l'algoritmo che HashDB utilizzerà. Se si seleziona Cancel, nessun algoritmo verrà selezionato.
Invece di risolvere gli hash API individualmente (inline nel codice), alcuni sviluppatori di malware creano un blocco di hash di import in memoria. Questi hash vengono poi tutti risolti all'interno di una singola funzione creando una tabella degli indirizzi di import dinamica che viene successivamente referenziata nel codice. In questi scenari è possibile utilizzare la funzione HashDB Scan IAT.
Basta selezionare il blocco di hash di import, fare clic destro e scegliere HashDB Scan IAT. HashDB tenterà di risolvere ogni singolo tipo intero (DWORD/QWORD) nell'intervallo selezionato.
HashDB richiede il modulo Python requests. Installalo da una shell al di fuori di IDA con pip install requests.
È quindi possibile installare il plugin in uno dei due modi:
hashdb.py nella directory plugins di IDA.Il plugin HashDB è mirato a IDA 7.5+ (incluso IDA 9.0) con Python 3 e non è retrocompatibile.