अपडेट पर वापस जाएँ
New releaseSep 1, 2026

DLLHijackHunter v2.4.0

Automated DLL हाइजैकिंग खोज, सत्यापन और पुष्टि। स्थानीय गलत कॉन्फ़िगरेशन को हथियारबद्ध, पुष्ट हमले के पथों में बदलना।

साझा करें

DLLHijackHunter

द्वारा ProjectMerai

Windows के लिए स्वचालित DLL hijacking खोज, सत्यापन और पुष्टि
"यह DLL शायद hijack हो सकती है" से लेकर "एक सामान्य उपयोगकर्ता SYSTEM को यह लोड करवा सकता है — यह रहा प्रमाण।"


विषय-सूची


अवलोकन

DLLHijackHunter Windows होस्ट पर DLL hijacking के अवसर खोजता है और उन्हें केवल सूचीबद्ध करने के बजाय सिद्ध करने का प्रयास करता है। यह:

  1. खोजता है उन सभी स्थानों को जहाँ से कोई बाइनरी स्वचालित रूप से लॉन्च होती है — सेवाएँ, शेड्यूल्ड टास्क, Run keys, Startup फ़ोल्डर, COM सर्वर, AppInit/AppCert DLLs, IFEO प्रविष्टियाँ, और स्वतः-एलिवेट करने वाली UAC बाइनरियाँ — और गणना करता है कि प्रत्येक आयातित DLL को कहाँ खोजा जाएगा।
  2. फ़िल्टर करता है उन स्थितियों को जिनका आक्रमणकारी वास्तव में उपयोग नहीं कर सकता: API sets, KnownDLLs, वे निर्देशिकाएँ जिनमें सामान्य उपयोगकर्ता लिख नहीं सकता, संरक्षित प्रक्रियाएँ, और अन्य।
  3. सत्यापित करता है (वैकल्पिक) वास्तविक Windows लोडर के साथ, एक सौम्य प्रोब DLL रखकर और जाँचकर कि कौन-सी प्रति खोज में जीतती है।
  4. पुष्टि करता है (वैकल्पिक) एक हानिरहित कैनरी DLL तैनात करके, सेवा/टास्क/COM ऑब्जेक्ट को ट्रिगर करके, और उस पहचान को रिकॉर्ड करके जिसके रूप में यह वास्तव में चला।
  5. स्कोर और रिपोर्ट करता है प्रत्येक निष्कर्ष को विश्वास और प्रभाव के आधार पर, और निष्कर्षों को आक्रमण श्रृंखलाओं में सहसंबंधित करता है (उदाहरण के लिए सामान्य उपयोगकर्ता → 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 PATHPATH में एक रिटेबल डायरेक्टरी में गुम DLL खोजी जाती हैसेवाओं का मूल्यांकन केवल मशीन PATH के विरुद्ध किया जाता है — सेवा द्वारा उपयोगकर्ता की अपनी PATH प्रविष्टियाँ कभी नहीं खोजी जाती हैं
.local रीडायरेक्ट<app>.exe.local\<dll> रीडायरेक्शनकेवल उन निष्पादन योग्य फ़ाइलों के लिए रिपोर्ट किया जाता है जिनमें मैनिफ़ेस्ट नहीं है (या जब IFEO DevOverrideEnable=1); अन्यथा लोडर .local को अनदेखा करता है, और यह KnownDLLs को कभी रीडायरेक्ट नहीं करता
साइड-लोड (UAC)एक ऑटो-एलिवेटिंग EXE को रखी गई DLL के बगल में कॉपी करेंकेवल उन EXEs के लिए जिनके मैनिफ़ेस्ट में <autoElevate>true</autoElevate> है। ऑटो-एलिवेशन के लिए एक विश्वसनीय स्थान आवश्यक है, इसलिए कॉपी को उस जाँच को पास करना होगा (जैसे एक मॉक C:\Windows \System32\ फ़ोल्डर)
AppInit DLLsAppInit_DLLs एक रिटेबल DLL की ओर इंगित करता हैहर उस प्रक्रिया में लोड होता है जो user32.dll लोड करती है
AppCert DLLsAppCertDLLs एक रिटेबल DLL की ओर इंगित करता हैहर CreateProcess/WinExec कॉलर में लोड होता है

IFEO Debugger और SilentProcessExit\MonitorProcess बाइनरीज़ को किसी भी अन्य लॉन्च पॉइंट की तरह गिना और विश्लेषित किया जाता है। CWD-आधारित हाईजैक वर्तमान में उत्पन्न नहीं होते हैं।

लक्ष्य किस रूप में चलता है

सही पहचान दोनों को निर्धारित करती है — विशेषाधिकार-वृद्धि के निर्णय और प्रभाव स्कोर को:

श्रेणियाँ