Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Cisco-FMC-honeypot — Originally a Honeypot for CVE-2026-20131 | Kitploit
Инструменты/GitHubGitHub/hassan-pouladi/cisco-fmc-honeypot
Vulnerability AnalysisNetwork SecurityMalware AnalysisThreat IntelligenceIncident Response
GitHubhassan-pouladi/cisco-fmc-honeypot

Cisco-FMC-honeypot

Originally a Honeypot for CVE-2026-20131

Репозиторий
111 месяц назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

FMC-Trap

Низкоинтерактивный honeypot, который имитирует веб-интерфейс Cisco Secure Firewall Management Center (FMC) и перехватывает неаутентифицированный атакующий трафик в стиле Java-сериализации (зонды небезопасной десериализации в стиле CVE).

  • Безопасно по замыслу: приложение не десериализует Java-объекты; оно обнаруживает \xac\xed\x00\x05 (а также Base64 rO0AB…) и извлекает строки shell-команд или URL с помощью регулярных выражений и эвристик.
  • Без выполнения команд: URL второй стадии загружаются только с помощью Python requests в неисполняемый том загрузок.
  • Ориентированный на production стек: Docker Compose с Gunicorn и опциональным Caddy (HTTPS, Let’s Encrypt).

Зачем это запускать?

Однострочные JSON-логи (совместимые с Splunk и ELK), опциональные уведомления в Telegram, хешированные артефакты второй стадии и не-root пользователь контейнера. Проект предназначен для исследователей, которым нужна узкоспециализированная ловушка в стиле FMC без дополнительного интеграционного кода.

Требования

Быстрый старт (примерно пять минут)

1. Клонирование

root@kitploit:~
git clone https://github.com/Hassan-Pouladi/Cisco-FMC-honeypot
cd FMC-Trap

2. Настройка окружения

root@kitploit:~
cp .env.example .env

Отредактируйте .env по мере необходимости (см. Переменные окружения). Для развёртываний за Caddy, входящим в комплект, установите TRUST_X_FORWARDED_FOR=1, чтобы IP-адреса клиентов в логах отражали исходного клиента.

3. Направьте Caddy на ваш домен

Отредактируйте Caddyfile: замените домены-заглушки на ваш домен (и www, если применимо):

root@kitploit:~
example.com, www.example.com {
	reverse_proxy fmc-trap:5000
}

Опционально раскомментируйте глобальный блок email [email protected] в Caddyfile, чтобы получать уведомления об истечении сертификатов Let’s Encrypt.

4. DNS и межсетевой экран (HTTPS)

  • Создайте записи A (и AAAA, если применимо): yourdomain.com → публичный IP вашего сервера, а также www, если используется.
  • Разрешите входящие подключения к TCP 80 и TCP 443 на хосте (облачная группа безопасности и межсетевой экран хоста, например ufw allow 80,443/tcp).

5. Каталоги данных (обязательно)

Приложение работает внутри контейнера с UID 10001. Каталог ./data, смонтированный через bind, должен быть доступен для записи:

root@kitploit:~
mkdir -p data/logs data/downloads
sudo chown -R 10001:10001 data/logs data/downloads

Без корректного владельца POST-запросы эксплойтов могут возвращать 500 (Permission denied при записи логов или сырых blob-данных).

6. Запуск

root@kitploit:~
docker compose up -d --build

7. Проверка

root@kitploit:~
docker compose ps
curl -sI https://yourdomain.com/

Ожидайте HTTP/2 200 (или 301 или 302) и заголовок Via: Caddy. В браузере по адресу https://yourdomain.com/ должна отображаться имитированная страница входа FMC.

О том, где читать события, полезные нагрузки и вывод Docker, см. Поиск логов, загрузок и вывода сервисов и Типовые операции.

Поиск логов, загрузок и вывода сервисов

Всё указанное ниже отсчитывается от каталога вашего проекта (папки, содержащей docker-compose.yml, обычно FMC-Trap после клонирования). Пути указаны на хосте; Docker монтирует их в контейнер через bind.

Когда что-то появляется в файле журнала: fmc-trap.json получает по одному JSON-объекту на строку, когда запрос соответствует поведению зонда десериализации (магические байты в POST). Обычные GET-запросы к поддельной странице входа по умолчанию не записываются в этот файл.

Когда в папке загрузок есть файлы: записи появляются только если конвейер извлекает URL из зонда и harvester успешно загружает разрешённый удалённый контент в пределах MAX_DOWNLOAD_MB. Если каталог остаётся пустым, возможно, подходящих URL пока нет либо загрузки блокируются политикой приложения.

Красивое форматирование JSON (опционально): для отдельной строки пропустите её через python -m json.tool или используйте jq, если он установлен.

Типовые операции

Архитектура

root@kitploit:~
Internet :443/:80 → Caddy (TLS, Let’s Encrypt) → fmc-trap:5000 (Gunicorn/Flask)
                              ↓
                    ./data/logs, ./data/downloads (bind mounts)
  • Только Caddy публикует наружу порты 80 и 443; контейнер приложения напрямую не экспонируется (см. expose: "5000" в Compose).
  • Caddy использует публичные DNS-резолверы (1.1.1.1, 8.8.8.8) внутри контейнера, чтобы Let’s Encrypt срабатывал на хостах, где резолвер VPS недоступен из Docker (распространённое ограничение у некоторых облачных провайдеров).

