
Strumento di analisi degli script basato su Frida.re
frida-wshook è uno strumento di analisi e instrumentation che utilizza frida.re per hookare funzioni comuni spesso utilizzate da file script malevoli eseguiti tramite WScript/CScript.
Lo strumento intercetta le funzioni API di Windows e non implementa stub o proxy di funzioni all'interno del linguaggio di scripting target. Ciò consente di supportare l'analisi di diversi tipi di script, come:
Per impostazione predefinita, i file script vengono eseguiti utilizzando cscript.exe e produrranno:
Attenzione!!! Assicurati di eseguire eventuali script malevoli su un sistema dedicato all'analisi. Idealmente, una macchina virtuale con snapshot in modo da poter ripristinare se uno script sfugge al controllo e hai bisogno di resettare il sistema.
Sebbene i metodi comuni siano stati hookati, Windows fornisce numerose API che consentono agli sviluppatori di interagire con la rete, il filesystem ed eseguire comandi. Quindi è del tutto possibile incontrare script che sfruttano API non comuni per queste funzioni.
pip install frida
frida-wshook è stato testato su Windows 10 e Windows 7 e dovrebbe funzionare su qualsiasi ambiente Windows 7+. Su sistemi x64, CScript viene caricato dalla directory C:\Windows\SysWow64.
Potrebbe funzionare su WindowsXP, ma sospetto che CScript possa utilizzare chiamate API legacy e quindi bypassare l'instrumentation.
Lo script supporta una serie di argomenti opzionali da riga di comando che permettono di controllare quali API l'host di scripting può chiamare.
usage: frida-wshook.py [-h] [--debug] [--disable_dns] [--disable_com_init]
[--enable_shell] [--disable_net]
script
frida-wshook.py your friendly WSH Hooker
positional arguments:
script Path to target .js/.vbs file
optional arguments:
-h, --help show this help message and exit
--debug Output debug info
--disable_dns Disable DNS Requests
--disable_com_init Disable COM Object Id Lookup
--enable_shell Enable Shell Commands
--disable_net Disable Network Requests
Analizza uno script con i parametri predefiniti:
python wshook.py bad.js
Abilita debug verbose:
python wshook.py --debug bad.js
Abilita comandi shell (esecuzione):
python frida-wshook.py --enable_shell bad.vbs
Disabilita WSASend:
python frida-wshook.py --disable_net bad.vbs
Controlla quali ProgIds utilizza lo script:
python frida-wshook.py --disable_com_init bad.vbs
Per qualsiasi domanda, commento o richiesta puoi trovarci su Twitter: @seanmw o @herrcore