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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
IconJector — आइकन का उपयोग करके explorer प्रक्रिया में DLLs इंजेक्ट करें | Kitploit
उपकरण/GitHubGitHub/d419h/iconjector
शोषणपोस्ट-शोषणसामाजिक इंजीनियरिंगरेड टीमिंगपेलोड डेवलपमेंटप्रतिकूल हमला
GitHubd419h/iconjector

IconJector

आइकन का उपयोग करके explorer प्रक्रिया में DLLs इंजेक्ट करें

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

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

सभी देखें →

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

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

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

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

IconJector

यह एक Windows Explorer DLL इंजेक्शन तकनीक है जो Windows पर change icon डायलॉग का उपयोग करती है।

यह उपयोगकर्ताओं को उनके explorer प्रोसेस में एक दुर्भावनापूर्ण DLL लोड करने के लिए धोखा दे सकती है:

https://github.com/0xda568/IconJector/assets/61665703/06428402-764c-4279-b762-1d01082552c8

इसके अतिरिक्त, इसका उपयोग किसी अन्य प्रोसेस से एक DLL को explorer में इंजेक्ट करने के लिए भी किया जा सकता है:

https://github.com/0xda568/IconJector/assets/61665703/bbf53775-ad8d-422b-b186-663ff5074976

यह कैसे काम करता है?

कोड संग्रहीत करने के अलावा, DLL का उपयोग आइकन जैसे संसाधनों को संग्रहीत करने के लिए भी किया जाता है। प्रदर्शन में आप देख सकते हैं कि डिफ़ॉल्ट आइकन shell32.dll में संग्रहीत हैं:

image

वास्तव में, आधुनिक Windows संस्करणों में, वे shell32.dll.mui में संग्रहीत होते हैं, लेकिन फिर भी उन्हें shell32.dll के रूप में प्रदर्शित किया जाता है

explorer प्रोसेस के लिए डायलॉग में DLL में संग्रहीत सभी आइकन प्रदर्शित करने में सक्षम होने हेतु, उसे DLL को मेमोरी में लोड करने की आवश्यकता होती है ताकि उसे पार्स किया जा सके।

इसके अलावा, Windows में DLL में एक वैकल्पिक DllMain फ़ंक्शन परिभाषित करने की क्षमता होती है, जिसे LoadLibrary और FreeLibrary फ़ंक्शन का उपयोग करके DLL को लोड या अनलोड करने पर कॉल किया जाता है।

root@kitploit:~
BOOL WINAPI DllMain(
    HINSTANCE hinstDLL,  // handle to DLL module
    DWORD fdwReason,     // reason for calling function
    LPVOID lpvReserved )  // reserved
{
    // Perform actions based on the reason for calling.
    switch( fdwReason ) 
    { 
        case DLL_PROCESS_ATTACH:
         // Initialize once for each new process.
         // Return FALSE to fail DLL load.
            break;

        case DLL_THREAD_ATTACH:
         // Do thread-specific initialization.
            break;

        case DLL_THREAD_DETACH:
         // Do thread-specific cleanup.
            break;

        case DLL_PROCESS_DETACH:
        
            if (lpvReserved != nullptr)
            {
                break; // do not do cleanup if process termination scenario
            }
            
         // Perform any necessary cleanup.
            break;
    }
    return TRUE;  // Successful DLL_PROCESS_ATTACH.
}

इसका अर्थ है कि यदि DllMain फ़ंक्शन वाला एक DLL explorer द्वारा लोड किया जाता है, तो DllMain फ़ंक्शन में परिभाषित कोड explorer की मेमोरी में निष्पादित होगा।

और यही वास्तव में यहाँ किया जा रहा है। इसके अलावा, DLL को एक आइकन के रूप में प्रच्छन्न किया जा रहा है:

आइकन

"आइकन" वास्तव में एक साधारण DLL फ़ाइल है जिसका .ico एक्सटेंशन है, जो Resource Hacker का उपयोग करके जोड़े गए एक आइकन संसाधन के साथ कैलकुलेटर ऐप खोलती है। (आइकन को Visual Studio में भी जोड़ा जा सकता है)

