
Sandbox für semi-automatische JavaScript-Malware-Analyse, Deobfuskation und Payload-Extraktion. Geschrieben für Node.js.
Sandbox für semi-automatische Javascript-Malware-Analyse, Deobfuskation und Payload-Extraktion. Geschrieben für Node.js
malware-jail ist für die Node 'vm'-Sandbox geschrieben. Derzeit implementiert es den WScript (Windows Scripting Host)-Kontext env/wscript.js, zumindest den Teil, der häufig von Malware verwendet wird. Der Internetbrowser-Kontext ist teilweise implementiert env/browser.js.
Läuft auf jedem Betriebssystem. Entwickelt und getestet unter Linux, Node.js v6.6.0.
Aufgrund der Verwendung einiger ES6-Funktionen benötigen Sie Node.js >= 6.x.
Siehe EXAMPLES für analysierte Malware-Beispiele.
Wenn Sie neue Malware-Beispiele haben, reichen Sie diese bitte unter javascript-malware-collection ein, entweder per Issue oder Pull-Request.
Listet WMI-Abfragen in einer Datei auf: wmis.json
Neuen Parameter hinzugefügt:
--t404 - HTTP-Anfragen geben immer HTTP/404 zurück und werfen eine Ausnahme. Dies ermöglicht das Auflisten aller entfernten URLs.
URLs werden jetzt in urls.json gespeichert. Siehe aktuell EXAMPLES#malware-of-issue-14.
Verschiedene Fehlerkorrekturen und Verbesserungen.
Verschiedene Fehlerkorrekturen und Verbesserungen.
Neue Parameter hinzugefügt:
-t msecs - Begrenzt die Ausführungszeit auf "msecs" Millisekunden, standardmäßig 60 Sekunden.
--h404 - HTTP-Anfragen geben immer HTTP/404 zurück und werfen keine Ausnahme. Dies ermöglicht das Auflisten aller entfernten URLs.
Sie benötigen Node.js und npm installiert.
malware-jail basiert auf minimist, iconv-lite und entities.
Den Quellcode mit Git klonen:
git clone https://github.com/HynekPetrak/malware-jail.git
cd malware-jail
Dann alle Abhängigkeiten (minimist, entities, iconv-lite) installieren mit:
npm install
Noch nicht verfügbar, kommt bald ...
Seien Sie vorsichtig beim Umgang mit echter Malware. Eine Malware, die diese Sandbox kennt, könnte versuchen zu entkommen und Ihren PC zu schädigen. Es wird empfohlen, sie entweder von einem unprivilegierten Linux-Konto oder innerhalb einer virtualisierten Windows-Maschine auszuführen. Angler-Dateien im Malware-Ordner sind NICHT entschärft.
bash@linux# node jailme.js -h -b list
7 May 20:54:52 - malware-jail, a malware sandbox ver. 0.19
7 May 20:54:52 - ------------------------
7 May 20:54:52 - Usage: node jailme.js [[-e file1] [-e file2] .. ] [-c ./config.json] \
7 May 20:54:52 - [-o ofile] [-b id] \
7 May 20:54:52 - [-s odir] [--down] [malware1 [malware2] .. ]
7 May 20:54:52 - -c config .. use alternative config file, preceed with ./
7 May 20:54:52 - -e ifile ... js that simulates specific environment
7 May 20:54:52 - -o ofile ... name of the file where sandbox shall be dumped at the end
7 May 20:54:52 - -s odir ... output directory for generated files (malware payload)
7 May 20:54:52 - -b id ... browser type, use -b list for possible values
7 May 20:54:52 - -t msecs ... number of miliseconds before terminating execution, default 1 minute
7 May 20:54:52 - --trace ... print stack trace with every log line
7 May 20:54:52 - --down ... allow downloading malware payloads from remote servers
7 May 20:54:52 - --h404 ... on download return always HTTP/404
7 May 20:54:52 - malware ... js with the malware code
7 May 20:54:52 - If no arguments are specified the default values are taken from config.json
7 May 20:54:52 - Possible -b values: [ 'IE11_W10', 'IE8', 'IE7', 'iPhone', 'Firefox', 'Chrome' ]
Im Beispiele-Ordner finden Sie eine deaktivierte Malware-Datei. Führen Sie die Analyse aus mit:
node jailme.js -c ./config_wscript_only.json --down=y malware/example.js
Internetbrowser-basierte Malware können Sie testen mit
node jailme.js -b IE11_W10 malware/example_browser.js
Am Ende der Analyse wird der gesamte Sandbox-Kontext in eine Datei 'sandbox_dump_after.json' ausgegeben.
Möglicherweise möchten Sie die folgenden Einträge von 'sandbox_dump_after.json' untersuchen:
'sandbox_dump_after.json' verwendet JSONPath, implementiert von JSON-js/cycle.js, um doppelte oder zyklische Referenzen auf dasselbe Objekt zu speichern.