
व्यावहारिक Windows मैलवेयर डेवलपमेंट कोर्स: API हैशिंग, DLL साइडलोडिंग, शेलकोड एग्ज़ीक्यूशन, PE मैनिपुलेशन, पेलोड होस्टिंग, और डिलीवरी लैब्स।
Desktop development with C++ वर्कलोड चुनेंइसके अतिरिक्त (वैकल्पिक), अधिक संपूर्ण रिवर्सिंग अनुभव के लिए, सिंबल सेटअप करें:
setx _NT_SYMBOL_PATH c:\Symbols;srv*c:\Symbols*https://msdl.microsoft.com/download/symbols
mkdir \symbols
Visual Studio के भीतर PMD.sln खोलें।
setup प्रोजेक्ट चुनें, और सुनिश्चित करें कि आप:
a. प्रोजेक्ट कंपाइल कर सकते हैं
b. DebugView++ के भीतर डिबग प्रिंट स्टेटमेंट देख सकते हैं।
IAT एंट्रीज़ और अन्य PE गुणों को बदलने के लिए template प्रोजेक्ट के कंपाइलर और लिंकर फ़्लैग अपडेट करें।
a. डायनेमिक API रिज़ॉल्यूशन और MSDN दस्तावेज़ों के साथ सहज हो जाएं।
b. क्या कोई अन्य गुण सामने आते हैं? यदि आप बाइनरी पर Strings.exe चलाते हैं, तो क्या कोई स्ट्रिंग्स उभरकर सामने आती हैं?
c. क्या आप उन्हें हटा/अपडेट कर सकते हैं?
अभ्यास पूरा करने के लिए अपनी पसंद का कोई भी टूल उपयोग करें (जैसे dumpbin/PE Bear)। scripts\props.py के अंतर्गत pefile के चारों ओर एक रैपर प्रदान किया गया है (सुनिश्चित करें कि आप आवश्यकताएँ इंस्टॉल करें)।
VXUG से कुछ मैलवेयर नमूने डाउनलोड करें।
a. बेनाइन (हानिरहित) और मैलिशस (दुर्भावनापूर्ण) एक्ज़ीक्यूटेबल्स के बीच मुख्य अंतर क्या हैं?
b. हमारे बाइनरी और बेनाइन एक्ज़ीक्यूटेबल्स के बीच मुख्य अंतर क्या हैं?
वर्तमान में उपयोग किया जाने वाला API हैशिंग एल्गोरिदम fnv1a है।
solution प्रोजेक्ट खोलें और API हैशिंग फ्रेमवर्क का उपयोग करके MessageBoxA को कॉल करें।Cisco Webex डाउनलोड करें (https://www.webex.com/downloads.html)
CiscoCollabHost खोजें और देखें कि कौन-सी DLL लोड होती हैं
Ghidra में CiscoCollabHost खोलें और साइडलोडिंग से कोड निष्पादन प्राप्त करने के विभिन्न तरीकों की पहचान करें
अपने लक्षित बाइनरी को साइडलोड करने के लिए dll_template को संपादित करें। सत्यापित करें कि आप DebugView++ में डिबग स्ट्रिंग देख सकते हैं।
लक्षित DLL से मेल खाने के लिए dll_template.dll का LastWriteTime और CreationTime अपडेट करें।
यूटिलिटी प्रोजेक्ट को कंपाइल करें और चलाएं।
a. इसके अतिरिक्त, इसे अपने होस्ट सिस्टम पर चलाने पर विचार करें।
पहचानी गई DLL को x64/{Debug,Release} निर्देशिका में कॉपी करें और लोडर कोड अपडेट करें।
API हैशिंग फ्रेमवर्क के साथ एक अलग फ़ंक्शन का उपयोग करके अपने शेलकोड को निष्पादित करने के लिए execute_sc अपडेट करें।
किसी क्लाउड स्टोरेज प्रदाता (जैसे AWS/CloudFlare) के लिए साइन अप करें
अपने पेलोड को पैकेज करें और उसे अपलोड करें
a. इसके अतिरिक्त, डाउनलोड एक्सेस को सीमित/ऑडिट करने के तरीकों की जांच करें
अपने VM का स्नैपशॉट लें
बेस VM पर वापस जाएं और अपना पूरा "डिलीवरी" परिदृश्य चलाएं
.github\workflows\build.yml को अपडेट करें ताकि आप चाहें तो अतिरिक्त प्री/पोस्ट प्रोसेसिंग कर सकें। यहाँ कुछ विचार हैं:
props.py चलाएं और आउटपुट को सत्यापित/शामिल करेंLastWriteTime और CreationTime को अपडेट करने को स्वचालित करें