
एक उपकरण जो HTTP सर्वरों पर हल्का brute-forcing करके सामान्यतः सुलभ NTLM प्रमाणीकरण एंडपॉइंट्स की पहचान करता है।
NTLMRecon, Sachin Kamath (उर्फ pwnfoo) द्वारा लिखित मूल NTLMRecon उपयोगिता का एक Golang संस्करण है। NTLMRecon का उपयोग NTLM प्रमाणीकरण का समर्थन करने वाले सामान्य एप्लिकेशन एंडपॉइंट्स की पहचान करने के लिए लक्षित वेबसर्वर पर ब्रूट फोर्सिंग करने के लिए किया जा सकता है। इसमें एक्सचेंज वेब सर्विसेज एंडपॉइंट जैसे एंडपॉइंट शामिल हैं, जिनका उपयोग अक्सर मल्टी-फैक्टर प्रमाणीकरण को बायपास करने के लिए किया जा सकता है।
यह टूल एक्सपोज़्ड NTLM प्रमाणीकरण एंडपॉइंट्स से मेटाडेटा एकत्र करने का समर्थन करता है जिसमें कंप्यूटर नाम, एक्टिव डायरेक्ट्री डोमेन नाम और एक्टिव डायरेक्ट्री फ़ॉरेस्ट नाम की जानकारी शामिल है। यह जानकारी पूर्व प्रमाणीकरण के बिना सर्वर पर NTLM NEGOTIATE_MESSAGE पैकेट भेजकर और लक्षित सर्वर द्वारा लौटाए गए NTLM CHALLENGE_MESSAGE की जांच करके प्राप्त की जा सकती है। हमने इस टूल के साथ एक ब्लॉग पोस्ट भी प्रकाशित किया है जिसमें इसके विकास के पीछे कुछ प्रेरणाओं और Chariot के भीतर अधिक उन्नत मेटाडेटा संग्रह के हमारे दृष्टिकोण पर चर्चा की गई है।
हम Chariot, अपने बाहरी आक्रमण सतह प्रबंधन और सतत स्वचालित रेड टीमिंग प्लेटफ़ॉर्म के भीतर एक्सपोज़्ड NTLM प्रमाणीकरण एंडपॉइंट्स की ब्रूट-फोर्सिंग और स्वचालित पहचान करना चाहते थे। हमारा प्राथमिक बैकएंड स्कैनिंग इंफ्रास्ट्रक्चर Golang में लिखा गया है और हम यह जानकारी एकत्र करने के लिए Python में NTLMRecon उपयोगिता को डाउनलोड और शेल आउट नहीं करना चाहते थे। हम अपने द्वारा एकत्रित की गई जानकारी के विवरण के स्तर पर भी अधिक नियंत्रण चाहते थे, आदि।
NTLMRecon उपयोगिता को स्थापित करने के लिए निम्नलिखित कमांड का उपयोग किया जा सकता है। वैकल्पिक रूप से, आप GitHub में रिलीज़ टैब से बाइनरी का पूर्व-संकलित संस्करण डाउनलोड कर सकते हैं।
go install github.com/praetorian-inc/NTLMRecon/cmd/NTLMRecon@latest
NTLM recon उपयोगिता को लागू करने और एक्सपोज़्ड NTLM प्रमाणीकरण एंडपॉइंट्स की खोज करने के लिए निम्नलिखित कमांड का उपयोग किया जा सकता है:
NTLMRecon -t https://autodiscover.contoso.com
NTLM recon उपयोगिता को लागू करने और एकत्रित मेटाडेटा को JSON प्रारूप में आउटपुट करते हुए एक्सपोज़्ड NTLM एंडपॉइंट्स की खोज करने के लिए निम्नलिखित कमांड का उपयोग किया जा सकता है:
NTLMRecon -t https://autodiscover.contoso.com -o json
जब एंडपॉइंट्स की आवश्यकता हो, तो कस्टम Host हेडर निर्दिष्ट करने के लिए निम्नलिखित कमांड का उपयोग किया जा सकता है:
NTLMRecon -t https://192.168.1.100 -H mail.contoso.com
समस्या निवारण के लिए डीबग आउटपुट सक्षम करने हेतु निम्नलिखित कमांड का उपयोग किया जा सकता है:
NTLMRecon -t https://autodiscover.contoso.com -debug
नीचे सर्वर द्वारा लौटाए गए NTLM CHALLENGE_MESSAGE से हमारे द्वारा एकत्रित डेटा के साथ एक उदाहरण JSON आउटपुट है:
{
"url": "https://autodiscover.contoso.com/EWS/",
"ntlm": {
"netbiosComputerName": "MSEXCH1",
"netbiosDomainName": "CONTOSO",
"dnsDomainName": "na.contoso.local",
"dnsComputerName": "msexch1.na.contoso.local",
"forestName": "contoso.local"
}
}
➜ ~ NTLMRecon -t https://adfs.contoso.com -o json | jq
{
"url": "https://adfs.contoso.com/adfs/services/trust/2005/windowstransport",
"ntlm": {
"netbiosComputerName": "MSFED1",
"netbiosDomainName": "CONTOSO",
"dnsDomainName": "corp.contoso.com",
"dnsComputerName": "MSEXCH1.corp.contoso.com",
"forestName": "contoso.com"
}
}
➜ ~ NTLMRecon -t https://autodiscover.contoso.com
https://autodiscover.contoso.com/Autodiscover
https://autodiscover.contoso.com/Autodiscover/AutodiscoverService.svc/root
https://autodiscover.contoso.com/Autodiscover/Autodiscover.xml
https://autodiscover.contoso.com/EWS/
https://autodiscover.contoso.com/OAB/
https://autodiscover.contoso.com/Rpc/
➜ ~
इस टूल को विकसित करने में हमारी पद्धति ने प्रारंभिक रिलीज़ के लिए वांछित क्षमता के सबसे बुनियादी संस्करण को लक्षित किया है। इस परियोजना का लक्ष्य एक प्रारंभिक टूल बनाना था जिसे हम Chariot में एकीकृत कर सकें और फिर समुदाय के योगदान और प्रतिक्रिया को अतिरिक्त टूलिंग सुधारों या कार्यक्षमता को चलाने की अनुमति दे सकें। नीचे कुछ विचार दिए गए हैं जिन्हें NTLMRecon में जोड़ा जा सकता है:
[1] https://www.praetorian.com/blog/automating-the-discovery-of-ntlm-authentication-endpoints/