
PIC C से Shellcode उत्पन्न करने के लिए Python-आधारित टूल
SHGenOB एक Python-आधारित उपकरण है जो C में लिखे Position Independent Code (PIC) से शेलकोड उत्पन्न करने के लिए डिज़ाइन किया गया है। यह C कोड को संकलित करने, .text अनुभाग निकालने और वैकल्पिक रूप से XOR एन्क्रिप्शन का उपयोग करके परिणामी शेलकोड को एन्क्रिप्ट करने की प्रक्रिया को स्वचालित करता है।
यह परियोजना पूरी तरह से इस पर आधारित है जो hasherezade द्वारा लिखित है।
SHGenOB उपयोगकर्ताओं के लिए महत्वपूर्ण नोट: इस शेलकोड जनरेशन टूल के सही ढंग से काम करने के लिए, इनपुट फ़ाइल में C कोड को Position Independent Code (PIC) के रूप में लिखा जाना चाहिए। यह उपकरण मानता है कि प्रदान किया गया कोड PIC सिद्धांतों और नीचे वर्णित विशेषताओं का पालन करता है।
Position Independent Code (PIC) एक प्रकार का मशीन कोड है जो अपने निरपेक्ष मेमोरी पते की परवाह किए बिना निष्पादित किया जा सकता है। यह विशेषता PIC को शेलकोड, साझा लाइब्रेरी और कुछ प्रकार के मैलवेयर बनाने में विशेष रूप से उपयोगी बनाती है। PIC की मुख्य विशेषताओं में शामिल हैं:
PIC उन परिदृश्यों में आवश्यक है जहाँ कोड का सटीक लोड पता पहले से ज्ञात नहीं होता है, जो इसे शेलकोड विकास और सिस्टम प्रोग्रामिंग के कुछ क्षेत्रों में एक महत्वपूर्ण अवधारणा बनाता है। SHGenOB का उपयोग करते समय, सुनिश्चित करें कि आपका इनपुट C कोड प्रभावी और विश्वसनीय शेलकोड उत्पन्न करने के लिए इन PIC सिद्धांतों का पालन करता है।
pip install pefile argparse
निम्नलिखित सिंटैक्स के साथ कमांड लाइन से स्क्रिप्ट चलाएँ:
python shgenob.py --code-file <path_to_c_file> [--masm-file <path_to_masm_file>] [--debug] [--xor-key <key>]
आर्गुमेंट्स:
--code-file या -cf: (आवश्यक) PIC कोड वाली main.c फ़ाइल का पथ--masm-file या -mf: (वैकल्पिक) शेलकोड में अतिरिक्त असेंबली लॉजिक शामिल करने के लिए बाहरी .masm फ़ाइल का पथ--debug या -d: (वैकल्पिक) डीबग मोड सक्षम करें (मध्यवर्ती फ़ाइलों की सफाई छोड़ें)--xor-key या -xk: (वैकल्पिक) शेलकोड को एन्क्रिप्ट करने के लिए XOR कुंजी (प्रारूप: AA,BB,CC)उदाहरण:
# मूल उपयोग
python shgenob.py --code-file main.c
# बाहरी MASM फ़ाइल के साथ
python shgenob.py --code-file main.c --masm-file custom_logic.masm
# सभी विकल्पों के साथ
python shgenob.py --code-file main.c --masm-file custom_logic.masm --debug --xor-key AA,BB,CC
save_to_file(content, filename): दी गई सामग्री को वर्तमान निर्देशिका में एक फ़ाइल में सहेजता हैcleanup(): वर्तमान निर्देशिका में मध्यवर्ती फ़ाइलों (.asm, .exe, .obj, .lnk) को हटाता हैxor_encrypt(shellcode, key): प्रदान की गई कुंजी का उपयोग करके XOR के साथ शेलकोड को एन्क्रिप्ट करता हैinsert_shellcode_into_loader(formatted_shellcode, loader_file): लोडर टेम्पलेट में शेलकोड सम्मिलित करता हैextract_text_section(file_path, key): PE फ़ाइल से .text अनुभाग निकालता है और वैकल्पिक रूप से इसे एन्क्रिप्ट करता हैfind_file(root_dir, file_name): दिए गए निर्देशिका और उसकी उपनिर्देशिकाओं में एक फ़ाइल खोजता हैrun_command_with_vcvars(command, vcvars_path): Visual Studio पर्यावरण चर सेट करके एक कमांड चलाता हैcompile_cpp_file(cpp_file, vcvars_path, output_exe): Visual Studio कंपाइलर का उपयोग करके C++ फ़ाइल संकलित करता हैmodify_asm_file(asm_file): शेलकोड संगतता के लिए उत्पन्न असेंबली फ़ाइल को संशोधित करता हैmain(cpp_file, args): मुख्य फ़ंक्शन जो शेलकोड जनरेशन प्रक्रिया का समन्वय करता हैसफाई प्रक्रिया को छोड़ने और मध्यवर्ती फ़ाइलों का निरीक्षण करने के लिए --debug फ़्लैग का उपयोग करें। यह समस्या निवारण और शेलकोड जनरेशन प्रक्रिया को समझने के लिए उपयोगी है।
SHGenOB को बेहतर बनाने के लिए योगदान का स्वागत है। कृपया इन चरणों का पालन करें: