Одит на потребителски пароли в Active Directory

Сложността на паролата на потребител в домейна в 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 могат (и дори трябва да) извършват този одит редовно..