← retour aux outils back to tools

# cmseek

Framework de détection et d'exploitation de CMS. Identifie WordPress, Joomla, Drupal et 170+ autres CMS, puis réalise détection de version, énumération d'utilisateurs et vérification de vulnérabilités. CMS detection and exploitation framework. Identifies WordPress, Joomla, Drupal, and 170+ other CMSs, then performs version detection, user enumeration, and vulnerability checking.

↗ https://github.com/Tuhinshubhra/CMSeeK

## Overview

CMSeeK detects the CMS (Content Management System) powering a website and performs targeted enumeration. For WordPress it finds plugins, themes, users, and known vulnerabilities. For Joomla and Drupal it enumerates components and modules. Covers 170+ CMS platforms.

## Installation

    git clone https://github.com/Tuhinshubhra/CMSeeK
    cd CMSeeK
    pip3 install -r requirements.txt

## Basic Usage

Detect and enumerate a single site

    python3 cmseek.py -u https://example.com

Batch scan from file

    python3 cmseek.py -l targets.txt

Force specific CMS detection (skip auto-detect)

    python3 cmseek.py -u https://example.com --cms wp

Random user agent

    python3 cmseek.py -u https://example.com --random-agent

Follow redirects

    python3 cmseek.py -u https://example.com --follow-redirect

## WordPress Detection

Full WordPress scan

    python3 cmseek.py -u https://wordpress-site.com --cms wp

    # What it finds for WordPress:
    # - Version (from generator meta, readme.html, feed)
    # - Installed plugins (from /wp-content/plugins/)
    # - Installed themes (from /wp-content/themes/)
    # - Users (from /wp-json/wp/v2/users, author enumeration)
    # - Known vulnerabilities (WPScan integration)
    # - Admin panel location (/wp-admin/)
    # - XML-RPC status (/xmlrpc.php)
    # - User registration status

## CMS-Specific Modules

WordPress

    python3 cmseek.py -u https://site.com --cms wp

Joomla

    python3 cmseek.py -u https://site.com --cms joomla

Drupal

    python3 cmseek.py -u https://site.com --cms drupal

Magento (e-commerce)

    python3 cmseek.py -u https://site.com --cms magento

Auto-detect (default)

    python3 cmseek.py -u https://site.com

## Results

    # Results are saved to:
    # CMSeeK/Result/<domain>/cms.json

View results

    cat CMSeeK/Result/example.com/cms.json | python3 -m json.tool

    # Sample output:
    {
      "cms_id": "wordpress",
      "cms_version": "6.3.1",
      "users": ["admin", "editor", "john"],
      "plugins": {
        "contact-form-7": {"version": "5.7.7"},
        "woocommerce": {"version": "7.9.0", "vuln": true}
      }
    }

## Follow-Up Actions

After CMSeeK finds WordPress: 1. Deeper scan with wpscan

    wpscan --url https://example.com --enumerate p,t,u --api-token YOUR_TOKEN

2. Test XML-RPC for brute-force (if /xmlrpc.php is accessible)

    wpscan --url https://example.com --passwords rockyou.txt --usernames admin

3. Check vulnerable plugins with searchsploit

    searchsploit "contact form 7 5.7"

## Tips

- CMSeeK is a good quick first-pass; wpscan is deeper for WordPress-specific work
- Check `readme.html` and `CHANGELOG.txt` manually — they often reveal exact versions
- WordPress user enumeration via `/wp-json/wp/v2/users` gives valid login names
- XML-RPC enabled = brute-force target with no lockout on some configurations

Help / Man page

    cmseek.py [options]

    -u URL          Target URL
    -l FILE         List of URLs to scan
    --cms CMS       Force CMS: wp, joomla, drupal, magento, etc.
    --follow-redirect  Follow HTTP redirects
    --random-agent  Use random user agent
    --no-redirect   Don't follow redirects
    --light         Light scan (detection only, no deep enum)

## Vue d’ensemble

