
XLL फिशिंग तकनीक
Microsoft के हालिया घोषणा के अनुसार इंटरनेट (ईमेल और वेब डाउनलोड) से आने वाले दस्तावेज़ों में मैक्रो को ब्लॉक करने के बाद, हमलावरों ने उपयोगकर्ता-संचालित पहुंच (UDA) प्राप्त करने के लिए अन्य विकल्पों को आक्रामक रूप से खोजना शुरू कर दिया है। फिशिंग के लिए एक व्यवहार्य पहुंच विधि की तलाश करते समय कई कारकों पर विचार और संतुलन बनाना होता है:
ये प्रमुख प्रश्न हैं, हालांकि निश्चित रूप से और भी हैं। चीजें और जटिल हो जाती हैं जब आप महसूस करते हैं कि ये कारक एक-दूसरे को प्रभावित करते हैं; उदाहरण के लिए, यदि किसी क्लाइंट के पास वेब प्रॉक्सी है जो एक्ज़ीक्यूटेबल या DLL के डाउनलोड को प्रतिबंधित करता है, तो आपको अपने पेलोड को किसी कंटेनर (ZIP, ISO, आदि) के अंदर रखने की आवश्यकता हो सकती है। ऐसा करने से आगे चलकर पहचान के मामले में और समस्याएं उत्पन्न हो सकती हैं। अधिक मजबूत रक्षा उपायों को हराने के लिए तकनीकों के अधिक जटिल संयोजनों की आवश्यकता होती है।
यह लेख एक काल्पनिक लक्ष्य संगठन को ध्यान में रखकर लिखा गया है; इस संगठन ने कई रक्षात्मक उपाय अपनाए हैं जिनमें ईमेल फ़िल्टरिंग नियम, कुछ फ़ाइल प्रकारों को डाउनलोड करने से प्रतिबंधित करना, एंडपॉइंट पर एप्लिकेशन व्हाइटलिस्टिंग, और EDR समाधान के रूप में Microsoft Defender for Endpoint शामिल हैं।
वास्तविक संगठन इनमें से कोई भी, कुछ, या और भी अधिक रक्षा उपाय अपना सकते हैं जो इस शोध में उल्लिखित तकनीकों को सरल या जटिल बना सकते हैं। हमेशा की तरह, अपने लक्ष्य को जानें।
XLL विशेष रूप से Microsoft Excel के लिए तैयार किए गए DLL होते हैं। अपरिचित आंखों के लिए वे सामान्य एक्सेल दस्तावेज़ों की तरह दिखते हैं।

XLL, UDA के लिए एक बहुत ही आकर्षक विकल्प प्रदान करते हैं क्योंकि उन्हें Microsoft Excel द्वारा निष्पादित किया जाता है, जो क्लाइंट नेटवर्क में एक बहुत ही सामान्य रूप से पाया जाने वाला सॉफ़्टवेयर है; एक अतिरिक्त लाभ के रूप में, क्योंकि वे Excel द्वारा निष्पादित होते हैं, हमारा पेलोड लगभग निश्चित रूप से एप्लिकेशन व्हाइटलिस्टिंग नियमों को बायपास करेगा क्योंकि एक विश्वसनीय एप्लिकेशन (Excel) इसे निष्पादित कर रहा है। XLL को C, C++, या C# में लिखा जा सकता है जो VBA मैक्रो की तुलना में कहीं अधिक लचीलापन और शक्ति (और समझदारी) प्रदान करता है, जो उन्हें और भी वांछनीय विकल्प बनाता है।
बेशक नकारात्मक पक्ष यह है कि XLL के बहुत कम वैध उपयोग हैं, इसलिए संगठनों के लिए ईमेल और वेब डाउनलोड दोनों के माध्यम से उस फ़ाइल एक्सटेंशन के डाउनलोड को ब्लॉक करना एक बहुत ही आसान काम होना चाहिए। दुख की बात है कि कई संगठन वक्र से वर्षों पीछे हैं और इस तरह XLL कुछ समय के लिए फिशिंग का एक व्यवहार्य तरीका बना रहेगा।
XLL के अंदर कोड निष्पादित करने के लिए घटनाओं की एक श्रृंखला का उपयोग किया जा सकता है, जिनमें से सबसे उल्लेखनीय xlAutoOpen है। पूरी सूची यहाँ देखी जा सकती है:

XLL पर डबल-क्लिक करने पर, उपयोगकर्ता को यह स्क्रीन दिखाई देती है:

यह एकमात्र डायलॉग बॉक्स है जो उपयोगकर्ता और कोड निष्पादन के बीच खड़ा है; काफी पतली सोशल इंजीनियरिंग के साथ, कोड निष्पादन लगभग निश्चित है।
एक बात जिसे ध्यान में रखना चाहिए वह यह है कि XLL, एक्ज़ीक्यूटेबल होने के कारण, आर्किटेक्चर-विशिष्ट होते हैं। इसका मतलब है कि आपको अपने लक्ष्य को जानना चाहिए; लक्ष्य संगठन जिस Microsoft Office/Excel संस्करण का उपयोग करता है वह (आमतौर पर) यह निर्धारित करेगा कि आपको अपना पेलोड किस आर्किटेक्चर के लिए बनाना चाहिए।
Office संस्करणों में एक काफी स्पष्ट विभाजन है जिसे एक सामान्य नियम के रूप में उपयोग किया जा सकता है:
Office 2016 या उससे पहले: x86
Office 2019 या बाद में: x64
यह ध्यान दिया जाना चाहिए कि प्रत्येक उत्पाद के लिए दूसरे आर्किटेक्चर को स्थापित करना संभव है, हालांकि ये स्थापित डिफ़ॉल्ट आर्किटेक्चर हैं और ज्यादातर मामलों में यह तय करने का एक विश्वसनीय तरीका होना चाहिए कि आपका XLL किस आर्किटेक्चर के लिए बनाया जाए। निश्चित रूप से फिशिंग अभियान के हिस्से के रूप में उपयोग की जाने वाली वितरण विधि और प्रीटेक्स्टिंग के आधार पर, दोनों संस्करण प्रदान करना और पीड़ित पर अपने सिस्टम के लिए उपयुक्त संस्करण का चयन करने का भरोसा करना संभव है।
इस शोध के दौरान बनाया गया XLL पेलोड edparcell द्वारा इस प्रोजेक्ट पर आधारित था। उनके रिपॉजिटरी में विज़ुअल स्टूडियो में XLL के साथ शुरुआत करने के अच्छे निर्देश हैं, और मैंने एक दुर्भावनापूर्ण XLL फ़ाइल विकसित करने के लिए उनके कोड को एक प्रारंभिक बिंदु के रूप में उपयोग किया।
उनके रिपॉजिटरी से एक उल्लेखनीय विचलन यह है कि यदि आप अपना स्वयं का XLL प्रोजेक्ट बनाना चाहते हैं, तो आपको नवीनतम Excel SDK डाउनलोड करना होगा और फिर पहले से जुड़े रिपो में दिए गए निर्देशों का पालन करना होगा, README में उल्लिखित SDK के 2010 संस्करण के बजाय इस संस्करण का उपयोग करते हुए।
UDA के संदर्भ में पेलोड का वितरण एक गंभीर विचार है। दो प्राथमिक विधियाँ हैं जिन पर हम ध्यान केंद्रित करेंगे:
या तो एक फ़ाइल संलग्न करके या किसी वेबसाइट के लिंक को शामिल करके जहां से फ़ाइल डाउनलोड की जा सकती है, ईमेल UDA प्रक्रिया का एक महत्वपूर्ण हिस्सा है। पिछले कुछ वर्षों में कई संगठनों (और ईमेल प्रदाताओं) ने उपयोगकर्ताओं और संगठनों को दुर्भावनापूर्ण अटैचमेंट से बचाने के लिए नियमों को परिपक्व और लागू किया है। परिणाम भिन्न हो सकते हैं, लेकिन संगठनों के पास अब यह क्षमता है:
किसी संगठन के ईमेल नियमों को फ़ज़ करना एक जुड़ाव का एक महत्वपूर्ण हिस्सा हो सकता है, हालांकि हमेशा सावधानी बरतनी चाहिए ताकि यह संकेत न दिया जाए कि रेड टीम ऑपरेशन चल रहा है और सक्रिय रूप से जानकारी एकत्र की जा रही है।
इस लेख के प्रयोजनों के लिए, यह मान लिया जाएगा कि लक्ष्य संगठन में मजबूत ईमेल अटैचमेंट नियम हैं जो XLL पेलोड की डिलीवरी को रोकते हैं। हम पिवट करेंगे और वेब वितरण को देखेंगे।
इस हमले वेक्टर में ईमेल का अभी भी उपयोग किया जाएगा, हालांकि अटैचमेंट भेजने के बजाय इसका उपयोग किसी वेबसाइट के लिंक भेजने के लिए किया जाएगा। अनुमत फ़ाइल डाउनलोड प्रकारों को नियंत्रित करने वाले वेब प्रॉक्सी नियम और नेटवर्क शमन ईमेल अटैचमेंट के संबंध में लागू किए गए नियमों से भिन्न हो सकते हैं। इस लेख के प्रयोजनों के लिए, यह मान लिया गया है कि संगठन वेब से एक्ज़ीक्यूटेबल फ़ाइलों (MZ हेडर) के डाउनलोड को रोकता है। ऐसी स्थिति में, पैकर/कंटेनर का पता लगाना सार्थक है।
मूल विचार यह है कि हम अपने एक्ज़ीक्यूटेबल को किसी अन्य फ़ाइल प्रकार के अंदर रखकर संगठन की नीतियों को बायपास कर सकते हैं। यहां एक प्रमुख विचार फ़ाइल प्रकार के लिए मूल समर्थन है; उदाहरण के लिए, 7Z फ़ाइलों को Windows द्वारा तृतीय-पक्ष सॉफ़्टवेयर स्थापित किए बिना नहीं खोला जा सकता, इसलिए वे एक अच्छा विकल्प नहीं हैं। ZIP, ISO, और IMG जैसे प्रारूप आकर्षक विकल्प हैं क्योंकि वे मूल रूप से Windows द्वारा समर्थित हैं, और एक अतिरिक्त लाभ के रूप में, वे पीड़ित के लिए बहुत कम अतिरिक्त कदम जोड़ते हैं।