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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
EternalBlueC — EternalBlue सूट को C/C++ में फिर से बनाया गया है जिसमें शामिल हैं: MS17-010 Exploit, EternalBlue भेद्यता डिटेक्टर, DoublePulsar डिटेक्टर और DoublePulsar Shellcode और DLL अपलोडर | Kitploit
उपकरण/GitHubGitHub/bhassani/eternalbluec
शोषण फ्रेमवर्कभेद्यता विश्लेषणशोषणशेलकोडमालवेयर विश्लेषणपेनिट्रेशन टेस्टिंगलर्निंग और शिक्षाशेलकोड जनरेशनपेलोड डेवलपमेंटबाइनरी शोषण
GitHubbhassani/eternalbluec

EternalBlueC

6131381 महीना पहलेKitploit द्वारा समीक्षित

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

सभी देखें →

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

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

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

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

EternalBlue सूट को C/C++ में फिर से बनाया गया है जिसमें शामिल हैं: MS17-010 Exploit, EternalBlue भेद्यता डिटेक्टर, DoublePulsar डिटेक्टर और DoublePulsar Shellcode और DLL अपलोडर

रिपॉजिटरी देखें

License: GPL v3

EternalBlueC

EternalBlue सूट को C/C++ में पुनर्निर्मित किया गया जिसमें शामिल हैं:

  • MS17-010 एक्सप्लॉइट (DoublePulsar शामिल है)
  • EternalBlue/MS17-010 भेद्यता डिटेक्टर
  • DoublePulsar डिटेक्टर
  • DoublePulsar DLL अपलोड
  • Doublepulsar शेलकोड अपलोड
  • DoublePulsar DLL अपलोड SMB संरचना के साथ
  • Doublepulsar शेलकोड अपलोड SMB संरचना के साथ
  • Doublepulsar DLL के अंदर Exe अपलोड

परियोजना उपलब्धियाँ

  • शेलकोड अपलोड - पूर्ण और कार्यशील, अपने शेलकोड को किसी भी प्रक्रिया में इंजेक्ट करें जो आप चाहते हैं
  • DLL अपलोड - पूर्ण और कार्यशील, अपने DLL को किसी भी प्रक्रिया में इंजेक्ट करें जो आप चाहते हैं
  • एम्बेडेड exe के साथ DLL अपलोड - पूर्ण, अपने DLL को किसी भी प्रक्रिया में इंजेक्ट करें और "mssecsvc.exe" के रूप में निष्पादन योग्य ड्रॉप करता है

परियोजना लक्ष्य

  • DoublePulsar नेगोशिएशन, सेशन सेटअप, ट्री कनेक्ट, TransNamedPipe और Transaction2 पैकेट्स को SMB संरचनाओं और हेक्स कैप्चर के साथ गतिशील रूप से उत्पन्न करने की अनुमति दें
  • EternalBlue एक्सप्लॉइट पेलोड को संपादित करने की अनुमति दें ताकि DoublePulsar इम्प्लांट को हटाया जा सके और इसके बजाय कस्टम शेलकोड भेजे जा सकें
  • EternalBlue पैकेट्स को गतिशील रूप से उत्पन्न करने की अनुमति दें
  • सभी IP पतों, पेलोड जैसे शेलकोड या फ़ाइलपथ और जारी रखने के प्राधिकरण के लिए उपयोगकर्ता इनपुट का अनुरोध करें
  • अधिक विस्तृत बनें
  • SMB प्रतिक्रिया से विंडोज़ संस्करण को स्क्रीन पर जोड़ें
  • कमांड लाइन पैरामीटर समर्थन जोड़ें (DoublepulsarExecute.exe -h 192.168.0.8 -f PopCalculatorShellcode.bin )
  • अधिक त्रुटि जाँच जोड़ें जैसे सॉकेट टाइमआउट

