Сложността на паролата на потребител в домейна в Active Directory е една от най-важните функции за защита както за потребителските данни, така и за целия домейн. По правило потребителите предпочитат прости, лесни за запомняне пароли, за да улеснят живота си. Но по този начин те сериозно намаляват нивото на защита на своите акаунти от натрапници. В тази статия ще покажем как да харчите Проверете потребителските пароли в Active Directory с помощта на PowerShell.
За да тестваме устойчивостта на потребителските пароли към атаки, ще използваме трета страна PowerShell модул - DSInternals. Този модул съдържа редица командлети, които ви позволяват да извършвате различни операции с базата данни на AD онлайн или офлайн (директно с файла ntds.dit). По-специално, ние се интересуваме от командлета Тест-PasswordQuality, идентифицира потребителите със слаби, идентични, стандартни или празни пароли.
забележка. Потребителските пароли от базата данни на AD, разбира се, не могат да бъдат получени ясно, но ако сравним хешовете на паролите на AD потребителите с хешовете на думи от речника, потребителските пароли могат да бъдат определени (или сравнени).Съдържание:
- Инсталиране на DSInternals
- Парола речник
- Одитирайте паролите в AD с помощта на Test-PasswordQuality
Инсталиране на DSInternals
В PowerShell 5 можете да инсталирате модула DSInternals онлайн от официалната галерия скриптове на PowerShell така:
Инсталирайте модул DSInternals
В предишните версии на PowerShell или на изолирани системи ще трябва да изтеглите zip архива с последната версия на модула от GitHub (https://github.com/MichaelGrafnetter/DSInternals/releases). В момента на писането, най-новото издание - DSInternals v2.16.1 Полученият архив трябва да бъде разопакован в една от директории с PowerShell модули:
- C: \ Windows \ system32 \ WindowsPowerShell \ v1.0 \ Модули \ DSInternals
- C: \ Потребители \% потребителско име% \ Документи \ WindowsPowerShell \ Модули \ DSInternals
Или импортирайте модула с командата:
Импорт-модул C: \ distr \ PS \ DSInternals \ DSInternals.psd1
Списъкът на наличните командлети за модули може да се получи, както следва:
Get-Command -Module DSInternals
Парола речник
След това ни трябва файл с речник на често използвани и "лоши" пароли. Можете да го изтеглите от интернет или да го създадете сами. Потребителските акаунти на Active Directory ще се проверяват спрямо паролите в този речник. Запазване на паролите в текстов файл PasswordDict.txt.
Одитирайте паролите в AD с помощта на Test-PasswordQuality
В следните променливи посочете пътя към файла с пароли, името на домейна и контролера на домейна.
$ DictFile = "C: \ distr \ PS \ DSInternals \ PasswordDict.txt"
$ DC = "msk-dc01"
$ Domain = "DC = winitpro, DC = loc"
След това трябва да получите NT хеши за всички пароли от речника, за да ги сравните впоследствие с хешовете за пароли на AD потребители:
$ Dict = Получете съдържание $ DictFile | ConvertTo-NTHashDictionary
След това използвайте командлета получавам-ADReplAccount получете списък на обекти в AD данни за техните NT, хешове LM, както и историята на хешовете. След това за всеки потребител ще бъде направена проверка, за да се определи дали хешът на паролата съвпада с хешовете от файла на речника.
Get-ADReplAccount -All -Server $ DC -NamingContext $ Domain |
Test-PasswordQuality -WeakPasswordHashes $ Dict -ShowPlainTextPasswords -IncludeDisabledAccounts
Резултатът от скрипта може да изглежда така:
Отчет за качеството на паролата на Active Directory
--
Паролите на тези акаунти се съхраняват с помощта на обратимо криптиране:
LM хеши на пароли на тези акаунти са налице:
Тези акаунти нямат зададена парола:
гост
Паролите на тези акаунти са намерени в речника:
ароманов q1w2e3
оръжие P @ ssw0rd
dbidus q1w2e3
sivannikov Pa $$ w0rd
locadmin P @ ssw0rd
tstusr P @ ssw0rd
Исторически пароли за тези акаунти са намерени в речника:
администратор P @ ssw0rd
ароманов юли2016г
dbidus август2016
Тези групи акаунти имат същите пароли:
Група 1:
KMedvedev
AIvanov
NPetrov
Група 2:
ARMTest
locadmin
ТКО
Група 3:
DRomanov
DBacess
Тези компютърни акаунти имат пароли по подразбиране:
Ключовете на Kerberos AES липсват от тези акаунти:
Предварителното удостоверяване на Kerberos не се изисква за тези акаунти:
С тези акаунти е разрешено да се използва само криптиране на DES:
Тези административни акаунти могат да бъдат делегирани на услуга:
администратор
SRV-zenoss
krbtgt
nnovikov
Паролите на тези акаунти никога няма да изтекат:
ИПетров
kabrams
Тези акаунти не трябва да имат парола:
usertst1
usertst2
Както можете да видите, потребителите на AD успешно бяха открити, чиито пароли съвпадат с речника (включително търсения въз основа на историята на потребителските пароли). Намерени са и потребители със същите пароли.
Така че, използвайки този сценарий, можете просто да анализирате качеството на паролите на потребителите на AD, тяхната устойчивост на груба сила, да оцените политиката за сложност на паролата, използвана в домейна, и да направите организационни изводи :). Администраторите на Active Directory могат (и дори трябва да) извършват този одит редовно..