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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
BrokenFlow — एक सरल PoC जो एक छिपे हुए कॉल का उपयोग करके एक एन्क्रिप्टेड शेलकोड को लागू करता है। | Kitploit
उपकरण/GitHubGitHub/enkomio/brokenflow
एन्क्रिप्शन/डिक्रिप्शन उपकरणशोषणआईडीएस/आईपीएस से बचनाशेलकोडशेलकोड जनरेशनपेलोड डेवलपमेंटबाइनरी शोषण
GitHubenkomio/brokenflow

BrokenFlow

एक सरल PoC जो एक छिपे हुए कॉल का उपयोग करके एक एन्क्रिप्टेड शेलकोड को लागू करता है।

रिपॉजिटरी देखें
115213 साल पहलेKitploit द्वारा समीक्षित

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

सभी देखें →

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

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

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

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

BrokenFlow

एक सरल PoC जो एक छिपे हुए कॉल का उपयोग करके एन्क्रिप्टेड शेलकोड को आमंत्रित करता है।

परिचय

यह कोड एक सरल ट्रिक का उपयोग करता है जो उस निर्देश को छुपाता है जो प्रभावी रूप से हमारे शेलकोड पर कूदेगा। इससे स्थैतिक विश्लेषण या अनुकरण अधिक चुनौतीपूर्ण हो जाना चाहिए।

हमेशा की तरह, यदि यह अवधारणा पहले से किसी अन्य पेपर में समझाई गई है तो कृपया मुझे एक संदेश भेजें और मैं खुशी-खुशी इसे संदर्भों में जोड़ दूंगा।

विवरण

इस तकनीक का उपयोग करने के लिए मेमोरी लेआउट मानक है और चित्र 1 में वर्णित है।

root@kitploit:~
    ┌───────────────────────────────┐
    │                               │
    │                               │
    │                               │
    │                               │
    │   encrypted shellcode         │
    │                               │
    │                               │
    │                               │
    │                               │
    │                               │
    │                               │
    ├───────────────────────────────┤
    │                               │
    │                               │
    │  decryption loop              │
    │                               │
    │                               │
    └───────────────────────────────┘

चित्र1. मेमोरी लेआउट

डिक्रिप्शन लूप शेलकोड को डिक्रिप्ट करेगा और उस पर कूदेगा। सारा "जादू" डिक्रिप्शन लूप के अंदर है, क्योंकि शेलकोड को डिक्रिप्ट करने के बाद, डिक्रिप्शन लूप अपने स्वयं के कोड को डिक्रिप्ट करना शुरू कर देगा। पहले निर्देश का डिक्रिप्शन हमारे शेलकोड पर एक कूद का परिणाम देगा जो अगले लूप पुनरावृत्ति पर निष्पादित होगा :)

नीचे प्रासंगिक भाग:

root@kitploit:~
@decryption:
xor word ptr [eax], 06799h ; <jmp esi bytes> XOR <first two bytes of this instruction>
add eax, sizeof word
dec ecx
loop @decryption

जैसा कि आप देख सकते हैं, डिक्रिप्शन लूप में कोई भी निर्देश नहीं है जो डिक्रिप्ट किए गए शेलकोड पर कूदता है। असेंबली कोड निम्नलिखित बाइनरी प्रारूप में असेंबल किया गया है:

root@kitploit:~
66:8130 9967             | xor word ptr ds:[eax],6799                                 
83C0 02                  | add eax,2                                                    
49                       | dec ecx                                                      
E2 F5                    | loop 450006

इस मामले में, डिक्रिप्शन कुंजी 06799h होनी चाहिए, क्योंकि 8166h (डिक्रिप्शन लूप के पहले निर्देश के पहले दो बाइट) और 6799h (XOR कुंजी) के बीच XOR ऑपरेशन e6ffh है जो jmp esi के रूप में असेंबल होता है। दूसरे शब्दों में:

0x8166 (xor word ptr ds:[eax],...) XOR 0x6799 (डिक्रिप्शन कुंजी) == 0x6eff (jmp esi)

ESI रजिस्टर को हमारे शेलकोड के आरंभ पर सेट करके, हम निष्पादन प्राप्त कर सकते हैं :)

नीचे डिबगिंग का एक उदाहरण है। प्रारंभ में एन्क्रिप्टेड शेलकोड कॉपी किया जाता है, उसके बाद शेलकोड को डिक्रिप्ट और कॉल करने के लिए उपयोग किया गया कोड आता है। यह ध्यान देने योग्य है कि डिक्रिप्शन लूप के तीसरे निष्पादन के बाद, निर्देश xor word ptr ds:[eax],6799 बदलकर jmp esi हो जाता है।

BrokenFlow निष्पादन

उपयोग

इस तकनीक का उपयोग करने के चरण इस प्रकार हैं:

  • अपने शेलकोड को XOR कुंजी 0x6799 से एन्क्रिप्ट करें। एन्क्रिप्शन लूप पुनरावृत्ति में WORD आकार का कदम (2-बाइट) होना चाहिए;
  • चित्र 1 में बताए अनुसार मेमोरी लेआउट बनाएं। एन्क्रिप्टेड शेलकोड का आकार दो का गुणज होना चाहिए;
  • रजिस्टर ECX को आवंटित मेमोरी के आकार पर सेट करें;
  • रजिस्टर ESI को आवंटित मेमोरी के आरंभ पर सेट करें (इस पते में निष्पादित किए जाने वाला शेलकोड है);
  • शेलकोड डिक्रिप्शन कोड को कॉल करें

संभावित सुधार

डिक्रिप्शन कोड को कम पहचानने योग्य बनाने के लिए, शेलकोड को कॉल करने के वैकल्पिक तरीकों का उपयोग करना संभव है। अधिक स्वतंत्रता के लिए हम प्रत्येक पुनरावृत्ति के दौरान एन्क्रिप्ट किए जाने वाले चंक के आकार को बढ़ाने पर विचार कर सकते हैं। मेरे PoC में मैंने 2-बाइट का उपयोग किया क्योंकि jmp esi को दो बाइट की आवश्यकता है, लेकिन हम 4 या 8-बाइट चंक आकार का उपयोग कर सकते हैं, जिससे ऑपरेटर के पास 4 या 8-बाइट चंक में फिट होने वाले अधिक विकल्प हो सकें। शेलकोड को कॉल करने के चुने गए तरीके के अनुसार, एन्क्रिप्शन स्थिरांक भी बदल जाएगा।

टूल डाउनलोड करें