
Frida.re-basiertes RunPE- (und MapViewOfSection-) Extraktionswerkzeug
FridaExtract ist ein auf Frida.re basierendes RunPE Extraktionswerkzeug. RunPE-Injektion ist eine gängige Technik, die von Malware verwendet wird, um Code in einem anderen Prozess zu verstecken. Sie ist auch die letzte Stufe vieler Packer : )
HINWEIS: Frida unterstützt jetzt auch die Extraktion injizierter PE-Dateien mit der "MapViewOfSection"-Technik, die am besten hier beschrieben wird.
Mit FridaExtract können Sie automatisch eine PE-Datei extrahieren und rekonstruieren, die mit der RunPE-Methode injiziert wurde ... und diese Packer umgehen!
Es gibt viele großartige Tools, die bereits RunPE-injizierten Code extrahieren. FridaExtract ist nicht besser als diese. Aber es ist einfacher zu installieren, einfacher zu bauen (lol), einfacher auszuführen und einfacher zu hacken. Keine Compiler, keine Build-Umgebungen, nur ein einfaches "pip install" und schon kann es losgehen.
Der Code ist speziell kommentiert und organisiert, um als Vorlage für Ihre eigenen Frida-Projekte zu dienen. Dies ist eher ein Proof-of-Concept, der zeigt, wie man Hooks in einer Windows-Umgebung einrichtet. Bitte kopieren-einfügen-hacken Sie dies nach Belieben!
Warnung: FridaExtract funktioniert nur unter Windows 32bit. Es gibt derzeit einige mysteriöse Fehler mit wow64, daher empfehlen wir, bei Windows7 32bit oder Windows Server 2008 32bit zu bleiben.
pip install frida in der Eingabeaufforderung eingebenFridaExtract kann nur RunPE-injizierte PE-Dateien extrahieren, daher ist es recht eingeschränkt. Wenn Sie eine VM verwenden, die einfach zu snapshot-run-revert ist, können Sie FridaExtract blind auf jedes Malware-Beispiel anwenden und sehen, was herauskommt, aber wir empfehlen es nicht. Stattdessen ist FridaExtract eine gute Ergänzung zu einer Sandbox (wir <3 malwr). Führen Sie das Beispiel zuerst in einer Sandbox aus und notieren Sie die API-Aufrufe.
Für die RunPE-Technik: Wenn Sie die folgenden API-Aufrufe sehen, könnte FridaExtract das richtige Werkzeug für Sie sein:
Für die MapViewOfSection-Technik: Wenn Sie die folgenden API-Aufrufe sehen, könnte FridaExtract das richtige Werkzeug für Sie sein:
Standardmäßig versucht FridaExtract, die injizierte PE-Datei automatisch zu extrahieren, zu rekonstruieren und in eine Datei namens dump.bin zu speichern.
python FridaExtract.py bad.exe
Eine Ausgabedatei kann mit dem Befehl --out_file angegeben werden.
python FridaExtract.py bad.exe --out_file extracted.exe
Wenn die gepackte PE-Datei, die Sie extrahieren möchten, Argumente benötigt, können Sie diese mit dem Befehl --args übergeben. Mehrere Argumente können als kommagetrennte Liste übergeben werden.
python FridaExtract.py bad.exe --args password
FridaExtract wird automatisch versuchen, den ausgelagerten Speicher in eine PE-Datei zu rekonstruieren. Wenn dies nicht funktioniert und Sie nur einen Rohdump des gesamten in den Unterprozess geschriebenen Speichers möchten, können Sie den Befehl --raw verwenden. Anstatt die rekonstruierte PE in die Ausgabedatei zu schreiben, werden die rohen Speichersegmente in der Reihenfolge ihrer Adressen geschrieben.
python FridaExtract.py bad.exe --raw
FridaExtract verwendet Hooks auf den folgenden APIs, um die injizierte PE-Datei zu extrahieren:
Um diese APIs zu verfolgen und die Ergebnisse auszugeben, verwenden Sie den Befehl -v oder --verbose.
python FridaExtract.py bad.exe --verbose
Frida verwendet Userland-Hooks, die leicht umgangen werden können. Wenn Sie ein robusteres DBI-Tool benötigen, probieren Sie PIN! Ein großartiges Beispiel für die Verwendung von PIN zur Extraktion von RunPE finden Sie hier.
Frida injiziert eine JavaScript-Laufzeitumgebung in den zu analysierenden Prozess, es ist nicht versteckt. Für einen guten Überblick darüber, wie Frida von Malware erkannt werden kann, schauen Sie hier.