
DLLHijackHunter v2.5.0
Automated DLL हाइजैकिंग खोज, सत्यापन और पुष्टि। स्थानीय गलत कॉन्फ़िगरेशन को हथियारबद्ध, पुष्ट हमले के पथों में बदलना।
DLLHijackHunter
द्वारा ProjectMerai
स्वचालित DLL हाईजैकिंग खोज, सत्यापन और पुष्टि
स्थानीय गलत कॉन्फ़िगरेशन को हथियारबंद, पुष्टि किए गए हमले के रास्तों में बदलना।
अवलोकन
DLLHijackHunter एक स्वचालित Windows DLL हाईजैकिंग पहचान उपकरण है जो स्थैतिक विश्लेषण से आगे जाता है। यह बहु-चरणीय पाइपलाइन का उपयोग करके DLL हाईजैकिंग के अवसरों की खोज, सत्यापन और पुष्टि करता है:
- खोज — सेवाओं, निर्धारित कार्यों, स्टार्टअप आइटम, COM ऑब्जेक्ट्स और AutoElevate UAC बायपास वेक्टरों में बाइनरी की गणना करता है
- फ़िल्टरेशन — बुद्धिमान हार्ड और सॉफ्ट गेट्स के माध्यम से गलत सकारात्मक परिणामों को समाप्त करता है
- कैनरी पुष्टि — एक हानिरहित कैनरी DLL तैनात करता है और हाईजैक के काम करने को साबित करने के लिए बाइनरी को ट्रिगर करता है
- स्कोरिंग और रिपोर्टिंग — स्तरीय विश्वास प्रणाली के साथ शोषण-क्षमता के आधार पर निष्कर्षों को रैंक करता है
अधिकांश DLL हाईजैकिंग उपकरण "यह DLL हाईजैक हो सकता है" पर रुक जाते हैं। DLLHijackHunter इसे सत्यापित करने, ज्ञात शोषण खुफिया जानकारी के विरुद्ध क्रॉस-रेफरेंस करने और जहाँ संभव हो वास्तविक निष्पादन पथों की पुष्टि करने का प्रयास करता है।
आर्किटेक्चर
flowchart TB
subgraph Phase1["चरण 1: खोज"]
SE["स्थैतिक इंजन<br/>सेवाएँ, कार्य, स्टार्टअप,<br/>COM, रन कुंजियाँ"]
AE["AutoElevate इंजन<br/>मैनिफेस्ट + COM UAC बायपास"]
PE["PE विश्लेषक<br/>इम्पोर्ट टेबल, डिले लोड्स,<br/>मैनिफेस्ट, एक्सपोर्ट्स"]
ETW["ETW इंजन<br/>रीयल-टाइम DLL लोड<br/>निगरानी"]
SO["खोज क्रम<br/>कैलकुलेटर"]
end
subgraph Phase2["चरण 2: फ़िल्टर पाइपलाइन"]
direction LR
HG["हार्ड गेट्स<br/>(बाइनरी किल)"]
SG["सॉफ्ट गेट्स<br/>(विश्वास समायोजन)"]
end
subgraph Phase3["चरण 3: लोड सत्यापन (--verify-load)"]
LP["LoadProbe<br/>चाइल्ड-प्रोसेस लोडर परीक्षण<br/>प्रोब DLL रखा और हटाया गया"]
end
subgraph Phase4["चरण 4: कैनरी"]
CB["कैनरी DLL बिल्डर"]
TE["ट्रिगर निष्पादक"]
VF["सत्यापन"]
end
subgraph Phase5["चरण 5: आउटपुट"]
SC["स्तरीय स्कोरर"]
RC["कंसोल रिपोर्ट"]
RJ["JSON रिपोर्ट"]
RH["HTML रिपोर्ट"]
end
SE --> PE --> SO
AE --> PE
ETW --> SO
SO --> Phase2
HG --> SG
Phase2 --> Phase3
Phase3 --> Phase4
CB --> TE --> VF
Phase4 --> Phase5
मुख्य विशेषताएँ
हाईजैक प्रकार कवरेज
| प्रकार | विवरण | गोपनीयता | स्थिति |
|---|---|---|---|
| फैंटम | DLL डिस्क पर कहीं भी मौजूद नहीं है | उच्च | लागू |
| खोज क्रम | DLL को Windows खोज क्रम में पहले रखें | उच्च | लागू |
| साइड-लोडिंग | वैध ऐप द्वारा अपनी निर्देशिका से DLL लोड करने का दुरुपयोग | उच्च | लागू (AutoElevate कॉपी-टू-टेम्प पथ) |
| .local रीडायरेक्ट | .local निर्देशिका पुनर्निर्देशन के माध्यम से हाईजैक | उच्च | लागू |
| ENV PATH | सिस्टम PATH में लिखने योग्य निर्देशिकाओं का हथियारीकरण | उच्च | लागू (क्यूरेटेड सेवा/DLL मानचित्र) |
| AppInit DLLs | AppInit_DLLs रजिस्ट्री दुरुपयोग | निम्न | लागू |
| AppCert DLLs | AppCertDLLs रजिस्ट्री दुरुपयोग (हर CreateProcess/WinExec कॉलर में लोड होता है) | निम्न | लागू |
| CWD | वर्तमान कार्यशील निर्देशिका हाईजैक | निम्न | योजनाबद्ध — वर्तमान में किसी भी खोज पथ द्वारा उत्पन्न नहीं |
IFEO डीबगर प्रविष्टियों की गणना की जाती है और संदर्भित बाइनरी का DLL इम्पोर्ट्स के लिए विश्लेषण किया जाता है, लेकिन कोई समर्पित IFEO/KnownDLL-बायपास हाईजैक प्रकार नहीं है — उन्हें स्टैंडअलोन पहचान के रूप में विज्ञापित नहीं किया जाता है।
UAC बायपास खोज
DLLHijackHunter में समर्पित UAC बायपास खोज शामिल है:
- मैनिफेस्ट AutoElevate — एम्बेडेड मैनिफेस्ट में
<autoElevate>true</autoElevate>वाले EXE के लिएSystem32औरSysWOW64स्कैन करता है - COM AutoElevation —
Elevation\Enabled=1वाले COM ऑब्जेक्ट्स के लिएHKLM\SOFTWARE\Classes\CLSIDस्कैन करता है - साइड-लोड सिमुलेशन — उन AutoElevate बाइनरी के लिए जो
SetDllDirectoryयाSetDefaultDllDirectoriesको कॉल नहीं करती हैं, "EXE को लिखने योग्य फ़ोल्डर में कॉपी करें + DLL ड्रॉप करें" हमले के पथ का अनुकरण करता है
लक्षित भेद्यता ज्ञान आधार
- लक्षित भेद्यता मैपिंग — खोजे गए इम्पोर्ट्स को HijackLibs डेटासेट के बंडल स्नैपशॉट (≈590 प्रलेखित DLL प्रविष्टियाँ ≈700 भेद्य निष्पादन योग्य फ़ाइलों में फैली हुई) के विरुद्ध क्रॉस-रेफरेंस करता है, जो
Resources/hijacklibs.jsonके रूप में एम्बेडेड है। एक मिलान विश्वास बढ़ाता है और निष्कर्ष को उसके HijackLibs संदर्भ पृष्ठ से जोड़ता है; मिलान की अनुपस्थिति का कोई मतलब नहीं है। डेटासेट डेटा-संचालित है — उस संसाधन परhttps://hijacklibs.net/api/hijacklibs.jsonको फिर से डाउनलोड करके इसे रीफ्रेश करें (कोई कोड परिवर्तन आवश्यक नहीं)। डेटासेट © HijackLibs परियोजना और योगदानकर्ता। - स्वचालित PATH शोषण — लिखने योग्य
PATHफ़ोल्डरों का मूल्यांकन करता है और मूल Windows सेवाओं के क्यूरेटेड मानचित्र के लिए हाईजैक उम्मीदवार उत्पन्न करता है जो लापता DLL के लिएPATHखोजने के लिए जानी जाती हैं - विस्तारित फैंटम DLL शिकार — कई श्रेणियों में उच्च-मूल्य वाले फैंटम DLL अवसरों की लाइब्रेरी खोजता है
फ़िल्टर पाइपलाइन
पाइपलाइन दो चरणों के माध्यम से गलत सकारात्मक परिणामों को कम करती है:
हार्ड गेट्स
- API सेट स्कीमा फ़िल्टरिंग (
api-ms-*,ext-ms-*) - KnownDLL फ़िल्टरिंग
- हमलावर-सापेक्ष ACL लिखने-योग्यता सत्यापन — एक पथ केवल तभी लिखने योग्य माना जाता है जब एक अविशेषाधिकार प्राप्त प्रिंसिपल (
Users/Authenticated Users/Everyone, साथ ही लीक-प्रूफ उप-प्रशासक सेवा खाते जैसेLOCAL SERVICE/NETWORK SERVICE) के पास प्रभावी लेखन अधिकार हों। महत्वपूर्ण रूप से, यह उस टोकन से स्वतंत्र रूप से गणना की जाती है जिसके तहत उपकरण चलता है, इसलिए उन्नत (elevated) चलाने सेSystem32/Program Filesलिखने योग्य नहीं दिखते। यही कारण है कि LPE ट्राइएज के लिए उन्नत रन सार्थक होते हैं।
सॉफ्ट गेट्स
- WinSxS मैनिफेस्ट पेनल्टी
- विशेषाधिकार डेल्टा विश्लेषण
LoadLibraryExशमन जाँच- हस्ताक्षर सत्यापन जाँच
- सुंदर त्रुटि-हैंडलिंग पेनल्टी
कैनरी पुष्टि
अनुमान लगाने के बजाय, DLLHijackHunter हाईजैक के काम करने को साबित करने का प्रयास करता है:
sequenceDiagram
participant H as DLLHijackHunter
participant B as कैनरी DLL बिल्डर
participant T as ट्रिगर निष्पादक
participant V as पीड़ित बाइनरी
H->>B: कैनरी DLL बनाएँ
B->>B: पूर्व-संकलित कैनरी निकालें<br/>(या MSVC के साथ प्रॉक्सी संकलित करें)
B-->>H: canary.dll + पुष्टि फ़ाइल पथ
H->>H: DLL को हाईजैक पथ पर रखें
H->>T: बाइनरी निष्पादन ट्रिगर करें
T->>V: सेवा शुरू करें / कार्य चलाएँ / COM सक्रिय करें
V->>V: कैनरी DLL लोड करता है
V-->>H: पुष्टि फ़ाइल लिखता है<br/>PID, विशेषाधिकार, अखंडता स्तर
H->>H: रिकॉर्ड: CONFIRMED
H->>H: कैनरी DLL साफ़ करें