फ़ोल्डर दृश्य में आइकन की उपस्थिति के संबंध में कुछ विसंगतियाँ हैं। मैंने इसे दो अलग-अलग Windows 10 संस्करणों (नवीनतम और एक पुराने) और Windows 11 पर परीक्षण किया है।

Windows 10

दोनों Windows 10 संस्करणों पर, DLL के अंदर संग्रहीत आइकन तब प्रदर्शित नहीं हुआ जब एक्सटेंशन को .ico में बदला गया था

win10 dll

हालाँकि, नवीनतम Windows 10 संस्करण पर, यह तब तक काम करता रहा जब तक मैंने फोटो ऐप के अंदर "आइकन" खोलने का प्रयास नहीं किया। तब से, मैं इसे दोबारा नहीं बना पाया हूँ।

new win10 icon

Windows 11

Windows 11 पर, प्रच्छन्न DLL को Explorer दृश्य में एक सामान्य आइकन की तरह प्रदर्शित किया गया। हालाँकि, जब इसे फोटो ऐप में खोला जाता है, तो एक त्रुटि प्रदर्शित होती है।

https://github.com/0xda568/IconJector/assets/61665703/748c1012-1d2c-47dd-915f-860ffc6d1b05

प्रोग्रामेटिक रूप से DLL इंजेक्ट करें

किसी उपयोगकर्ता को DLL को मैन्युअल रूप से लोड करने के लिए धोखा देने के अलावा, एक हमलावर के पास इस तकनीक का उपयोग करके DLL फ़ाइल को explorer प्रोसेस में प्रोग्रामेटिक रूप से इंजेक्ट करने का विकल्प भी होता है:

पहले, temp निर्देशिका में एक फ़ोल्डर बनाया जाता है, और SHObjectProperties का उपयोग करके फ़ोल्डर के गुण खोले जाते हैं। सिस्टम भाषा से स्वतंत्र रूप से विंडो का हैंडल प्राप्त करने के लिए, EnumWindows का उपयोग एक कॉलबैक फ़ंक्शन के साथ किया जाता है जो प्रत्येक खुली विंडो में विशिष्ट फ़ोल्डर नाम की जाँच करता है।

callback function

गुण पृष्ठ के माध्यम से, change icon डायलॉग लागू किया जाता है, जिसका हैंडल भी EnumWindows के साथ प्राप्त किया जाता है। अंत में, आइकन पथ को एक DLL (जिसका इस मामले में .ico एक्सटेंशन है) में बदल दिया जाता है, जिससे OK बटन दबाए जाने के बाद explorer DLL को लोड कर लेता है।

क्यों?

यह Explorer प्रोसेस में DLL इंजेक्ट करने का एक बहुत ही गुप्त तरीका है क्योंकि यह सामान्य DLL-इंजेक्शन API का उपयोग नहीं करता है। हालाँकि, यह दो छोटे पॉपअप उत्पन्न करता है, जो बहुत परेशान करने वाले नहीं हैं। इसलिए इसका उपयोग किसी हमलावर द्वारा वैध explorer प्रोसेस के माध्यम से कोड निष्पादित करने या UMD रूटकिट लोड करने के लिए AV बाईपास तकनीक के रूप में किया जा सकता है।

इसके अलावा, .ico फ़ाइलों के रूप में प्रच्छन्न DLL का प्रसार एक दिलचस्प हमला वेक्टर हो सकता है।

उपयोग किए गए उपकरण

सही विंडो हैंडल प्राप्त करने के लिए, मैंने Spy++ का उपयोग किया, जो Visual Studio के साथ स्थापित होने वाला एक उपकरण है।

spy++

श्रेय

Microsoft से Bill G. को सुंदर फ़ोल्डर आइकन के लिए बहुत धन्यवाद!

इंटरनेट पर मौजूद अज्ञात व्यक्ति को, सुंदर इंजेक्शन आइकन के लिए धन्यवाद!

टूल डाउनलोड करें