Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
impostor — SMB1 सर्वर NTLMv2 हैश इंटरसेप्शन के लिए, C में लिखा गया। | Kitploit
उपकरण/GitHubGitHub/lcky00/impostor
पासवर्ड हमलेशोषणनेटवर्क सुरक्षापेनिट्रेशन टेस्टिंगलर्निंग और शिक्षारेड टीमिंग
GitHublcky00/impostor

impostor

SMB1 सर्वर NTLMv2 हैश इंटरसेप्शन के लिए, C में लिखा गया।

रिपॉजिटरी देखें
4147 दिन पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

Impostor

NTLMv2 हैश को इंटरसेप्ट करने के लिए SMB1 सर्वर, C में लिखा गया।

इस परियोजना का लक्ष्य एक SMB1 सर्वर को एक स्टेट मशीन के रूप में लागू करना है जो क्लाइंट अनुरोधों को सही ढंग से स्वीकार और प्रतिक्रिया देता है ताकि उसे धोखा दिया जा सके, जिससे वह NTLM प्रमाणीकरण पूरा कर सके और इस प्रकार अपना स्वयं का NTLMv2 हैश प्रकट कर सके (hashcat/john के साथ संगत प्रारूप में)।

यह उपकरण आक्रामक सुरक्षा/रेड टीमिंग गतिविधियों और शैक्षिक उद्देश्यों (SMB1/NTLM प्रोटोकॉल का अध्ययन) के लिए है, जिसका उपयोग केवल अधिकृत वातावरण में किया जाना चाहिए जो आपके स्वामित्व में है या स्पष्ट सहमति के साथ।

यह कैसे काम करता है

सर्वर एक वैध SMB1 सर्वर होने का दिखावा करता है और क्लाइंट को 3-चरणीय स्टेट मशीन के माध्यम से मार्गदर्शन करता है:

स्टेट मशीन योजना

स्टेटसंक्रमण
1. NEGOTIATEयदि SMB NEGOTIATE आता है, सर्वर की प्रतिक्रिया के बाद स्टेट 2. CHALLENGE में चला जाता है
2. CHALLENGEयदि NTLM_NEGOTIATE आता है, सर्वर की प्रतिक्रिया के बाद स्टेट 3. AUTH में चला जाता है
3. AUTHयदि NTLM_AUTH आता है, सर्वर की प्रतिक्रिया के बाद स्टेट 1. NEGOTIATE पर वापस आ जाता है

कार्यान्वयन स्तर पर, बाहरी NetBIOS "लिफाफे" को ध्यान में रखा जाना चाहिए, जिसमें 4 बाइट्स होते हैं, जिनमें से अंतिम 3 SMB पैकेट की लंबाई बाइट्स में दर्शाते हैं।

प्रत्येक क्लाइंट कनेक्शन को एक स्टेट संरचना (server.h में client_t) के माध्यम से ट्रैक किया जाता है, जो स्टेट मशीन की स्थिति के अलावा निम्नलिखित बनाए रखता है:

  • एक रिसीव बफर (rx_buf) अपनी लंबाई के साथ, सॉकेट से पढ़े गए लेकिन अभी तक पूरी तरह से संसाधित नहीं किए गए डेटा को बफर करने के लिए;
  • एक सेंड बफर (tx_buf, ऑफसेट tx_off के साथ) क्लाइंट को भेजे जाने वाले लेकिन अभी तक पूरी तरह से प्रसारित नहीं किए गए डेटा को बफर करने के लिए;
  • NetBIOS हेडर को ट्रैक करने के लिए netbios_header_recv और netbios_msg_len फ़ील्ड।

डेटा प्राप्त होने पर, यह जांचा जाता है कि कम से कम 4 बाइट्स (NetBIOS हेडर) प्राप्त हुए हैं, SMB संदेश की लंबाई निर्धारित की जाती है, स्टेट फ़ील्ड अपडेट किए जाते हैं, और अंत में संदेश संसाधित किया जाता है, अगले रिसेप्शन के लिए क्लाइंट की स्थिति अपडेट की जाती है।

सर्वर का मुख्य लूप कई कनेक्शनों को एक साथ गैर-अवरोधक तरीके से संभालने के लिए poll() पर आधारित है:

रिसेप्शन के लिए मुख्य लूप विचार

जब NTLM प्रमाणीकरण पूरा हो जाता है, सर्वर स्क्रीन पर ([INTERCEPTED] ...) उपयोगकर्ता नाम, होस्टनाम, डोमेन और कैप्चर किया गया NTLMv2 हैश प्रिंट करता है, प्रारूप में:

root@kitploit:~
username::domain:server_challenge:ntlmv2_response:blob

hashcat (मोड -m 5600) या john जैसे क्रैकिंग टूल के साथ उपयोग के लिए तैयार।

परियोजना संरचना

आवश्यकताएँ

  • परियोजना द्वारा उपयोग किए गए मानक के साथ संगत C कंपाइलर (जैसे gcc/clang) और POSIX टूलचेन (कोड BSD सॉकेट, poll(), signal() आदि का उपयोग करता है, इसलिए यह Linux/Unix-जैसे वातावरण के लिए है)।

संकलन

