
Outil d'analyse de scripts basé sur Frida.re
frida-wshook est un outil d'analyse et d'instrumentation qui utilise frida.re pour intercepter les fonctions courantes souvent utilisées par les fichiers de script malveillants exécutés via WScript/CScript.
L'outil intercepte les fonctions de l'API Windows et n'implémente pas de stubs ou de proxies de fonctions dans le langage de script ciblé. Cela lui permet de prendre en charge l'analyse de plusieurs types de scripts tels que :
Par défaut, les fichiers de script sont exécutés avec cscript.exe et affichent :
Avertissement !!! Assurez-vous d'exécuter tout script malveillant sur un système d'analyse dédié. Idéalement, une machine virtuelle avec des instantanés afin de pouvoir revenir en arrière si un script vous échappe et que vous devez réinitialiser le système.
Bien que les méthodes courantes aient été interceptées, Windows fournit de nombreuses API qui permettent aux développeurs d'interagir avec un réseau, un système de fichiers et d'exécuter des commandes. Il est donc tout à fait possible de rencontrer des scripts utilisant des API peu courantes pour ces fonctions.
pip install frida
frida-wshook a été testé sur Windows 10 et Windows 7 et devrait fonctionner sur tout environnement Windows 7+. Sur les systèmes x64, CScript est chargé depuis le répertoire C:\Windows\SysWow64.
Il pourrait fonctionner sur Windows XP, mais je soupçonne que CScript utilise des appels d'API hérités et contournerait l'instrumentation.
Le script prend en charge un certain nombre d'arguments en ligne de commande optionnels qui vous permettent de contrôler les API que l'hôte de script peut appeler.
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
Analyser un script avec les paramètres par défaut :
python wshook.py bad.js
Activer le débogage verbeux :
python wshook.py --debug bad.js
Activer les commandes shell (exécution) :
python frida-wshook.py --enable_shell bad.vbs
Désactiver WSASend :
python frida-wshook.py --disable_net bad.vbs
Vérifier quels ProgIds le script utilise :
python frida-wshook.py --disable_com_init bad.vbs
Pour toute question, commentaire ou demande, vous pouvez nous trouver sur Twitter : @seanmw ou @herrcore