Pregledovanje uporabniških gesel v Active Directoryu

Kompleksnost gesla uporabnika domene Active Directory je ena najpomembnejših varnostnih funkcij tako za uporabniške podatke kot celotno domeno. Uporabniki praviloma raje preprosta, enostavno zapomnjena gesla, da si olajšajo življenje. Toda s tem resno znižujejo raven zaščite svojih računov pred vsiljivci. V tem članku bomo pokazali, kako porabiti Preglejte uporabniška gesla v Active Directory s programom PowerShell.

Za testiranje odpornosti uporabniških gesel do napadov bomo uporabili zunanji modul PowerShell - DSInternals. Ta modul vsebuje številne ukazne vrstice, ki omogočajo izvajanje različnih operacij z bazo podatkov AD v spletu ali brez povezave (neposredno z datoteko ntds.dit). Predvsem nas zanima cmdlet Test-PasswordQuality, prepozna uporabnike s šibkimi, enakimi, standardnimi ali praznimi gesli.

Opomba. Uporabniškega gesla iz baze podatkov AD seveda ni mogoče dobiti na jasnem, vendar lahko s primerjanjem šifranj gesel uporabnikov AD s poševnimi besedami iz slovarja uporabniška gesla določimo (ali primerjamo).

Vsebina:

  • Namestitev DSInternals
  • Geslo slovar
  • Preglejte gesla v AD-ju z uporabo Test-PasswordQuality

Namestitev DSInternals

V PowerShell 5 lahko v uradno galerijo skriptov PowerShell v spletu namestite modul DSInternals takole:

Namestitveni modul DSInternals

V prejšnjih različicah PowerShell ali na izoliranih sistemih boste morali prenesti zip arhiv z najnovejšo različico modula iz GitHub (https://github.com/MichaelGrafnetter/DSInternals/releases). V času pisanja, zadnja izdaja - DSInternals v2.16.1 Nastali arhiv je treba razpakirati v enega od imenikov z moduli PowerShell:

  • C: \ Windows \ system32 \ WindowsPowerShell \ v1.0 \ Moduli \ DSInternals
  • C: \ Uporabniki \% uporabniško ime% \ Dokumenti \ WindowsPowerShell \ Moduli \ DSInternals

Ali uvozite modul z ukazom:

Uvozni modul C: \ distr \ PS \ DSInternals \ DSInternals.psd1

Seznam razpoložljivih ukaznih kod modulov lahko dobite na naslednji način:

Get-Command -Module DSInternals

Geslo slovar

Nato potrebujemo datoteko s slovarjem pogosto uporabljenih in "slabih" gesel. Lahko ga prenesete iz interneta ali pa si ga ustvarite sami. Uporabniški računi Active Directory bodo preverjeni glede na gesla v tem slovarju. Shranite gesla v besedilno datoteko PasswordDict.txt.

Preglejte gesla v AD-ju z uporabo Test-PasswordQuality

V naslednjih spremenljivkah določite pot do datoteke z gesli, imenom domene in krmilnikom domene.

$ DictFile = "C: \ distr \ PS \ DSInternals \ PasswordDict.txt"
$ DC = "msk-dc01"
$ Domain = "DC = winitpro, DC = lokal"

Nato morate dobiti slovarja NT za vsa gesla iz slovarske datoteke in jih nato primerjati s šiframi uporabnikov AD:

$ Dict = Pridobite vsebino $ DictFile | Pretvori v NTashD slovar

Nato uporabite cmdlet Pridite-ADReplAccount dobite seznam predmetov v podatkih AD njihovih NT, LM hešev in zgodovino hešev. Nato bo za vsakega uporabnika opravljen pregled, da se ugotovi, ali se hash gesla ujema z oznakami iz slovarske datoteke.

Pridobite-ADReplAccount -All -Server $ DC -NamingContext $ Domain |
Test-GesloKvaliteta -SlabaPasswordHashes $ Dict -ShowPlainTextPasswords -IncludeDisabledAccounts

Rezultat skripte lahko izgleda tako:

Poročilo o kakovosti gesla Active Directory

--

Gesla teh računov so shranjena z reverzibilnim šifriranjem:

LM-ovi imajo gesla teh računov:

Za te račune ni nastavljeno geslo:

Gost

Gesla teh računov so najdena v slovarju:

aromanov q1w2e3

armtest P @ ssw0rd

dbidus q1w2e3

sivannikov Pa $$ w0rd

locadmin P @ ssw0rd

tstusr P @ ssw0rd

Zgodovinska gesla teh računov so bila najdena v slovarju:

administrator P @ ssw0rd

aromanov julij2016

dbidus avgust2016

Te skupine računov imajo enaka gesla:

Skupina 1:

KMedvedev

AIvanov

NPetrov

Skupina 2:

ARMTest

locadmin

tst

Skupina 3:

DRomanov

Nesreča

Ti računalniški računi imajo privzeta gesla:

V teh računih manjkajo ključi Kerberos AES:

Kerberosova predhodna overitev za te račune ni potrebna:

S temi računi je dovoljeno uporabljati samo šifriranje DES:

Te upravne račune je dovoljeno delegirati na storitev:

Skrbnik

srv-zenoss

krbtgt

nnovikov

Gesla teh računov ne bodo nikoli potekla:

jsmith

kabram

Za te račune ni treba imeti gesla:

usertst1

usertst2

Kot lahko vidite, so uporabniki AD-ja uspešno našli, katerih gesla se ujemajo s slovarjem (vključno z iskanjem, ki temeljijo na zgodovini uporabniških gesel). Našli smo tudi uporabnike z enakimi gesli.

Tako lahko s tem scenarijem preprosto preprosto analizirate kakovost gesel uporabnikov AD, njihovo odpornost na grobo silo, ocenite politiko zapletenosti gesla, ki se uporablja v domeni, in naredite organizacijske sklepe :). Skrbniki Active Directory lahko (in celo bi morali) to revizijo redno izvajati..