
Un scanner de malwares Web
Un scanner de malwares (web) développé lors du Hackathon CyperCamp 2017
Actuellement, certaines fonctionnalités sont disponibles pour tout type de site web (personnalisé ou CMS) et d'autres uniquement pour des plateformes spécifiques :
Pour installer masc sur votre ordinateur, vous pouvez simplement cloner ce dépôt.
Vous pouvez également télécharger la dernière version, la décompresser et l'essayer. Ou peut-être préférez-vous l'installer via pip (pip3 install masc).
Consultez les prérequis avant de l'exécuter.
Consultez cet avis si vous utilisez Debian Linux.
Consultez cet avis si vous utilisez Mac OSX.
masc a été testé uniquement sur les plateformes Linux et Mac OSX. Il devrait fonctionner sous Windows mais je ne l'ai pas encore essayé.
Avant tout, notez que cet outil est développé sous les environnements Linux et Mac OSX et, pour l'instant, il n'a été testé que sur ces systèmes d'exploitation.
santi@zenbook:$ pip3 install python-magic yara-python watchdog termcolor pypandoc progress pyclamd
Sur mon ordinateur portable, après la mise à niveau vers Debian testing, masc a commencé à afficher une erreur liée à Yara
OSError: /usr/lib/libyara.so: cannot open shared object file: No such file or directory
Après avoir essayé de nombreuses solutions trouvées sur Internet, j'ai réalisé que ce fichier se trouvait sur mon ordinateur dans /usr/local/lib/python3.5/dist-packages/usr/lib, j'ai donc créé un lien symbolique du chemin précédent vers /usr/lib
santi@zenbook:$ ln -s /usr/local/lib/python3.5/dist-packages/usr/lib/libyara.so /usr/lib/libyara.so
Et maintenant, masc et la bibliothèque Yara fonctionnent sans problème.
masc est développé sous Linux mais a été testé sous Mac OSX. Quoi qu'il en soit, il devrait fonctionner sans problème sur tout système d'exploitation compatible Unix.
En particulier, sous Mac OSX, j'ai remarqué qu'il est nécessaire d'installer Homebrew pour utiliser correctement la bibliothèque python-magic comme libmagic. Consultez d'abord le lien précédent vers la page d'accueil de brew puis vous pourrez installer comme indiqué ci-dessous :
santi@zenbook:$ brew install libmagic
De plus, sur mon ordinateur, j'ai dû modifier la première ligne du script masc.py. Python3 est installé dans /usr/local/bin et il n'est pas autorisé de créer des liens symboliques depuis /usr/bin
Modifiez la première ligne de masc.py
#!/usr/bin/python3
par cette ligne
#!/usr/local/bin/python3
Quoi qu'il en soit, vous pouvez toujours exécuter masc en utilisant l'interpréteur Python plutôt que d'exécuter le script directement :
santi@zenbook:$ python3 masc.py
usage: masc [-h] [-af FILENAME] [--aw STRING] [-cc] [-c] [-l] [-b] [-m]
[-n NAME] [-p PATH] [-r] [-s] [-t {wordpress,drupal,custom}]
optional arguments:
-h, --help show this help message and exit
-af FILENAME, --add-file FILENAME
Add a suspect file to the dictionary
-aw STRING --add-word STRING
Add a suspect content to the dictionary
-cc, --clean-cache Clean masc cache (cache and logs files, NO backups)
-c, --clean-site Clean up the site (and apply some extra actions to hide information to attackers)
-l, --list-backups List local backups
-b, --make-backup Create a local backup of the current installation
-m, --monitor Monitor site to detect changes
-n NAME, --name NAME Name assigned to the scanned installation
-p PATH, --path PATH Website installation path
-r, --rollback Restore a local backup
-s, --scan Scan website for malware
-t {wordpress,drupal,custom}, --site-type {wordpress,drupal,custom}
which type of web you want to scan:: wordpress,
joomla, drupal or magento
Les actions que vous pouvez effectuer sur une installation web sont :
Et vous devez considérer que si vous souhaitez effectuer certaines actions sur un type d'installation web, il est obligatoire de préciser le type (-t ou --type) et le chemin (-p ou --path).
Par exemple, si vous avez une installation WordPress dans /var/www/html et que vous souhaitez la scanner entièrement :
santi@zenbook:$ ./masc.py --scan --site-type wordpress --path /var/www/html
Et si vous souhaitez effectuer des actions de nettoyage (pour supprimer certains malwares, par exemple) :
santi@zenbook:$ ./masc.py --scan --site-type wordpress --path /var/www/html --clean-site
Deux échantillons de sites web piratés se trouvent dans le fichier samples.zip :
De plus, il existe un dépôt sur Docker Hub pour effectuer des tests masc-wordpress
Vous trouverez un tutoriel sur l'utilisation de masc sur le wiki
Si vous souhaitez contribuer à ce projet, jetez un œil au wiki. Il y a une section sur Comment contribuer à ce projet
Merci à OWASP WebMalwareScanner pour certaines idées et les bases de données de signatures avec les sommes de contrôle et les règles YARA (et comment les charger pour travailler avec).
Santiago Faci [email protected]