Guida Malware Reversing Malware Analysis Reversing e Strumenti su Windows

JunkCoder

Moderatore
5 Giugno 2020
1,686
25
1,504
653
Ultima modifica da un moderatore:

malware-analysis-feature.jpg

Malware Analysis - Reversing e Strumenti per Windows - Parte 3​







Nella precedente parte del corso sono illustrate delle tecniche per rilevare comportamenti sospetti usando un approccio blackbox. In questa parte verranno trattati alcuni dei vari strumenti che il Malware Analyst ha a disposizione per il suo lavoro quando l'analisi passiva non è sufficiente.



1    Analisi su eseguibili nativi compilati



Per gli eseguibili compilati i nostri migliori alleati sono i debugger e strumenti di analisi del PE. Come debugger abbiamo ampia scelta, ecco una lista con alcuni dettagli e i loro maggiori pro:



IDA - The Interactive Disassembler​


ida.png


IDA è probabilmente il più famoso al momento, anche la versione free ha molte funzionalità utilissime, oltre al disassembler, l'hex editor, ricerca sulle stringhe, sulle tabelle di import ed export ha anche una modalità grafo per rappresentare le varie funzioni e i loro percorsi condizionali.



Ghidra​


ghidra.png


Ghidra, sviluppato dalla NSA e recentemente rilasciato al pubblico fornisce oltre al disassembler/debugger un decompilatore che tenta di rappresentare il sorgente in C partendo dall'assembler.



x64dbg​


x64dbg.png


x64dbg ed ImmunityDebugger nonostante l'aspetto più "classico" (simile a ollydbg) hanno tutte le funzionalità necessarie al reversing oltre che moltissimi plugin per diversi scopi, ad esempio ScyllaHide per nascondere il debugger da tattiche di anti-debug.


WinDbg​


windbg.png


WinDbg, debugger Microsoft avanzato, può risultare molto ostico per via dei suoi innumerevoli comandi difficili da memorizzare ma è molto potente, specialmente per quanto riguarda il Kernel Debugging.

Può tornare utile anche CFF Explorer che fornisce un'interfaccia grafica intuitiva per esplorare o modificare gli header del PE.



2    Analisi su eseguibili .NET



Il codice dei software dotNet (C# e VB principalmente) viene trasformato in codice IL (Intermediate Language) nell'eseguibile finale. Quando eseguito, il CLR (Common Language Runtime) trasforma il bytecode IL in codice macchina tramite JIT (Just-In-Time compilation) e a quel punto è direttamente eseguibile dalla CPU. Questo rende i comuni debugger per codice nativo molto complessi da usare, ma al contempo molto più semplice ricostruire un sorgente fedele all'originale partendo dal bytecode IL, per questo motivo ci servono dei software appositi:
  • dnSpy, potente decompilatore .NET, contiene un debugger ed un'interfaccia simile a quella di Visual Studio
  • .NET Reflector, a pagamento
  • de4dot
  • ILSpy

dnspy.png




3    Analisi su script



Essendo gli script semplici file di testo è sufficiente aprirli con un editor per vederne il contenuto. Questo potrebbe essere offuscato, potete cercare un deoffuscatore automatico per lo specifico linguaggio oppure scrivere a vostra volta uno script per ripulirlo.
In certi casi gli script potrebbero essere inclusi in pacchetti di installazione eseguibili (es. pyinstaller per Python), in questi casi è sufficiente estrarre gli script staticamente o aspettare che vengano estratti su filesystem ed interrompere l'esecuzione.



4    Strumenti per altri linguaggi



Java - strumenti come jadx e jdgui cercano di tradurre il bytecode Java per JVM (Java Virtual Machine) nuovamente in codice sorgente.
AutoIt - myAutToExe e Exe2Aut estraggono gli script AutoIt contenuti nelle risorse dell'eseguibile stub scritto in Visual C++ in file sorgenti .au3 in modo automatico.



5    Strumenti generici



Sysinternals - Pacchetto Microsoft che include moltissimi software essenziali per un'ampia gamma delle internals del sistema operativo Windows.

DetectItEasy (DIE) è un progetto opensource che fornisce informazioni su file eseguibili. Grazie alle sue firme può identificare il linguaggio in cui è stato scritto il programma e, se presente, il nome del packer/offuscatore utilizzato per proteggerlo. Questo velocizzerà la vostra analisi, indirizzandovi subito sul prossimo strumento da usare per il reversing.

die.png


Nella quarta e ultima parte di questo corso ci sarà un laboratorio CTF nel quale potrete dare la caccia a dei malware relativamente inoffensivi in macchina virtuale.



6    Risorse aggiuntive


Di seguito sono elencati tutti i capitoli del corso ed ulteriori risorse utili per comprendere al meglio l'arte dell'analisi di malware e gli strumenti necessari: