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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
उपकरण/GitHubGitHub/jxy-s/herpaderping
रक्षात्मक उपकरणशोषणपेनिट्रेशन टेस्टिंग
GitHubjxy-s/herpaderping

herpaderping

Process Herpaderping प्रूफ ऑफ कॉन्सेप्ट, उपकरण और तकनीकी गहन विश्लेषण। Process Herpaderping सुरक्षा उत्पादों को बायपास करता है, एक प्रक्रिया के इरादों को अस्पष्ट करके।

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

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

सभी देखें →

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

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

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

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

प्रोसेस हर्पाडरपिंग

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

सारांश

आम तौर पर, एक सुरक्षा उत्पाद प्रक्रिया निर्माण पर कार्रवाई करता है, विंडोज कर्नेल में एक कॉलबैक पंजीकृत करके (PsSetCreateProcessNotifyRoutineEx)। इस बिंदु पर, एक सुरक्षा उत्पाद उस फ़ाइल का निरीक्षण कर सकता है जिसका उपयोग एक्सीक्यूटेबल को मैप करने के लिए किया गया था और यह निर्धारित कर सकता है कि इस प्रक्रिया को निष्पादित करने की अनुमति दी जानी चाहिए या नहीं। यह कर्नेल कॉलबैक तब आमंत्रित किया जाता है जब प्रारंभिक थ्रेड इंसर्ट किया जाता है, न कि जब प्रक्रिया ऑब्जेक्ट बनाया जाता है।

इस वजह से, कोई अभिनेता एक प्रक्रिया बना और मैप कर सकता है, फ़ाइल की सामग्री को संशोधित कर सकता है, फिर प्रारंभिक थ्रेड बना सकता है। एक उत्पाद जो निर्माण कॉलबैक पर निरीक्षण करता है, वह संशोधित सामग्री देखेगा। इसके अतिरिक्त, कुछ उत्पाद ऑन-राइट स्कैनिंग दृष्टिकोण का उपयोग करते हैं जिसमें फ़ाइल लेखन की निगरानी करना शामिल है। यहाँ एक परिचित अनुकूलन यह रिकॉर्ड करना है कि फ़ाइल को लिखा गया है और वास्तविक निरीक्षण को तब तक स्थगित करना है जब तक कि IRP_MJ_CLEANUP न हो जाए (जैसे, फ़ाइल हैंडल बंद हो जाता है)। इस प्रकार, एक अभिनेता जो write -> map -> modify -> execute -> close वर्कफ़्लो का उपयोग करता है, वह ऑन-राइट स्कैनिंग को विफल कर देगा जो पूरी तरह से IRP_MJ_CLEANUP पर निरीक्षण पर निर्भर करता है।

इस परंपरा का दुरुपयोग करने के लिए, हम पहले एक लक्ष्य फ़ाइल पर डिस्क पर एक बाइनरी लिखते हैं। फिर, हम लक्ष्य फ़ाइल की एक इमेज मैप करते हैं और इसे प्रक्रिया निर्माण के लिए उपयोग करने के लिए OS को प्रदान करते हैं। OS कृपापूर्वक हमारे लिए मूल बाइनरी को मैप करता है। मौजूदा फ़ाइल हैंडल का उपयोग करके, और प्रारंभिक थ्रेड बनाने से पहले, हम इमेज को बैक करने वाली फ़ाइल को अस्पष्ट या नकली बनाने के लिए लक्ष्य फ़ाइल सामग्री को संशोधित करते हैं। कुछ समय बाद, हम मूल बाइनरी का निष्पादन शुरू करने के लिए प्रारंभिक थ्रेड बनाते हैं। अंत में, हम लक्ष्य फ़ाइल हैंडल बंद कर देंगे। आइए इसे चरण-दर-चरण देखें:

  1. डिस्क पर लक्ष्य बाइनरी लिखें, हैंडल को खुला रखते हुए। यही वह है जो मेमोरी में निष्पादित होगा।
  2. फ़ाइल को इमेज सेक्शन के रूप में मैप करें (NtCreateSection, SEC_IMAGE)।
  3. सेक्शन हैंडल का उपयोग करके प्रक्रिया ऑब्जेक्ट बनाएं (NtCreateProcessEx)।
  4. उसी लक्ष्य फ़ाइल हैंडल का उपयोग करके, डिस्क पर फ़ाइल को अस्पष्ट करें।
  5. प्रक्रिया में प्रारंभिक थ्रेड बनाएं (NtCreateThreadEx)।
    • इस बिंदु पर कर्नेल में प्रक्रिया निर्माण कॉलबैक फायर होगा। डिस्क पर मौजूद सामग्री मैप की गई सामग्री से मेल नहीं खाती। इस बिंदु पर फ़ाइल का निरीक्षण गलत आरोपण का कारण बनेगा।
  6. हैंडल बंद करें। यहाँ IRP_MJ_CLEANUP होगा।
    • चूँकि हमने निष्पादित होने वाली सामग्री को छिपा दिया है, इस बिंदु पर निरीक्षण गलत आरोपण का कारण बनेगा।

plantuml

root@kitploit:~
@startuml
hide empty description

[*] --> CreateFile
CreateFile --> FileHandle
FileHandle --> Write
FileHandle --> NtCreateSection
Write -[hidden]-> NtCreateSection
NtCreateSection --> SectionHandle
SectionHandle --> NtCreateProcessEx
FileHandle --> Modify
NtCreateProcessEx -[hidden]-> Modify
NtCreateProcessEx --> NtCreateThreadEx
Modify -[hidden]-> NtCreateThreadEx
NtCreateThreadEx --> [*]
FileHandle --> CloseFile
NtCreateThreadEx -[hidden]-> CloseFile
NtCreateThreadEx --> PspCallProcessNotifyRoutines
PspCallProcessNotifyRoutines -[hidden]-> [*]
CloseFile --> IRP_MJ_CLEANUP
IRP_MJ_CLEANUP -[hidden]-> [*]
PspCallProcessNotifyRoutines --> Inspect
PspCallProcessNotifyRoutines -[hidden]-> CloseFile 
IRP_MJ_CLEANUP --> Inspect
Inspect -[hidden]-> [*]

CreateFile : Create target file, keep handle open.
Write : Write source payload into target file.
Modify : Obscure the file on disk.
NtCreateSection : Create section using file handle.
NtCreateProcessEx : Image section for process is mapped and cached in file object.
NtCreateThreadEx : The cached section is used.
NtCreateThreadEx : Process notify routines fire in kernel.
Inspect : The contents on disk do not match what was executed. 
Inspect : Inspection of the file at this point will result in incorrect attribution.
@enduml

व्यवहार

आप नीचे दिए गए डेमो में देखेंगे, CMD.exe का उपयोग निष्पादन लक्ष्य के रूप में किया गया है। पहले रन में डिस्क पर बाइट्स को एक पैटर्न से ओवरराइट किया जाता है। दूसरे रन में CMD.exe को ProcessHacker.exe से ओवरराइट किया जाता है। हर्पाडरपिंग टूल बाइनरी को ProcessHacker.exe के जितना संभव हो उतना करीब दिखने के लिए ठीक करता है, यहाँ तक कि मूल हस्ताक्षर को भी बनाए रखता है। उसी बाइनरी के कई निष्पादनों पर ध्यान दें और उपयोगकर्ता को प्रक्रिया कैसी दिखती है, इसकी तुलना डिस्क पर फ़ाइल में क्या है, से करें।

गहराई में जाना

हमने व्यवहार देखा है और इसमें से कुछ आश्चर्यजनक हो सकता है। आइए इस व्यवहार को समझाने का प्रयास करें।

तकनीकी गहन विवरण

पृष्ठभूमि और प्रेरणा

विंडोज प्लेटफॉर्म को सुरक्षित करने के लिए उत्पाद डिजाइन करते समय, इस क्षेत्र के कई इंजीनियर (मैं भी शामिल हूँ) OS द्वारा डेटा को कैसे संभाला जाएगा, इस बारे में पूर्वकल्पित धारणाओं पर आ गए हैं। इस परिदृश्य में, कुछ लोग उम्मीद कर सकते हैं कि जब प्रक्रिया बनाई जाती है तो डिस्क पर फ़ाइल "लॉक" रहेगी। आप फ़ाइल को हटा नहीं सकते। आप इसमें लिख नहीं सकते। लेकिन आप इसका नाम बदल सकते हैं। यहाँ देखा गया है कि सही परिस्थितियों में, आप वास्तव में इसमें लिख सकते हैं। अपनी धारणाओं के प्रति सतर्क रहें, हमेशा उन पर सवाल उठाएँ और अपना शोध करें।

इस शोध की प्रेरणा तब मिली जब यह पता लगाया गया कि जब कोई फ़ाइल लिखी जाती है तो विश्लेषण कैसे किया जाए। प्रोसेस हॉलोइंग और डोप्पलगैंगिंग पर पूर्व शोध की पृष्ठभूमि के साथ, मैंने सिद्धांत दिया था कि यह संभव हो सकता है। लक्ष्य बेहतर सुरक्षा प्रदान करना है। आप पुराने ताले को तोड़ने का तरीका समझे बिना बेहतर ताला नहीं बना सकते।

समान तकनीकें

हर्पाडरपिंग हॉलोइंग और डोप्पलगैंगिंग के समान है, हालाँकि कुछ प्रमुख अंतर हैं:

प्रोसेस हॉलोइंग

प्रोसेस हॉलोइंग में निष्पादन शुरू होने से पहले मैप किए गए सेक्शन को संशोधित करना शामिल है, जो अमूर्त रूप से इस तरह दिखता है: map -> modify section -> execute। यह वर्कफ़्लो हॉलो की गई प्रक्रिया के इच्छित निष्पादन प्रवाह को अनपेक्षित कोड में विचलित करने का परिणाम देता है। डोप्पलगैंगिंग को हॉलोइंग का एक रूप माना जा सकता है। हालाँकि, मेरी राय में, हॉलोइंग इंजेक्शन के करीब है, क्योंकि हॉलोइंग में आमतौर पर पहले से मैप किए गए कोड में एक स्पष्ट लेखन शामिल होता है। यह हर्पाडरपिंग से भिन्न है, जहाँ कोई संशोधित सेक्शन नहीं हैं।

प्रोसेस डोप्पलगैंगिंग

प्रोसेस डोप्पलगैंगिंग हर्पाडरपिंग के करीब है। डोप्पलगैंगिंग ट्रांज़ैक्टेड फ़ाइल ऑपरेशन का दुरुपयोग करता है और इसमें आम तौर पर ये चरण शामिल होते हैं: transact -> write -> map -> rollback -> execute। इस वर्कफ़्लो में, OS इमेज सेक्शन बनाएगा और ट्रांज़ैक्शन का हिसाब रखेगा, इसलिए कैश की गई इमेज सेक्शन वही होगी जो आपने ट्रांज़ैक्शन में लिखा था। OS ने इस तकनीक को पैच कर दिया है। खैर, उन्होंने इसके कारण होने वाले क्रैश को पैच किया है। शायद वे इसे ट्रांज़ैक्शन का "कानूनी" उपयोग मानते हैं। शुक्र है, विंडोज डिफेंडर डोप्पलगैंगिंग तकनीक को पकड़ लेता है। डोप्पलगैंगिंग हर्पाडरपिंग से भिन्न है, क्योंकि हर्पाडरपिंग ट्रांज़ैक्टेड फ़ाइल ऑपरेशन पर निर्भर नहीं करता है। और डिफेंडर हर्पाडरपिंग को नहीं पकड़ता है।

तुलना

संदर्भ के लिए, सामान्यीकृत तकनीकें:

प्रकारतकनीक
हॉलोइंगmap -> modify section -> execute
डोप्पलगैंगिंगtransact -> write -> map -> rollback -> execute
हर्पाडरपिंगwrite -> map -> modify -> execute -> close

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

संभावित समाधान

यहाँ कोई स्पष्ट सुधार नहीं है। यह उचित लगता है कि जब फ़ाइल तक लेखन पहुँच हो तो इमेज सेक्शन को मैप/कैश होने से रोकना छेद को बंद करना चाहिए। हालाँकि, यह व्यावहारिक समाधान हो सकता है या नहीं भी हो सकता है।

दूसरा विकल्प फ़ाइल में परिवर्तनों को कैश की गई इमेज सेक्शन में फ्लश करना हो सकता है यदि इसे अभी तक प्रक्रिया में मैप नहीं किया गया है। हालाँकि, चूँकि नई प्रक्रिया में मैप NtCreateProcess पर होता है, यह शायद कोई व्यवहार्य समाधान नहीं है।

पता लगाने के दृष्टिकोण से, वास्तविक बिट्स की पहचान करने का कोई अच्छा तरीका नहीं है जो मैप किए गए थे, IRP_MJ_CLEANUP पर निरीक्षण या PsSetCreateProcessNotifyRoutineEx पर पंजीकृत कॉलबैक गलत आरोपण का कारण बनता है क्योंकि डिस्क पर बिट्स बदल दिए गए हैं, आपको बनाए गए सेक्शन से फ़ाइल का पुनर्निर्माण करना होगा। यहाँ यह इंगित करना उचित है कि विंडोज 10 में एक नया कॉलबैक है जिसे आप PsSetCreateProcessNotifyRoutineEx2 के लिए पंजीकृत कर सकते हैं, हालाँकि इसमें पिछले कॉलबैक के समान ही समस्या है, इसे तब कॉल किया जाता है जब प्रारंभिक थ्रेड निष्पादित होता है, न कि जब प्रक्रिया ऑब्जेक्ट बनाया जाता है। माइक्रोसॉफ्ट ने PsSetCreateThreadNotifyRoutineEx जोड़ा है, जिसे तब कॉल किया जाता है जब प्रारंभिक थ्रेड इंसर्ट किया जाता है, यदि PsCreateThreadNotifyNonSystem के साथ पंजीकृत किया गया हो, जबकि पुराना कॉलबैक तब कॉल किया जाता था जब यह निष्पादन शुरू करने वाला होता है। PSCREATEPROCESSNOTIFYTYPE को विस्तारित करके प्रक्रिया ऑब्जेक्ट बनने पर कॉल करने से भी कोई मदद नहीं मिलेगी, हमने गहराई में जाना अनुभाग में देखा है कि इमेज सेक्शन ऑब्जेक्ट NtCreateSection कॉल पर कैश किया जाता है, न कि NtCreateProcess पर।

हम आसानी से यह पहचान नहीं सकते कि क्या निष्पादित किया गया। हम अभिनेता द्वारा शोषणकारी व्यवहार का पता लगाने का प्रयास करने के लिए छोड़ दिए गए हैं, मैं व्यवहार संकेतकों की खोज को पाठक के लिए एक अभ्यास के रूप में छोड़ दूंगा।

ज्ञात प्रभावित प्लेटफ़ॉर्म

नीचे उन उत्पादों और विंडोज OS की सूची दी गई है जिनका परीक्षण (8/31/2020) तक किया गया है। परीक्षण एक ज्ञात दुर्भावनापूर्ण बाइनरी के साथ किए गए।

जिम्मेदार प्रकटीकरण

यह भेद्यता 7/17/2020 को माइक्रोसॉफ्ट सिक्योरिटी रिस्पॉन्स सेंटर (MSRC) को प्रकट की गई थी और MSRC द्वारा 7/22/2020 को एक मामला खोला गया था। MSRC ने 8/25/2020 को अपनी जांच पूरी की और निर्धारित किया कि निष्कर्ष मान्य हैं लेकिन वे तत्काल सेवा के लिए अपने मानदंडों को पूरा नहीं करते हैं। इस समय उनका मामला बिना समाधान के बंद है और भविष्य की समीक्षा के लिए चिह्नित है, बिना किसी समयसीमा के।

हम इस बग की गंभीरता से असहमत हैं; यह MSRC को 8/27/2020 को सूचित किया गया था।

  1. इस वर्ग (हॉलोइंग और डोप्पलगैंगिंग) में समान भेद्यताएँ हैं।
  2. भेद्यता को OS में निहित सुरक्षा सुविधाओं (विंडोज डिफेंडर) को हराने के लिए दिखाया गया है।
  3. भेद्यता एक अभिनेता को मनमाना कोड का निष्पादन प्राप्त करने की अनुमति देती है।
  4. उपयोगकर्ता को अनपेक्षित कोड के निष्पादन की सूचना नहीं दी जाती है।
  5. उपयोगकर्ता को प्रस्तुत की गई प्रक्रिया जानकारी वास्तव में निष्पादित होने वाली चीज़ को सटीक रूप से प्रतिबिंबित नहीं करती है।
  6. प्रक्रिया की सटीक पहचान करने की सुविधाएँ सहज या गलत नहीं हैं, यहाँ तक कि कर्नेल से भी।

