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..