joomscan

Scanner de vulnérabilités pour le CMS Joomla. Détecte la version de Joomla, énumère les composants/plugins/templates installés, vérifie les CVE connues et identifie les mauvaises configurations courantes. Joomla CMS vulnerability scanner. Detects Joomla version, enumerates installed components/plugins/templates, checks for known CVEs, and identifies common misconfigurations.

↗ https://github.com/OWASP/joomscan

Overview

JoomScan (OWASP JoomScan) is the dedicated vulnerability scanner for Joomla CMS. It fingerprints the Joomla version, enumerates installed extensions, checks for hundreds of known CVEs and vulnerabilities, identifies configuration issues, and probes for common misconfigurations.

Basic Usage

Basic scan

joomscan -u http://target.com

Scan with verbose output

joomscan -u http://target.com -v

Enumerate components

joomscan -u http://target.com --enumerate-components

All checks

joomscan -u http://target.com -ec

Scanning Options

Use a proxy

joomscan -u http://target.com --proxy http://127.0.0.1:8080

Set cookie for authenticated scan

joomscan -u http://target.com --cookie "PHPSESSID=abc123"

Random user agent

joomscan -u http://target.com --random-agent

Full scan with all components

joomscan -u http://target.com -ec --random-agent

What JoomScan Detects

Version detection

joomscan -u http://target.com

→ → Joomla Version: 3.9.x → CVE-2019-XXXX: Remote Code Execution

# Configuration exposure
# → /configuration.php — check for world-readable
# → /README.txt — version disclosure
# → /administrator/ — admin panel exposed

Extension enumeration

joomscan -u http://target.com --enumerate-components

→ → com_users (version, vulnerabilities) → com_content → com_banners

Admin Panel and Login

# Admin login is usually at /administrator/
# Check for default credentials:
# admin:admin, admin:password, admin:joomla

After finding login page, brute force:

hydra -l admin -P /usr/share/wordlists/rockyou.txt \
  target.com http-post-form \
  "/administrator/index.php:username=^USER^&passwd=^PASS^&option=com_login&task=login:Login failed"

Output

Save output to file

joomscan -u http://target.com 2>&1 | tee joomscan-results.txt

Check for high-value findings:

grep -i "CVE\|RCE\|SQL\|LFI\|Upload" joomscan-results.txt

Tips

  • Run version detection first — knowing the Joomla version narrows down CVEs significantly
  • Check /administrator/manifests/files/joomla.xml for exact version
  • Vulnerable extensions (components) are often the attack vector — enumerate them all
  • Joomla 3.x has many known CVEs; 4.x is more secure but still has issues
  • After compromise, look for Joomla’s configuration.php — contains DB credentials
Help / Man page
joomscan [options]

-u URL              Target URL
-ec                 Enumerate components
--enumerate-components  Same as -ec
--proxy PROXY       HTTP proxy (host:port)
--cookie COOKIE     HTTP cookie string
--random-agent      Use random User-Agent
-v                  Verbose
--version           Show tool version

Vue d’ensemble

JoomScan (OWASP JoomScan) est le scanner de vulnérabilités dédié au CMS Joomla. Il identifie la version de Joomla, énumère les extensions installées, vérifie des centaines de CVE et vulnérabilités connues, identifie les problèmes de configuration et sonde les mauvaises configurations courantes.

Utilisation de base

# Scan basique
joomscan -u http://target.com

# Scan avec sortie verbeuse
joomscan -u http://target.com -v

# Énumérer les composants
joomscan -u http://target.com --enumerate-components

# Toutes les vérifications
joomscan -u http://target.com -ec

Options de scan

# Utiliser un proxy
joomscan -u http://target.com --proxy http://127.0.0.1:8080

# Définir un cookie pour un scan authentifié
joomscan -u http://target.com --cookie "PHPSESSID=abc123"

# User-agent aléatoire
joomscan -u http://target.com --random-agent

# Scan complet avec tous les composants
joomscan -u http://target.com -ec --random-agent

Ce que détecte JoomScan

# Détection de version
joomscan -u http://target.com
# → Joomla Version: 3.9.x → CVE-2019-XXXX: Remote Code Execution

# Exposition de la configuration
# → /configuration.php : vérifier si lisible par tous
# → /README.txt : divulgation de version
# → /administrator/ : panneau d'administration exposé

# Énumération des extensions
joomscan -u http://target.com --enumerate-components
# → com_users (version, vulnérabilités) → com_content → com_banners

Panneau admin et connexion

# La connexion admin se trouve généralement sur /administrator/
# Vérifier les identifiants par défaut :
# admin:admin, admin:password, admin:joomla

# Après avoir trouvé la page de login, bruteforce :
hydra -l admin -P /usr/share/wordlists/rockyou.txt \
  target.com http-post-form \
  "/administrator/index.php:username=^USER^&passwd=^PASS^&option=com_login&task=login:Login failed"

Sortie

# Sauvegarder la sortie dans un fichier
joomscan -u http://target.com 2>&1 | tee joomscan-results.txt

# Vérifier les résultats à forte valeur
grep -i "CVE\|RCE\|SQL\|LFI\|Upload" joomscan-results.txt

Conseils

  • Lancer d’abord la détection de version : connaître la version de Joomla réduit considérablement le champ des CVE
  • Vérifier /administrator/manifests/files/joomla.xml pour la version exacte
  • Les extensions vulnérables (composants) sont souvent le vecteur d’attaque : les énumérer toutes
  • Joomla 3.x compte de nombreuses CVE connues ; la 4.x est plus sécurisée mais présente encore des problèmes
  • Après compromission, chercher le configuration.php de Joomla : il contient les identifiants de la base de données
Aide / Page de manuel
joomscan [options]

-u URL              Target URL
-ec                 Enumerate components
--enumerate-components  Same as -ec
--proxy PROXY       HTTP proxy (host:port)
--cookie COOKIE     HTTP cookie string
--random-agent      Use random User-Agent
-v                  Verbose
--version           Show tool version