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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
IKEV2-POC — IKEv2, ikeext.dll, CVE-2026-33824, डबल फ्री, हीप ग्रूमिंग, ROP, SKF विखंडन, विंडोज शोषण, एंटी-डीबग, अस्पष्टीकरण, एपीआई हुकिंग, शेलकोड, रिवर्स शेल | Kitploit
उपकरण/GitHubGitHub/epsilonpointori/ikev2-poc
शोषण फ्रेमवर्करिवर्स इंजीनियरिंगशेलकोडकमांड एंड कंट्रोलपेलोड डेवलपमेंटबाइनरी शोषण
GitHubepsilonpointori/ikev2-poc

IKEV2-POC

IKEv2, ikeext.dll, CVE-2026-33824, डबल फ्री, हीप ग्रूमिंग, ROP, SKF विखंडन, विंडोज शोषण, एंटी-डीबग, अस्पष्टीकरण, एपीआई हुकिंग, शेलकोड, रिवर्स शेल

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

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

सभी देखें →

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

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

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

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

EpSiLoNPoInTIkEv2.cpp

⚠️ परियोजना अंतिम रूप दी जा रही है। वर्तमान स्थिति में पूरी तरह कार्यात्मक नहीं है।


विवरण

EpSiLoNPoInTIkEv2.cpp एक C/C++ एक्सप्लॉइट प्रोटोटाइप है जो विंडोज को लक्षित करता है, जिसे ikeext.dll में डबल-फ्री प्रकार के शोषण के आसपास विकसित किया गया है (विंडोज का IKEv2 ड्राइवर), अनुसंधान के तहत CVE-2026-33824 के रूप में संदर्भित।

परियोजना में शामिल हैं:

  • एक पूर्ण अस्पष्टता परत (वर्चुअल मशीन, नियंत्रण प्रवाह अस्पष्टता, स्ट्रिंग छिपाना, नकली बाइनरी हस्ताक्षर, इनलाइन ASM एंटी-विश्लेषण)।
  • एक पूर्ण IKEv2 शोषण इंजन (पैकेट निर्माण, SKF विखंडन, मल्टी-थ्रेड हीप ग्रूमिंग, ROP चेन, मनमानी पढ़ने/लिखने की प्रिमिटिव्स)।
  • विंडोज डिफेंडर, AMSI और ETW को बायपास करने के तंत्र।
  • पोर्ट 4444 पर एक अंतर्निहित रिवर्स शेल लिस्नर।
  • संदिग्ध मेमोरी क्षेत्रों के निरीक्षण के लिए आंशिक GUI (ListView, ComboBox, स्थिति पट्टी)।

कोड आर्किटेक्चर

1. अस्पष्टता परत (EpSi_OBF_ENDL / प्रेरित obfusheader)

कोड संकलन पर #define EpSi_OBF_ENDL के माध्यम से सक्रिय एक भारी अस्पष्टता परत का उपयोग करता है। obfusheader.h पर आधारित, अनुकूलित और विस्तारित।

नकली बाइनरी हस्ताक्षर (FAKE_SIGNS == 1)

ज्ञात प्रोटेक्टर स्कैनर्स को धोखा देने के लिए बाइनरी में कस्टम PE अनुभाग इंजेक्ट किए जाते हैं:

  • .vmp0, .vmp1, .vmp2 → VMProtect
  • UPX0 → UPX
  • .enigma1, .enigma2 → Enigma Protector
  • .winlice → Themida
  • .petite, .aspack, .adata, .rlp, .vlizer, .arch, .alien, .pwdprot, .dsstext, , , , , , (Nuitka), (Screen2Exe), आदि।

अंकगणितीय वर्चुअल मशीन (VIRT == 1)

