
Оркестратор сетевой разведки, легальный в рамках OSCP, для обнаружения портов, классификации сервисов и запуска только enum-плагинов через HTTP, SMB, FTP, SNMP, SSH и другие протоколы.
АРХИВИРОВАНО. Этот проект перенесён в
custom-oscp-tooling. Весь код Cantina теперь живёт там, вместе с набором инструментов Star Wars enum/advisor. Этот репозиторий оставлен только для чтения, для истории.
- Новое расположение: https://gitlab.com/WattoCyber/custom-oscp-tooling
- Запуск:
python tools/cantina.pyиз этого репозитория

| Что это | Cantina — оркестратор сетевой разведки, допустимый для OSCP. Обнаружение портов, перечисление сервисов и диспетчеризация плагинов. Без эксплуатации. Без автоматического перебора учётных данных. |
| Для кого | Для студентов OSCP и операторов лабораторий, которым нужна оркестрация сетевой разведки только с перечислением, диспетчеризацией плагинов и журналами аудита. |
| Чем не является | Не фреймворк для эксплуатации. Без автоматического перебора учётных данных. Только перечисление на авторизованных целях и в собственной лаборатории. |
Cantina — оркестратор сетевой разведки, допустимый для OSCP. Обнаружение портов, перечисление сервисов и диспетчеризация плагинов. Без эксплуатации. Без автоматического перебора учётных данных.
quick / full / udp / vuln / recon / all / deep)_commands.log, опционально HTML/JSONnmap и сервисные инструменты, которые вызывают плагины, если они установлены# список плагинов (без сканирования)
python tools/cantina.py --list-plugins
# одиночный хост
python tools/cantina.py 10.10.10.5 -t quick
# разведка с полным сканированием + плагины
python tools/cantina.py 10.10.10.5 -t recon \
--force-services tcp/80/http tcp/445/smb tcp/22/ssh \
-o ./out -j
# несколько целей параллельно
python tools/cantina.py -T hosts.txt -t all --max-workers 3 --timeout 90
Тихий CLI (без баннера): python tools/cantina.py TARGET -q
Поместите модуль в plugins/ (или укажите --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 пропускает старую ветку monorepo для этого сервиса, чтобы не было двойного запуска.
pip install -e ".[dev]" # или: pip install pytest
python -m pytest tests/ -q
# ожидается: код возврата 0
Основная возможность без живой цели:
python cantina.py --list-plugins
# ожидается: вывод имён плагинов, код возврата 0
Только перечисление. Только авторизованные цели и собственная лаборатория / рамки экзамена OSCP. Ответственность за рамки несёте вы.
tools/ CLI-инструменты (запуск: python tools/<tool>.py)
cantina.py CLI + оркестратор
cantina_plugins.py обнаружение / выбор / запуск
plugins/ плагины перечисления сервисов
assets/banner.txt баннер терминала CLI
banner.jpg hero-изображение README
tests/ модульные тесты (заглушки инструментов)
lab/ опциональная эталонная многосервисная лаборатория
fixtures/ фикстуры для парсинга nmap