EternalBlue और DoublePulsar सूट

  • ms17_vuln_status.cpp - यह प्रोग्राम 4 SMB पैकेट भेजता है: 1 नेगोशिएशन, 1 सेशन सेटअप, 1 ट्री कनेक्ट और 1 TransNamedPipe अनुरोध। यह प्रोग्राम TransNamedPipeRequest (PeekNamedPipe अनुरोध) से NT_STATUS प्रतिक्रिया पढ़ता है और जाँचता है कि SMB पैकेट में NT_STATUS = 0xC0000205 (STATUS_INSUFF_SERVER_RESOURCES) है या नहीं। यदि यह सही है, तो लक्ष्य MS17-010 के लिए संवेदनशील है। Windows 7 x64 बिट (बिना पैच के) पर परीक्षण किया गया।

ms17vulnstatus

  • doublepulsar_check.cpp - यह प्रोग्राम 4 SMB पैकेट भेजता है: 1 नेगोशिएशन, 1 सेशन सेटअप, 1 ट्री कनेक्ट और Trans2 SESSION_SETUP पैकेट। Trans2 SESSION_SETUP पैकेट भेजते समय, भेजे गए मल्टीप्लेक्स आईडी की तुलना Trans2 प्रतिक्रिया पैकेट में मल्टीप्लेक्स आईडी: 0x51 या 81 से की जा सकती है। DoublePulsar भेजे गए मल्टीप्लेक्स आईडी को पढ़ता है और पिंग कमांड सफल होने के बाद, Trans2 SESSION_SETUP प्रतिक्रिया में मल्टीप्लेक्स आईडी के लिए हेक्साडेसिमल में +10 लौटाता है। बाद में, DoublePulsar बैकडोर को जलाने के लिए कमांड भेजे जाते हैं। DoublePulsar बर्न कमांड SMB पैकेट के टाइमआउट पैरामीटर में होता है। बाद में, DoublePulsar निष्क्रिय हो जाता है और सिस्टम से हटाया नहीं जाता। Windows 7 x64 बिट पर परीक्षण किया गया।

doublepulsar_check

  • DoublePulsarXORKeyCalculator.cpp - यह प्रोग्राम 4 SMB पैकेट भेजता है: 1 नेगोशिएशन पैकेट और 3 अनुरोध। अंतिम अनुरोध एक Trans2 SESSION_SETUP अनुरोध है। एक Trans2 SESSION_SETUP प्रतिक्रिया प्राप्त होती है और SMB हस्ताक्षर (Recvbuff[18] -> Recvbuff[22]) पर निकाला जाता है। Recvbuff[22] आर्किटेक्चर प्रकार को इंगित करता है। यदि 1 है, तो लक्ष्य x64 बिट्स है और यदि 0 है, तो लक्ष्य x86/32 बिट्स है। SMB हस्ताक्षर को unsigned कैरेक्टर से unsigned इंटीजर में बदला जाता है।

SMBSignatureWireshark

Recvbuff[18] से Recvbuff[22] तक के इन मानों को तब DoublePulsar XOR कुंजी कैलकुलेटर फ़ंक्शन के माध्यम से चलाया जाता है, जो एक unsigned इंटीजर XOR कुंजी उत्पन्न करता है जिसका उपयोग DoublePulsar पर अपलोड किए जाने वाले शेलकोड या DLL पेलोड को एन्क्रिप्ट करने के लिए किया जा सकता है। Windows 7 x64 बिट पर परीक्षण किया गया।

नमूना स्क्रीनशॉट:

XORCalculator

FUZZBUNCH में मूल NSA बाइनरी से समान कुंजी XORCalculatorFromNSAbinary

  • DoublePulsar_structure_ping.cpp - यह प्रोग्राम 4 SMB पैकेट भेजता है: 1 नेगोशिएशन, 1 सेशन सेटअप, 1 ट्री कनेक्ट और Trans2 SESSION_SETUP पैकेट। इसका doublepulsar_check.cpp से अंतर यह है कि यह Trans2 DoublePulsar PING पैकेट को एक संरचना का उपयोग करके उत्पन्न करता है, न कि हार्डकोडेड SMB हेक्स स्ट्रिंग जो मैंने Wannacry सैंपल से ली थी। एक और अंतर यह है कि यह प्रोग्राम TreeConnect पैकेट को गतिशील रूप से उत्पन्न करता है, न कि Wannacry सैंपल में मौजूद हार्डकोडेड का उपयोग करता है। इस प्रोग्राम में उत्पन्न पिंग पैकेट आपको बताएगा कि रिमोट मशीन पर DoublePulsar स्थापित है या नहीं।

  • DoublePulsar_structure_exec.cpp - यह प्रोग्राम 5 SMB पैकेट भेजता है: 1 SMB नेगोशिएशन, 1 सेशन सेटअप, 1 ट्री कनेक्ट, 1 Doublepulsar Trans2 SESSION_SETUP Ping पैकेट और 1 Doublepulsar Trans2 SESSION_SETUP Execution पैकेट। इसका Doublepulsar_UploadShellcode.cpp से अंतर यह है कि यह Trans2 DoublePulsar Execution पैकेट को एक संरचना का उपयोग करके उत्पन्न करता है, न कि हार्डकोडेड SMB हेक्स स्ट्रिंग जो मैंने Wannacry सैंपल से ली थी।

  • Doublepulsar_UploadDLL.cpp - यह प्रोग्राम DLL के लिए है। यह प्रोग्राम DLL डेटा के साथ SMB Trans2 पैकेट में 4 SMB पैकेट भेजता है: 1 नेगोशिएशन, 1 सेशन सेटअप, 1 ट्री कनेक्ट, 1 Ping Trans2 SESSION_SETUP अनुरोध और एक Execution Trans2 SESSION_SETUP पैकेट। Ping Trans2 SESSION_SETUP अनुरोध पैकेट Trans2 SESSION_SETUP प्रतिक्रिया पैकेट में SMB हस्ताक्षर प्राप्त करने के लिए भेजा जाता है। इस हस्ताक्षर को DoublePulsar XOR कुंजी कैलकुलेटर के माध्यम से संसाधित किया जाता है। प्रोग्राम तब एक DLL फ़ाइल पढ़ता है और इसे DLL चलाने के लिए 64 बिट कर्नेल और यूजरलैंड शेलकोड के साथ जोड़ता है और बफर को SMB हस्ताक्षर से गणना किए गए DoublePulsar XOR कुंजी से XOR करता है। मेमोरी आवंटित करके, Trans2 पैकेट को कॉपी करके, SMB लेन-देन के लिए आवश्यक मानों (UserID, TreeID, TotalDataCount, DataCount, ByteCount) को संपादित करके, फिर XOR किए गए डेटा (कर्नेल शेलकोड + DLL) को अंत में कॉपी करके और इसे 4096 बाइट्स के कुल पैकेट लंबाई में एक बार में DoublePulsar को भेजने के लिए लूप करके एक पैकेट उत्पन्न किया जाता है। कुल पैकेट लंबाई = 4178। 4096 XOR एन्क्रिप्टेड डेटा के लिए है। भविष्य के रिलीज़ में SMB और TRANSACTION2 संरचनाओं का उपयोग भी लागू किया जाएगा।

  • Doublepulsar_UploadShellcode.cpp - यह प्रोग्राम 5 SMB पैकेट भेजता है: 1 नेगोशिएशन, 1 सेशन सेटअप, 1 ट्री कनेक्ट, 1 Ping Trans2 SESSION_SETUP पैकेट और 1 execute Trans2 SESSION_SETUP पैकेट। Trans2 SESSION_SETUP अनुरोध पैकेट TRANS2 SESSION_SETUP प्रतिक्रिया पैकेट में SMB हस्ताक्षर प्राप्त करने के लिए भेजा जाता है। इस हस्ताक्षर को DoublePulsar XOR कुंजी कैलकुलेटर के माध्यम से संसाधित किया जाता है। प्रोग्राम तब एक बफर से कर्नेल शेलकोड और नमूना शेलकोड कॉपी करता है, यह बफर को SMB हस्ताक्षर से गणना किए गए DoublePulsar XOR कुंजी से XOR करता है। मेमोरी आवंटित करके, Trans2 exec पैकेट को कॉपी करके, SMB लेन-देन के लिए आवश्यक मानों (UserID, TreeID, TotalDataCount, DataCount, ByteCount) को संपादित करके, फिर SESSION_SETUP पैरामीटर्स और XOR किए गए शेलकोड डेटा के 4096 बाइट्स को अंत में कॉपी करके और इसे कुल पैकेट लंबाई 4178 बाइट्स में DoublePulsar को भेजने के लिए एक पैकेट उत्पन्न किया जाता है। कुल पैकेट लंबाई = 4178। NetBIOS लंबाई 4174 होगी क्योंकि NetBIOS हेडर आकार के लिए स्वयं की गणना नहीं करता है। इस पैकेट के 12 बाइट्स Doublepulsar SESSION_SETUP पैरामीटर्स के लिए हैं। 4096 XOR एन्क्रिप्टेड डेटा के लिए है। भविष्य के रिलीज़ में SMB और TRANSACTION2 संरचनाओं का उपयोग किया जाएगा।

