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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
VBA-RunPE — RunPE तकनीक का VBA कार्यान्वयन या एप्लिकेशन व्हाइटलिस्टिंग को कैसे बायपास करें | Kitploit
उपकरण/GitHubGitHub/itm4n/vba-runpe
शोषणआईडीएस/आईपीएस से बचनापोस्ट-शोषणपेनिट्रेशन टेस्टिंगरेड टीमिंगपेलोड डेवलपमेंटArchived
GitHubitm4n/vba-runpe

VBA-RunPE

RunPE तकनीक का VBA कार्यान्वयन या एप्लिकेशन व्हाइटलिस्टिंग को कैसे बायपास करें

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

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

सभी देखें →

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

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

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

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

VBA RunPE

विवरण

VBA में RunPE तकनीक का एक सरल लेकिन प्रभावी कार्यान्वयन। इस कोड का उपयोग Word या Excel की मेमोरी से निष्पादन योग्य फ़ाइलों को चलाने के लिए किया जा सकता है। यह Microsoft Office 2010 और उसके ऊपर के 32-बिट और 64-बिट दोनों संस्करणों के साथ संगत है।

अधिक जानकारी यहाँ: https://itm4n.github.io/vba-runpe-part1/ https://itm4n.github.io/vba-runpe-part2/

Win10_x64_Office2016_x64_PowerShell

उपयोग 1 - डिस्क पर PE फ़ाइल

  1. कोड के अंत में Exploit प्रक्रिया में, उस फ़ाइल का पथ सेट करें जिसे आप निष्पादित करना चाहते हैं।
root@kitploit:~
strSrcFile = "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe"

/!\ यदि आप 64-बिट OS पर Microsoft Office का 32-बिट संस्करण उपयोग कर रहे हैं, तो आपको 32-बिट बाइनरी निर्दिष्ट करनी होगी।

root@kitploit:~
strSrcFile = "C:\Windows\SysWOW64\cmd.exe"
strSrcFile = "C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe"
  1. कमांड लाइन तर्क निर्दिष्ट करें (वैकल्पिक)।
root@kitploit:~
strArguments = "-exec Bypass"

इसका उपयोग निम्नलिखित कमांड लाइन बनाने के लिए किया जाएगा:

root@kitploit:~
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -exec Bypass
  1. (वैकल्पिक) निष्पादन और त्रुटि लॉग जांचने के लिए View > Immediate Window (Ctrl+G) सक्षम करें।

  2. Exploit मैक्रो चलाएँ!

उपयोग 2 - एम्बेडेड PE

  1. एक PE फ़ाइल को VBA में बदलने के लिए pe2vba.py का उपयोग करें। इस तरह, इसे सीधे मैक्रो में एम्बेड किया जा सकता है।
root@kitploit:~
user@host:~/Tools/VBA-RunPE$ ./pe2vba.py meterpreter.exe
[+] फ़ाइल 'meterpreter.exe.vba' बनाई गई।
  1. RunPE.vba में निम्नलिखित कोड को पिछले चरण में जनरेट की गई .vba फ़ाइल की सामग्री से बदलें। Python स्क्रिप्ट PE को VBA में बदलती है और स्वचालित रूप से RunPE टेम्पलेट लागू करती है (मैन्युअल रूप से कॉपी/पेस्ट करने की आवश्यकता नहीं है)।
root@kitploit:~
' ================================================================================
'                                ~~~ एम्बेडेड PE ~~~
' ================================================================================

' PE2VBA द्वारा उत्पन्न कोड
' ===== PE2VBA शुरू =====
Private Function PE() As String
    Dim strPE As String
    strPE = ""
    PE = strPE
End Function
' ===== PE2VBA समाप्त =====
  1. (वैकल्पिक) निष्पादन और त्रुटि लॉग जांचने के लिए View > Immediate Window (Ctrl+G) सक्षम करें।

  2. Exploit मैक्रो चलाएँ!

/!\ एम्बेडेड PE का उपयोग करते समय, मैक्रो स्वचालित रूप से इस मोड में स्विच हो जाएगा क्योंकि PE() विधि एक गैर-रिक्त स्ट्रिंग लौटाएगी।

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

  • GetThreadContext() त्रुटि कोड 998 के साथ विफल होता है।

यदि आप Office के 64-बिट संस्करण से यह मैक्रो चलाते हैं तो आपको यह त्रुटि मिल सकती है। एक समाधान के रूप में, आप कोड को Word ऑब्जेक्ट संदर्भों से निष्पादित करने के बजाय एक मॉड्यूल में ले जा सकते हैं। टिप के लिए धन्यवाद @joeminicucci का।

