
Dominate the domain. Relay to royalty.

RelayKing — это комплексный инструмент для обнаружения и инвентаризации ретрансляционных атак, предназначенный для выявления возможностей ретрансляции NTLM в средах Active Directory. Реальные возможности построения отчетов. Широкое покрытие атак. Находите скрытые векторы ретрансляции и формируйте отчеты в нужном формате. Передавайте в ntlmrelayx.py от Impacket тщательно подобранный список целей (обнаруженных, доступных для ретрансляции узлов). Больше никогда не пропускайте критически важный, эксплуатируемый путь NTLM-ретрансляции в домене.
Подробнее см. в соответствующей статье на сайте Depth Security: https://www.depthsecurity.com/blog/introducing-relayking-relay-to-royalty/
**RelayKing НЕ ЯВЛЯЕТСЯ OPSEC-БЕЗОПАСНЫМ ИНСТРУМЕНТОМ В ОПРЕДЕЛЁННЫХ РЕЖИМАХ, ОСОБЕННО В РЕЖИМЕ --audit.
RelayKing предоставляется КАК ЕСТЬ, БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ. См. нижнюю часть readme.
# Используйте venv. Избавьте себя от лишних хлопот.
# Клонируйте репозиторий:
git clone https://github.com/depthsecurity/RelayKing-Depth.git
# Перейдите в клонированную директорию:
cd RelayKing-Depth/
# Настройте виртуальное окружение Python:
virtualenv --python=python3 .
source bin/activate
# Установите зависимости:
pip3 install -r requirements.txt
# Проверьте успешность установки RelayKing:
python3 relayking.py -h
--remove-mic в ntlmrelayx. Сообщается как HIGH. Использует уже запрошенный для каждого узла UBR, без дополнительных сетевых запросов.--audit запрашивает Active Directory для поиска Service Principal Names, имена хостов которых не имеют DNS-записи. Злоумышленник может зарегистрировать отсутствующее DNS-имя, чтобы перехватить аутентификацию NTLM, предназначенную для этого субъекта службы. Результаты делятся на уязвимые (вообще нет DNS-записи) и вероятно уязвимые (разрешаются только через подстановочный DNS). Сообщается как MEDIUM. Полные результаты записываются в possible-ghost-spns.txt. Подавить с помощью --no-ghosts.--ntlmv1 или --ntlmv1-all — межпротокольное обнаружение только при подтверждённом использовании Net-NTLMv1)--remove-mic)possible-ghost-spns.txt(--audit): Получение списка всех компьютеров из AD через LDAP. Требуются учётные данные с минимальными привилегиями AD и работающий DNS в среде. Принудительно с помощью --dc-ip или правки /etc/resolv.conf.10.0.0.0/24)10.0.0.1-254)python3 relayking.py -u blah -p pass -d domain.local <ваш_целевой_ip_или_имя_узла>)--coerce-all в сочетании с --audit и учётными данными с низкими привилегиями для принуждения КАЖДОЙ машины домена к массовой ретрансляции учётных записей компьютеров. Чрезвычайно полезно в средах с включённым Net-NTLMv1.--ntlmv1 или --ntlmv1-all для обнаружения GPO LanMan на уровне домена. --ntlmv1-all проверяет ВСЕ узлы из AD и их значения реестра через RemoteRegistry. (требуются права локального администратора).--gen-relay-list <файл> для создания файла целей, готового к импорту в ntlmrelayx.py с ключом -tf.--audit при наличии учётных данных. Подавить с помощью --no-ghosts. Полные результаты записываются в possible-ghost-spns.txt вместе с основным отчётом; в самом отчёте отображаются первые 5, чтобы избежать загромождения.-h, как и ожидается:python3 relayking.py -h
python3 relayking.py -u 'lowpriv' -p 'lowpriv-password' -d client.domain.local --dc-ip 10.0.0.1 -vv --audit --protocols smb,ldap,ldaps,mssql,http,https --threads 10 -o plaintext,json --output-file relayking-scan --proto-portscan --ntlmv1 --gen-relay-list relaytargets.txt
python3 relayking.py -u 'lowpriv' -p 'lowpriv-password' -d client.domain.local --dc-ip 10.0.0.1 -vv --audit --protocols smb,ldap,ldaps,mssql -o plaintext,json --output-file relayking-scan --proto-portscan --gen-relay-list relaytargets.txt
python3 relayking.py -u 'lowpriv' -p 'lowpriv-password' -d client.domain.local -vv --protocols smb,ldap,ldaps,mssql,http,https -o plaintext SERVER1-EXAMPLE.LAB.LOCAL
python3 relayking.py --null-auth -vv --protocols smb,ldap,http -o plaintext 10.0.0.0/24
python3 relayking.py -u 'lowpriv' -p 'lowpriv-password' -d client.domain.local --dc-ip 10.0.0.1 -vv --audit --protocols smb,ldap,ldaps,mssql,http,https --threads 10 -o plaintext,json --output-file relayking-scan --proto-portscan --ntlmv1-all --gen-relay-list relaytargets.txt
--threads. Каждый основной поток получает рабочие потоки для определённых задач под собой. Например, HTTP использует 20 потоков на один основной поток. В результате открывается ~200 потоков HTTP для сканирования аутентификации NTLM на HTTP. В большинстве случаев это достаточно хорошо переносится, но если вызывает задержки/проблемы с сетью, уменьшите количество потоков. По умолчанию 10 потоков в любом случае работают исключительно быстро.--proto-portscan со всеми сканированиями. Это значительно повышает производительность и предотвращает ожидание сканером таймаутов на портах, которых на самом деле нет. Если это вызывает проблемы, вы можете удалить этот флаг в ущерб производительности сканирования (но этого не должно происходить!).--max-scangroup, --split-into и --skip могут использоваться для управления группировкой.--max-scangroup, чтобы задать количество целей для каждой группы. Например, --max-scangroup 100 разобьёт 299 целей на 3 группы. Группы будут содержать по 100, 100 и 99 целей соответственно.--split-into, чтобы задать количество групп. Например, --split-into 3 разобьёт 299 целей на 3 группы. Группы будут содержать по 100, 100 и 99 целей. Нельзя указывать одновременно --max-scangroup и --split-into.--skip, чтобы пропустить группы. Например, --max-scangroup 3 --skip 1 разобьёт 299 целей на 3 группы по 100, 100 и 99 целей, а затем пропустит первую группу и начнёт сканирование со второй. Это помогает при необходимости перезапустить инструмент.--ntlmv1 или --ntlmv1-all: Добавление --ntlmv1 извлекает все GPO LanMan для домена и ничего больше. Требуются учётные данные AD с низкими привилегиями. --ntlmv1-all требует учётные данные администратора и проверяет каждый отдельный узел в домене с открытым SMB на ключ реестра LMCompatibilityLevel. Запуск хотя бы --ntlmv1 необходим для отображения/обнаружения межпротокольных путей ретрансляции SMB.
--ntlmv1-all. Также очень тяжело и небезопасно с точки зрения OPSEC, но тщательно. Вероятно, не рекомендуется, если вы не действуете по принципу «всё или ничего» или отчаянно.-o json,plaintext) и --output-file relayking-scan создаёт файлы relayking-scan.json + relayking-scan.txt, поэтому нет необходимости запускать дважды для нескольких форматов. Доступны: plaintext, json, xml, csv, grep, markdown (по умолчанию: plaintext)--coerce-all будет использовать PetitPotam, DFSCoerce и PrinterBug на ВСЕХ ЦЕЛЕВЫХ УЗЛАХ. Она также массово принуждает каждую машину в домене без выполнения полного аудита протоколов. Одновременное указание + приведёт к доменному аудиту массовому принуждению. ()--opsec-safe, который избегает использования Impacket/других библиотек Python с характерными сигнатурами. Реализовать нетривиально.--ntlmv1, валидатор учётных данных, модуль Ghost SPN и анализатор целей — все делают свою аутентификацию по-своему. ЭТО АБСОЛЮТНО НЕЛЕПО и требует консолидации для использования одного модуля аутентификации.-vv или -vvv, если сталкиваетесь с ошибками. Журналирование улучшается с каждой версией.--audit, и RelayKing не может разрешить ни один узел в DNS, потому что их DNS-сервер(ы) просто отказываются разрешать FQDN компьютеров в целевой DNS-зоне. Это не проблема RelayKing.Как есть. Конечно, существует множество ошибок. См. выше. Не предназначен и не предполагается для незаконной/несанкционированной деятельности, очевидно.
Учитывайте поведение и природу ВСЕХ инструментов, которые вы запускаете для клиента и в его сети(ях). Это достигается путём чтения исходного кода инструмента и понимания внутренних механизмов до выполнения, а не слепым запуском кода, найденного на GitHub. Хотя я могу заверить вас, что в RelayKing нет намеренно вредоносного/разрушительного кода, перед запуском любых новых/неиспользованных инструментов проверять их — хорошая практика. Доверяй, но проверяй.
Будьте осторожны при использовании в упражнениях Red Team, особенно с аутентифицированными проверками и --audit. Вас ОБЯЗАТЕЛЬНО обнаружат, и это будет ваша вина! Вы должны были прочитать предупреждение в верхней части README, если каким-то образом читаете это предложение и не знали об этом раньше.
Хотя это крайне маловероятно, если RelayKing каким-то образом что-то сломает, вы действуете на свой страх и риск, и ни Автор, ни Depth Security не несут ответственности за любые последствия/проблемы/перевёрнутые-геопространственные-битовые-флип-ядерные-взрывы, которые могут возникнуть (как бы маловероятно это ни было) в результате выполнения RelayKing. Результаты могут отличаться. RelayKing, ещё раз, предоставляется БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ ИЛИ ГАРАНТИЙ КОНКРЕТНЫХ РЕЗУЛЬТАТОВ, ФУНКЦИЙ, ПОЛЕЗНОСТИ ИЛИ ПОВЕДЕНИЯ — ЯВНО УПОМЯНУТЫХ ЗДЕСЬ (И/ИЛИ НЕ УПОМЯНУТЫХ) ИЛИ ПОДРАЗУМЕВАЕМЫХ.
Единственный легитимный репозиторий на GitHub от Автора (logansdiomedi) находится по адресу https://github.com/depthsecurity/RelayKing-Depth — все остальные являются форками/копиями/чем-то ещё, Автор, вероятно, не читал, не проверял, не тестировал, не анализировал и не проверял на предмет функциональности/поведения/легитимности. Используйте голову.
Лицензия MIT — подробнее см. в файле LICENSE
-k--dc-ip--krb-dc-only--dns-tcp-ns--audit--coerce--audit): После завершения сканирования узлов RelayKing запрашивает AD для поиска SPN, имена хостов которых не имеют DNS-записи. Они являются кандидатами для атак регистрации DNS, которые перехватывают аутентификацию NTLM. Отчёт включает до 5 результатов, чтобы вывод оставался управляемым; полный список всегда записывается в possible-ghost-spns.txt в рабочем каталоге. Передайте --no-ghosts, чтобы полностью пропустить эту проверку.--remove-mic в ntlmrelayx.