UploadShellcode

  • से शेलकोड उत्पन्न - zerosum0x0 ने ETERNALBLUE के लिए कस्टम शेलकोड लिखा था जिसे DOUBLEPULSAR के लिए पुनः उपयोग किया जा सकता है, हालांकि एक छोटे संशोधन के साथ। चूंकि कॉपी किए गए शेलकोड में सिस्कॉल ओवरराइट इस उपयोग के मामले के लिए अनावश्यक था, हमने इसे अपरिभाषित किया:
    ;%define SYSCALL_OVERWRITE ; सिस्कॉल में प्रक्रिया IRQL पर चलाने के लिए
    इसके साथ पुनर्मूल्यांकन करें: nasm -w-other -o >(xxd -p -c 16 | sed 's/../\x&/g') external/source/shellcode/windows/multi_arch_kernel_queue_apc.asm
    https://github.com/rapid7/metasploit-framework/blob/master/external/source/shellcode/windows/multi_arch_kernel_queue_apc.asm
    https://raw.githubusercontent.com/ninp0/eternalblue/master/eternalblue_kshellcode_x64.asm
    https://raw.githubusercontent.com/ninp0/eternalblue/master/eternalblue_kshellcode_x86.asm
    https://www.rapid7.com/blog/post/2019/10/02/open-source-command-and-control-of-the-doublepulsar-implant/

  • DoublePulsar_UploadExe.cpp - यह प्रोग्राम निष्पादनयोग्य (executable) के लिए है। निष्पादनयोग्य को मेमोरी में पढ़ा जाएगा और Wannacry लॉन्चर DLL में रखा जाएगा और DoublePulsar के माध्यम से भेजा जाएगा। 1 नेगोशिएशन, 1 सेशन सेटअप, 1 ट्री कनेक्ट, 1 Trans2 Ping पैकेट और कई Trans2 exec SESSION_SETUP पैकेट। Trans2 Ping अनुरोध पैकेट Trans2 प्रतिक्रिया पैकेट में SMB हस्ताक्षर प्राप्त करने के लिए भेजा जाता है। इस हस्ताक्षर को DoublePulsar XOR कुंजी कैलकुलेटर के माध्यम से संसाधित किया जाता है। फिर प्रोग्राम एक EXE फ़ाइल पढ़ता है और इसे 64 बिट कर्नेल और यूजरलैंड शेलकोड और एक स्केलेटन DLL फ़ाइल के साथ जोड़ता है और बफर को SMB हस्ताक्षर से गणना किए गए DoublePulsar XOR कुंजी से XOR करता है। मेमोरी आवंटित करके, Trans2 निष्पादन पैकेट को कॉपी करके, SMB लेन-देन के लिए आवश्यक मानों (UserID, TreeID, TotalDataCount, DataCount, ByteCount) को संपादित करके, फिर XOR किए गए डेटा (कर्नेल शेलकोड + DLL + निष्पादनयोग्य) को अंत में कॉपी करके और इसे 4096 बाइट्स के कुल पैकेट लंबाई में एक बार में DoublePulsar को भेजने के लिए लूप करके एक पैकेट उत्पन्न किया जाता है। कुल पैकेट लंबाई = 4178। NetBIOS लंबाई 4174 होगी क्योंकि NetBIOS हेडर आकार के लिए स्वयं की गणना नहीं करता है। इस पैकेट के 12 बाइट्स Doublepulsar SESSION_SETUP पैरामीटर्स के लिए हैं। 4096 XOR एन्क्रिप्टेड डेटा के लिए है।