सभी अंकगणितीय और तार्किक संचालन को एक आंतरिक VM (Obfh_VirtualMachine) में रूट किया जा सकता है:

  • ओपकोड (OP__ADD, OP__SUB, ..., OP__NOP) संकलन पर __COUNTER__ और RND() के माध्यम से यादृच्छिक रूप से उत्पन्न होते हैं।
  • प्रत्येक ओपकोड एन्क्रिप्टेड है: _VM_ENCRYPT_INT(value) = (value - _VM_MUTATOR_KEY) * ~SALT_CMD।
  • ऑपरेंड साल्टेड, उलटे (* -1), और जंक वैल्यू के साथ पास किए जाते हैं।
  • VM स्वयं goto, झूठे नकारात्मक case, BREAK_STACK_* (इनलाइन ASM xor; jz; .byte 0xE8; cpuid), झूठे JMP (.byte 0xFF, 0x25) और डीकंपाइलर्स को धोखा देने के लिए नकली x86_64 कोड ब्लॉक से भरा हुआ है।
  • उजागर मैक्रोज़: VM_ADD, , , , , , , , , , , , , , आदि।

अस्पष्ट प्रवाह नियंत्रण (NO_CFLOW != 1)

  • #define if(cond) : प्रत्येक if एक __s_rdtsc() कॉल और एक मृत BAD_CALL इंजेक्ट करता है।
  • #define else : वास्तविक else से पहले एक मृत else if (0) { BAD_CALL; } इंजेक्ट करता है।
  • #define while(...) : __s_rdtsc() != 0.1 और एक बेतुके पॉइंटर चेक द्वारा सशर्त।
  • #define for(...) : OBFUS_CONDITION_BLOCK द्वारा सशर्त।
  • #define switch(...) : OBFUS_CONDITION_BLOCK द्वारा सशर्त।
  • #define break : प्रत्येक से पहले इंजेक्ट करता है।

स्ट्रिंग छिपाना (HIDE_STRING)

  • STACK_STRING(str) : कंपाउंड लिटरल के माध्यम से स्ट्रिंग को स्टैक पर धकेलता है।
  • HIDE_STRING(str) : बाइनरी में स्ट्रिंग को छिपाने के लिए obfh_process_hidden_string() + __s_rdtsc() को एक मृत BAD_JMP के साथ जोड़ता है।

API प्रॉक्सी (पूर्ण गतिशील रिज़ॉल्यूशन)

सभी CRT और Win32 फ़ंक्शन पुनर्निर्देशित किए गए हैं:

  • CRT GetProcAddress(LoadLibraryA("msvcrt"), ...) के माध्यम से गतिशील : printf, scanf, sprintf, strlen, strcmp, strcpy, strtok, memset, memcpy, strchr, strrchr, rand, realloc, calloc, , , , , , , , , , , , , , , ।

एंटी-डीबग (ANTI_DEBUG_V2 == 1)

  • समर्पित थ्रेड (ThreadCompareDRs) : मुख्य थ्रेड पर SuspendThread, CONTEXT_DEBUG_REGISTERS के साथ GetThreadContext, Dr0–Dr3, Dr7 की जाँच, ad_ZeroDRs के माध्यम से शून्यीकरण।
  • IsDebuggerPresent_proxy : kernel32.dll को गतिशील रूप से लोड करता है, अस्थायी चर (_I, _s, _D, _e, _b, _u, _g, _g, _e, _r, _P, _r, _e, _s, _e, _n, _t) के माध्यम से IsDebuggerPresent फ़ंक्शन नाम का वर्ण दर वर्ण पुनर्निर्माण करता है, GetProcAddress के माध्यम से कॉल।
  • मैक्रो ANTI_DEBUG : डबल चेक , (अनंत लूप) ट्रिगर करता है, (विशेषाधिकार प्राप्त IN), , ASM, फिर ( + )।

BREAK_STACK मैक्रोज़ (स्टैक एंटी-विश्लेषण)

संवेदनशील कार्यों में डाली गई इनलाइन ASM अनुक्रमों के 9 प्रकार: xor; jz; .byte 0xE8; cpuid (eax, ebx, edx पर भिन्नताएं), नकली ओपकोड 0x50, 0x20, 0x00, 0xEB, 0xE1 (x86), 0xFF, 0x25, 0xF1, 0xF2, 0xF3, 0xF4 (x86_64)।


