सक्रिय निर्देशिका डोमेन में उपयोगकर्ता पासवर्ड की जटिलता उपयोगकर्ता डेटा और संपूर्ण डोमेन बुनियादी ढांचे दोनों के लिए प्रमुख सुरक्षा तत्वों में से एक है। कई उपयोगकर्ता व्यक्तिगत जानकारी, शब्दकोश शब्दों और सरल संयोजनों को पासवर्ड के रूप में उपयोग नहीं करने की सिफारिश के बावजूद सरल और याद रखने में आसान पासवर्ड का उपयोग करना पसंद करते हैं। इस लेख में, हम आपको दिखाएंगे कि कैसे सक्रिय निर्देशिका उपयोगकर्ता पासवर्ड का ऑडिट करें, पावरशेल का उपयोग करके कमजोर और सरल पासवर्ड खोजें।
जटिल डोमेन पासवर्ड नीति के साथ भी, उपयोगकर्ता तकनीकी रूप से कमजोर या डिफ़ॉल्ट पासवर्ड सेट कर सकता है, जैसे
Pa$$w0rd
या P@ssw0rd
.
DSInternals (Directory Services Internals) PowerShell मॉड्यूल को कैसे स्थापित करें?
सरल और सामान्य पासवर्ड के शब्दकोश के साथ सक्रिय निर्देशिका डेटाबेस (ntds.dit फ़ाइल) में संग्रहीत उपयोगकर्ता पासवर्ड के हैश की तुलना करने के लिए, आप तृतीय-पक्ष पावरशेल मॉड्यूल - DSInternals. का उपयोग कर सकते हैं। इस मॉड्यूल में कई cmdlets हैं जो AD डेटाबेस के साथ ऑनलाइन या ऑफलाइन मोड (सीधे ntds.dit के साथ) में विभिन्न क्रियाएँ करने की अनुमति देते हैं। विशेष रूप से, हम टेस्ट-पासवर्ड गुणवत्ता . में रुचि रखते हैं cmdlet जो कमजोर, समान, मानक, रिक्त पासवर्ड वाले उपयोगकर्ताओं का पता लगाने की अनुमति देता है (पासवर्ड आवश्यक नहीं है), या जिनके पासवर्ड कभी समाप्त नहीं होते हैं।
<मजबूत> नोट। स्वाभाविक रूप से, उपयोगकर्ता पासवर्ड AD डेटाबेस से सादे पाठ के रूप में प्राप्त नहीं किए जा सकते हैं। सक्रिय निर्देशिका में संग्रहीत पासवर्ड हैश किए गए हैं। हालांकि, आप एडी उपयोगकर्ताओं के पासवर्ड हैश की तुलना डिक्शनरी फ़ाइल के शब्दों के हैश से कर सकते हैं और कमजोर पासवर्ड ढूंढ सकते हैं।पावरशेल संस्करण 5 (और नए) में, आप आधिकारिक पावरशेल स्क्रिप्ट गैलरी से DSInternals मॉड्यूल को ऑनलाइन स्थापित कर सकते हैं:
Install-Module DSInternals
पिछले PowerShell संस्करणों में या डिस्कनेक्ट किए गए वातावरण में, आपको GitHub (https://github.com/MichaelGrafnetter/DSInternals/releases) से नवीनतम मॉड्यूल संस्करण के साथ .zip संग्रह डाउनलोड करना होगा। जब तक यह लेख लिखा गया था, नवीनतम रिलीज़ DSInternals v4.4.1 थी। इस संग्रह को पावरशेल मॉड्यूल वाली निर्देशिकाओं में से एक में निकालें:
- C:\Windows\system32\WindowsPowerShell\v1.0\Modules\DSInternals
- C:\Users\%username%\Documents\WindowsPowerShell\Modules\DSInternals
या इस आदेश का उपयोग करके अपने वर्तमान पावरशेल सत्र में DSInternals मॉड्यूल आयात करें:
Import-Module C:\distr\PS\DSInternals\DSInternals.psd1
cannot be loaded because running scripts is disabled on this system
मॉड्यूल आयात करते समय प्रकट होता है, आपको वर्तमान पावरशेल निष्पादन नीति को बदलने और बाहरी पीएस स्क्रिप्ट को कम से कम वर्तमान सत्र में चलाने की अनुमति देने की आवश्यकता है:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass –Force
उपलब्ध मॉड्यूल cmdlets की सूची निम्नानुसार प्राप्त की जा सकती है:
Get-Command -Module DSInternals
टेस्ट-पासवर्डक्वालिटी सीएमडीलेट के साथ कमजोर सक्रिय निर्देशिका पासवर्ड खोजें
इसके बाद, आपको एक पासवर्ड डिक्शनरी बनाने की आवश्यकता है। यह आमतौर पर उपयोग किए जाने वाले, कमजोर और अन्य खराब पासवर्ड की सूची के साथ एक साधारण टेक्स्ट फ़ाइल होगी। आप इंटरनेट से पासवर्ड डिक्शनरी फ़ाइल डाउनलोड कर सकते हैं या स्वयं बना सकते हैं। DSInternal मॉड्यूल आपको इस फ़ाइल के शब्दों के हैश के साथ सक्रिय निर्देशिका में अपने उपयोगकर्ताओं के पासवर्ड के हैश की तुलना करने की अनुमति देता है। पासवर्ड को टेक्स्ट फ़ाइल में सहेजें PasswordDict.txt ।
अब एक छोटी पावरशेल स्क्रिप्ट बनाएं। निम्नलिखित चरों में, पासवर्ड फ़ाइल, डोमेन नाम और डोमेन नियंत्रक नाम का पथ निर्दिष्ट करें:
$DictFile = "C:\distr\PS\DSInternals\PasswordDict.txt"
कोड>
$DC = "lon-dc01"
$Domain = "DC=woshub,DC=loc"
फिर Get-ADReplAccount . का उपयोग करके cmdlet, AD में उपयोगकर्ताओं की सूची प्राप्त करें (जैसे Get-ADUser)। इसके अतिरिक्त, यह cmdlet उनके NT और LM हैश के साथ-साथ हैश इतिहास भी लौटाता है। फिर, प्रत्येक उपयोगकर्ता के लिए, शब्दकोश फ़ाइल के हैश के साथ पासवर्ड के हैश की तुलना करें (चेक अक्षम उपयोगकर्ता खातों के लिए भी किया जाता है):
Get-ADReplAccount -All -Server $DC -NamingContext $Domain | Test-PasswordQuality -WeakPasswordsFile $DictFile -IncludeDisabledAccounts
स्क्रिप्ट चलाने का परिणाम ऐसा दिखाई दे सकता है:
<पूर्व>सक्रिय निर्देशिका पासवर्ड गुणवत्ता रिपोर्ट------------------------------------------ . के पासवर्ड इन खातों को प्रतिवर्ती एन्क्रिप्शन का उपयोग करके संग्रहीत किया जाता है:इन खातों के पासवर्ड के LM हैश मौजूद हैं:इन खातों में कोई पासवर्ड सेट नहीं है:TEST\DefaultAccountTEST\Guestपासवर्ड इन खातों के शब्दकोश में पाए गए हैं:TEST\a.adamsTEST\jbrionTEST\jsanti ये समूह खातों के पासवर्ड समान हैं:समूह 1:TEST\a.novakTEST\AdministratorTEST\amullerTEST\k.brownGroup 2:TEST\a.adamsTEST\jbrionTEST\jsantiइन कंप्यूटर खातों में डिफ़ॉल्ट पासवर्ड हैं:Kerberos AES कुंजियाँ इन खातों से गायब हैं:Kerberos इन खातों के लिए पूर्व-प्रमाणीकरण की आवश्यकता नहीं है:इन खातों के साथ केवल DES एन्क्रिप्शन का उपयोग करने की अनुमति है:इन प्रशासनिक खातों को एक सेवा को सौंपने की अनुमति है:TEST\a.adamsTEST\a.novakTEST\AdministratorTEST\jbrionTEST\jsantiTEST\ k.brownTEST\krbtgtइन खातों के पासवर्ड कभी समाप्त नहीं होंगे:TEST\a.adamsTEST\AdministratorTEST\DefaultAccountTEST\G uestTEST\k.brownTEST\krbtgtTEST\webइन खातों के लिए पासवर्ड की आवश्यकता नहीं है:TEST\ADFS1$TEST\DefaultAccountTEST\Guest इन खातों में स्मार्ट कार्ड प्रमाणीकरण की आवश्यकता होती है, जिनके पास पासवर्ड होता है:DSInternal मॉड्यूल के पिछले संस्करणों में,
ShowPlainText
उपयोगकर्ता के पासवर्ड को स्पष्ट पाठ में प्रदर्शित करने के लिए पैरामीटर उपलब्ध था यदि इसका हैश शब्दकोश में पाया गया था। यह टेस्ट-पासवर्डक्वालिटी की वर्तमान रिलीज में गायब है। यदि आप DSInternals मॉड्यूल के पुराने संस्करण का उपयोग करना चाहते हैं, तो इसे कमांड के साथ स्थापित करें:
Install-Module -Name DSInternals -RequiredVersion 2.23
AD में संग्रहीत उपयोगकर्ता पासवर्ड इतिहास सहित हैश खोज की जाती है। जैसा कि आप देख सकते हैं, सरल पासवर्ड वाले एडी उपयोगकर्ता सफलतापूर्वक पाए गए (पासवर्ड शब्दकोश से मेल खाते हैं)। एक जैसे पासवर्ड वाले कई यूजर्स भी मिले। यह स्क्रिप्ट आपको साधारण पासवर्ड वाले खातों को खोजने में मदद करेगी जो कस्टम फाइन-ग्रेन्ड पासवर्ड नीतियों के अधीन हैं।
कमजोर पासवर्ड वाले उपयोगकर्ताओं के लिए, आप मजबूत यादृच्छिक पासवर्ड उत्पन्न कर सकते हैं और उन्हें PowerShell के माध्यम से AD में बदलने के लिए बाध्य कर सकते हैं।आप सक्रिय निर्देशिका डेटाबेस फ़ाइल (ntds.dit) का ऑफ़लाइन स्कैन भी कर सकते हैं। आप ntds.dit फ़ाइल की एक प्रति छाया प्रतिलिपि या डोमेन नियंत्रक बैकअप से प्राप्त कर सकते हैं।
ntds.dit फ़ाइल में उपयोगकर्ता हैश की ऑफ़लाइन जाँच करने के लिए, निम्न कमांड का उपयोग करें:
$keyboot= Get-BootKey -SystemHiveFilePath 'C:\ADBackup\registry\SYSTEM'
Get-ADDBAccount -All -DatabasePath 'C:\ADBackup\ntds.dit -BootKey $keyboot | Test-PasswordQuality -WeakPasswordsFile $DictFile
आप सभी हैश की सूची को टेक्स्ट फ़ाइल में भी निर्यात कर सकते हैं:
Get-ADDBAccount -All -DBPath 'C:\ADBackup\ntds.dit' -Bootkey $keyboot | Format-Custom -View HashcatNT | Out-File c:\ps\ad_hashes.txt -Encoding ASCII
इसलिए, इस परिदृश्य का उपयोग करके आप आसानी से AD उपयोगकर्ता पासवर्ड की गुणवत्ता, पाशविक बल के हमलों के खिलाफ उनके प्रतिरोध का विश्लेषण कर सकते हैं, वर्तमान डोमेन पासवर्ड नीति जटिलता का निष्कर्ष निकाल सकते हैं और आवश्यक निष्कर्ष निकाल सकते हैं। सक्रिय निर्देशिका व्यवस्थापक इस ऑडिट को नियमित रूप से (और करना चाहिए) कर सकते हैं।