
DLLHijackHunter v2.4.0
Automated DLL हाइजैकिंग खोज, सत्यापन और पुष्टि। स्थानीय गलत कॉन्फ़िगरेशन को हथियारबद्ध, पुष्ट हमले के पथों में बदलना।
DLLHijackHunter
द्वारा ProjectMerai
Windows के लिए स्वचालित DLL hijacking खोज, सत्यापन और पुष्टि
"यह DLL शायद hijack हो सकती है" से लेकर "एक सामान्य उपयोगकर्ता SYSTEM को यह लोड करवा सकता है — यह रहा प्रमाण।"
विषय-सूची
- अवलोकन
- त्वरित शुरुआत
- यह कैसे काम करता है
- यह क्या पहचानता है
- गलत सकारात्मक परिणाम कम करना
- सत्यापन: लोड प्रोब और कैनरी
- स्कोरिंग, श्रेणियाँ और आक्रमण श्रृंखलाएँ
- उपयोग संदर्भ
- सुरक्षा और परिचालन प्रभाव
- स्रोत से निर्माण
- परीक्षण प्रयोगशाला (HijackRange)
- ज्ञात सीमाएँ
- तुलना
अवलोकन
DLLHijackHunter Windows होस्ट पर DLL hijacking के अवसर खोजता है और उन्हें केवल सूचीबद्ध करने के बजाय सिद्ध करने का प्रयास करता है। यह:
- खोजता है उन सभी स्थानों को जहाँ से कोई बाइनरी स्वचालित रूप से लॉन्च होती है — सेवाएँ, शेड्यूल्ड टास्क, Run keys, Startup फ़ोल्डर, COM सर्वर, AppInit/AppCert DLLs, IFEO प्रविष्टियाँ, और स्वतः-एलिवेट करने वाली UAC बाइनरियाँ — और गणना करता है कि प्रत्येक आयातित DLL को कहाँ खोजा जाएगा।
- फ़िल्टर करता है उन स्थितियों को जिनका आक्रमणकारी वास्तव में उपयोग नहीं कर सकता: API sets, KnownDLLs, वे निर्देशिकाएँ जिनमें सामान्य उपयोगकर्ता लिख नहीं सकता, संरक्षित प्रक्रियाएँ, और अन्य।
- सत्यापित करता है (वैकल्पिक) वास्तविक Windows लोडर के साथ, एक सौम्य प्रोब DLL रखकर और जाँचकर कि कौन-सी प्रति खोज में जीतती है।
- पुष्टि करता है (वैकल्पिक) एक हानिरहित कैनरी DLL तैनात करके, सेवा/टास्क/COM ऑब्जेक्ट को ट्रिगर करके, और उस पहचान को रिकॉर्ड करके जिसके रूप में यह वास्तव में चला।
- स्कोर और रिपोर्ट करता है प्रत्येक निष्कर्ष को विश्वास और प्रभाव के आधार पर, और निष्कर्षों को आक्रमण श्रृंखलाओं में सहसंबंधित करता है (उदाहरण के लिए सामान्य उपयोगकर्ता → SYSTEM)।
प्रत्येक निर्णय आक्रमणकारी के दृष्टिकोण से लिया जाता है — एक अपरिविशेषाधिकार प्राप्त सामान्य उपयोगकर्ता — चाहे स्कैनर स्वयं एलिवेटेड रूप में चले। Administrator के रूप में चलाने से टूल को अधिक दृश्यता मिलती है (ETW, कैनरी, सेवा ट्रिगर); यह कभी भी संरक्षित निर्देशिकाओं को लिखने योग्य नहीं दिखाता और न ही प्राप्त विशेषाधिकार को बढ़ा-चढ़ाकर दिखाता है।
त्वरित शुरुआत
DLLHijackHunter.exe डाउनलोड या बिल्ड करें (स्व-निहित; .NET इंस्टॉल की आवश्यकता नहीं), फिर एक एलिवेटेड प्रॉम्प्ट से:
# Passive, read-only triage: no file drops, no service/task starts
.\DLLHijackHunter.exe --profile safe
# Full static analysis without touching the system, JSON report
.\DLLHijackHunter.exe --profile aggressive --no-canary --no-etw -o report.json
# Static analysis + real-loader verification (writes probe DLLs transiently)
.\DLLHijackHunter.exe --profile aggressive --no-canary --no-etw --verify-load -o report.html
# Everything, including ETW and canary confirmation — lab / authorised targets only
.\DLLHijackHunter.exe --profile aggressive -o report.html
# Focus on one application
.\DLLHijackHunter.exe --target "C:\Program Files\MyApp\app.exe" --no-canary
एंटीवायरस: canary और probe DLLs अहस्ताक्षरित हैं और hijack payloads की तरह व्यवहार करते हैं, इसलिए Microsoft Defender उन्हें quarantine कर सकता है। टूल इसका पता लगाता है और उन परिणामों को "not hijackable" के बजाय inconclusive के रूप में रिपोर्ट करता है। किसी परीक्षण मशीन पर, निश्चित परिणाम पाने के लिए लक्ष्य निर्देशिकाओं और
%ProgramData%\DLLHijackHunterको बाहर रखें।
यह कैसे काम करता है
flowchart TB
subgraph S1["1 · Discovery"]
direction LR
EN["Launch points<br/>services · tasks · Run keys<br/>startup · COM · AutoElevate"] --> PE["PE analysis<br/>imports · delay loads<br/>manifest"] --> SO["Search order<br/>identity-aware PATH"]
ETW["ETW runtime trace<br/>optional, elevated"]
end
subgraph S2["2 · Filter pipeline"]
direction LR
HG["Hard gates<br/>API sets · KnownDLLs<br/>writability"] --> SG["Soft gates<br/>manifest · privilege<br/>PPL · LoadLibraryEx"] --> DD["Dedup and<br/>profile filters"]
end
subgraph S3["3 · Verification (optional)"]
direction LR
LP["Load probe<br/>real Windows loader"] --> CN["Canary<br/>deploy, trigger, confirm"]
end
subgraph S4["4 · Output"]
direction LR
SC["Scoring and tiers"] --> AC["Attack chains"] --> RP["Console · JSON · HTML"]
end
S1 --> S2 --> S3 --> S4
| चरण | एडमिन आवश्यक | सिस्टम को संशोधित करता है |
|---|---|---|
| स्टैटिक डिस्कवरी + फ़िल्टर | नहीं (एडमिन अधिक देखता है) | नहीं |
| ETW रनटाइम डिस्कवरी | हाँ | DLL लोड को उत्तेजित करने के लिए ऑटो-स्टार्ट सेवाएँ (100 तक) शुरू करता है और शेड्यूल किए गए कार्य (30 तक) चलाता है |
लोड प्रोब (--verify-load) | नहीं | प्रत्येक उम्मीदवार स्थान पर संक्षेप में एक सौम्य प्रोब DLL लिखता है, फिर उसे हटा देता है और किसी भी मूल को पुनर्स्थापित करता है |
| कैनरी पुष्टि | हाँ | एक कैनरी DLL लिखता है, सेवाओं को रोकता/शुरू करता है, कार्य चलाता है, COM ऑब्जेक्ट सक्रिय करता है, फिर सफ़ाई करता है |
यह क्या पहचानता है
हाईजैक प्रकार
| प्रकार | इसका क्या अर्थ है | नोट्स |
|---|---|---|
| फैंटम | DLL सर्च पाथ में कहीं भी मौजूद नहीं है | इसे कहीं भी रखें जहाँ बाइनरी खोजती है |
| सर्च ऑर्डर | वैध प्रति से पहले एक रिटेबल डायरेक्टरी खोजी जाती है | इसमें रिटेबल डायरेक्टरी में DLL को ओवरराइट करना शामिल है |
| ENV PATH | PATH में एक रिटेबल डायरेक्टरी में गुम DLL खोजी जाती है | सेवाओं का मूल्यांकन केवल मशीन PATH के विरुद्ध किया जाता है — सेवा द्वारा उपयोगकर्ता की अपनी PATH प्रविष्टियाँ कभी नहीं खोजी जाती हैं |
| .local रीडायरेक्ट | <app>.exe.local\<dll> रीडायरेक्शन | केवल उन निष्पादन योग्य फ़ाइलों के लिए रिपोर्ट किया जाता है जिनमें मैनिफ़ेस्ट नहीं है (या जब IFEO DevOverrideEnable=1); अन्यथा लोडर .local को अनदेखा करता है, और यह KnownDLLs को कभी रीडायरेक्ट नहीं करता |
| साइड-लोड (UAC) | एक ऑटो-एलिवेटिंग EXE को रखी गई DLL के बगल में कॉपी करें | केवल उन EXEs के लिए जिनके मैनिफ़ेस्ट में <autoElevate>true</autoElevate> है। ऑटो-एलिवेशन के लिए एक विश्वसनीय स्थान आवश्यक है, इसलिए कॉपी को उस जाँच को पास करना होगा (जैसे एक मॉक C:\Windows \System32\ फ़ोल्डर) |
| AppInit DLLs | AppInit_DLLs एक रिटेबल DLL की ओर इंगित करता है | हर उस प्रक्रिया में लोड होता है जो user32.dll लोड करती है |
| AppCert DLLs | AppCertDLLs एक रिटेबल DLL की ओर इंगित करता है | हर CreateProcess/WinExec कॉलर में लोड होता है |
IFEO Debugger और SilentProcessExit\MonitorProcess बाइनरीज़ को किसी भी अन्य लॉन्च पॉइंट की तरह गिना और विश्लेषित किया जाता है। CWD-आधारित हाईजैक वर्तमान में उत्पन्न नहीं होते हैं।
लक्ष्य किस रूप में चलता है
सही पहचान दोनों को निर्धारित करती है — विशेषाधिकार-वृद्धि के निर्णय और प्रभाव स्कोर को: