
Automated DLL हाइजैकिंग खोज, सत्यापन और पुष्टि। स्थानीय गलत कॉन्फ़िगरेशन को हथियारबद्ध, पुष्ट हमले के पथों में बदलना।
स्वचालित DLL हाईजैकिंग खोज, सत्यापन और पुष्टि
स्थानीय गलत कॉन्फ़िगरेशन को हथियारबंद, पुष्टि किए गए हमले के रास्तों में बदलना।
DLLHijackHunter एक स्वचालित Windows DLL हाईजैकिंग पहचान उपकरण है जो स्थैतिक विश्लेषण से आगे जाता है। यह बहु-चरणीय पाइपलाइन का उपयोग करके 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-बायपास हाईजैक प्रकार नहीं है — उन्हें स्टैंडअलोन पहचान के रूप में विज्ञापित नहीं किया जाता है।
DLLHijackHunter में समर्पित UAC बायपास खोज शामिल है:
<autoElevate>true</autoElevate> वाले EXE के लिए System32 और SysWOW64 स्कैन करता हैElevation\Enabled=1 वाले COM ऑब्जेक्ट्स के लिए HKLM\SOFTWARE\Classes\CLSID स्कैन करता हैSetDllDirectory या SetDefaultDllDirectories को कॉल नहीं करती हैं, "EXE को लिखने योग्य फ़ोल्डर में कॉपी करें + DLL ड्रॉप करें" हमले के पथ का अनुकरण करता हैResources/hijacklibs.json के रूप में एम्बेडेड है। एक मिलान विश्वास बढ़ाता है और निष्कर्ष को उसके HijackLibs संदर्भ पृष्ठ से जोड़ता है; मिलान की अनुपस्थिति का कोई मतलब नहीं है। डेटासेट डेटा-संचालित है — उस संसाधन पर https://hijacklibs.net/api/hijacklibs.json को फिर से डाउनलोड करके इसे रीफ्रेश करें (कोई कोड परिवर्तन आवश्यक नहीं)। डेटासेट © HijackLibs परियोजना और योगदानकर्ता।PATH फ़ोल्डरों का मूल्यांकन करता है और मूल Windows सेवाओं के क्यूरेटेड मानचित्र के लिए हाईजैक उम्मीदवार उत्पन्न करता है जो लापता DLL के लिए PATH खोजने के लिए जानी जाती हैंपाइपलाइन दो चरणों के माध्यम से गलत सकारात्मक परिणामों को कम करती है:
हार्ड गेट्स
api-ms-*, ext-ms-*)Users / Authenticated Users / Everyone, साथ ही लीक-प्रूफ उप-प्रशासक सेवा खाते जैसे LOCAL SERVICE/NETWORK SERVICE) के पास प्रभावी लेखन अधिकार हों। महत्वपूर्ण रूप से, यह उस टोकन से स्वतंत्र रूप से गणना की जाती है जिसके तहत उपकरण चलता है, इसलिए उन्नत (elevated) चलाने से System32/Program Files लिखने योग्य नहीं दिखते। यही कारण है कि LPE ट्राइएज के लिए उन्नत रन सार्थक होते हैं।सॉफ्ट गेट्स
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 साफ़ करें