स्रोत

इस रेपो में प्रक्रिया अस्पष्टीकरण की हर्पाडरपिंग विधि का अभ्यास करने के लिए एक उपकरण है। उपयोग इस प्रकार है:

root@kitploit:~
Process Herpaderping Tool - Copyright (c) Johnny Shaw
ProcessHerpaderping.exe SourceFile TargetFile [ReplacedWith] [Options...]
Usage:
  SourceFile               Source file to execute.
  TargetFile               Target file to execute the source from.
  ReplacedWith             File to replace the target with. Optional,
                           default overwrites the binary with a pattern.
  -h,--help                Prints tool usage.
  -d,--do-not-wait         Does not wait for spawned process to exit,
                           default waits.
  -l,--logging-mask number Specifies the logging mask, defaults to full
                           logging.
                               0x1   Successes
                               0x2   Informational
                               0x4   Warnings
                               0x8   Errors
                               0x10  Contextual
  -q,--quiet               Runs quietly, overrides logging mask, no title.
  -r,--random-obfuscation  Uses random bytes rather than a pattern for
                           file obfuscation.
  -e,--exclusive           Target file is created with exclusive access and
                           the handle is held open as long as possible.
                           Without this option the handle has full share
                           access and is closed as soon as possible.
  -u,--do-not-flush-file   Does not flush file after overwrite.
  -c,--close-file-early    Closes file before thread creation (before the
                           process notify callback fires in the kernel).
                           Not valid with "--exclusive" option.
  -k,--kill                Terminates the spawned process regardless of
                           success or failure, this is useful in some
                           automation environments. Forces "--do-not-wait
                           option.

क्लोनिंग और बिल्डिंग

रेपो सबमॉड्यूल का उपयोग करता है, क्लोन करने के बाद सबमॉड्यूल को init और update करना सुनिश्चित करें। प्रोजेक्ट फ़ाइलें विज़ुअल स्टूडियो 2019 के लिए लक्षित हैं।

root@kitploit:~
git clone https://github.com/jxy-s/herpaderping.git
cd .\herpaderping\
git submodule update --init --recursive
MSBuild .\herpaderping.sln

श्रेय

निम्नलिखित का उपयोग बिना किसी संशोधन के किया गया है। उनके लेखकों को श्रेय।

  • विंडोज इम्प्लीमेंटेशन लाइब्रेरीज़ (WIL) एक हेडर-ओनली C++ लाइब्रेरी जो विंडोज पर डेवलपर्स के जीवन को आसान बनाने के लिए बनाई गई है, सामान्य विंडोज कोडिंग पैटर्न के लिए पढ़ने योग्य टाइप-सेफ C++ इंटरफेस के माध्यम से।
  • प्रोसेस हैकर नेटिव API हेडर नेटिव API हेडर फ़ाइलों का संग्रह। Microsoft हेडर फ़ाइलों और प्रतीक फ़ाइलों से एकत्र किया गया, साथ ही बहुत सारे रिवर्स इंजीनियरिंग और अनुमान से।
टूल डाउनलोड करें
ऑपरेटिंग सिस्टमसंस्करणअसुरक्षित
Windows 7 Enterprise x866.1.7601हाँ
Windows 10 Pro x6410.0.18363.900हाँ
Windows 10 Pro Insider Preview x6410.0.20170.1000हाँ
Windows 10 Pro Insider Preview x6410.0.20201.1000हाँ
सुरक्षा उत्पादसंस्करणअसुरक्षित
Windows Defender AntiMalware Client4.18.2006.10हाँ
Windows Defender Engine1.1.17200.2हाँ
Windows Defender Antivirus1.319.1127.0हाँ
Windows Defender Antispyware1.319.1127.0हाँ
Windows Defender AntiMalware Client4.18.2007.6हाँ
Windows Defender Engine1.1.17300.2हाँ
Windows Defender Antivirus1.319.1676.0हाँ
Windows Defender Antispyware1.319.1676.0हाँ
Windows Defender AntiMalware Client4.18.2007.8हाँ
Windows Defender Engine1.1.17400.5हाँ
Windows Defender Antivirus1.323.267.0हाँ
Windows Defender Antispyware1.323.267.0हाँ