2. IKEv2 इंजन / एक्सप्लॉइट

निर्भरताएँ

root@kitploit:~
#include "runassys/ntnative.h"
#include "runassys/runassys.h"
#include "runassys/ntdll-stubs/ntdll-stubs.c"
#include "runassys/ntdll-stubs/ntdll.def.c"
#pragma comment(lib, "ws2_32.lib")
#pragma comment(lib, "iphlpapi.lib")
#pragma comment(lib, "bcrypt.lib")
#pragma comment(lib, "Version.lib")

एक्सप्लॉइट स्थिरांक

  • लक्ष्य : IKEEXT_BASE_ADDRESS = 0x180000000
  • डबल फ्री ऑफसेट : g_IkeextDoubleFreeOffset = 0x12B960
  • IKE पेलोड हैंडलर : g_IkeextProcessIkePayload = 0x52220
  • ikeext के PE निर्देशिकाएँ : Export (0x1790A0), Import (0x179110), Exception (0x183000), Reloc (0x18C000), LoadConfig (0x12AE70), Debug (0x155CD0)।
  • आंतरिक संरचना ऑफसेट : g_Offset_MMSA_SecurityRealmBlob = 0x208, g_Offset_PacketContext_Blob = 0xC8।
  • IKEv2 पोर्ट : 500 (UDP), शेल कॉलबैक : 4444।

परिभाषित IKEv2 संरचनाएँ

IKE_HEADER, IKE_SA_PAYLOAD, IKE_PROPOSAL_PAYLOAD, IKE_TRANSFORM_PAYLOAD, IKE_NONCE_PAYLOAD (32 बाइट्स नॉन्स), IKE_KEY_EXCHANGE_PAYLOAD (DH 256 बाइट्स), IKE_NOTIFY_PAYLOAD, IKE_VENDOR_ID_PAYLOAD, IKE_SKF_FRAGMENT_PAYLOAD।

कॉन्फ़िगर किए गए ट्रांसफ़ॉर्म : AES-CBC-128 (12), PRF HMAC-SHA2-256 (5), INTEG HMAC-SHA2-256-128 (12), DH MODP-2048 (14)।

कस्टम DDoS संरचनाएँ

  • IKE_DDOS_AMPLIFIER_PAYLOAD : प्रवर्धन कारक + 64 ऑक्टेट ट्रिगर।
  • IKE_DDOS_LOOP_PAYLOAD : लूप काउंटर + 32 ऑक्टेट loop_code।
  • IKE_DDOS_MEMORY_PAYLOAD : आकार/गणना आवंटन + 64 ऑक्टेट हीप स्प्रे डेटा।

हीप ग्रूमिंग

  • HEAP_GROOM_CONTEXT : हैंडल हीप, लक्ष्य पता, थ्रेड, stop_flag, allocated_chunks।
  • HEAP_GROOM_THREAD_PARAMS : चंक आकार, पुनरावृत्तियाँ, थ्रेड आईडी, SRWLOCK, use_nt_allocate।
  • GROOM_CONFIG : thread_count, पुनरावृत्तियाँ, विलंब, chunk_size, न्यूनतम/अधिकतम मुक्त %।
  • पैरामीटर : 4 थ्रेड, 0x1000 के चंक, 1000 पुनरावृत्तियाँ, 30–70% के बीच विखंडन।

ROP श्रृंखला

सभी आवश्यक गैजेट्स के साथ पूर्ण ROP_CHAIN संरचना: pop_rax/rcx/rdx/r8/r9/rsp, mov_rax_rsp, mov_rcx_rsp, mov_rcx_rax, mov_rax_rcx, mov_rcx_rdx, xor_rax/rcx/rdx, jmp_rsp, call_rax, ret, virtual_protect, disable_cfg, disable_cet, add_rsp, , । 512 गैजेट्स की सारणी ()।

