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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
HWSyscalls — HWSyscalls HWBP, HalosGate और kernel32 पर HWBP के साथ एक सिंथेटिक ट्रैम्पोलिन का उपयोग करके अप्रत्यक्ष syscalls निष्पादित करने की एक नई विधि है। | Kitploit
उपकरण/GitHubGitHub/dec0ne/hwsyscalls
आईडीएस/आईपीएस से बचनापोस्ट-शोषणपेनिट्रेशन टेस्टिंगरेड टीमिंगपेलोड डेवलपमेंट
GitHubdec0ne/hwsyscalls

HWSyscalls

HWSyscalls HWBP, HalosGate और kernel32 पर HWBP के साथ एक सिंथेटिक ट्रैम्पोलिन का उपयोग करके अप्रत्यक्ष syscalls निष्पादित करने की एक नई विधि है।

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

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

सभी देखें →

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

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

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

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

HWSyscalls

image image

मुख्य योगदानकर्ता

Dec0ne idov31

विवरण

HWSyscalls अप्रत्यक्ष syscalls (indirect syscalls) को निष्पादित करने की एक नई विधि है जिसमें 3 मुख्य घटक शामिल हैं:

  • निष्पादन के प्रवाह को नियंत्रित करने के लिए Hardware breakpoints और Vectored Exception Handler।

  • syscall नंबर और पते खोजने के लिए HalosGate का उपयोग किया जाता है।

  • hardware breakpoints के साथ kernel32 पर एक सिंथेटिक ट्रैम्पोलिन बनाना।

HWSyscalls को एक आसानी से शामिल की जाने वाली लाइब्रेरी के रूप में प्रदान किया गया है, जिसे किसी भी प्रोजेक्ट में जोड़ा जा सकता है जो बिना उन EDRs या AVs डिटेक्शन को ट्रिगर किए indirect syscalls का उपयोग करना चाहता है जो वर्तमान indirect syscalls डिटेक्शन पर आधारित हैं।

Indirect syscalls एक लोकप्रिय विधि है जिसका उपयोग ntdll से सिस्टम कॉल करने के लिए विभिन्न रूपों में किया जाता है, हालाँकि, ntdll से syscalls को कॉल करने की मुख्य समस्या इसके मूल में है: किसी भी पिछले dll से गुजरे बिना किसी प्रोग्राम का सीधे ntdll तक अजीब एक्सेस।

HWSyscalls, indirect syscalls के मूल विचार पर आधारित है, लेकिन इस समस्या के समाधान के साथ - hardware breakpoints की कार्यक्षमता को मिलाकर kernel32 में सिंथेटिक ट्रैम्पोलिन बनाने और SSNs प्राप्त करने के लिए HalosGate का उपयोग करता है।

इसे आसान बनाने के लिए, एक सामान्य indirect syscalls प्रवाह इस प्रकार दिखता है:

indirect_syscalls

जबकि हमारा इस प्रकार दिखता है:

hwsyscalls_flow

अपडेट

हमने स्टैक को unwindable बनाने के लिए कुछ स्टैक हेरफेर जादू के साथ HWSyscallExceptionHandler फ़ंक्शन के तर्क को अपडेट किया है। हमने ऐसा NTAPI फ़ंक्शन को सीधे कॉल करके (इसका पता अब PrepareSyscall फ़ंक्शन में लौटाया जाता है), NTAPI फ़ंक्शन में HWBP को हिट करके, एक नया स्टैक फ्रेम बनाकर और नए स्टैक फ्रेम के रिटर्न पते को kernel32 (या kernelbase) में पाए जाने वाले "ADD RSP, 68; RET" गैजेट पर सेट करके किया है, साथ ही स्टैक आर्ग्युमेंट्स को भी कॉपी किया है।

अब स्टैक पूरी तरह से unwindable है और ntdll से वापस आते समय वास्तव में kernel32 से होकर गुजरता है, बिना हमारी ओर से किसी ब्रेकपॉइंट और निष्पादन प्रवाह हेरफेर की आवश्यकता के:

hwsyscalls_stack

अधिक जानकारी के लिए, हमारी ब्लॉग पोस्ट (जल्द आ रही है) देखें।

उपयोग

प्रोजेक्ट का उपयोग करने के लिए, आपको HWSyscalls.h को शामिल करना होगा और आवश्यक gadgets खोजने तथा exception handler को प्रारंभ करने के लिए InitHWSyscalls को कॉल करना होगा। अपने प्रोग्राम के निष्पादन के अंत में, exception handler को हटाने के लिए DeinitHWSyscalls को कॉल करें।

root@kitploit:~
#include "HWSyscalls.h"

typedef NTSTATUS(WINAPI* NtOpenProcess_t)(
	OUT          PHANDLE            ProcessHandle,
	IN           ACCESS_MASK        DesiredAccess,
	IN           POBJECT_ATTRIBUTES ObjectAttributes,
	IN OPTIONAL  PCLIENT_ID         ClientId);

void main() {

    // Initialize the exception handler and find the required gadgets.
    if (!InitHWSyscalls())
        return;
    
    // ...

    // Execute your function!
    NtOpenProcess_t pNtOpenProcess = (NtOpenProcess_t)PrepareSyscall((char*)("NtOpenProcess"));
    NTSTATUS status = pNtOpenProcess(&targetHandle, PROCESS_ALL_ACCESS, &object, &clientID);

    // ...

    // Removing the exception handler.
    DeinitHWSyscalls();

}

HWSyscalls.h में HWSYSCALLS_DEBUG परिभाषा को बदलकर डिबग वर्बोसिटी को चालू या बंद किया जा सकता है।

root@kitploit:~
#pragma once
#include <windows.h>
#include <inttypes.h>
#include <stdio.h>

#pragma region Defines

#define HWSYSCALLS_DEBUG 0 // 0 disable, 1 enable
#define UP -32
//...

सेटअप

इस प्रोजेक्ट को संकलित करने के लिए आपको Visual Studio 2019 और उसके बाद के संस्करण की आवश्यकता होगी। यह ध्यान रखना महत्वपूर्ण है कि यह प्रोजेक्ट केवल x64 वातावरण के लिए बनाया गया है और इसे बिना ऑप्टिमाइज़ेशन के संकलित किए जाने की आवश्यकता है। आप इसे Project Settings -> C/C++ -> Optimization -> Optimization (Disabled /Od) से अक्षम कर सकते हैं।

उदाहरण

example

आभार

  • Sektor7 को Halosgate के लिए और HWBP कार्यान्वयन के लिए धन्यवाद, जो उनके अद्भुत Malware Development Advanced Vol 1 में सिखाया जाता है।

  • @Am0nsec और @RtlMateusz को मूल Hellsgate कार्यान्वयन के लिए धन्यवाद।

  • Rad9800 को उस प्रेरणा के लिए धन्यवाद जो हमें TamperingSyscalls से मिली।

  • Yxel को बाइनरी पैटर्न मिलान कोड के लिए धन्यवाद, जिसे हमने Cronos से उपयोग किया।

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