
Модульная система обнаружения активов, написанная на Python, для автоматизации повторяющейся ручной работы.
Cygor — это модульный фреймворк для обнаружения активов, объединяющий сканирование, парсинг и перечисление служб в единый рабочий процесс. Он заменяет разрозненный набор отдельных инструментов автоматизированным процессом, который занимается обнаружением, обогащением и целевым перечислением, снижая ручную нагрузку и позволяя сосредоточиться на результатах, а не на управлении инструментами.
Веб-интерфейс Cygor превращает хаос сырых данных сканирования в единый визуальный командный центр. Вместо того чтобы пробираться через бесконечные XML, JSON или простой текст, результаты автоматически парсятся, обогащаются и отображаются в одном пространстве, приспособленном для быстрой сортировки и принятия решений.
Работающий на FastAPI и Bootstrap 5, дашборд позволяет легко:
Веб-интерфейс нужен не только для представления — он обеспечивает эффективность и ясность. Объединяя все собранные данные в едином интерактивном рабочем пространстве, он сокращает время на разбор файлов или согласование выводов и позволяет тестировщикам сосредоточиться на главном: понимании среды и действиях на основе этого понимания.
Многие инструменты, техники и методы, которые я создаю, вдохновлены вселенной Spawn. Если вы никогда не читали комиксы Spawn, ничего страшного — я расскажу, почему выбрал этого персонажа для названия инструмента.
Имя Cygor происходит от Cy-Gor, трагического антигероя вселенной Spawn. Некогда Майкл Конечны — правительственный оперативник и близкий друг Эла Симмонса — пытался разоблачить коррупцию после убийства Симмонса. Однако его схватили и принудительно включили в проект Sim, обезьяньи эксперименты доктора Фредерика Вильхайма, в ходе которых тело гориллы было объединено с разумом Конечны с помощью инвазивных кибернетических имплантов. Результатом стал зверь, известный как Cy-Gor — сокращение от Кибернетическая Горилла.
Сбежав из плена, Cy-Gor устраивал жестокие погромы, в приступах замешательства и ярости даже прорываясь через правительственные дата-центры. Несмотря на неоднократные охоты и поимки, в конце концов он восстал против систем, пытавшихся его контролировать — удалил отслеживающие импланты и вырвался на свободу, чтобы проложить свой собственный путь, разрываясь между машиной, зверем и человеком.
webenum (только установленные инструменты).Поддерживается несколько методов установки Cygor: pip, pipx, uv и docker.
Некоторые зависимости (например, gssapi для Kerberos/WinRM) собирают C-расширения, поэтому сначала установите цепочку инструментов сборки и заголовки Kerberos:
# Debian/Ubuntu/Kali:
sudo apt install -y build-essential python3-dev libkrb5-dev
# Стабильная версия:
pipx install cygor
# Установка из исходников:
git clone https://github.com/tjnull/cygor
cd cygor
pipx install .
Настройка Docker для Cygor включает как само приложение, так и сервис базы данных PostgreSQL. Система автоматически переключается на SQLite, если PostgreSQL недоступен.
Production (рекомендуется):
# Вариант 1: Использовать скрипт-обёртку (автоматически разрешает конфликты портов)
./docker-compose-up.sh up --build
# Вариант 2: Прямой docker compose (использует порты по умолчанию)
docker compose up --build
Разработка (с монтированием исходного кода):
# Вариант 1: Использовать скрипт-обёртку (автоматически разрешает конфликты портов)
./docker-compose-up.sh dev up --build
# Вариант 2: Прямой docker compose (использует порты по умолчанию)
docker compose -f docker-compose-dev.yaml up --build
Настройка Docker Compose включает:
results/: Результаты сканирования, результаты credrecon и файлы базы данныхcygor-config/: Локальный том конфигурации (создаётся автоматически)По умолчанию:
5432 (если доступен)5434 (если доступен)5432 внутри себя (сеть Docker)Если порты заняты, можно:
Использовать скрипт-обёртку (рекомендуется — автоматически определяет доступные порты):
./docker-compose-up.sh up --build
Установить порт вручную:
export POSTGRES_HOST_PORT=5435
docker compose up --build
Удалить проброс портов (если внешний доступ к PostgreSQL не нужен):
Закомментируйте раздел ports: в docker-compose.yaml
Чтобы собрать образ Docker вручную:
docker build -t cygor .
Запуск одного контейнера (без сервиса PostgreSQL):
docker run --rm -v ./results:/opt/cygor/results \
-e CYGOR_RESULTS_DIR=/opt/cygor/results \
cygor web --host 0.0.0.0 --port 8080 --load-dir /opt/cygor/results
CYGOR_DB_URL)Ключевые переменные окружения для Docker: