Сегодня продолжим тему взлома учетных данных Windows. На этот раз поговорим об обратном шифрование Active Directory.
Еще по теме: Пентест Active Directory на машине HTB Intelligence
Обратимое шифрование Active Directory
Согласно MITRE, злоумышленник может злоупотреблять свойствами шифрования аутентификации Active Directory, чтобы получить доступ к учетным данным в системах Windows. Свойство AllowReversiblePasswordEncryption указывает, включено или отключено обратимое шифрование пароля для учетной записи.
По умолчанию это свойство отключено (вместо сохранения учетных данных пользователя в качестве выходных данных функций однонаправленного хеширования) и не должно включаться, если это не требуется для работы устаревшего или другого ПО.
Статья в образовательных целях и предназначена для этичных хакеров. Ни редакция spy-soft.net, ни автор не несут ответственности за ваши действия.
В учетной записи пользователя контроллера домена включено обратимое шифрование, что означает, что зашифрованные данные могут быть обращены обратно к паролю пользователя. Пароль, сохраненный с помощью политики обратимого шифрования, не является хэшем, поскольку можно вызвать функцию, чтобы вернуться к исходному паролю в открытом виде.
Согласно Microsoft: если вы используете протокол проверки подлинности вызовов (CHAP) через удаленный доступ или службы проверки подлинности в Интернете (IAS), вы должны включить этот параметр политики. CHAP — это протокол аутентификации, который используется удаленным доступом и сетевыми подключениями. Для дайджест-аутентификации в службах IIS (IIS) также необходимо включить этот параметр политики.
Включение обратимого шифрования учетной записи
Существует несколько способов включения свойства обратимого шифрования:
Свойство учетной записи пользователя
Изменив свойство учетной записи пользователя домена, включите обратимое шифрование.
Команда PowerShell
1 |
set-ADUser – AllowReversiblePasswordEncryption $true |
Управление групповой политикой
Включите обратимое шифрования пароля в разделе редактора GPO:
1 |
Computer configuration --> Windows Settings --> Security Settings --> Account Policies --> Password Policy |
1 |
Конфигурация компьютера --> Конфигурация Windows --> Параметры безопасности --> Политики учетных записей --> Политика паролей |
Проверьте свойство с помощью редактора свойств-атрибутов пользователя для UserAccountControl.
Теперь, если системный администратор сбрасывает пароль для учетной записи пользователя, злоумышленник может получить открытый текст паролей, созданных/измененных после включения этого свойства.
Поиск пользователей с обратимым шифрованием
Чтобы найти пользователя, которому разрешено обратимое шифрование пароля, используйте команду PowerShell:
1 |
Get-ADUser -Filter {AllowReversiblePasswordEncryption -eq "true"} | Select Name, sAMAccountName |
Взлом пароля Windows с помощью атаки DCSync
В предыдущей статье мы уже подробно рассказывали про атаку DCsync.
Скачайте инструмент DC Sync Script.
Команды, которые необходимо выполнить в контроллере домена для проверки открытого текстового пароля пользователя.
1 2 3 |
powershell.exe -ep bypass Import-Module .\Invoke-DCSync.ps1 Invoke-DCSync -AllData |
DCSync показывает пароль целевого пользователя в открытом виде.
Защита от атаки DCSync
- Убедитесь, что свойство Allow Reversible Password Encryption (Разрешить обратимое шифрование паролей) отключено.
- Пароль хранилища групповой политики с использованием обратимого шифрования отключен.
Заключение
Мы смогли получить пароль учетной записи пользователей Active Directory. Эта статья послужит справочным материалом для Red Team по сбросу учетных данных — незашифрованному текстовому паролю Active Directory.
Спасибо за полезную статью hackingarticles!
ПОЛЕЗНЫЕ ССЫЛКИ:
- Атака RBCD для захвата домена Active Directory
- Уклонение от Honeytoken при атаке Active Directory
- Использование Kerbrute для атаки на Kerberos Active Directory
PS C:\Windows\system32> Get-ADUser -Filter {AllowReversiblePasswordEncryption -e
q «true»} | Select Name, sAMAccountName
Имя «Get-ADUser» не распознано как имя командлета, функции, файла скрипта или в
ыполняемой программы. Проверьте правильность написания имени, а также наличие и
правильность пути, после чего повторите попытку.
строка:1 знак:11
+ Get-ADUser <<<< -Filter {AllowReversiblePasswordEncryption -eq "true"} | Sel
ect Name, sAMAccountName
+ CategoryInfo : ObjectNotFound: (Get-ADUser:String) [], CommandN
otFoundException
+ FullyQualifiedErrorId : CommandNotFoundException