Metasploit मॉड्यूल

एक कस्टम Metasploit मॉड्यूल बनाया जिसे मैंने Metasploit के ओपन सोर्स DoublePulsar RCE मॉड्यूल का उपयोग करके कार्यात्मक बनाया।

मैंने तर्क को बदल दिया ताकि एक DLL उत्पन्न हो सके, इसे x64 कर्नेल शेलकोड (प्रीपेंडेड) के साथ मर्ज किया जा सके जो मैंने Wannacry से लिया था, ताकि DoublePulsar DLL को चला सके।

msfconsole

अतिरिक्त शिक्षा कोड

रिपॉजिटरी में शैक्षिक उद्देश्यों के लिए निम्नलिखित भी शामिल है और मेरे द्वारा समर्थित नहीं हैं:

  • DoublePulsar x86/x64 Upload DLL पायथन स्क्रिप्ट

  • EternalBlue एक ही बाइनरी में

  • मल्टी आर्क कर्नेल क्यू APC असेंबली कोड और Windows x86/x64 मल्टी-आर्क कर्नेल रिंग 0 से रिंग 3 Queued APC कर्नेल कोड के माध्यम से

  • EternalBlue x64/x86 कर्नेल पेलोड शेलकोड worawit से

  • Eternalblue रीप्ले फ़ाइल

टूल डाउनलोड करें
  • EternalBlue.cpp - यह प्रोग्राम कई SMB पैकेट भेजता है: नेगोशिएशन, SessionSetup, TreeConnect और कई NT trans और Trans2 पैकेट। ये NT trans पैकेट विकृत (malformed) होते हैं जो पीड़ित कंप्यूटर की मेमोरी में एक्सप्लॉइट को तैयार करते हैं। पीड़ित के समान पोर्ट पर कई सॉकेट्स के माध्यम से पीड़ित को अधिक व्हाइटस्पेस या खाली SMB पैकेट भेजे जाते हैं। EternalBlue के अधिकांश base64 पेलोड को सॉकेट 1 पर भेजा जा रहा है जहां Negotiation, SessionSetup और TreeConnect पैकेट भेजे गए थे। फिर 20 अन्य सॉकेट बनाए जाते हैं और उन सॉकेट्स (सॉकेट 3 से सॉकेट 21) को डेटा भेजा जाता है। बाद में, DoublePulsar को सॉकेट 3 से सॉकेट 21 पर भेजा जाता है। फिर प्रोग्राम द्वारा सॉकेट बंद कर दिए जाते हैं जो पीड़ित कंप्यूटर पर EternalBlue और DoublePulsar को विस्फोटित (detonate) करता है। फिर एक SMB डिस्कनेक्ट और SMB लॉगऑफ अनुरोध भेजा जाता है और कनेक्शन बंद हो जाता है। यह एक्सप्लॉइट काम करता है और Windows 7 x64 बिट पर परीक्षण किया गया। बैकडोर को पूरी तरह से संचालित होने में लगभग 5 सेकंड लगे, जैसा कि पहले से इंटरनेट पर EternalBlue राइटअप में बताया गया है। अधिक शोषण प्रयास आवश्यक हो सकते हैं। हालांकि वर्तमान में पैकेट में TreeID और UserID के सही ढंग से सेट न होने में एक बग है, जिसे बाद के रिलीज़ में ठीक किया जाएगा। यह हाल ही में चालू की गई मशीनों के खिलाफ काम करेगा क्योंकि TreeID और UserID डिफ़ॉल्ट मानों पर सेट हैं। इन पैकेट्स को अपने TreeID और UserID मानों को अपडेट करना होगा क्योंकि वे वर्तमान में डिफ़ॉल्ट मान "08 00" पर सेट हैं। EternalBlue EternalBlue_cmd eternalbluepackets