ROP गैजेट स्कैनर

मॉड्यूल में गैजेट्स का पता लगाने के लिए ~50+ बाइट-सिग्नेचर पैटर्न की g_rop_patterns[] तालिका: pop rax; ret, pop rcx; ret, pop rdx; ret, ..., mov [rcx], rax; ret, mov rax, [rcx]; ret, jmp rsp, VirtualProtect prologue, mov [gs:0x60], rax; ret, jmp [rax+0x58]; ret, lea rax, [rip+0x0]; jmp rax, add rsp, 0x28; ret, cmp rdx/r8/r9, 0x0; je/jne; ret, आदि।

एक्सप्लॉइट वैश्विक चर

root@kitploit:~
uint64_t g_KernelBase, g_IkeextBase, g_SystemEprocess;
uint64_t g_IkeextDoubleFreeOffset = 0x12B960;
uint64_t g_IkeextProcessIkePayload = 0x52220;
uint64_t g_PopRax, g_PopRcx, g_PopRdx, g_PopR8, g_PopR9, g_PopRsp;
uint64_t g_MovRaxRsp, g_JmpRsp, g_VirtualProtect, g_DisableCFG, g_StackPivot;
uint64_t g_NtoskrnlBase, g_Kernel32Base, g_NtdllBase, g_HeapBase, g_ShellcodeAddr;
SOCKET g_Socket; struct sockaddr_in g_Target;
EXPLOIT_CONTEXT g_ExploitCtx; ROP_CHAIN g_RopChain;
HEAP_GROOM_CONTEXT g_GroomContext;
MODULE_DATA g_Modules; ROP_GADGET g_Gadgets;
std::vector<SUSPICIOUS_REGION> g_Regions;

मुख्य प्रवाह (main)

  1. InitializeCriticalSection, init_debug_info।
  2. is_hostile_environment() → यदि सैंडबॉक्स/VM का पता चलता है तो बाहर निकलें।
  3. disable_amsi(), disable_defender(), disable_etw(), patch_etw()।
  4. start_shell_listener() → पोर्ट 4444 पर रिवर्स शेल लिस्नर।
  5. argv[1] (लक्ष्य IP) + argv[2] (पोर्ट, डिफ़ॉल्ट 500) पार्स करें।
  6. init_udp_socket() + inet_pton + test_target_reachability()।
  7. खंडित IKEv2 पैकेट का निर्माण और भेजना (SKF, पैकेट तक)।

वर्तमान स्थिति

परियोजना अंतिम रूप दी जा रही है और पूरी तरह कार्यात्मक नहीं है।

  • कुछ संदर्भित फ़ंक्शन (disable_amsi, disable_defender, disable_etw, patch_etw, is_hostile_environment, test_target_reachability, start_shell_listener, stop_shell_listener, print_usage, init_debug_info) घोषित किए गए हैं लेकिन बिल्ड की स्थिति के अनुसार अपूर्ण या अनुपस्थित हो सकते हैं।
  • ikeext के ऑफसेट स्थिर हैं और एक विशिष्ट विंडोज बिल्ड के लिए विशिष्ट हैं। अभी तक कोई गतिशील ऑफसेट रिज़ॉल्यूशन तंत्र अंतिम रूप नहीं दिया गया है।
  • ROP श्रृंखला बनाई गई है लेकिन शेलकोड का प्लेसमेंट और सक्रियण वर्तमान स्थिति में पूरी तरह से एकीकृत नहीं है।
  • GUI के कुछ भाग (ListView, ComboBox, क्षेत्र स्कैनिंग) आंशिक रूप से एकीकृत हैं।
  • बिल्ड सिस्टम, runassys/ निर्भरताओं और लिंक की गई लाइब्रेरीज़ में समायोजन के बिना परियोजना संकलित नहीं हो सकती है।

अस्वीकरण