Переменные окружения

Compose передаёт эти переменные в сервис fmc-trap; подробности см. в docker-compose.yml.

Поля JSON-логов (справочно)

Каждая строка в data/logs/fmc-trap.json — это один JSON-объект. Часто встречающиеся ключи: timestamp, event_type, src_ip, headers, raw_payload_hash, extracted_commands, а также downloaded_file_hash, если файл был сохранён. Сохранённые blob-данные в data/downloads/ имеют режим 0400 (только чтение для владельца).

Устранение неполадок

Опционально: публикация приложения на localhost (отладка)

Чтобы обращаться к Gunicorn напрямую без Caddy, добавьте следующее в секцию fmc-trap в docker-compose.yml:

root@kitploit:~
ports:
  - "127.0.0.1:5000:5000"

Не привязывайте приложение к 0.0.0.0 в production, когда TLS завершается на Caddy.

Безопасность

  • Разворачивайте на выделенном VPS или в изолированной сети. Сервис обрабатывает вредоносный трафик и может загружать вредоносное ПО для анализа.
  • Храните Telegram-токены и другие секреты только в .env на хосте (никогда не коммитьте .env).
  • Ограничьте межсетевой экран минимально необходимыми портами (80 и 443 для HTTPS).

Правовое и этическое использование

Разворачивайте только на системах, которыми вы владеете или на которых вам явно разрешено устанавливать инструментарий. Honeypot-системы могут собирать атакующий трафик и вредоносное ПО; соблюдайте применимое законодательство и политику организации. Это программное обеспечение предназначено для исследований в области безопасности.

Скачать инструмент
ЭлементПримечания
Docker и Docker Compose v2Установить Docker
VPS или хостРекомендуется выделенный или изолированный сегмент сети
Домен (опционально)Для HTTPS: настройте DNS и разрешите входящие TCP 80 и TCP 443 на хост
ЧтоПуть на хостеКак открыть или отслеживать
Журнал событий (JSON-строки)data/logs/fmc-trap.jsontail -f data/logs/fmc-trap.json (поток в реальном времени), либо откройте в редакторе, либо передавайте в Splunk или ELK
Загруженные полезные нагрузки второй стадииdata/downloads/Файлы появляются только когда harvester сохраняет удалённый ответ; каждый файл назван по его SHA256-хешу (64 шестнадцатеричных символа), без расширения. Список: ls -la data/downloads (Linux или macOS) или Get-ChildItem data\downloads (Windows PowerShell)
Вывод процесса приложенияНе файл; Dockerdocker compose logs -f fmc-trap
Caddy (TLS, прокси, ACME)Не файл; Dockerdocker compose logs -f caddy
Уведомления Telegram (опционально)Не хранятся в data/Укажите TELEGRAM_BOT_TOKEN и TELEGRAM_CHAT_ID в .env; уведомления отправляются при записи событий
ЗадачаКоманда или действие
Проверить, запущены ли контейнерыdocker compose ps
Перезапустить после редактирования .env или Caddyfiledocker compose up -d --build (или docker compose up -d --force-recreate, если изменилось только окружение)
Остановить стекdocker compose down
Непрерывно отслеживать новые JSON-событияtail -f data/logs/fmc-trap.json
Просмотреть последние несколько событийtail -n 50 data/logs/fmc-trap.json
Подсчитать загруженные артефактыОткройте data/downloads в файловом менеджере или подсчитайте количество файлов в этом каталоге через оболочку (файлы названы по SHA256)
Убедиться, что страница honeypot загружаетсяОткройте https://yourdomain.com/ в браузере или используйте curl -sI, как на шаге проверки
ПеременнаяНазначениеЗначение по умолчанию / примечание
TRUST_X_FORWARDED_FORИспользовать первый хоп X-Forwarded-For в качестве src_ipС Caddy рекомендуется 1
DECEPTION_STATUS200 возвращает HTML-тело; 302 возвращает редирект200
DECEPTION_REDIRECT_URLЦелевой путь при статусе 302/
MAX_DOWNLOAD_MBЛимит harvester на один URL16
TELEGRAM_BOT_TOKEN / TELEGRAM_CHAT_IDОпциональные уведомленияПусто — уведомления отключены
FMC_SERVER_HEADERЗаголовок ответа Servernginx
VT_API_KEYЗарезервированоОпционально
СимптомРешение
Permission denied при записи в data/Выполните sudo chown -R 10001:10001 data/logs data/downloads
Bind for 0.0.0.0:80 failed: port is already allocatedДругой сервис или контейнер занимает порт 80. Остановите этот сервис или освободите 80; на одном хосте только один процесс может прослушивать порт 80.
Ошибки Let’s Encrypt или ACME в логах CaddyУбедитесь, что DNS резолвится на этот сервер и что 80 и 443 доступны из интернета. Compose настраивает DNS 1.1.1.1 и 8.8.8.8 для Caddy, когда хостовый резолвер не работает внутри Docker.
curl к HTTPS возвращает пустой вывод или не срабатывает с первой попыткиДождитесь появления certificate obtained successfully в docker compose logs caddy.
IP клиента в логах — 172.x.x.xУстановите TRUST_X_FORWARDED_FOR=1 при использовании Caddy, затем пересоздайте контейнеры: docker compose up -d --force-recreate.