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/CMSeeKOverview
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
- Test XML-RPC for brute-force (if /xmlrpc.php is accessible)
wpscan --url https://example.com --passwords rockyou.txt --usernames admin
- 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.htmlandCHANGELOG.txtmanually — they often reveal exact versions - WordPress user enumeration via
/wp-json/wp/v2/usersgives 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.htmletCHANGELOG.txtmanuellement : ils révèlent souvent les versions exactes - L’énumération d’utilisateurs WordPress via
/wp-json/wp/v2/usersdonne 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)