PoC злоупотребления CNAME в Kerberos
Этот инструмент является доказательством концепции техники реле злоупотребления CNAME для Kerberos, основанной на инструменте MITM6.
Исследование выявило недостаток в поведении клиента Kerberos в Windows: когда возвращается запись DNS CNAME, клиент следует псевдониму и формирует запрос TGS, используя имя хоста CNAME в качестве SPN. Это позволяет атакующему, находящемуся в позиции DNS MITM, принудить любого пользователя домена запросить билет Kerberos для выбранной атакующим службы, что позволяет проводить межпротокольные атаки реле по требованию против SMB, HTTP и других служб, где подпись или привязка канала не применяются.
В отличие от предыдущих техник реле Kerberos, которые были ограничены машинными учетными записями или требовали определенных условий, этот метод надежно работает против учетных записей пользователей в конфигурациях Windows по умолчанию. Microsoft уменьшила риск, применив исправление для принудительного применения CBT на https и включения подписи по умолчанию для затронутых протоколов. Исправление отслеживается как CVE-2026-20929 Полные технические детали, пошаговое руководство по эксплуатации и анализ воздействия см. в записи блога на Cymulate.
Используйте --cname-source для нацеливания на конкретный домен, к которому пытается получить доступ жертва, или --cname-source-all для отравления всех DNS-запросов. Оба требуют --cname для указания целевого имени хоста, которое будет использоваться в ответе CNAME (жертва затем запросит TGS для этого имени хоста).
Флаг --only-dns отключает оригинальный сервер DHCPv6 и функциональность объявлений маршрутизатора mitm6. Это позволяет комбинировать отравление CNAME с другими методами MITM, такими как отравление ARP.
Опция --passthrough принимает файл, содержащий домены, которые должны разрешаться в их реальные IP-адреса (формат: domain:ip на строку). Полезно для поддержания связи с критической инфраструктурой, такой как контроллеры домена (экспериментально).
pip install -r requirements.txt
Отравляйте все DNS-запросы с помощью CNAME, указывающего на цель реле:
python mitm6-cname.py -i eth0 -d corp.local --cname-source-all --cname target.corp.local
Отравляйте запросы только для конкретного имени хоста:
python mitm6-cname.py -i eth0 -d corp.local --cname-source fileserver.corp.local --cname adcs.corp.local
Пропустите DHCPv6/RA при использовании отравления ARP для DNS MITM:
python mitm6-cname.py -i eth0 --only-dns -d corp.local --cname-source-all --cname target.corp.local
# Terminal 1: CNAME poisoning
python mitm6-cname.py -i eth0 -d corp.local --cname-source-all --cname adcs.corp.local
# Terminal 2: Relay to ADCS
krbrelayx.py -t http://adcs.corp.local/certsrv/certfnsh.asp -smb2support --adcs --template User
Этот инструмент является непроизводственным PoC, предоставленным только для образовательных и авторизованных целей тестирования безопасности. Несанкционированный доступ к компьютерным системам незаконен. Используйте на свой страх и риск и только против систем, на тестирование которых у вас есть явное разрешение.
MIT