
أداة لدراسة البرامج الضارة الخاصة بـ JavaScript.
أداة لتحليل جافاسكريبت الخبيثة.
ما عليك سوى تثبيت box-js من npm:
npm install box-js --global
يتوفر box-js أيضًا:
- كوحدة Cuckoo (انظر دليل
integrationsو Nwinternights/Cuckoo_Boxjs);- كملف Docker (انظر
integrations/README.md);- كحزمة في توزيعات لمحترفي الأمن (REMnux, BlackArch);
- كجزء من تطبيقات مفتوحة المصدر (Intel Owl);
- كجزء من خدمات جهات خارجية تجارية (any.run).
لنفترض أن لديك عينة تسمى sample.js: لتحليلها، قم بتشغيل الأمر التالي
box-js sample.js
من المحتمل أن ترغب أيضًا في تنزيل أي حمولات؛ استخدم العلم --download لتمكين التنزيل. وإلا، سيحاكي المحرك خطأ 404، بحيث يتم خداع السكريبت ليعتقد أن موقع التوزيع معطل ويتصل بأي مواقع بديلة.
سيقوم Box.js بمحاكاة بيئة JScript في ويندوز، وطباعة ملخص للمحاكاة على وحدة التحكم، وإنشاء مجلد باسم sample.js.results (إذا كان موجودًا بالفعل، سينشئ sample.js.1.results وهكذا). سيحتوي هذا المجلد على:
analysis.log، سجل للتحليل كما طُبع على الشاشة؛snippets.json، قائمة بأجزاء الكود التي نفذتها العينة (جافاسكريبت، أوامر شيل، إلخ)؛urls.json، قائمة عناوين URL التي تم الاتصال بها؛active_urls.json، قائمة عناوين URL التي يبدو أنها تسقط برامج ضارة نشطة؛resources.json، تدفقات ADODB (أي الملفات التي كتبها السكريبت على القرص) مع أنواع الملفات وهاشاتها؛IOC.json، قائمة بالسلوكيات التي تم تحديدها كمؤشرات اختراق (IOCs). تتضمن هذه الوصول إلى السجل، والملفات المكتوبة، وطلبات HTTP، وما إلى ذلك.يمكنك تحليل هذه بنفسك، أو يمكنك إرسالها تلقائيًا إلى Malwr أو VirusTotal أو صندوق رمل Cuckoo: لمزيد من المعلومات، قم بتشغيل box-export --help.
لمزيد من العزل، يُنصح بتشغيل التحليل في حاوية Docker مؤقتة. راجع
integrations/README.mdلمزيد من المعلومات.
إذا كنت ترغب في أتمتة التحليل، يمكنك استخدام رموز الإرجاع - الموثقة في
integrations/README.md- للتمييز بين أنواع الأخطاء المختلفة.
يتضمن مستودع box-js من git ملف boilerplate.js. يعرّف هذا الملف بعض الإصدارات الوهمية لكائنات المتصفح الشائعة مثل document. حاول إعادة تشغيل التحليل باستخدام الخيار --prepended-code=DIR/boilerplate.js، حيث DIR هو دليل مستودع box-js المستنسخ أو باستخدام --prepended-code=default. يخبر الخيار --prepended-code box-js بإضافة الجافاسكريبت في الملف المحدد قبل العينة التي يتم تحليلها.
لاحظ أنه يمكنك نسخ boilerplate.js وإضافة الفئات والكائنات الوهمية الخاصة بك حسب الحاجة. استخدم خيار سطر الأوامر --prepended-code=show-default لطباعة المسار الكامل لملف boilerplate.js الافتراضي الخاص بـ box-js.
بينما يُستخدم box.js عادةً على ملفات فردية، يمكنه أيضًا تشغيل تحليلات دفعية. يمكنك ببساطة تمرير قائمة من الملفات أو المجلدات لتحليلها:
box-js sample1.js sample2.js /var/data/mySamples ...
افتراضيًا، سيقوم box.js بمعالجة العينات بالتوازي، حيث يقوم بتشغيل تحليل واحد لكل نواة. يمكنك استخدام إعداد مختلف عن طريق تحديد قيمة لـ --threads: على وجه الخصوص، ستزيل القيمة 0 الحد، مما يجعل box-js يولد أكبر عدد ممكن من خيوط التحليل مما يؤدي إلى تحليل سريع جدًا ولكن قد يؤدي إلى تحميل زائد على النظام (لاحظ أن التحليلات عادةً ما تكون مقيدة بوحدة المعالجة المركزية، وليس بالذاكرة).
يمكنك استخدام --loglevel=warn لإسكات الرسائل المتعلقة بالتحليل وعرض معلومات التقدم فقط.
بعد انتهاء التحليل، يمكنك استخراج عناوين URL النشطة على النحو التالي:
cat ./*.results/active_urls.json | sort | uniq