
Orchestrateur de reconnaissance réseau autorisé pour l'OSCP, pour la découverte de ports, la classification des services et la distribution de plugins d'énumération uniquement, sur HTTP, SMB, FTP, SNMP, SSH et plus encore.
ARCHIVÉ. Ce projet a été déplacé vers
custom-oscp-tooling. Tout le code de Cantina y vit désormais, aux côtés de la suite d'outils Star Wars enum/advisor. Ce dépôt est conservé en lecture seule pour l'historique.
- Nouvel emplacement : https://gitlab.com/WattoCyber/custom-oscp-tooling
- Exécution :
python tools/cantina.pydepuis ce dépôt

| Quoi | Cantina est un orchestrateur de reconnaissance réseau conforme OSCP. Découverte de ports, énumération de services et répartition des plugins. Aucune exploitation. Aucune exécution automatique de bourrage d'identifiants. |
| Pour qui | Étudiants OSCP et opérateurs de laboratoire qui souhaitent une orchestration de reconnaissance réseau limitée à l'énumération avec répartition des plugins et journaux d'audit. |
| Ce que ce n'est pas | Pas un framework d'exploitation. Aucune exécution automatique de bourrage d'identifiants. Énumération uniquement sur des cibles autorisées et votre propre laboratoire. |
Cantina est un orchestrateur de reconnaissance réseau conforme OSCP. Découverte de ports, énumération de services et répartition des plugins. Aucune exploitation. Aucune exécution automatique de bourrage d'identifiants.
quick / full / udp / vuln / recon / all / deep)_commands.log, et optionnellement du HTML/JSONnmap, et les outils de service appelés par les plugins lorsqu'ils sont présents# lister les plugins (sans analyse)
python tools/cantina.py --list-plugins
# hôte unique
python tools/cantina.py 10.10.10.5 -t quick
# reconnaissance avec analyse complète + plugins
python tools/cantina.py 10.10.10.5 -t recon \
--force-services tcp/80/http tcp/445/smb tcp/22/ssh \
-o ./out -j
# multi-cibles concurrentes
python tools/cantina.py -T hosts.txt -t all --max-workers 3 --timeout 90
CLI silencieuse (sans bannière) : python tools/cantina.py TARGET -q
Déposez un module sous plugins/ (ou --plugins-dir) :
PLUGIN = {
"name": "my_enum",
"services": ["ftp"],
"ports": [21],
"enabled": True,
"replaces_builtin": True,
"description": "FTP enum (enum only)",
"legal": "enumeration-only; OSCP-safe; no exploit/spray auto-run",
}
def match(signals):
return signals.get("svc_type") == "ftp" or int(signals.get("port") or 0) == 21
def run(ctx):
art = ctx.port_dir / "plugin_my_enum.txt"
art.write_text(f"enum note for {ctx.target}:{ctx.port}\n")
return {"ok": True, "artifact": str(art)}
replaces_builtin: True ignore l'ancienne branche monorepo pour ce service afin d'éviter une double exécution.
pip install -e ".[dev]" # ou : pip install pytest
python -m pytest tests/ -q
# attendu : code de sortie 0
Capacité principale sans cible en direct :
python cantina.py --list-plugins
# attendu : noms des plugins affichés, code de sortie 0
Énumération uniquement. Cibles autorisées et votre propre laboratoire / périmètre d'examen OSCP uniquement. Vous êtes responsable du périmètre.
tools/ Outils CLI (exécution avec : python tools/<tool>.py)
cantina.py CLI + orchestrateur
cantina_plugins.py découverte / sélection / exécution
plugins/ plugins d'énumération de services
assets/banner.txt bannière de terminal CLI
banner.jpg image d'en-tête du README
tests/ tests unitaires (outils simulés)
lab/ vérité terrain optionnelle du laboratoire multi-services
fixtures/ fixtures d'analyse nmap