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

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

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

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

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

Категории

Все категории
Loading categories
CaddySmith — Генерировать конфигурации редиректора Caddy из профилей Cobalt Strike или Sliver C2. | Kitploit
Инструменты/GitHubGitHub/icecubesandwich/caddysmith
Фреймворки для пентестаВеб-прокси и перехватОбход IDS/IPSКомандование и УправлениеRed TeamingРазработка Полезной Нагрузки
GitHubicecubesandwich/caddysmith

CaddySmith

Генерировать конфигурации редиректора Caddy из профилей Cobalt Strike или Sliver C2.

Репозиторий
23142 месяцев назадПроверено Kitploit

Популярное

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

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

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

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

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

CaddySmith

CaddySmith — это небольшой скрипт на Python, который читает профиль C2 от Cobalt Strike или Sliver и генерирует конфигурацию веб-сервера Caddy. Созданный Caddyfile превращает обычный Linux-сервер в редиректор: легитимный трафик от beacon'ов перенаправляется (обратный прокси) на ваш team server, а всё остальное (сканеры, поисковые боты, зондирование синих команд, случайные curl-запросы) отправляется на приманку (decoy URL).

Я написал этот инструмент, потому что Caddy гораздо удобнее для быстрого развертывания, чем Apache: один статический бинарник, автоматические сертификаты Let's Encrypt, и никаких танцев с a2enmod.

Только для санкционированных тестов. Это инструмент для наступательной безопасности. Запускайте его только против сред, на тестирование которых у вас есть письменное разрешение.

Поддерживаемые форматы профилей

CaddySmith автоматически определяет формат по содержимому файла:

  • Cobalt Strike — классический текстовый формат с директивами set uri "/foo". Каждый URI для HTTP-GET/HTTP-POST становится отдельным маршрутом с точным путём, при этом применяются клиентские заголовки из профиля.
  • Sliver — JSON-конфигурация импланта, экспортированная из Sliver. У Sliver нет фиксированных URI; они генерируются во время сборки beacon'а из списков путей, файлов и расширений. CaddySmith обрабатывает это, сопоставляя префиксы верхнего уровня как glob-шаблоны (например, path /api* /static* /resources*) и выполняя поиск подстроки номера сборки Chrome в User-Agent (который сохраняется при перезаписи UA на разных платформах у Sliver).

Вы также можете принудительно указать парсер с помощью --profile-type cobaltstrike или --profile-type sliver.

Что делает скрипт

Получив файл профиля, скрипт извлекает:

  • Строку User-Agent
  • URI (CS) или префиксы путей (Sliver)
  • Клиентские заголовки (только CS — Sliver не задаёт конкретные заголовки)
  • Заголовок Host (используется как доменное имя редиректора, если не передан --server-name)
  • Включен ли стейджинг (только CS — set host_stage)

Затем он создаёт Caddyfile, который:

  1. (Опционально) Возвращает 403 на обычный HTTP-трафик
  2. Блокирует около 15 известных плохих User-Agent (curl, nmap, sqlmap, Googlebot и т.д.)
  3. Блокирует доступ по прямому IP и любые HTTP-методы, кроме GET/POST
  4. Настраивает обратный прокси только для URI из профиля (или префиксов для Sliver), проверяя соответствующий User-Agent
  5. Блокирует типичные пути сканеров (.env, /wp-admin, .php и т.д.)
  6. Перенаправляет всё остальное на ваш decoy URL

Требования

  • Python 3.7+ (используется только стандартная библиотека, pip install не нужен)
  • Caddy 2.x на самом редиректоре (инструкция по установке)

Быстрый старт

python3 caddysmith.py my.profile \
    --backend https://teamserver.internal:443 \
    --decoy   https://www.example.com/ \
    --server-name redirector.example.com \
    --email   [email protected] \
    --forbid-http \
    -o redirector.caddy

Эта команда записывает сгенерированную конфигурацию в redirector.caddy и выводит сводку в stderr.

Развёртывание сгенерированной конфигурации

Вариант A: Запуск Caddyfile напрямую

