
NebulousAD स्वचालित क्रेडेंशियल ऑडिटिंग टूल।
14 अप्रैल से, NuID अब NebulousAD API को होस्ट नहीं करेगा जिससे यह कोड संचार करता है। डेवलपर्स की एक छोटी टीम के रूप में, हमने पाया है कि NebulousAD पोर्टल और हमारे प्रमाणीकरण डेवलपर पोर्टल दोनों को प्रभावी ढंग से सक्रिय रूप से समर्थन, निगरानी और विकसित करना संभव नहीं है।
सार्वजनिक रूप से उल्लंघन किए गए प्रमाणीकरण क्रेडेंशियल्स के एक सेट के विरुद्ध Active Directory पासवर्ड जाँचने का कोड इस रिपॉजिटरी में रहेगा, और हम आने वाले महीनों में अपने प्रमाणीकरण API के साथ एक सहज पासवर्ड ब्लैकलिस्टिंग सेवा प्रदान करने के लिए NebAD के साथ अपने अनुभव के माध्यम से प्राप्त सभी उत्कृष्ट प्रतिक्रिया को शामिल करेंगे। तो बने रहें!
हम अतीत में आपकी भागीदारी और प्रतिक्रिया की सराहना करते हैं, और भविष्य में आपसे सुनने के लिए उत्सुक हैं। NebAD, NuID, या डिजिटल पहचान से संबंधित किसी भी चीज़ के बारे में प्रश्नों के लिए हमसे संपर्क करने में संकोच न करें।
अभी के लिए अलविदा!
NebulousAD एक उपकरण है जो Active Directory उपयोगकर्ता पासवर्डों को डेटा उल्लंघनों में पाए गए समझौता किए गए पासवर्डों के डेटाबेस के विरुद्ध ऑडिट करने के लिए है। यह उपकरण Windows सिस्टम प्रशासकों को समझौता किए गए पासवर्डों के उपयोग को खोजने और वैकल्पिक रूप से ठीक करने में मदद करने के लिए बनाया गया था। यह दृष्टिकोण NIST 800-63B द्वारा अनुशंसित है, और क्रेडेंशियल स्प्रेइंग और स्टफिंग हमलों से बचाने में मदद कर सकता है।
Nebulous डेटाबेस में वर्तमान में उल्लंघन किए गए पासवर्डों के 2.5 बिलियन से अधिक अद्वितीय हैश हैं।
NebulousAD डिफ़ॉल्ट रूप से k-अनामता मॉडल का उपयोग करता है ताकि API के विरुद्ध जाँचे गए पासवर्डों की गोपनीयता और सुरक्षा बनी रहे। SHA-2 हैश के केवल पहले पाँच वर्ण API को भेजे जाते हैं। आप k-अनामता के बारे में यहाँ और पढ़ सकते हैं।
यह उपकरण मूल रूप से BSides Las Vegas 2019 में जारी किया गया था। BSides प्रस्तुति का एक वीडियो यहाँ है।
आगामी सुविधाएँ:
बस पूर्व-संकलित रिलीज़ डाउनलोड करें (इसके लिए किसी Python दुभाषिया की आवश्यकता नहीं है), या स्रोत से निर्माण करें:
इस उपकरण के लिए Python2.7 (अभी के लिए) की आवश्यकता है।
git clone https://github.com/NuID/nebulousAD.git चलाएँ
फिर python setup.py install से स्थापित करें
फिर अपनी कुंजी प्रारंभ करें। आप अपनी कुंजी यहाँ जाकर प्राप्त कर सकते हैं: https://nebulous.nuid.io/#/register एक बार पंजीकृत होने के बाद, अपनी API कुंजी उत्पन्न करने के लिए बटन पर क्लिक करें और इसे कॉपी करें।
अब आप उन्हें इस प्रकार प्रारंभ कर सकते हैं: nebulousAD -init-key <api_key>
अब आप उपकरण चला सकते हैं। यदि यह आपकी API कुंजी नहीं ढूँढ पाता है, तो आपको अपना टर्मिनल सत्र पुनः आरंभ करने की आवश्यकता हो सकती है। API कुंजी एक पर्यावरण चर में संग्रहीत है। लॉग आउट करके और वापस लॉग इन करके भी काम करता है।
आप nebulousAD.exe फ़ाइल डाउनलोड कर सकते हैं, बिना दुभाषिया के उपयोग के लिए यहाँ। वैकल्पिक रूप से, आप उपकरण को स्वयं स्रोत से संकलित कर सकते हैं:
pip install pyinstallergit clone https://github.com/NuID/nebulousAD.gitcd .\nebulousAD\nebulousADpyinstaller --onefile nebulousAD.pyPyinstaller संकलित बाइनरी का स्थान आउटपुट करेगा:

सभी हैश डंप करने और उन्हें API के विरुद्ध जाँचने का एक उदाहरण कमांड:
nebulousAD.exe -v -snap --check
NuID क्रेडेंशियल ऑडिटिंग उपकरण।
वैकल्पिक तर्क:
-h, --help यह सहायता संदेश दिखाएँ और बाहर निकलें
-ntds NTDS पार्स करने के लिए NTDS.DIT फ़ाइल
-system SYSTEM पार्स करने के लिए SYSTEM रजिस्ट्री हाइव
-csv CSV इस PATH पर CSV फ़ाइल में परिणाम आउटपुट करें।
-json JSON इस PATH पर JSON फ़ाइल में परिणाम आउटपुट करें
-init-key INIT_KEY अपनी Nu_I.D. API कुंजी को वर्तमान उपयोगकर्ता के PATH में स्थापित करें।
-c, --check समझौता किए गए क्रेडेंशियल के लिए Nu_I.D. API के विरुद्ध जाँच करें।
-dk, --disable-k-anon
API के विरुद्ध k-अनाम हैश खोजों को अक्षम करें (ऑडिट को गति देता है)।
-snap सिस्टम रजिस्ट्री हाइव और ntds.dit फ़ाइल को <systemDrive>:\Program Files\NuID\ में स्नैपशॉट करने के लिए ntdsutil.exe का उपयोग करें
-shred फ़ाइलों पर हटाने के संचालन करते समय sdelete.exe के साथ 7 पास ओवरराइट का उपयोग करें। यहाँ डाउनलोड करें:
https://docs.microsoft.com/en-us/sysinternals/downloads/sdelete
-no-backup मौजूदा स्नैपशॉट का बैकअप न लें, बस उन्हें अधिलेखित करें।
-clean-old-snaps CLEAN_OLD_SNAPS
N दिनों से पुराने बैकअप साफ़ करें।
प्रदर्शन विकल्प:
-user-status प्रदर्शित करें कि उपयोगकर्ता अक्षम है या नहीं
-pwd-last-set NTDS.DIT डेटाबेस में पाए गए प्रत्येक खाते के लिए pwdLastSet विशेषता दिखाता है।
-history उपयोगकर्ताओं का NTLM हैश इतिहास डंप करें।
-v वर्बोज़ मोड सक्षम करें।
k-अनामता हैशचेक फ़ंक्शन को अक्षम करता है। यह खोज समय को गति देने के लिए उपयोगी है, लेकिन इसके परिणामस्वरूप पूरा SHA-256(NTLM) हैश API को भेजा जाएगा। हम API को भेजे गए हैश को लॉग या संग्रहीत नहीं करते हैं।
-snap पैरामीटर स्वचालित रूप से Active Directory का स्नैपशॉट लेगा (ntdsutil.exe का उपयोग करके), और ntds.dit फ़ाइल के साथ-साथ SYSTEM रजिस्ट्री हाइव को डंप करेगा, यदि आपके पास विशेषाधिकार हैं।
आप इसे विभिन्न तरीकों या ntdsutil.exe उपकरण का उपयोग करके मैन्युअल रूप से डंप कर सकते हैं।
यदि मैन्युअल रूप से डंप कर रहे हैं तो आप -system path\to\SYSTEM और -ntds path\to\ntds.dit के साथ फ़ाइलों को इंगित कर सकते हैं। यह उपयोगी है यदि आप पुराने स्नैपशॉट का ऑडिट करना चाहते हैं।
इसके लिए https://nebulous.nuid.io/#/register से एक API कुंजी आवश्यक है। एक बार आपके पास वह हो और -init-key से स्थापित हो, तो आप NuID API के विरुद्ध हैश की जाँच कर सकते हैं।
यदि आपने -history निर्दिष्ट किया है तो यह प्रत्येक खाते के पासवर्ड इतिहास की भी जाँच करेगा कि क्या उपयोगकर्ता द्वारा पहले उपयोग किया गया कोई पासवर्ड समझौता किया गया था।
आउटपुट जोड़ता है जो इंगित करता है कि खाता Active Directory में सक्षम है या अक्षम है।
आउटपुट जोड़ता है जो उस तारीख को इंगित करता है जब खाते का पासवर्ड अंतिम बार सेट किया गया था। यह उन खातों की सुरक्षा नीति के उल्लंघन का पता लगाने में उपयोगी हो सकता है जो GPO में परिभाषित अनुसार स्वचालित रूप से रीसेट नहीं होते हैं, जैसे सेवा खाते।
खातों के संग्रहीत पासवर्ड इतिहास का भी ऑडिट या डंप करें।
स्नैपशॉट मिटाते समय DoD 7 पास ओवरराइट का उपयोग करें। इसके लिए आपके PATH में sdelete.exe होना आवश्यक है। आप इसे यहाँ प्राप्त कर सकते हैं: https://docs.microsoft.com/en-us/sysinternals/downloads/sdelete
बस इसे डाउनलोड करें और अपने %SYSTEMDRIVE\Windows\System32\ निर्देशिका में रखें, या पर्यावरण चर सेट करें।
इस एप्लिकेशन को टास्क शेड्यूलर के साथ चलाने पर बैकअप की सफाई के लिए उपयोगी। बड़े डोमेन में SYSTEM हाइव और .dit फ़ाइल काफी बड़ी हो सकती हैं और डिस्क स्थान की काफी मात्रा ले सकती हैं।
यदि आप दैनिक ऑडिट करने के लिए टास्क शेड्यूलर का उपयोग करते हैं, तो आप इस विकल्प का उपयोग इस प्रकार कर सकते हैं: -clean-old-snaps 7 ताकि केवल 1 सप्ताह के स्नैपशॉट संग्रहीत हों।
यदि हम एक पुराना स्नैपशॉट पाते हैं, तो हम डिफ़ॉल्ट रूप से इसे %SYSTEMDRIVE%\Program Files\NuID\snapshot-backups में बैकअप करते हैं।
यह ntdsutil.exe के कारण है जिसे एक खाली निर्देशिका की आवश्यकता होती है।
यदि आप इस बैकअप को अक्षम करना चाहते हैं और बस वर्तमान स्नैपशॉट को मिटाना चाहते हैं, तो इस तर्क का उपयोग करें।
एक RESTful वेब API प्रदान किया जाता है जो उपयोगकर्ताओं को अपने स्वयं के कस्टम क्लाइंट के लिए उत्पन्न NuID API टोकन का उपयोग करने की अनुमति देगा। यह खंड वेब API की उचित कार्यक्षमता, मान्य अनुरोध, त्रुटि प्रकार और अधिक की रूपरेखा प्रस्तुत करता है।
प्रत्येक प्रतिक्रिया की मूल संरचना समान होगी। बिना किसी अपवाद के, प्रतिक्रियाओं में निम्नलिखित तीन फ़ील्ड शामिल होनी चाहिए: success, data, और error। प्रतिक्रिया प्राप्त करने पर सबसे पहले success मान निर्धारित करना है। यह निर्धारित करेगा कि क्या आपको data ऑब्जेक्ट को संभालना जारी रखना चाहिए, या इसके बजाय error ऑब्जेक्ट को संभालना चाहिए। निम्नलिखित उदाहरण सर्वर से सफलता और विफलता दोनों स्थितियों में सामान्य प्रतिक्रियाएँ दिखाते हैं:
{
success: True, // इंगित करता है कि अनुरोध सफलतापूर्वक पूरा हो गया
data: {
/* मान क्वेरी किए गए एंडपॉइंट पर निर्भर करता है */
},
error: {} // खाली
}
{
success: False, // इंगित करता है कि अनुरोध सफलतापूर्वक पूरा नहीं हुआ
data: { }, // खाली
error: {
"ErrorName": "अनुरोध के दौरान हुई त्रुटि का सहायक विवरण"
}
}
प्रत्येक त्रुटि अनुरोध के दौरान क्या गलत हुआ, इसकी अंतर्दृष्टि प्रदान करती है, जिससे उपयोगकर्ता आवश्यक परिवर्तन कर सकता है।
इस समय केवल एक hash_type समर्थित है। ये मान (केस-असंवेदनशील) hash_type के स्थान पर उपयोग किए जा सकते हैं। hash_value के हेक्साडेसिमल स्ट्रिंग प्रतिनिधित्व का आकार भी प्रदान किया गया है। hash_prefix इस आकार से अधिक नहीं हो सकता:
| हैश | लंबाई |
|---|---|
| NTLMSHA2 | 64 |
सभी API एंडपॉइंट अनुरोधों पर निम्नलिखित HTTP हेडर प्रदान किया जाना चाहिए अन्यथा एक त्रुटि वापस आएगी:
X-NUID-API-KEY: <आपकी NuID API कुंजी>
प्रत्येक एंडपॉइंट निम्नलिखित URL से शुरू होता है:
https://nebulous.nuid.io
/api/search/kanon/<hash_type>/<hash_prefix>विधि: GET
विवरण: हैश के एक अनाम संस्करण का उपयोग करके हैश डेटाबेस क्वेरी करें। पूरा हैश प्रदान किया जा सकता है, लेकिन वैकल्पिक रूप से, कम से कम 5 वर्ण लंबे उपसर्ग के रूप में एक आंशिक हैश का उपयोग किया जा सकता है। इस उपसर्ग से मेल खाने वाले Nebulous डेटाबेस के सभी हैश सटीक हैश का खुलासा किए बिना वापस कर दिए जाएंगे।
प्रतिक्रिया:
निम्नलिखित URL से प्रतिक्रिया: https://nebulous.nuid.io/api/search/kanon/5f4dcc
{
"success": true,
"data": {
"matches": [
"5f4dcc3010a3b4ffd56ec97b33a0f837",
"5f4dcc3b5aa765d61d8327deb882cf99",
"5f4dcc3b5bef0f9cc4c0f96d758010b8"
]
},
"error": {}
}
/api/search/kanon/<hash_type>विधि: POST पोस्ट डेटा:
{
"prefix": "<हैश उपसर्ग>"
}
विवरण: हैश के एक अनाम संस्करण का उपयोग करके हैश डेटाबेस क्वेरी करें। पूरा हैश प्रदान किया जा सकता है, लेकिन वैकल्पिक रूप से, कम से कम 5 वर्ण लंबे उपसर्ग के रूप में एक आंशिक हैश का उपयोग किया जा सकता है। इस उपसर्ग से मेल खाने वाले Nebulous डेटाबेस के सभी हैश सटीक हैश का खुलासा किए बिना वापस कर दिए जाएंगे।
प्रतिक्रिया:
निम्नलिखित URL से प्रतिक्रिया: https://nebulous.nuid.io/api/search/kanon डेटा के साथ {"prefix": "5f4dcc"}
{
"success": true,
"data": {
"matches": [
"5f4dcc3010a3b4ffd56ec97b33a0f837",
"5f4dcc3b5aa765d61d8327deb882cf99",
"5f4dcc3b5bef0f9cc4c0f96d758010b8"
]
},
"error": {}
}
impacket में एक बग प्रतीत होता है जो nthash को सही ढंग से निकालने की अनुमति नहीं देता है।
अभी के लिए -history तर्क का उपयोग करने से बचें।
https://github.com/SecureAuthCorp/impacket/issues/395 https://github.com/SecureAuthCorp/impacket/issues/660
हमसे [email protected] पर संपर्क करें
| त्रुटि का नाम | विवरण | स्थिति कोड |
|---|
ActionExpired | आप जिस क्रिया को लागू करने का प्रयास कर रहे हैं वह समाप्त हो गई है और अब मान्य नहीं है | 401 |
ActionInvalid | आप जिस क्रिया को लागू करने का प्रयास कर रहे हैं वह मौजूद नहीं है | 401 |
AuthFailure | अमान्य उपयोगकर्ता/पासवर्ड संयोजन | 401 |
AuthMissingToken | कोई प्रमाणीकरण टोकन प्रदान नहीं किया गया | 401 |
FieldMissing | JSON अनुरोध से एक या अधिक फ़ील्ड गायब हैं | 422 |
HashInvalidLength | प्रदान किया गया हैश और दिए गए हैश प्रकार के लिए अपेक्षित लंबाई मेल नहीं खाते | 422 |
HashInvalidValue | अपेक्षित हेक्साडेसिमल हैश प्रतिनिधित्व | 422 |
HashInvalidPrefix | उपसर्ग की न्यूनतम लंबाई 5 वर्ण होनी चाहिए | 422 |
HashUnsupported | प्रदान किया गया हैश प्रकार असमर्थित है | 422 |
InvalidJWT | प्रदान किया गया JWT अमान्य था | 401 |
InvalidRequest | प्रदान किया गया अनुरोध विकृत था या JSON पेलोड गायब था | 422 |
KeyBadUser | प्रदान की गई API कुंजी अपेक्षित उपयोगकर्ता से मेल नहीं खाती | 401 |
KeyDisabled | प्रदान की गई API कुंजी अक्षम है | 403 |
KeyInvalid | प्रदान की गई API कुंजी अमान्य है | 401 |
KeyMissing | कोई API कुंजी प्रदान नहीं की गई | 401 |
NotFound | आप जिस एंडपॉइंट तक पहुँचने का प्रयास कर रहे हैं वह अमान्य है | 404 |
PasswordIncorrect | वर्तमान पासवर्ड मेल नहीं खाता | 401 |
UserDisabled | खाता वर्तमान में अक्षम है | 401 |
UserKeyLimit | आप API कुंजियों की अधिकतम संख्या तक पहुँच गए हैं | 403 |
UserNotActivated | उपयोगकर्ता खाता अभी तक सक्रिय नहीं किया गया है | 403 |
UserNotFound | उपयोगकर्ता खाता नहीं मिल सकता | 401 |