Привет! Сегодня мы рассмотрим важную тему – проверку безопасности паролей в Active Directory. Зачем это нужно? Потому что безопасные пароли – залог безопасности вашей организации. В этой статье вы узнаете, как администраторы и специалисты по информационной безопасности могут убедиться в работоспособности парольных политик и обнаружить слабые пароли.
Шаг 1: Предварительные требования:
Первым шагом в аудите паролей является извлечение хешей паролей из базы данных Active Directory. Для этой задачи мы воспользуемся модулем для PowerShell — DSInternals, который вы можете скачать здесь. Скопируйте его, например, в папку C:\New Folder, на контроллере домена.
Шаг 2: Копирование базы NTDS из теневой копии:
Теперь, так как прямое копирование базы NTDS невозможно, нам нужно воспользоваться теневой копией. Запустите PowerShell с правами администратора и выполните следующие команды:
$path="C:\New folder\"
cd $path
$vss=$null
$vss=Get-CimInstance -ClassName Win32_ShadowCopy -Property * | Select-Object DeviceObject,ID
vssadmin create shadow /for=C:
$vss=Get-CimInstance -ClassName Win32_ShadowCopy -Property * | Select-Object DeviceObject,ID
$vss[0]
К сожалению, при копировании данных непосредсвенно из PowerShell у меня возникали ошибки, поэтому выполните копирование из cmd, запущенном от имени администратора:
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy317\Windows\NTDS "C:\new folder"
Замените «HarddiskVolumeShadowCopy317» на актуальный номер, который был показан ранее в $vss[0].
Шаг 3: Извлечение хешей паролей и анализ:
После создания теневой копии вернитесь в PowerShell, удалите теневую копию и выполните следующие команды для извлечения хешей паролей всех активных пользователей:
vssadmin.exe delete shadows /shadow="$($vss[0].ID)" /quiet
esentutl /r edb /d
import-module -name .\dsinternals
$key=Get-BootKey -Online
$dump=Get-ADDBAccount -all -DBPath '.\ntds.dit' -BootKey $key | Where-Object {$_.enabled -eq "True"}
$dump | where-object {$_.samaccounttype -eq "user"} | Format-Custom -View PwDump | out-file -FilePath users.pwdump -Encoding utf8
remove-item *edb*
remove-item *ntds*
Важно!!! Полученный в результате файл является предельно критичным. Храните его соответсвующе и не допускайте его утечки! Я бы рекомендовал, удалять его безвозратно, сразу после анализа. Не оставляйте его на сревере после генерации.
Упрощённый вариант предыдущих шагов:
Я сделал программу, которая выполняет предущие шаги в атоматическом режиме за несколько секунд.
Скачать её можно здесь.
Проект программы на github, если кому-то нужны будут исходники — тут.
Если посчитаете, что прогамма вам полезна — донаты приветсвуются.
Шаг 4: Анализ хешей паролей и взлом:
Полученные хеши паролей могут быть проанализированы на предмет повторяющихся значений и слабых паролей (хэшей). В случае, если один и тот же пароль повторяется у множества пользователей — это повод забить тревогу, и предпринять некоторые организационные меры.
Для дополнительной проверки того, на сколько слабые пароли установелены, можно воспользоваться программой Hashcat, которую вы можете скачать здесь, и различными словарями паролей, доступными на сайте weakpass.com.
В папке с программой можно сделать подпапку Dictionaries, и скопровать в неё нужные словари.
Также, в папке с программой нужно создать список уникальных хешей с имененм hacklist.txt. Оставить только уникальные хэши, можно, например, удалив дубликаты, импортировав ранее полученные данные в Excel.
Запускаем взлом командой:
hashcat.exe hacklist.txt Dictionaries\* -m 1000
После завершения взлома, можно посмотреть список паролей в файле hashcat.potfile. Cопоставив хэши ненадёжных паролей с пользователями, можно заставить их сменить такие пароли.
Заканчивая наш разговор о проверке паролей в Active Directory, помните, что обеспечение безопасности данных – это ключевая задача. Анализ и улучшение политик паролей помогут сделать вашу организацию более защищенной от потенциальных угроз.
Не забывайте при этом про нормы закона и этики.