Скопируйте сгенерированный файл на редиректор и запустите Caddy с ним. Требуется флаг --adapter caddyfile, так как Caddy по умолчанию использует JSON-конфигурацию:

caddy run --config /etc/caddy/redirector.caddy --adapter caddyfile

Чтобы перезагрузить работающий экземпляр с обновлённой конфигурацией:

caddy reload --config /etc/caddy/redirector.caddy --adapter caddyfile

Если Caddy сообщает о проблемах с форматированием, исправьте их с помощью:

caddy fmt --overwrite /etc/caddy/redirector.caddy

Вариант B: Импорт из основного Caddyfile

Поместите файл в /etc/caddy/ и импортируйте его из основного Caddyfile:

# /etc/caddy/Caddyfile
import /etc/caddy/redirector.caddy

Если вы передали --email (рекомендуется), сгенерированный фрагмент уже содержит блок глобальных опций, поэтому в основном Caddyfile нужна только строка import. Если не передали, добавьте email вручную в блок { } перед импортом.

Затем проверьте и перезагрузите:

sudo caddy validate --config /etc/caddy/Caddyfile
sudo systemctl reload caddy

Caddy автоматически выпустит сертификат Let's Encrypt для домена, указанного в --server-name, при условии, что A-запись указывает на редиректор.

Все флаги

ФлагПо умолчаниюЧто делает
profile(обязательно)Путь к файлу .profile
--backendhttps://teamserver.local:443Куда проксировать подходящий трафик
--decoyhttps://www.example.com/Куда перенаправлять неподходящий трафик
--server-namec2.example.comДоменное имя вашего редиректора
--policystrictstrict, lax или none
--profile-typeautoПринудительно задать cobaltstrike или sliver (по умолчанию автоопределение)
--extra-uri PATH—Дополнительный URI для прокси (с проверкой UA). Можно повторять.
--lax-uri PATH—Дополнительный URI для прокси (без проверок). Можно повторять.
--allow-ua STRING—Дополнительный UA, разрешённый на маршрутах --extra-uri. Можно повторять.
--forbid-httpвыкл.Возвращать 403 на обычный HTTP
--email EMAIL—Email для регистрации и уведомлений Let's Encrypt
-o, --output FILEstdoutЗаписать конфигурацию в файл

Режимы политики

  • strict (по умолчанию) — проверяет User-Agent, все клиентские заголовки, прямой IP, HTTP-метод и пути сканеров
  • lax — блокирует только плохие User-Agent, без сопоставления заголовков на каждом маршруте
  • none — проксирует любой запрос к URI из профиля, без фильтрации

Обычно нужен strict. Lax полезен при отладке, почему настоящий beacon не подключается.

Пример работы

Допустим, у вас есть профиль, имитирующий конечную точку Amazon, и вы хотите развернуть его на redirector.0xtb.sh:

python3 caddysmith.py amazon.profile \
    --backend https://10.1.1.10:443 \
    --decoy   https://www.amazon.com/ \
    --server-name redirector.0xtb.sh \
    --forbid-http \
    --policy strict \
    -o /etc/caddy/redirector.caddy

В сводке будет показано, какие маршруты были построены, например:

Routes built:   2
  - [profile-get] /broadcast
  - [profile-post] /1/events/com.amazon.csm.csa.prod

Если вы пересоздадите и увидите ноль маршрутов, скрипт, скорее всего, не смог разобрать ваш профиль — проверьте предупреждения в stderr.

Пример для Sliver

Для конфигурации импланта Sliver (JSON):

python3 caddysmith.py sliver-implant.json \
    --backend https://10.1.1.10:443 \
    --decoy   https://www.amazon.com/ \
    --server-name redirector.0xtb.sh \
    --email   [email protected] \
    --forbid-http \
    --policy strict \
    -o /etc/caddy/redirector.caddy

В сводке будет указано, что обнаружен Sliver, и показан маршрут по префиксу:

Profile type:   sliver
Routes built:   1
  - [sliver] /api /public /resources /services /static (prefix)

Скачать инструмент