
Analyse WhiteBox CMS
CoMisSion est un outil pour analyser rapidement une installation de CMS. L'outil :
🔥 Attention : CoMisSion ne recherche pas les vulnérabilités en analysant le code source. Les vulnérabilités sont collectées à partir de bases de données publiques comme wpvulndb. Trouver de nouvelles vulnérabilités n'est pas le but de cet outil.
Un rapport complet peut être généré dans les formats suivants :
L'outil a été testé sur Linux et Windows. Pour éviter une pollution de la sortie, je recommande d'utiliser l'option --no-color sur Windows.
./commision.py -c wordpress -d /cms_dir -o report.xlsx -t XLSX
L'outil nécessite au moins python3.6.
git clone https://github.com/Intrinsec/comission
pip install -r requirements.txt
usage: comission.py [-h] -d DIR -c CMS [-o FILE] [-t TYPE] [--skip-core]
[--skip-plugins] [--skip-themes] [--no-color] [-f CONF]
[--log LOGFILE] [--wp-content WP_CONTENT]
[--plugins-dir PLUGINS_DIR] [--themes-dir THEMES_DIR]
[--major VERSION_MAJOR] [-v VERSION]
[--wpvulndb-token WPVULNDB_TOKEN] [--debug]
CoMisSion analyse un CMS et les plugins utilisés.
arguments optionnels :
-h, --help affiche ce message d'aide et quitte
-d DIR, --dir DIR répertoire racine du CMS
-c CMS, --cms CMS type de CMS (drupal, wordpress)
-o FILE, --output FILE
chemin du fichier de sortie
-t TYPE, --type TYPE type de sortie (CSV, XLSX, JSON, STDOUT). Par défaut
XLSX.
--skip-core définir ceci pour ignorer l'analyse du cœur
--skip-plugins définir ceci pour ignorer l'analyse des plugins
--skip-themes définir ceci pour ignorer l'analyse des thèmes
--no-color ne pas utiliser de couleurs dans la sortie.
-f CONF, --file CONF fichier de configuration. Voir example.conf.
--log LOGFILE enregistrer la sortie dans le fichier donné.
--wp-content WP_CONTENT
définir ceci pour forcer l'emplacement du répertoire wp-content.
--plugins-dir PLUGINS_DIR
définir ceci pour forcer l'emplacement du répertoire des plugins.
--themes-dir THEMES_DIR
définir ceci pour forcer l'emplacement du répertoire des thèmes.
--major VERSION_MAJOR
spécifier la version majeure du cœur (ex. 7, 8) lors de l'utilisation
de l'argument --skip-core. Fonctionne uniquement pour Drupal.
-v VERSION, --version VERSION
spécifier la version complète du cœur (ex. 5.5).
--wpvulndb-token WPVULNDB_TOKEN
définir un jeton pour interroger l'API wpvulndb.
--debug afficher les messages de débogage pour aider à identifier les erreurs.
🔥 Pour obtenir les vulnérabilités pour WordPress, vous devez définir l'argument --wpvulndb_token. Vous pouvez obtenir un jeton avec un compte sur wpvulndb.
Vous pouvez fournir un fichier de configuration. Voir example.conf pour référence.
Nous ne publions pas encore d'image officielle. Pour utiliser l'outil avec docker, vous pouvez construire une image. Dans le dossier du projet, construisez avec :
docker build -t isec/comission .
Puis exécutez-le avec :
docker run -it --rm -v /TARGET_PATH/:/cms_path/ -v /OUTPUT_DIR/:/output/ isec/comission -d /cms_path/ -c drupal -o /output/test_docker.xlsx -t XLSX
Veillez à modifier les chemins "TARGET_PATH" et "OUTPUT_DIR" pour correspondre à vos dossiers.
Des tests unitaires sont disponibles dans le dossier tests. Avant de lancer les tests, vous devez créer un répertoire test-data-set contenant les sous-répertoires drupal et wordpress, ainsi qu'un fichier test.conf contenant au moins une valeur wpvulndb_token.
Paul Mars (Intrinsec)
Basé sur une idée de Etienne Boursier (Intrinsec)
Cet outil est distribué sous la licence GPLv3. Mais attention, l'outil utilise l'API wpvulndb pour collecter des informations sur le cœur et les plugins de WordPress.