Auditování uživatelských hesel ve službě Active Directory

Složitost hesla uživatele domény Active Directory je jednou z nejdůležitějších bezpečnostních funkcí jak pro uživatelská data, tak pro celou doménu. Uživatelé zpravidla preferují jednoduchá a snadno zapamatovatelná hesla, která jim usnadní život. Tím však vážně snižují úroveň ochrany svých účtů před vetřelci. V tomto článku ukážeme, jak utratit Auditujte hesla uživatelů ve službě Active Directory pomocí prostředí PowerShell.

Abychom otestovali odolnost uživatelských hesel vůči útokům, použijeme modul PowerShell od třetích stran - DSInternals. Tento modul obsahuje řadu rutin, které umožňují provádět různé operace s databází AD online nebo offline (přímo se souborem ntds.dit). Zejména nás zajímá cmdlet Test-PasswordQuality, identifikuje uživatele se slabými, stejnými, standardními nebo prázdnými hesly.

Poznámka:. Hesla uživatelů z databáze AD samozřejmě nelze získat jednoznačně, ale porovnáním hashe hesel uživatelů AD s hashováním slov ze slovníku lze hesla uživatelů určit (nebo porovnat).

Obsah:

  • Instalace DSInternals
  • Slovník hesel
  • Auditujte hesla v AD pomocí Test-PasswordQuality

Instalace DSInternals

V PowerShell 5 můžete nainstalovat modul DSInternals online z oficiální galerie skriptů PowerShell, jako je tato:

Instalační modul DSInternals

V předchozích verzích PowerShell nebo v izolovaných systémech budete muset stáhnout archiv zip s nejnovější verzí modulu z GitHub (https://github.com/MichaelGrafnetter/DSInternals/releases). V době psaní nejnovější verze - DSInternals v2.16.1 Výsledný archiv musí být rozbalen do jednoho z adresářů s moduly PowerShell:

  • C: \ Windows \ system32 \ WindowsPowerShell \ v1.0 \ Moduules \ DSInternals
  • C: \ Users \% username% \ Documents \ WindowsPowerShell \ Modules \ DSInternals

Nebo importujte modul příkazem:

Importní modul C: \ distr \ PS \ DSInternals \ DSInternals.psd1

Seznam dostupných modulů cmdlets lze získat následujícím způsobem:

Get-Command - Modul DSInternals

Slovník hesel

Dále potřebujeme soubor se slovníkem často používaných a „špatných“ hesel. Můžete si ji stáhnout z internetu nebo si ji vytvořit sami. Uživatelské účty služby Active Directory budou porovnány s hesly v tomto slovníku. Uložte hesla do textového souboru PasswordDict.txt.

Auditujte hesla v AD pomocí Test-PasswordQuality

V následujících proměnných zadejte cestu k souboru pomocí hesel, názvu domény a řadiče domény.

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

Pak musíte získat NT hash pro všechna hesla ze souboru slovníku, abyste je mohli následně porovnat s hashovacími hesly uživatelů AD:

$ Dict = Get-Content $ DictFile | ConvertTo-NTHashDictionary

Dále použijte rutinu Jdi-ADReplAccount získat seznam objektů v AD datech jejich NT, LM hashe, stejně jako historie hashe. Poté se u každého uživatele provede kontrola, zda se hash hesla shoduje s hashe ze souboru slovníku.

Získejte-ADReplAccount -Všechny -Server $ DC -NamingContext $ Domain |
Test-HesloKvalita - SlabéPasswordHashes $ Dict -ShowPlainTextPasswords -IncludeDisabledAccounts

Výsledek skriptu může vypadat takto:

Zpráva o kvalitě hesla pro Active Directory

--

Hesla těchto účtů jsou ukládána pomocí reverzibilního šifrování:

LM hash hesel těchto účtů jsou přítomny:

Tyto účty nemají nastaveno žádné heslo:

Host

Hesla těchto účtů byla nalezena ve slovníku:

aromanov q1w2e3

nejpřesnější P @ ssw0rd

dbidus q1w2e3

sivannikov Pa $$ w0rd

locadmin P @ ssw0rd

tstusr P @ ssw0rd

Historická hesla těchto účtů byla nalezena ve slovníku:

správce P @ ssw0rd

aromanov červenec2016

dbidus srpen2016

Tyto skupiny účtů mají stejná hesla:

Skupina 1:

KMedveděv

Avanov

NPetrov

Skupina 2:

ARMTest

locadmin

tst

Skupina 3:

DRomanov

Dbacess

Tyto účty počítače mají výchozí hesla:

Klíče Kerberos AES chybí v těchto účtech:

Předběžné ověření Kerberos není vyžadováno pro tyto účty:

V těchto účtech je povoleno používat pouze šifrování DES:

Tyto administrativní účty mohou být delegovány na službu:

Administrátor

srv-zenoss

krbtgt

nnovikov

Hesla těchto účtů nikdy nevyprší:

jsmith

kabrams

U těchto účtů není vyžadováno heslo:

usertst1

usertst2

Jak vidíte, uživatelé AD byli úspěšně nalezeni, jejichž hesla odpovídají slovníku (včetně vyhledávání na základě historie uživatelských hesel). Nalezli také uživatele se stejnými hesly.

Takže pomocí tohoto scénáře můžete docela jednoduše analyzovat kvalitu hesel uživatelů AD, jejich odolnost vůči hrubé síle, vyhodnotit politiku složitosti hesla používanou v doméně a vyvodit organizační závěry :). Správci služby Active Directory mohou (a dokonce by měli) provádět tento audit pravidelně..