
صدفة سطر أوامر تفاعلية لاستغلال Apache Struts CVE-2017-5638. تؤتمت الاستغلال عبر HTTP/HTTPS مع تفاعل صدفي في الوقت الفعلي على الأهداف الضعيفة.
Apache Struts (CVE-2017-5638) Shell
تم تصميم "LowNoiseHG (LNHG) Struts Shell" (المشار إليه فيما يلي باسم "StrutsShell") في مارس 2017 بعد إدراك فائدة عدم الاضطرار إلى استغلال Apache Struts CVE-2017-5638 يدويًا (طلبات HTTP GET يدويًا) وبعد إدراك أن وحدة metasploit الخاصة بهذه الثغرة لم تعمل (على الأقل في حالات الاختبار لدينا).
تتمثل العملية الأساسية لـ StrutsShell في معالجة إدخال سطر الأوامر (shell) للنظام المستهدف (Windows, Linux, إلخ) واستخدام ثغرة Apache Struts لدفعه إلى shell لتنفيذه. ثم يعيد الأداة الإجابة وينتظر الأمر التالي للشل، مما يوفر تجربة تفاعلية خالية من العيوب.
# LowNoiseHG Apache Struts (CVE-2017-5638) Shell v.0.1 (2017/03/17)
# by F4Lc0N - LNHG - USA/Colombia
#
# Thanks to Andrew Weidenhamer (@AWeidenhamer), David Llorens (c4an),
# Tauseef Ghazi (@tghazi), and AJ (@nikamajinkya) for inspiration, ideas
# and debugging/betatesting help.
usage: StrutsShell.py [-h] [-d] [-u URL]
LNHG Apache Struts (CVE-2017-5638) Shell v.0.1
optional arguments:
-h, --help show this help message and exit
-d, --debug show debugging info
-u URL, --url URL Apache Struts vulnerable URL (i.e.:
http://www.example.com/test/login.action)
for inspiration, ideas and debugging/beta-testing help.
كما هو الحال مع معظم البحث والتطوير الذي يتم في LowNoiseHG (LNHG)، تم تصميم وتطوير هذه الأداة فقط من أجل فائدتها وبدون أموال أو وقت مخصص لها. تم إجراء جميع التطويرات في الوقت الشخصي فقط، وسيستمر ذلك عندما تظهر ميزات مثيرة للاهتمام، وإذا توفر الوقت مع الأخذ في الاعتبار المشاريع الأخرى.
الإصدار الحالي يعمل بشكل جيد جدًا، على الرغم من وجود بعض العيوب (الأخطاء) الصغيرة التي تحتاج إلى تصحيح، وبعض الميزات الأساسية التي يمكن تحسينها.
يتم إصدار StrutsShell وجميع التعليمات البرمجية ذات الصلة بموجب ترخيص GPL v3 مفتوح المصدر. الترخيص الكامل مرفق في ملف LICENSE.md.
لتشغيل StrutsShell "مباشرة من git"، مع تمكين جميع الخيارات، ستحتاج إلى:
ملاحظة: تم تطوير واختبار StrutsShell على Kali وUbuntu وDebian. أنا متأكد من يمكنك جعله يعمل على أنظمة أخرى من اختيارك ;)
$ sudo apt-get install -y python git
$ pip install requests
$ cd /opt
$ sudo git clone https://github.com/falcon-lnhg/StrutsShell.git
$ cd StrutsShell
$ ./StrutsShell.py -u http://www.example.com/test/login.action
يمكنك التحقق من القائمة الكاملة للخيارات في أي وقت باستخدام:
$ ./StrutsShell -h
