
जावास्क्रिप्ट मैलवेयर का अध्ययन करने के लिए एक उपकरण।
दुर्भावनापूर्ण जावास्क्रिप्ट का विश्लेषण करने के लिए एक उपकरण।
npm से बस box-js इंस्टॉल करें:
npm install box-js --global
box-js निम्न रूप में भी उपलब्ध है:
- Cuckoo मॉड्यूल के रूप में (देखें
integrationsनिर्देशिका और Nwinternights/Cuckoo_Boxjs);- Dockerfile के रूप में (देखें
integrations/README.md);- सुरक्षा पेशेवरों के लिए डिस्ट्रोस में पैकेज के रूप में (REMnux, BlackArch);
- ओपन सोर्स एप्लिकेशन के भाग के रूप में (Intel Owl);
- वाणिज्यिक तृतीय-पक्ष सेवाओं के भाग के रूप में (any.run)।
मान लीजिए कि आपके पास sample.js नामक एक नमूना है: इसका विश्लेषण करने के लिए, बस चलाएँ
box-js sample.js
संभवतः आप किसी भी पेलोड को डाउनलोड भी करना चाहेंगे; डाउनलोड सक्षम करने के लिए --download फ़्लैग का उपयोग करें। अन्यथा, इंजन 404 त्रुटि का अनुकरण करेगा, ताकि स्क्रिप्ट को यह सोचने में धोखा दिया जाए कि वितरण साइट डाउन है और किसी भी फ़ॉलबैक साइट से संपर्क करे।
Box.js Windows JScript वातावरण का अनुकरण करेगा, कंसोल पर अनुकरण का सारांश प्रिंट करेगा, और sample.js.results नामक एक फ़ोल्डर बनाएगा (यदि यह पहले से मौजूद है, तो यह sample.js.1.results और इसी तरह बनाएगा)। इस फ़ोल्डर में शामिल होगा:
analysis.log, विश्लेषण का एक लॉग जैसा कि स्क्रीन पर मुद्रित हुआ था;snippets.json, नमूने द्वारा निष्पादित कोड के टुकड़ों की एक सूची (जावास्क्रिप्ट, शेल कमांड, आदि);urls.json, संपर्क किए गए URL की एक सूची;active_urls.json, URL की एक सूची जो सक्रिय मैलवेयर छोड़ने लगते हैं;resources.json, ADODB स्ट्रीम (अर्थात फ़ाइलें जो स्क्रिप्ट ने डिस्क पर लिखी थीं) फ़ाइल प्रकारों और हैश के साथ;IOC.json, IOC (Indicators of Compromise) के रूप में पहचाने गए व्यवहारों की एक सूची। इनमें रजिस्ट्री एक्सेस, लिखी गई फ़ाइलें, HTTP अनुरोध आदि शामिल हैं।आप इनका स्वयं विश्लेषण कर सकते हैं, या आप इन्हें स्वचालित रूप से Malwr, VirusTotal या Cuckoo सैंडबॉक्स में सबमिट कर सकते हैं: अधिक जानकारी के लिए box-export --help चलाएँ।
अधिक अलगाव के लिए, विश्लेषण को अस्थायी Docker कंटेनर में चलाने की अनुशंसा की जाती है। अधिक जानकारी के लिए
integrations/README.mdदेखें।
यदि आप विश्लेषण को स्वचालित करना चाहते हैं, तो आप रिटर्न कोड का उपयोग कर सकते हैं -
integrations/README.mdमें दस्तावेजित - विभिन्न प्रकार की त्रुटियों के बीच अंतर करने के लिए।
git से box-js रिपॉजिटरी में एक boilerplate.js फ़ाइल शामिल है। यह फ़ाइल document जैसे सामान्य ब्राउज़र ऑब्जेक्ट्स के कुछ स्टबbed संस्करणों को परिभाषित करती है। --prepended-code=DIR/boilerplate.js विकल्प के साथ अपने विश्लेषण को फिर से चलाने का प्रयास करें, जहाँ DIR क्लोन किए गए box-js रिपॉजिटरी की निर्देशिका है या --prepended-code=default के साथ। --prepended-code विकल्प box-js को बताता है कि दी गई फ़ाइल में जावास्क्रिप्ट को विश्लेषण किए जा रहे नमूने में prepend करे।
ध्यान दें कि आप boilerplate.js कॉपी कर सकते हैं और आवश्यकतानुसार अपने स्वयं के स्टबbed क्लास, ऑब्जेक्ट आदि जोड़ सकते हैं। डिफ़ॉल्ट box-js boilerplate.js फ़ाइल का पूर्ण पथ प्रिंट करने के लिए --prepended-code=show-default कमांड लाइन विकल्प का उपयोग करें।
जबकि box.js का उपयोग आमतौर पर एकल फ़ाइलों पर किया जाता है, यह बैच विश्लेषण भी चला सकता है। आप विश्लेषण करने के लिए फ़ाइलों या फ़ोल्डरों की एक सूची पास कर सकते हैं:
box-js sample1.js sample2.js /var/data/mySamples ...
डिफ़ॉल्ट रूप से box.js नमूनों को समानांतर में संसाधित करेगा, प्रति कोर एक विश्लेषण चलाएगा। आप --threads के लिए एक मान निर्दिष्ट करके एक अलग सेटिंग का उपयोग कर सकते हैं: विशेष रूप से, 0 सीमा हटा देगा, जिससे box-js जितना संभव हो उतने विश्लेषण थ्रेड उत्पन्न करेगा और बहुत तेज़ विश्लेषण के परिणामस्वरूप लेकिन संभवतः सिस्टम को ओवरलोड करेगा (ध्यान दें कि विश्लेषण आमतौर पर CPU-बाउंड होते हैं, RAM-बाउंड नहीं)।
आप केवल प्रगति जानकारी प्रदर्शित करने और विश्लेषण-संबंधी संदेशों को शांत करने के लिए --loglevel=warn का उपयोग कर सकते हैं।
विश्लेषण पूरा होने के बाद, आप सक्रिय URL इस प्रकार निकाल सकते हैं:
cat ./*.results/active_urls.json | sort | uniq