
हार्डवेयर सैंडबॉक्स टूलकिट

हार्डवेयर सैंडबॉक्स टूलकिट
मैलवेयर अक्सर एंटी-VM तकनीकों का उपयोग करता है, जिनका पता लगाना और उनका प्रतिकार करना अलग-अलग कठिनाई स्तरों का हो सकता है। हालांकि हमारी प्रयोगशालाओं में एंटी-डिटेक्शन उपायों को एकीकृत करना एक सामान्य विकल्प है, हमें एक वास्तविक हार्डवेयर सैंडबॉक्स का उपयोग करने पर भी विचार करना चाहिए, भले ही यह अजीब लगे। शानदार PCILeech प्रोजेक्ट और DMA हार्डवेयर एक्सेस का लाभ उठाकर, XenoboxX विश्लेषण कार्यों के लिए टूलों का एक सूट प्रदान करता है, जैसे गतिशील रूप से आवंटित मेमोरी को डंप करना और IoC की खोज करना। ये टूल हमें DMA के माध्यम से कर्नेल स्तर पर कोड इंजेक्ट करने की अनुमति देते हैं, जिससे पहचान काफी अधिक चुनौतीपूर्ण हो जाती है और विश्लेषण को एक नया परिप्रेक्ष्य मिलता है।
XenoboxX वर्तमान में 64 बिट्स विंडोज़ पर केंद्रित है, लेकिन भविष्य में इसे अन्य प्लेटफार्मों के लिए भी विस्तारित किया जा सकता है।
इस टूल को DEFCON 32 डेमो लैब्स में प्रस्तुत किया गया था: यहाँ
जाहिर है, हम भौतिक वातावरण की बात कर रहे हैं, इसलिए:
DMA बोर्ड को लक्ष्य पीसी पर स्थापित करें। बोर्ड को अपने होस्ट पीसी से कनेक्ट करें
PCILeech को अपने होस्ट पीसी पर स्थापित करें: यदि आप विकास या संशोधन नहीं करने जा रहे हैं, तो आप रिलीज़ पेज में उपलब्ध बाइनरीज़ स्थापित कर सकते हैं (मुझे लगता है यह सबसे सामान्य विकल्प है)
XenoboxX को अपने होस्ट पीसी पर स्थापित करें: पिछले बिंदु की तरह, आप केवल प्री-कंपाइल बाइनरीज़ (pcileech फ़ोल्डर में) चाह सकते हैं
PCILeech मॉड्यूल इंजेक्ट करें:
./pcileech kmdload -kmd WIN10_X64_3
यह एक मेमोरी पता लौटाएगा जिसका उपयोग आप शेलकोड चलाने के लिए करेंगे (उदा. 0x7ffff000)
XenoboxX शेलकोड चलाएँ:
./pcileech wx64_dumpalloc -0 0xbac -s "\\??\C:\temp\test" -kmd 0x7ffff000
वर्तमान में XenoboxX में 3 wx64 शेलकोड हैं:
wx64_dumpalloc: एक विशिष्ट PID से अटैच होता है और प्रक्रिया द्वारा किए गए सभी मेमोरी आवंटन को डंप करता है। यदि मौजूदा मेमोरी के सुरक्षा फ्लैग बदल दिए जाते हैं, तो उस क्षेत्र को फिर से डंप किया जाता है (कभी-कभी मैलवेयर निरीक्षण से बचने के लिए सुरक्षाएँ बदलता है)wx64_memgrep: एक PID द्वारा आवंटित मेमोरी में उपयोगकर्ता-परिभाषित स्ट्रिंग्स की खोज करता है। इसे एक विशिष्ट समय के लिए प्रक्रिया से जोड़ा जा सकता है।wx64_strings: एक PID द्वारा आवंटित मेमोरी में सभी स्ट्रिंग्स की खोज करता है। इसे एक विशिष्ट समय के लिए प्रक्रिया से जोड़ा जा सकता है।नोट: एक प्रायोगिक दृष्टिकोण के रूप में, Xenobox वर्तमान में हुकिंग से पूरी तरह बचता है, और सभी पहचान पोलिंग के माध्यम से की जाती है। जाहिर है, इसके कुछ नुकसान हैं, लेकिन यह जितना संभव हो सके गुप्त रहने के लिए एक डिज़ाइन विकल्प है।
उदाहरण:
./pcileech wx64_dumpalloc -0 0xbac -s "\\??\C:\temp\test" -kmd 0x7ffff000
-0 हेक्स प्रारूप में अटैच होने के लिए PID (आवश्यक)-1 प्रक्रिया निगरानी समय। डिफ़ॉल्ट 0x20 पर सेट है-s आउटपुट फ़ोल्डर, जहाँ मेमोरी डंप और लॉग सहेजे जाएंगेउदाहरण:
./pcileech wx64_memgrep -0 0x564 -1 0x80 -s "Hello, 123" -2 1 -kmd 0x7ffff000
-0 हेक्स प्रारूप में अटैच होने के लिए PID (आवश्यक)-1 प्रक्रिया निगरानी समय। डिफ़ॉल्ट 0x20 पर सेट है-2 ASCII (0x0) या WIDE (0x1) स्ट्रिंग खोजें। डिफ़ॉल्ट 0x0 पर सेट है-3 केस सेंसिटिव (0x1) या इनसेंसिटिव (0x0) खोज। केस सेंसिटिव तेज़ होता है। डिफ़ॉल्ट 0x0 पर सेट है-4 केवल Writable मेमोरी पेज (0x0) या सभी (0x01) खोजें। डिफ़ॉल्ट 0x0 पर सेट है-s खोज स्ट्रिंग (डबल कोट्स में)उदाहरण:
./pcileech wx64_strings -0 0x19e0 -1 0x100 -3 0x15 -kmd 0x7ffff000
-0 हेक्स प्रारूप में अटैच होने के लिए PID (आवश्यक)-1 प्रक्रिया निगरानी समय। डिफ़ॉल्ट 0x20 पर सेट है-2 ASCII (0x0) या WIDE (0x1) स्ट्रिंग खोजें। डिफ़ॉल्ट 0x0 पर सेट है-3 स्ट्रिंग न्यूनतम लंबाई। डिफ़ॉल्ट 0xA पर सेट है-4 केवल Writable मेमोरी पेज (0x0) या सभी (0x01) खोजें। डिफ़ॉल्ट 0x0 पर सेट हैयदि आप XenoboxX स्क्रिप्ट्स को संशोधित या पुनर्निर्मित करना चाहते हैं, तो याद रखें कि आपको PCILeech रिपॉजिटरी से कुछ फ़ाइलों की आवश्यकता होगी, विशेष रूप से:
wx64_common.hwx64_common.cshellcode64.exeप्रत्येक .c फ़ाइल की टिप्पणियों में, आपको संकलन निर्देश मिलेंगे। उदाहरण के रूप में:
cl.exe /O1 /Os /Oy /FD /MT /GS- /J /GR- /FAcs /W4 /Zl /c /TC /kernel wx64_common.c
cl.exe /O1 /Os /Oy /FD /MT /GS- /J /GR- /FAcs /W4 /Zl /c /TC /kernel wx64_dumpalloc.c
ml64.exe wx64_common_a.asm /Fewx64_dumpalloc.exe /link /NODEFAULTLIB /RELEASE /MACHINE:X64 /entry:main wx64_dumpalloc.obj wx64_common.obj
shellcode64.exe -o wx64_dumpalloc.exe "DUMP ALLOCATED MEMORY \n===============================================================\nREQUIRED OPTIONS: \n -0 : Process PID to open. Example '-0 0x0fe0'. \nOPTIONAL OPTIONS: \n -1 : Process monitoring timeout Default: 0x20. Example: '-1 0x100'. \n -s : Specify output folder/file for dumps. Example: \"\\??\C:\temp\test\"\n===== RESULT OF DUMPALLOC OPERATION ======================%s\nNTSTATUS : 0x%08X \n===============================================================\n"
XenoboxX एक निश्चित विश्लेषण उपकरण नहीं है: यह एक बहुत ही विशिष्ट दृष्टिकोण है जिसे मैं बहुत विशिष्ट विश्लेषण के लिए उपयोगी पाता हूँ: मुझे नहीं लगता कि यह उपकरण आपके वर्तमान कार्यप्रवाह को बदलने जा रहा है, लेकिन हो सकता है कि आप इसे उस विशिष्ट खतरनाक मैलवेयर के लिए उपयोगी पाएँ।
योगदान और सुझावों का स्वागत है। कृपया यदि आपके कोई प्रश्न हों तो एक issue खोलें, या यदि आप योगदान देना चाहते हैं तो pull request खोलें। धन्यवाद!