एक Makefile शामिल है:

root@kitploit:~
make            # मुख्य सर्वर बनाएं -> ./impostor
make debug      # डीबग बिल्ड (प्रतीक, -O0, AddressSanitizer/UBSan)
make clean      # उत्पन्न ऑब्जेक्ट फ़ाइलें और निष्पादन योग्य हटाएं
make run        # सर्वर बनाएं और चलाएं

वैकल्पिक रूप से, एक समकक्ष मैनुअल संकलन कमांड है:

root@kitploit:~
gcc -o impostor server.c smb1_parser.c spnego_decoder.c asn1_parser.c ntlm_parser.c

उपयोग

root@kitploit:~
./impostor [port]
  • port (वैकल्पिक): TCP पोर्ट जिस पर सर्वर सुनता है। यदि छोड़ा गया है, तो server.h में परिभाषित डिफ़ॉल्ट पोर्ट (SERVER_PORT, 9000) का उपयोग किया जाता है। यह 1 और 65535 के बीच का मान होना चाहिए।

स्टार्टअप पर, सर्वर एक बैनर, संस्करण और कॉन्फ़िगरेशन जानकारी (पोर्ट, अधिकतम क्लाइंट संख्या) प्रिंट करता है, फिर कनेक्शन के लिए सुनता रहता है। जब NTLMv2 हैश कैप्चर होता है, तो इंटरसेप्ट किया गया डेटा (उपयोगकर्ता नाम, होस्टनाम, डोमेन, हैश) स्क्रीन पर प्रिंट होता है। सर्वर को Ctrl+C (SIGINT) के साथ रोका जा सकता है, जिसे intHandler द्वारा संभाला जाता है।

root@kitploit:~
 ___                  ___      _    ___        
|_ _|_ __ ___  _ __  / _ \ ___| |_ / _ \ _ __  
 | || '_ ` _ \| '_ \| | | / __| __| | | | '__| 
 | || | | | | | |_) | |_| \__ \ |_| |_| | |    
|___|_| |_| |_| .__/ \___/|___/\__|\___/|_|    
              |_| (v.1.0)             by Lcky  


[*] संस्करण: 1.0
[*] लेखक: Lcky <luca9vinci at gmail dot com>

[*] सर्वर जानकारी
    पोर्ट: 9090
    अधिकतम क्लाइंट: 50


[*] पोर्ट 9090 पर सुन रहा है
[*] कनेक्शन की प्रतीक्षा कर रहा है...

[INTERCEPTED] उपयोगकर्ता नाम: test
[INTERCEPTED] होस्टनाम: KALILINUX-2023-02
[INTERCEPTED] डोमेन  : WORKGROUP
[INTERCEPTED] हैश    : test::WORKGROUP:c4ba87a265de9e09:3482d0efa64fc09a94e44faa83d2a936:01010000000000009A3DE84B6235DD01D36FD06DFF4D64BB000000000200080038004E004900490001001E00570049004E002D00310046005800340055004D005000530034005400420004003400570049004E002D00310046005800340055004D00500053003400540042002E0038004E00490049002E004C004F00430041004C000300140038004E00490049002E004C004F00430041004C000500140038004E00490049002E004C004F00430041004C0008003000300000000000000000000000000000000CAFEB574B56CB6139E261228FBFE3075B4FA9393A3B71031AF3280F4D5A27D00A0010000000000000000000000000000000000009001C0063006900660073002F003100320037002E0030002E0030002E00310000000000
^C
[*] सर्वर रोका जा रहा है...
टूल डाउनलोड करें
फ़ाइलविवरण
server.c / server.hप्रवेश बिंदु, TCP लिसनर सेटअप, क्लाइंट स्टेट मशीन, poll() पर आधारित मुख्य लूप, RX/TX बफरिंग, इंटरसेप्ट किए गए हैश की प्रिंटिंग
smb1_parser.c / smb1_parser.hSMB1 पैकेटों का पार्सिंग/निर्माण (हेडर, NEGOTIATE, SESSION_SETUP कमांड, फ्लैग/flags2, आदि)
spnego_decoder.c / spnego_decoder.hSMB संदेशों में निहित SPNEGO टोकन का डिकोडिंग (प्रमाणीकरण तंत्र की बातचीत, NTLMSSP ब्लॉब का निष्कर्षण)
asn1_parser.c / asn1_parser.hन्यूनतम ASN.1 DER पार्सर, SPNEGO डिकोडर द्वारा ASN.1 संरचना वृक्ष बनाने के लिए उपयोग किया जाता है
ntlm_parser.c / ntlm_parser.hNTLMSSP संदेशों का पार्सिंग (NEGOTIATE, CHALLENGE, AUTHENTICATE) और उपयोगकर्ता नाम, डोमेन, होस्टनाम और NTLMv2 प्रतिक्रिया का निष्कर्षण
endianness.hएंडियननेस को संभालने के लिए उपयोगिता (रनटाइम पर लिटिल/बिग एंडियन रूपांतरण)
test.c, test2.cपार्सरों के लिए परीक्षण/प्रयोग फ़ाइलें
docs/आरेख और सहायक सामग्री (स्टेट मशीन योजना, मुख्य लूप)