Mengaudit kata sandi pengguna di Direktori Aktif

Kompleksitas kata sandi pengguna domain Active Directory adalah salah satu fitur keamanan paling penting untuk data pengguna dan seluruh domain. Sebagai aturan, pengguna lebih suka kata sandi yang sederhana dan mudah diingat untuk membuat hidup mereka lebih mudah. Tetapi dengan demikian, mereka secara serius mengurangi tingkat perlindungan akun mereka dari penyusup. Pada artikel ini kami akan menunjukkan cara berbelanja Audit kata sandi pengguna di Active Directory menggunakan PowerShell.

Untuk menguji resistensi kata sandi pengguna terhadap serangan, kami akan menggunakan modul PowerShell pihak ketiga - DSInternals. Modul ini berisi sejumlah cmdlet yang memungkinkan Anda untuk melakukan berbagai operasi dengan database AD online atau offline (langsung dengan file ntds.dit). Secara khusus, kami tertarik pada cmdlet Test-PasswordQuality, mengidentifikasi pengguna dengan kata sandi yang lemah, identik, standar, atau kosong.

Catatan. Kata sandi pengguna dari database AD, tentu saja, tidak dapat diperoleh secara jelas, tetapi dengan membandingkan hash kata sandi pengguna AD dengan hash kata-kata dari kamus, kata sandi pengguna dapat ditentukan (atau dibandingkan).

Konten:

  • Menginstal DSInternals
  • Kamus Kata Sandi
  • Audit kata sandi dalam AD menggunakan Test-PasswordQuality

Menginstal DSInternals

Di PowerShell 5, Anda dapat menginstal modul DSInternals online dari galeri skrip PowerShell resmi seperti ini:

Instal-Modul DSInternals

Dalam versi PowerShell sebelumnya atau pada sistem yang terisolasi, Anda harus mengunduh arsip zip dengan versi terbaru modul dari GitHub (https://github.com/MichaelGrafnetter/DSInternals/releases). Pada saat penulisan, rilis terbaru - DSInternals v2.16.1 Arsip yang dihasilkan harus dibongkar ke salah satu direktori dengan modul PowerShell:

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

Atau impor modul dengan perintah:

Modul Impor C: \ distr \ PS \ DSInternals \ DSInternals.psd1

Daftar cmdlet modul yang tersedia dapat diperoleh sebagai berikut:

Get-Command -Module DSInternals

Kamus Kata Sandi

Selanjutnya, kita memerlukan file dengan kamus kata sandi yang sering digunakan dan "buruk". Anda dapat mengunduhnya dari Internet atau membuatnya sendiri. Akun pengguna Direktori Aktif akan diperiksa terhadap kata sandi dalam kamus ini. Simpan kata sandi ke file teks PasswordDict.txt.

Audit kata sandi dalam AD menggunakan Test-PasswordQuality

Dalam variabel berikut, tentukan path ke file dengan kata sandi, nama domain dan pengontrol domain.

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

Maka Anda perlu mendapatkan hash NT untuk semua kata sandi dari file kamus, untuk kemudian membandingkannya dengan hash kata sandi pengguna AD:

$ Dict = Dapatkan-Konten $ DictFile | ConvertTo-NTHashDictionary

Selanjutnya, gunakan cmdlet Dapatkan-ADReplAccount dapatkan daftar objek dalam data AD NT, hash LM, serta riwayat hash. Kemudian, untuk setiap pengguna, pemeriksaan akan dilakukan untuk menentukan apakah hash kata sandi cocok dengan hash dari file kamus.

Dapatkan-ADReplAkun -Semua -Server $ DC -NamingContext $ Domain |
Test-PasswordQuality -WeakPasswordHash $ Dict -ShowPlainTextPasswords -TermasukDisabledAccounts

Hasil skrip mungkin terlihat seperti ini:

Laporan Kualitas Kata Sandi Direktori Aktif

--

Kata sandi akun ini disimpan menggunakan enkripsi yang dapat dibalik:

Ada hash LM untuk akun ini:

Akun ini tidak memiliki kata sandi:

Tamu

Kata sandi akun ini telah ditemukan di kamus:

aromanov q1w2e3

armtest P @ ssw0rd

dbidus q1w2e3

sivannikov Pa $$ w0rd

locadmin P @ ssw0rd

tstusr P @ ssw0rd

Kata sandi historis akun-akun ini telah ditemukan di kamus:

administrator P @ ssw0rd

aromanov July2016

dbidus August2016

Grup akun ini memiliki kata sandi yang sama:

Grup 1:

KMedvedev

AIvanov

NPetrov

Grup 2:

ARMTest

locadmin

pertama

Grup 3:

DRomanov

Dbacess

Akun komputer ini memiliki kata sandi standar:

Kunci Kerberos AES hilang dari akun ini:

Pra-otentikasi Kerberos tidak diperlukan untuk akun ini:

Hanya enkripsi DES yang diizinkan untuk digunakan dengan akun ini:

Akun administratif ini diizinkan untuk didelegasikan ke layanan:

Administrator

srv-zenoss

krbtgt

nnovikov

Kata sandi akun ini tidak akan pernah kedaluwarsa:

jsmith

kabrams

Akun-akun ini tidak diharuskan memiliki kata sandi:

usertst1

usertst2

Seperti yang Anda lihat, pengguna AD berhasil menemukan kata sandi yang cocok dengan kamus (termasuk pencarian berdasarkan riwayat kata sandi pengguna). Juga menemukan pengguna dengan kata sandi yang sama.

Jadi, dengan menggunakan skenario ini, Anda dapat dengan mudah menganalisis kualitas kata sandi pengguna AD, ketahanannya terhadap kekerasan, mengevaluasi kebijakan kompleksitas kata sandi yang digunakan dalam domain, dan menarik kesimpulan organisasi :). Administrator direktori aktif dapat (dan bahkan harus) melakukan audit ini secara teratur..