root@kitploit:~
================================================================================
[*] स्रोत फ़ाइल: 'C:\Windows\System32\cmd.exe'
[*] स्रोत PE की जाँच...
[*] निलंबित अवस्था में नई प्रक्रिया बनाना...
[*] मुख्य थ्रेड का संदर्भ प्राप्त करना...
    |__ GetThreadContext() विफल (Err: 998)

मुझे नहीं पता कि यह समाधान वर्तमान में क्यों काम करता है। मैंने इस पर थोड़ा शोध किया है। ऐसा लगता है कि यह त्रुटि 64-बिट संस्करण में CONTEXT संरचना के ठीक से संरेखित न होने के कारण होती है। मैंने देखा कि संरचना का आकार भी गलत है ([VBA] LenB(CONTEXT) != [C++] sizeof(CONTEXT)) जबकि 32-बिट संस्करण में यह ठीक है। मेरे पास एक कार्यशील समाधान है जो GetThreadContext() को ठीक से लौटने की अनुमति देता है लेकिन फिर यह निष्पादन में आगे कुछ अन्य चीजों को तोड़ देता है।

संपादन 2019-12-15: 64-बिट संस्करण के CONTEXT संरचना की परिभाषा वास्तव में गलत थी लेकिन इसे ठीक करने से बग ठीक नहीं हुआ। इसलिए, मैंने 64-बिट संस्करण के लिए एक वर्कअराउंड लागू किया। मैंने GetThreadContext() और SetThreadContext() फ़ंक्शनों के CONTEXT संरचना तर्क को समान आकार की Byte सरणी से बदल दिया।

संपादन 2019-12-17: मुझे अंततः समस्या मिल गई। मेरी पहली धारणा सही थी, CONTEXT संरचना को मेमोरी में 16-बाइट संरेखित होना चाहिए। यह कुछ ऐसा है जिसे आप C में संरचना की परिभाषा में align(16) का उपयोग करके नियंत्रित कर सकते हैं लेकिन आप इसे VBA में नियंत्रित नहीं कर सकते। इसलिए, GetThreadContext() और SetThreadContext() "यादृच्छिक रूप से" विफल हो सकते हैं। दूसरी ओर, Byte सरणियाँ हमेशा 16-बाइट संरेखित प्रतीत होती हैं, यही कारण है कि यह वर्कअराउंड प्रभावी है लेकिन इसकी कोई गारंटी नहीं है, जब तक कि मैं VBA इंटरप्रेटर/कम्पाइलर को रिवर्स इंजीनियर न करूँ और इसका पता न लगा लूँ?!

  • LongPtr - User Defined Type Not Defined

यदि आपको यह त्रुटि मिलती है, तो इसका मतलब है कि आप Office के पुराने संस्करण (<=2007) से मैक्रो चला रहे हैं। LongPtr प्रकार VBA7 (Office 2010) में 64-बिट Windows API के समर्थन के साथ पेश किया गया था। यह आर्किटेक्चर (32-बिट / 64-बिट) की चिंता किए बिना पॉइंटर्स को संभालने के लिए बहुत उपयोगी है।

एक वर्कअराउंड के रूप में, आप सभी LongPtr घटनाओं को Long (32-बिट) या LongLong (64-बिट) से बदल सकते हैं। अपने पसंदीदा टेक्स्ट एडिटर में Ctrl+H का उपयोग करें।

क्रेडिट

@hasherezade - पूर्ण RunPE कार्यान्वयन (https://github.com/hasherezade/)

@Zer0Mem0ry - 32-बिट RunPE C++ में लिखित (https://github.com/Zer0Mem0ry/RunPE)

@DidierStevens - VBA में PE एम्बेडिंग

विविध

परीक्षण

इस कोड का निम्नलिखित प्लेटफार्मों पर परीक्षण किया गया था:

  • Windows 7 Pro 32-बिट + Office 2010 32-बिट
  • Windows 7 Pro 64-बिट + Office 2016 32-बिट
  • Windows 2008 R2 64-बिट + Office 2010 64-बिट
  • Windows 10 Pro 64-बिट + Office 2016 64-बिट

पार्श्व नोट

यहाँ कुछ Win32 और VBA प्रकारों के बीच पत्राचार की तालिका है:

(*) LongPtr एक "गतिशील" प्रकार है, यह Office 32-बिट में 4 बाइट लंबा और Office 64-बिट में 8 बाइट लंबा होता है। https://msdn.microsoft.com/fr-fr/library/office/ee691831(v=office.14).aspx

टूल डाउनलोड करें
C++VBAआर्किटेक्चर
BYTEByte32 और 64
WORDInteger32 और 64
DWORD, ULONG, LONGLong32 और 64
DWORD64LongLong64
HANDLELongPtr(*)32 और 64
LPSTRString32 और 64
LPBYTELongPtr(*)32 और 64