
أداة تحليل النصوص البرمجية مبنية على Frida.re
frida-wshook هي أداة تحليل ومراقبة تستخدم frida.re لربط (Hook) الدوال الشائعة التي غالباً ما تُستخدم بواسطة ملفات البرامج النصية الضارة التي يتم تشغيلها باستخدام WScript/CScript.
تتقاطع الأداة مع دوال Windows API ولا تطبق دوال بديلة أو وسطاء داخل لغة البرمجة النصية المستهدفة. ويتيح ذلك دعم تحليل عدد من أنواع البرامج النصية المختلفة مثل:
افتراضياً، يتم تشغيل ملفات البرامج النصية باستخدام cscript.exe وتقوم بإخراج:
تحذير!!! تأكد من تشغيل أي برامج نصية ضارة على نظام تحليل مخصص. من الأفضل استخدام جهاز افتراضي مزود بلقطات حتى تتمكن من التراجع إذا تمكن البرنامج النصي من الفرار منك واحتجت إلى إعادة تعيين النظام.
على الرغم من ربط الدوال الشائعة، إلا أن Windows يوفر العديد من واجهات برمجة التطبيقات التي تسمح للمطورين بالتفاعل مع الشبكة ونظام الملفات وتنفيذ الأوامر. لذا فمن الممكن تماماً مواجهة برامج نصية تستخدم واجهات برمجة تطبيقات غير شائعة لهذه الوظائف.
pip install frida
تم اختبار frida-wshook على Windows 10 وWindows 7 ومن المفترض أن تعمل على أي إصدار Windows 7 أو أحدث. على الأنظمة 64 بت، يتم تحميل CScript من الدليل C:\Windows\SysWow64.
قد تعمل على WindowsXP، لكني أشك في أن CScript قد تستخدم استدعاءات API القديمة وبالتالي تتجاوز المراقبة.
يدعم البرنامج النصي عدداً من وسائط سطر الأوامر الاختيارية التي تسمح لك بالتحكم في واجهات برمجة التطبيقات التي يمكن لمضيف البرنامج النصي استدعاءها.
usage: frida-wshook.py [-h] [--debug] [--disable_dns] [--disable_com_init]
[--enable_shell] [--disable_net]
script
frida-wshook.py your friendly WSH Hooker
positional arguments:
script Path to target .js/.vbs file
optional arguments:
-h, --help show this help message and exit
--debug Output debug info
--disable_dns Disable DNS Requests
--disable_com_init Disable COM Object Id Lookup
--enable_shell Enable Shell Commands
--disable_net Disable Network Requests
تحليل برنامج نصي بالمعلمات الافتراضية:
python wshook.py bad.js
تفعيل تصحيح الأخطاء المطول:
python wshook.py --debug bad.js
تفعيل أوامر shell (التنفيذ):
python frida-wshook.py --enable_shell bad.vbs
تعطيل WSASend:
python frida-wshook.py --disable_net bad.vbs
التحقق من ProgIds التي يستخدمها البرنامج النصي:
python frida-wshook.py --disable_com_init bad.vbs
أي أسئلة أو تعليقات أو طلبات، يمكنك العثور علينا على تويتر: @seanmw أو @herrcore