CMSeeK détecte le CMS (Content Management System) derrière un site web et effectue une énumération ciblée. Pour WordPress, il trouve plugins, thèmes, utilisateurs et vulnérabilités connues. Pour Joomla et Drupal, il énumère composants et modules. Couvre 170+ plateformes CMS.

## Installation

    git clone https://github.com/Tuhinshubhra/CMSeeK
    cd CMSeeK
    pip3 install -r requirements.txt

## Utilisation de base

    # Détecter et énumérer un seul site
    python3 cmseek.py -u https://example.com

    # Scan par lot depuis un fichier
    python3 cmseek.py -l targets.txt

    # Forcer la détection d'un CMS précis (sauter l'auto-détection)
    python3 cmseek.py -u https://example.com --cms wp

    # User agent aléatoire
    python3 cmseek.py -u https://example.com --random-agent

    # Suivre les redirections
    python3 cmseek.py -u https://example.com --follow-redirect

## Détection de WordPress

    # Scan WordPress complet
    python3 cmseek.py -u https://wordpress-site.com --cms wp

    # Ce qu'il trouve pour WordPress :
    # - Version (depuis la meta generator, readme.html, le feed)
    # - Plugins installés (depuis /wp-content/plugins/)
    # - Thèmes installés (depuis /wp-content/themes/)
    # - Utilisateurs (depuis /wp-json/wp/v2/users, énumération d'auteurs)
    # - Vulnérabilités connues (intégration WPScan)
    # - Emplacement du panneau d'admin (/wp-admin/)
    # - État de XML-RPC (/xmlrpc.php)
    # - État de l'inscription des utilisateurs

## Modules par CMS

    # WordPress
    python3 cmseek.py -u https://site.com --cms wp

    # Joomla
    python3 cmseek.py -u https://site.com --cms joomla

    # Drupal
    python3 cmseek.py -u https://site.com --cms drupal

    # Magento (e-commerce)
    python3 cmseek.py -u https://site.com --cms magento

    # Auto-détection (par défaut)
    python3 cmseek.py -u https://site.com

## Résultats

    # Les résultats sont sauvegardés dans :
    # CMSeeK/Result/<domain>/cms.json

    # Voir les résultats
    cat CMSeeK/Result/example.com/cms.json | python3 -m json.tool

    # Exemple de sortie :
    {
      "cms_id": "wordpress",
      "cms_version": "6.3.1",
      "users": ["admin", "editor", "john"],
      "plugins": {
        "contact-form-7": {"version": "5.7.7"},
        "woocommerce": {"version": "7.9.0", "vuln": true}
      }
    }

## Actions de suivi

    # Après que CMSeeK a trouvé WordPress :
    # 1. Scan plus poussé avec wpscan
    wpscan --url https://example.com --enumerate p,t,u --api-token YOUR_TOKEN

    # 2. Tester XML-RPC pour du brute-force (si /xmlrpc.php est accessible)
    wpscan --url https://example.com --passwords rockyou.txt --usernames admin

    # 3. Vérifier les plugins vulnérables avec searchsploit
    searchsploit "contact form 7 5.7"

## Conseils

- CMSeeK est un bon premier passage rapide ; wpscan est plus poussé pour le travail spécifique à WordPress
- Vérifiez `readme.html` et `CHANGELOG.txt` manuellement : ils révèlent souvent les versions exactes
- L’énumération d’utilisateurs WordPress via `/wp-json/wp/v2/users` donne des noms de connexion valides
- XML-RPC activé = cible de brute-force sans verrouillage sur certaines configurations

Aide / Page de manuel

    cmseek.py [options]

    -u URL          Target URL
    -l FILE         List of URLs to scan
    --cms CMS       Force CMS: wp, joomla, drupal, magento, etc.
    --follow-redirect  Follow HTTP redirects
    --random-agent  Use random user agent
    --no-redirect   Don't follow redirects
    --light         Light scan (detection only, no deep enum)