इस रिपॉजिटरी में एक आक्रामक सुरक्षा अनुसंधान प्रोटोटाइप है जो निम्न-स्तरीय नेटवर्क शोषण वेक्टर (IKEv2/ikeext.dll, Windows) को लक्षित करता है।

इस कोड का उपयोग केवल परीक्षण, अनुसंधान या प्रयोगशाला वातावरण के लिए सख्ती से आरक्षित है जहां आपके पास स्पष्ट अनुमति है।

लेखक इस कोड के किसी भी अवैध, अनधिकृत या हानिकारक उपयोग के लिए कोई जिम्मेदारी नहीं लेता है। कोड वैसे ही प्रदान किया गया है, बिना कार्यक्षमता, स्थिरता या प्रतिकूल प्रभावों की अनुपस्थिति की किसी गारंटी के।

परियोजना अभी भी अंतिम रूप दी जा रही है और वर्तमान स्थिति में पूरी तरह कार्यात्मक नहीं है।

टूल डाउनलोड करें
logicoma
__wibu00
__wibu01
PETETRIS
.tw
.rdata
.text
  • एन्कोडेड स्ट्रिंग्स जो एनिग्मा की नकल करती हैं (0x45,0x6e,0x69,...), Denuvo (0x64,0x65,0x6E,...)।
  • FAKE_DONGLE[] सारणी हार्डवेयर डोंगलों की नकल करती है: skeydrv.dll, HASPDOSDRV, MARXDEV1.SYS, WIBUKEY, SNTNLUSB, RNBOspro, आदि।
  • VM_SUB
    VM_MUL
    VM_DIV
    VM_MOD
    VM_EQU
    VM_NEQ
    VM_LSS
    VM_GTR
    VM_LEQ
    VM_GEQ
    VM_OBF_INT
    VM_ADD_DBL
    VM_MUL_DBL
    break
    if (OBFUS_CONDITION_BLOCK) BREAK_STACK_1
    fopen
    fclose
    fread
    fwrite
    exit
    snprintf
    vsprintf
    vsnprintf
    getenv
    system
    abort
    atexit
    getcwd
    tolower
    toupper
  • Win32 सभी पैरामीटर पर रैपर्स obfh_int_proxy() के माध्यम से : CreateFile, ReadFile, WriteFile, CloseHandle, VirtualAlloc, VirtualFree, CreateThread, WaitForSingleObject, WaitForMultipleObjects, ExitProcess, GetModuleHandle, GetModuleFileName, HeapCreate, HeapAlloc, HeapFree, GlobalAlloc, GlobalFree, GetTempPath, SetEvent, ResetEvent, Sleep, memmove, GetParent, GetWindowRect, GetClientRect, SetWindowPos, SetConsoleTextAttribute, GetDesktopWindow, GetStockObject।
  • GetProcAddress को GetProcAddress_custom से बदल दिया गया: IMAGE_EXPORT_DIRECTORY का मैन्युअल ट्रैवर्सल (PE पार्स: e_lfanew, IMAGE_NT_HEADERS, IMAGE_DIRECTORY_ENTRY_EXPORT, AddressOfFunctions, AddressOfNames, AddressOfNameOrdinals)।
  • LoadLibraryA अस्पष्टीकृत 6 नेस्टेड रैपर्स (LoadLibraryA_0 से LoadLibraryA_proxy) की श्रृंखला में, अस्थायी चर _k, _e, _r, _n, _e, _l और sprintf के माध्यम से वर्ण दर वर्ण DLL नाम का पुनर्निर्माण करता है।
  • IsDebuggerPresent() || IsDebuggerPresent_proxy()
    loop()
    .byte 0xED
    BREAK_STACK_1
    ret
    crash()
    int $3
    .byte 0xED, 0x00
    sub_rsp
    stack_pivot
    rop_chain[MAX_ROP_CHAIN_SIZE]
    SKF_FRAGMENTS + 1
  • डबल फ्री ट्रिगर करना, हीप ग्रूमिंग, शेलकोड प्लेसमेंट, ROP श्रृंखला निष्पादन।