claude.md•6.91 kB
# Exegol MCP Server - Guide d'Implémentation
## Vue d'ensemble
Ce serveur MCP expose les capacités de pentesting d'Exegol à travers une interface MCP standardisée. Il est spécialement conçu pour les étudiants en cybersécurité participant à des compétitions CTF.
## Architecture Technique
### Container Docker
- **Image de base** : `nwodtuhs/exegol:latest`
- **Runtime** : Python 3.11
- **Protocole** : MCP via stdio
- **Isolation** : Container Docker avec montage de volumes
### Sauvegarde des Résultats
Tous les outils sauvegardent automatiquement leurs résultats dans un vault Obsidian avec :
- **Format de nom** : `YYYYMMDD_HHMMSS_outil_cible.txt`
- **Structure** : En-tête avec metadata + contenu du scan
- **Organisation** : Horodatage automatique pour retrouver facilement les scans
### Gestion des Erreurs
- Timeouts configurés par catégorie d'outil
- Codes de retour vérifiés
- Messages d'erreur formatés pour l'utilisateur
- Logs détaillés vers stderr
## Catégories d'Outils
### 1. Reconnaissance (Timeouts : 300-600s)
Scanner et énumérer les cibles avant exploitation.
**Nmap** : Scanner réseau complet
- Modes prédéfinis : quick, full, stealth, vuln
- Support des ports personnalisés
- Détection de services et versions
**Gobuster** : Brute-force de répertoires
- Wordlists intégrées (common, medium, big)
- Support des extensions de fichiers
- Mode silencieux pour output propre
**FFUF** : Fuzzing web avancé
- Modes : directory, vhost, parameter
- Plus rapide que gobuster
- Meilleur pour la découverte de paramètres
**WhatWeb** : Fingerprinting web
- Identification de CMS
- Détection de technologies
- Niveaux d'agression configurable
### 2. Exploitation Web (Timeouts : 900s)
Identifier et exploiter les vulnérabilités web.
**SQLMap** : Injection SQL automatique
- Support POST et GET
- Gestion des cookies
- Techniques configurables
**Nikto** : Scanner de vulnérabilités
- Base de données de 6700+ vulnérabilités
- Support SSL/TLS
- Détection de configurations dangereuses
**WPScan** : Audit WordPress
- Énumération de plugins vulnérables
- Détection de thèmes
- Brute-force d'utilisateurs
### 3. Post-Exploitation (Timeouts : 300s)
Maintenir l'accès et escalader les privilèges.
**Reverse Shell Generator** : Payloads multiples
- 7 types de shells supportés
- Compatible tous OS
- Commande listener incluse
**LinPEAS** : Escalade de privilèges Linux
- Scan automatique de vecteurs d'escalade
- Détection de misconfigurations
- Recherche de credentials
### 4. Cryptographie (Timeouts : 3600s)
Identifier et casser les protections cryptographiques.
**Hash Identifier** : Reconnaissance de hash
- Identification automatique du type
- Suggestions d'outils de cracking
**John the Ripper** : Cracking CPU
- Support de nombreux formats
- Rainbow tables
- Wordlist rockyou intégrée
**Hashcat** : Cracking GPU
- Plus rapide que John
- Modes multiples (0-99999+)
- Support des règles
**Encodage/Décodage** : Transformations
- Base64, Hex, URL, ROT13
- Détection automatique possible
- Chaînage de transformations
### 5. OSINT (Timeouts : 600s)
Collecte d'informations publiques sur les cibles.
**WHOIS** : Informations de domaine
- Propriétaire et contacts
- Dates d'enregistrement
- Serveurs DNS
**DNS Enumeration** : Records DNS
- Tous types de records (A, AAAA, MX, TXT, etc.)
- Détection de zone transfers
- Reverse DNS
**Subdomain Enumeration** : Découverte de sous-domaines
- 3 outils au choix (subfinder, assetfinder, amass)
- Sources passives et actives
- Combinaison pour meilleurs résultats
**theHarvester** : Email harvesting
- Recherche dans moteurs de recherche
- Sources multiples (Google, Bing, LinkedIn)
- Collecte d'IPs et sous-domaines
### 6. Stéganographie (Timeouts : 300s)
Découvrir des données cachées dans les fichiers.
**Steghide** : Extraction de données cachées
- Support images JPEG, BMP, WAV, AU
- Protection par mot de passe
- Extraction automatique
**ExifTool** : Analyse de métadonnées
- Support 100+ formats de fichiers
- Recherche de coordonnées GPS
- Détection de logiciels utilisés
**Binwalk** : Analyse de firmware
- Détection de signatures
- Extraction automatique
- Analyse récursive
### 7. Brute Force (Timeouts : 3600s)
Casser les authentifications par force brute.
**Hydra** : Brute-force réseau
- Support 50+ protocoles
- Parallélisation
- Rockyou intégré
**Medusa** : Alternative à Hydra
- Plus stable sur certains services
- Modules additionnels
- Meilleure gestion d'erreurs
## Conventions de Code
### Docstrings
```python
@mcp.tool()
async def tool_name(param: str = "") -> str:
"""Single-line description mentioning all key parameters and features."""
```
### Paramètres
- Toujours des valeurs par défaut (`""` jamais `None`)
- Types simples uniquement (str, pas Optional[str])
- Validation avec `.strip()` pour les chaînes
### Retours
- Toujours retourner une chaîne formatée
- Emojis pour clarté visuelle
- Inclure le chemin du fichier sauvegardé
### Sauvegarde
```python
filepath = save_result("tool_name", output, target)
return f"✅ Success\n\n{output}\n\n📁 Saved to: {filepath}"
```
## Variables d'Environnement
### Configuration
- `OBSIDIAN_EXEGOL_PATH` : Chemin vers le dossier EXEGOL dans Obsidian
- `EXEGOL_RESULTS_DIR` : Alternative au chemin Obsidian (fallback)
### Montage de Volumes
Le container doit monter :
1. Le vault Obsidian (pour sauvegarde)
2. Les fichiers à analyser (stéganographie, hashes)
3. Les wordlists personnalisées (optionnel)
## Workflows CTF Typiques
### 1. Reconnaissance initiale
````
1. nmap_scan (quick) → Identifier services
2. gobuster_dir → Trouver pages cachées
3. whatweb_scan → Identifier technologies
4. subdomain_enum → Élargir la surface d'attaque
````
### 2. Exploitation web
````
1. nikto_scan → Vulnérabilités connues
2. sqlmap_scan → Injections SQL
3. wpscan_scan (si WordPress détecté)
````
### 3. Post-exploitation
````
1. reverse_shell_generator → Obtenir shell
2. linpeas_analyze → Trouver escalade
3. hydra_bruteforce → Pivoter vers autres services
````
### 4. Challenges crypto
````
1. hash_identify → Type de hash
2. john_crack ou hashcat_crack → Casser
3. decode_encode → Déobfusquer
````
### 5. Challenges stégano
````
1. exiftool_analyze → Métadonnées
2. binwalk_analyze → Fichiers cachés
3. steghide_extract → Données embarquées
````
## Bonnes Pratiques
### Organisation dans Obsidian
Créez une structure :
````
EXEGOL/
├── reconnaissance/
├── exploitation/
├── post-exploitation/
├── crypto/
├── osint/
└── notes/