
Strumento di estrazione basato su Frida.re per RunPE (e MapViewOfSection)
FridaExtract è uno strumento di estrazione basato su Frida.re per RunPE. L'iniezione di tipo RunPE è una tecnica comune usata dai malware per nascondere codice all'interno di un altro processo. Accade anche di essere la fase finale in molti packer : )
NOTA: Frida ora supporta anche l'estrazione di file PE iniettati usando la tecnica "MapViewOfSection", descritta qui.
Usando FridaExtract puoi estrarre e ricostruire automaticamente un file PE che è stato iniettato usando il metodo RunPE... e bypassare questi packer!
Esistono tonnellate di ottimi strumenti che già estraggono codice iniettato con RunPE, FridaExtract non è migliore di questi. Ma è più facile da installare, più facile da compilare (lol), più facile da eseguire e più facile da hackare. Niente compilatori, niente ambienti di build, solo un semplice "pip install" e sei pronto per partire.
Il codice è specificamente commentato e organizzato per fungere da modello per costruire i tuoi progetti Frida. Questo è più una prova di concetto che dimostra come impostare hook in un ambiente Windows. Sentiti libero di copiare-incollare-hackerare questo codice come preferisci!
Avvertenza: FridaExtract funziona solo su Windows a 32 bit. Attualmente ci sono alcuni misteriosi bug con wow64, quindi raccomandiamo di attenersi a Windows7 a 32 bit o Windows Server 2008 a 32 bit.
pip install frida nel cmdFridaExtract è in grado di estrarre solo file PE iniettati con RunPE, quindi è piuttosto limitato. Se stai usando una VM facile da snapshot-eseguire-revert, allora puoi provare FridaExtract alla cieca su ogni campione malware e vedere cosa viene fuori, ma non lo raccomandiamo. Invece, FridaExtract è un buon complemento per una sandbox (adoriamo malwr). Prima esegui il campione in una sandbox e annota le chiamate API.
Per la tecnica RunPE, se vedi le seguenti chiamate API allora FridaExtract potrebbe essere lo strumento giusto per te:
Per la tecnica MapViewOfSection, se vedi le seguenti chiamate API allora FridaExtract potrebbe essere lo strumento giusto per te:
Per impostazione predefinita, FridaExtract tenterà di estrarre automaticamente il file PE iniettato, ricostruirlo e scaricarlo in un file chiamato dump.bin.
python FridaExtract.py bad.exe
Un file di dump può essere specificato usando il comando --out_file.
python FridaExtract.py bad.exe --out_file extracted.exe
Se il file PE compresso che stai tentando di estrarre richiede argomenti, puoi passarli usando il comando --args. Più argomenti possono essere passati separati da virgola.
python FridaExtract.py bad.exe --args password
FridaExtract tenterà automaticamente di ricostruire la memoria scaricata in un file PE. Se questo non funziona e desideri solo un dump grezzo di tutta la memoria scritta nel sottoprocesso, puoi usare il comando --raw. Invece di scrivere il PE ricostruito nel file di dump, i segmenti di memoria grezzi verranno scritti in ordine di indirizzo.
python FridaExtract.py bad.exe --raw
FridaExtract usa hook sulle seguenti API per estrarre il file PE iniettato:
Per tracciare queste API e stampare i risultati, usa il comando -v o --verbose.
python FridaExtract.py bad.exe --verbose
Frida usa hook a livello utente che possono essere facilmente aggirati. Se hai bisogno di uno strumento DBI più robusto, prova PIN! Un ottimo esempio di uso di PIN per estrarre RunPE è fornito qui.
Frida inietta un runtime JavaScript nel processo che stai analizzando, non è stealth. Per una buona panoramica su come Frida può essere rilevato dal malware, dai un'occhiata qui.