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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
RpcProxyInvoke — सरल POC लाइब्रेरी जो NdrServerCall2 या इसी तरह के माध्यम से प्रॉक्सी करके मनमाने कॉल निष्पादित करती है | Kitploit
उपकरण/GitHubGitHub/klezvirus/rpcproxyinvoke
विशेषाधिकार वृद्धिशोषणपार्श्व आंदोलनशेलकोडपोस्ट-शोषणपेनिट्रेशन टेस्टिंगकमांड एंड कंट्रोलरेड टीमिंगरिमोट एक्सेस टूलपेलोड डेवलपमेंटबाइनरी शोषण
139172 साल पहलेKitploit द्वारा समीक्षित

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें
GitHub
klezvirus/rpcproxyinvoke

RpcProxyInvoke

सरल POC लाइब्रेरी जो NdrServerCall2 या इसी तरह के माध्यम से प्रॉक्सी करके मनमाने कॉल निष्पादित करती है

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

RpcProxyInvoke

अवलोकन

स्थानीय और दूरस्थ कोड निष्पादित करने का एक सामान्य तरीका बनाने के लिए, हमने कोड निष्पादन की एक अपेक्षाकृत अस्पष्ट विधि डिज़ाइन की है, जिसे हम आंतरिक रूप से RpcCraft (Self) और RpcExec (Remote Process) कहते हैं। यह तकनीक एक्सप्लॉइट डेवलपर्स के बीच प्रसिद्ध एक पद्धति का लाभ उठाती है, जो मनमाना कोड निष्पादित करने के लिए NdrServerCall2 या NdrServerCallAll जैसी RPC (Remote Procedure Call) सर्वर कॉलों का दुरुपयोग करती है।

सर्वर कॉल्स का दुरुपयोग करके निष्पादन

RPCRT4.dll के भीतर, NdrServerCall2, NdrServerCallAll, और NdrServerCallNdr64 (NdrServerCallAll का एक उपनाम) जैसे फ़ंक्शन सर्वर कार्यक्षमताओं से संबंधित फ़ंक्शनों को गतिशील रूप से आमंत्रित करने के लिए रैपर के रूप में लागू किए गए हैं। ये फ़ंक्शन एक एकल तर्क लेते हैं, जो RPC_MESSAGE संरचना के लिए एक पॉइंटर है।

RPC_MESSAGE संरचना:

root@kitploit:~
typedef struct _RPC_MESSAGE {
  RPC_BINDING_HANDLE     Handle;
  unsigned long          DataRepresentation;
  void                   *Buffer;
  unsigned int           BufferLength;
  unsigned int           ProcNum;
  PRPC_SYNTAX_IDENTIFIER TransferSyntax;
  void                   *RpcInterfaceInformation;
  void                   *ReservedForRuntime;
  RPC_MGR_EPV            *ManagerEpv;
  void                   *ImportContext;
  unsigned long          RpcFlags;
} RPC_MESSAGE, *PRPC_MESSAGE;

आरंभीकरण और निष्पादन

किसी सेवा से बाइंडिंग किए बिना रनटाइम को आरंभ करने के लिए, PerformRpcInitialization फ़ंक्शन का उपयोग किया जाता है। यह फ़ंक्शन आंतरिक रूप से आवश्यक संरचनाओं को प्रारंभ करता है, बिना मैन्युअल बाइंडिंग की आवश्यकता के।

ज्ञात समस्याएँ

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

  • ntdll में एक पैच करता है (RaiseException -> RtlExitUserThread)
  • VEH के माध्यम से रिटर्न वैल्यू प्राप्त करता है
root@kitploit:~
int FetchReturnValue(const PEXCEPTION_POINTERS ExceptionInfo) {
    ExceptionInfo->ContextRecord->EFlags |= (1 << 16);
    g_ReturnValue = (PVOID)ExceptionInfo->ContextRecord->Rax;
    return EXCEPTION_CONTINUE_EXECUTION;
}

सीमाएँ और पैचिंग

RPC इनवोकेशन CFG द्वारा संरक्षित है, जिसका अर्थ है कि पूर्ण, अप्रतिबंधित कोड निष्पादन प्राप्त करने के लिए, या तो SetProcessValidCallTargets के साथ लक्ष्य को मान्य के रूप में चिह्नित करना आवश्यक है या RpcInvokeCheckICall को पैच करना आवश्यक है।

निष्कर्ष

RpcProxyInvoke प्रोजेक्ट एक वैकल्पिक तकनीक प्रदर्शित करता है जिसका दुरुपयोग RailGun शैली की लाइब्रेरी को लागू करने के लिए किया जा सकता है। यद्यपि सार्वजनिक कार्यान्वयन सही नहीं है, यह आगे के विकास के लिए एक आधार के रूप में काम कर सकता है।

लाइसेंस

यह प्रोजेक्ट MIT लाइसेंस के अंतर्गत लाइसेंस प्राप्त है - विवरण के लिए LICENSE फ़ाइल देखें।

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