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

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

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

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

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

Категории

Все категории
Loading categories
ResetNightmare — POC tool for ResetNightmare (CVE-2026-27912) | Kitploit
Инструменты/GitHubGitHub/semperis-community/resetnightmare
Authentication & AuthorizationPrivilege EscalationPassword AttacksExploitationPenetration TestingRed Teaming
GitHubsemperis-community/resetnightmare

ResetNightmare

POC tool for ResetNightmare (CVE-2026-27912)

Репозиторий
1903117 дней назадЕщё не проверено

Популярное

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

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

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

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

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

ResetNightmare

Инструмент Proof-of-concept (POC) для ResetNightmare (CVE-2026-27912).

ResetNightmare — это ошибка валидации в протоколе смены пароля Kerberos, которая позволяет сбросить пароль любой целевой учётной записи пользователя/компьютера, не зная текущего. Для атаки требуются непропатченный контроллер домена и возможность записать userPrincipalName (UPN) на любую учётную запись, которой вы управляете. Кроме того, уязвимостью может воспользоваться атакующий, имеющий возможность создавать новых пользователей/компьютеры в любом OU, поскольку создание пользователя/компьютера позволяет получить разрешения GenericWrite на эту учётную запись.

Порядок атаки

Этот скрипт автоматизирует весь ход атаки и выполняет очистку после себя. Ход атаки выглядит следующим образом:

  1. У атакующего есть учётная запись пользователя или компьютера, на которую он может записать UPN. Она может быть либо предоставлена, либо создана с помощью -CreateNewPath.
  2. Атакующий устанавливает для контролируемой учётной записи UPN, равный sAMAccountName цели, например "Administrator".
  3. Затем атакующий может запросить TGT для имени пользователя "Administrator" с типом имени NT-ENTERPRISE. Этот TGT будет запрошен для SPN kadmin/changepw.
  4. Атакующий очищает свой собственный UPN, оставляя только целевую учётную запись с UPN, который ссылался на него самого.
  5. Затем атакующий использует имеющийся у него TGT для сброса пароля пользователя "Administrator", так и не узнав предыдущее значение.
  6. Если атака успешна, пароль целевой учётной записи изменён, и атакующий может аутентифицироваться с помощью новых учётных данных.

Атака может быть нацелена как на пользовательские учётные записи, так и на учётные записи компьютеров.

image

Требования

  • Windows с PowerShell.
  • Модуль PowerShell ActiveDirectory.
  • Скрипт использует Rubeus.exe, протестирован с Rubeus, скомпилированным под .NET Framework 4.6.2. Поместите его в текущий каталог или укажите путь к нему с помощью -RubeusPath.
  • Либо:
    • Учётная запись домена, которой вы управляете и на которую можете записать UPN.
    • Разрешение на создание учётных записей в OU/контейнере (указывается с помощью -CreateNewPath).
  • Непропатченный DC в качестве цели. Можно указать с помощью -DC.

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

Выполните dot-source скрипта, чтобы загрузить функцию, а затем вызовите её:

root@kitploit:~
. .\ResetNightmare.ps1

Invoke-ResetNightmare `
    -TargetAccount "victim" `
    -TargetNewPassword "NewP@ssw0rd!" `
    -UPNUser "controlledUser" `
    -UPNUserPassword "ControlledP@ss!"

Нацеливание на учётную запись компьютера

Используйте sAMAccountName (заканчивающийся на $) для -TargetAccount:

root@kitploit:~
Invoke-ResetNightmare `
    -TargetAccount 'server$' `
    -TargetNewPassword "NewP@ssw0rd!" `
    -UPNUser "controlledUser" `
    -UPNUserPassword "ControlledP@ss!"

Создание новой контролируемой учётной записи

Если у вас есть разрешение на создание объектов в OU/контейнере, вы можете указать DN этого OU/контейнера с помощью -CreateNewPath. Когда он указан, параметры -UPNUser и -UPNUserPassword рассматриваются как учётные данные создаваемой учётной записи, а не существующей учётной записи в домене:

root@kitploit:~
Invoke-ResetNightmare `
    -TargetAccount "victim" `
    -TargetNewPassword "NewP@ssw0rd!" `
    -UPNUser "attackerAcct" `
    -UPNUserPassword "AttackerP@ss!" `
    -CreateNewPath "OU=Temp,DC=demo,DC=lab"

Добавьте -Computer, чтобы создать/использовать учётную запись компьютера вместо учётной записи пользователя.

Параметры

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ
Этот контент предоставлен исключительно в образовательных и информационных целях. Он предназначен для повышения осведомлённости и ответственного устранения уязвимостей безопасности, которые могут существовать в системах, которыми вы владеете или которые вам разрешено тестировать. Несанкционированное использование этой информации во вредоносных целях, эксплуатация или незаконный доступ строго запрещены. Авторы не поддерживают и не одобряют любую незаконную деятельность и снимают с себя ответственность за любой ущерб, возникший в результате неправомерного использования материалов. Кроме того, авторы не гарантируют точность или полноту контента и не несут ответственности за любой ущерб, возникший в результате его использования.

Скачать инструмент
ParameterRequiredDescription
-TargetAccountДаsAMAccountName целевой учётной записи, для которой выполняется сброс пароля. При нацеливании на учётную запись компьютера обязательно укажите завершающий $.
-TargetNewPasswordДаНовый пароль, который будет установлен для целевой учётной записи.
-UPNUserДаУчётная запись, на которую вы можете записать UPN, или учётная запись, которую нужно создать, если указан -CreateNewPath.
-UPNUserPasswordДаПароль в открытом виде для -UPNUser.
-ComputerНетРассматривать -UPNUser как учётную запись компьютера (и создавать учётную запись компьютера при совместном использовании с -CreateNewPath).
-RubeusPathНетПуть к исполняемому файлу Rubeus. По умолчанию используется .\Rubeus.exe.
-SupportedEncryptionНетПоддерживаемый тип шифрования для TGT. По умолчанию используется AES256, что должно работать в большинстве случаев. Если необходимо изменить это значение, поддерживаются следующие значения:
DES|RC4|AES128|AES256
-CreateNewPathНетDistinguishedName OU/контейнера, в котором у вас есть разрешения на создание объектов. Если указан, параметры -UPNUser и -UPNUserPassword будут учётными данными создаваемого пользователя, а не существующего.
-DCНетИмя DC, с которым будет работать скрипт. Если не указано, оно определяется автоматически.