
Orquestador de reconocimiento de red permitido en OSCP para descubrimiento de puertos, clasificación de servicios y distribución de plugins de solo enumeración en HTTP, SMB, FTP, SNMP, SSH y más.
ARCHIVADO. Este proyecto se trasladó a
custom-oscp-tooling. Todo el código de Cantina vive ahora allí, junto con el conjunto de herramientas de enumeración/asesoría de Star Wars. Este repositorio se mantiene solo lectura por motivos históricos.
- Nueva ubicación: https://gitlab.com/WattoCyber/custom-oscp-tooling
- Ejecutar:
python tools/cantina.pydesde ese repositorio

| Qué es | Cantina es un orquestador de reconocimiento de red legal para OSCP. Descubrimiento de puertos, enumeración de servicios y despacho de plugins. Sin explotación. Sin ejecución automática de rociado de credenciales. |
| Para quién es | Estudiantes de OSCP y operadores de laboratorio que quieran orquestación de reconocimiento de red solo con enumeración, con despacho de plugins y registros de auditoría. |
| Qué no es | No es un framework de explotación. Sin ejecución automática de rociado de credenciales. Solo enumeración en objetivos autorizados y en tu propio laboratorio. |
Cantina es un orquestador de reconocimiento de red legal para OSCP. Descubrimiento de puertos, enumeración de servicios y despacho de plugins. Sin explotación. Sin ejecución automática de rociado de credenciales.
quick / full / udp / vuln / recon / all / deep)_commands.log, HTML/JSON opcionalnmap y herramientas de servicio que los plugins llamen cuando estén presentes# listar plugins (sin escaneo)
python tools/cantina.py --list-plugins
# host único
python tools/cantina.py 10.10.10.5 -t quick
# reconocimiento con escaneo completo + 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
# multiobjetivo concurrente
python tools/cantina.py -T hosts.txt -t all --max-workers 3 --timeout 90
CLI silenciosa (sin banner): python tools/cantina.py TARGET -q
Coloca un módulo en plugins/ (o en --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 omite la rama antigua del monorepo para ese servicio, de modo que no se ejecute dos veces.
pip install -e ".[dev]" # o: pip install pytest
python -m pytest tests/ -q
# esperado: exit 0
Capacidad principal sin un objetivo en vivo:
python cantina.py --list-plugins
# esperado: nombres de plugins impresos, exit 0
Solo enumeración. Solo objetivos autorizados y tu propio laboratorio / alcance del examen OSCP. Eres responsable del alcance.
tools/ Herramientas CLI (ejecutar con: python tools/<tool>.py)
cantina.py CLI + orquestador
cantina_plugins.py descubrir / seleccionar / ejecutar
plugins/ Plugins de enumeración de servicios
assets/banner.txt Banner de terminal CLI
banner.jpg Imagen principal del README
tests/ Pruebas unitarias (herramientas simuladas)
lab/ Verdad de referencia opcional de laboratorio multiservicio
fixtures/ Fixtures de análisis de nmap