
Sandbox per l'analisi semi-automatica di malware JavaScript, deobfusazione ed estrazione del payload. Scritto per Node.js
Sandbox per l'analisi semi-automatica di malware JavaScript, deoffuscazione ed estrazione del payload. Scritto per Node.js
malware-jail è scritto per la sandbox 'vm' di Node. Attualmente implementa il contesto WScript (Windows Scripting Host) env/wscript.js, almeno la parte frequentemente usata dai malware. Il contesto del browser Internet è parzialmente implementato env/browser.js.
Funziona su qualsiasi sistema operativo. Sviluppato e testato su Linux, Node.js v6.6.0.
A causa dell'uso di alcune funzionalità ES6, avrai bisogno di Node.js >= 6.x.
Vedi ESEMPI per campioni di malware analizzati.
Se hai nuovi campioni di malware, inviali a javascript-malware-collection, tramite issue o pull request.
Enumera le query WMI in un file: wmis.json
Aggiunto un nuovo parametro:
--t404 - le richieste http restituiscono sempre HTTP/404 e lanciano un'eccezione. Questo permette di enumerare tutti gli URL remoti.
Gli URL vengono ora salvati in urls.json. Vedi gli ultimi ESEMPI#malware-di-issue-14.
Diverse correzioni di bug e miglioramenti.
Diverse correzioni di bug e miglioramenti.
Aggiunti nuovi parametri:
-t msecs - limita il tempo di esecuzione a "msecs" millisecondi, di default 60 secondi.
--h404 - le richieste http restituiscono sempre HTTP/404 e non lanciano eccezioni. Questo permette di enumerare tutti gli URL remoti.
Avrai bisogno di Node.js e npm installati.
malware-jail è costruito su minimist, iconv-lite e entities.
Clona il sorgente con git:
git clone https://github.com/HynekPetrak/malware-jail.git
cd malware-jail
Poi installa tutte le dipendenze (minimist, entities, iconv-lite) con:
npm install
Non ancora disponibile, presto in arrivo ...
Fai attenzione quando lavori con un vero malware. Un malware che è a conoscenza di questa sandbox potrebbe tentare di evadere e danneggiare il tuo PC. Si consiglia di eseguirlo da un account Linux non privilegiato o all'interno di una macchina Windows virtualizzata. I file Angler nella cartella malware NON sono disinnescati.
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 .. usa un file di configurazione alternativo, preceduto da ./
7 May 20:54:52 - -e ifile ... js che simula un ambiente specifico
7 May 20:54:52 - -o ofile ... nome del file in cui verrà scaricata la sandbox alla fine
7 May 20:54:52 - -s odir ... directory di output per i file generati (payload del malware)
7 May 20:54:52 - -b id ... tipo di browser, usa -b list per i valori possibili
7 May 20:54:52 - -t msecs ... numero di millisecondi prima di terminare l'esecuzione, default 1 minuto
7 May 20:54:52 - --trace ... stampa la stack trace con ogni riga di log
7 May 20:54:52 - --down ... permette il download dei payload del malware da server remoti
7 May 20:54:52 - --h404 ... al download restituisce sempre HTTP/404
7 May 20:54:52 - malware ... js con il codice del malware
7 May 20:54:52 - Se non vengono specificati argomenti, i valori predefiniti vengono presi da config.json
7 May 20:54:52 - Valori -b possibili: [ 'IE11_W10', 'IE8', 'IE7', 'iPhone', 'Firefox', 'Chrome' ]
Nella cartella examples puoi trovare un file malware disattivato. Esegui l'analisi con:
node jailme.js -c ./config_wscript_only.json --down=y malware/example.js
Per malware basati su browser Internet puoi testare con:
node jailme.js -b IE11_W10 malware/example_browser.js
Alla fine dell'analisi l'intero contesto della sandbox viene scaricato in un file 'sandbox_dump_after.json'.
Potresti voler esaminare le seguenti voci di 'sandbox_dump_after.json':
'sandbox_dump_after.json' utilizza JSONPath, implementato da JSON-js/cycle.js, per salvare riferimenti duplicati o ciclici allo stesso oggetto.