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
poc-CVE-2024-23897 — CVE-2024-23897: Lettura arbitraria di file di Jenkins che porta a RCE | Kitploit
Strumenti/GitHubGitHub/vmc8ll/poc-cve-2024-23897
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebRaccolta InformazioniPenetration TestingRed TeamingSviluppo Payload
GitHubvmc8ll/poc-cve-2024-23897

poc-CVE-2024-23897

CVE-2024-23897: Lettura arbitraria di file di Jenkins che porta a RCE

Vedi Repository
26 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

poc-CVE-2024-23897

CVE-2024-23897: lettura arbitraria di file in Jenkins che porta a RCE 🎯 Prodotti e versioni interessati

root@kitploit:~
Prodotto: Jenkins (server di Continuous Integration/Continuous Delivery)

Versioni: Jenkins 2.441 e precedenti, Jenkins LTS 2.426.2 e precedenti

Corretto in: Jenkins 2.442, Jenkins LTS 2.426.3

📝 Descrizione

CVE-2024-23897 è una vulnerabilità critica in Jenkins che consente ad attaccanti non autenticati di leggere file arbitrari sul filesystem del controller Jenkins. La vulnerabilità esiste perché Jenkins non disabilita una funzionalità del suo parser dei comandi CLI che sostituisce un carattere '@' seguito da un percorso di file con il contenuto del file stesso.

Questa falla può portare all'esecuzione remota di codice (RCE) se combinata con altre tecniche, rendendola particolarmente pericolosa per le organizzazioni che utilizzano Jenkins nelle loro pipeline CI/CD. 🔍 Dettagli della vulnerabilità Causa principale

La vulnerabilità deriva dalla funzione expandAtFiles() nella classe org.kohsuke.args4j.CmdLineParser. Durante l'analisi degli argomenti CLI, se il parser incontra un simbolo '@' seguito da un percorso di file, legge ed espande il contenuto di quel file. Vettore di attacco

Gli attaccanti possono sfruttare questa vulnerabilità tramite l'interfaccia CLI di Jenkins senza autenticazione: bash

java -jar jenkins-cli.jar -s http://target-jenkins-server:8080/ help @/etc/passwd

Analisi tecnica Limitazioni della lettura file

root@kitploit:~
Senza autenticazione: possono essere lette solo le prime 3 righe del file (a seconda del comando CLI)

Con il permesso 'Overall/Read': può essere letto l'intero contenuto del file

File binari: possono essere estratti ma potrebbero essere influenzati da problemi di codifica (Windows-1252 su Windows produce risultati migliori rispetto a UTF-8 su Linux)

Espansione della superficie di attacco

Una volta ottenuta la lettura dei file, gli attaccanti possono passare ad attacchi più gravi:

root@kitploit:~
Estrarre credenziali:

    Leggere /var/jenkins_home/credentials.xml per credenziali criptate

    Leggere /var/jenkins_home/secrets/master.key e hudson.util.Secret per la decrittazione

    Decrittare le credenziali usando la console script di Jenkins: println(Hudson.util.Secret.fromString("{XXX=}").getPlainText())

Forgiare cookie "Remember-me":

    Ottenere accesso amministrativo forgiando cookie di autenticazione

Eseguire codice arbitrario:

    Ottenere RCE tramite vettori Resource Root URL, XSS o CSRF

💥 Impatto Impatto immediato

root@kitploit:~
Riservatezza: divulgazione completa di tutti i file sul server Jenkins (codice sorgente, credenziali, chiavi SSH, token)

Integrità: gli attaccanti possono modificare build, pipeline e configurazioni

Disponibilità: potenziale denial of service o distribuzione di ransomware

Sfruttamento nel mondo reale

Questa vulnerabilità è stata attivamente sfruttata in ambienti reali:

root@kitploit:~
Aggiunta al catalogo CISA Known Exploited Vulnerabilities (KEV)

Utilizzata da gang di ransomware (RansomEXX) per compromettere infrastrutture

Sfruttata dall'attore malintenzionato IntelBroker per rubare repository GitHub e compromettere fornitori di servizi IT

🔧 Rilevamento Indicatori di compromissione

I tentativi di sfruttamento riusciti possono essere rilevati tramite:

Pattern di richieste HTTP: text

POST /cli?remoting=false HTTP/1.1 Content-type: application/octet-stream [binary payload containing @/path/to/file]

Esempi tipici di payload:

root@kitploit:~
@/etc/passwd

@/var/jenkins_home/secrets/initialAdminPassword

@/etc/os-release

Query di rilevamento Splunk text

index=web uri="/cli?remoting=false" http_method=POST http_status=200

🛡️ Mitigazione Fix ufficiale

Aggiornare alle versioni corrette:

root@kitploit:~
Jenkins ≥ 2.442

Jenkins LTS ≥ 2.426.3

Mitigazione temporanea

Se non è possibile applicare subito la patch:

root@kitploit:~
Disabilitare l'accesso CLI di Jenkins

Impostare la proprietà di sistema Java: hudson.cli.CLICommand.allowAtSyntax=false

Limitare l'accesso di rete all'interfaccia di amministrazione di Jenkins

Implementare regole WAF per bloccare le richieste contenenti pattern @/

🔗 Riferimenti

root@kitploit:~
Voce NVD

Jenkins Security Advisory

Catalogo CISA KEV

Ricerca Splunk

Pagina CVE di Tenable 
📦 Compilazione ed esecuzione

bash

Build the exploit

go build -o jenkins-cve-2024-23897 exploit.go

Run the exploit

./jenkins-cve-2024-23897 http://target-jenkins:8080 /etc/passwd

Run with Go directly

go run exploit.go http://target-jenkins:8080 /etc/passwd

🎯 Esempi di utilizzo bash

Read sensitive files

./jenkins-cve-2024-23897 http://jenkins.internal:8080 /etc/passwd ./jenkins-cve-2024-23897 http://localhost:8080 /var/jenkins_home/secrets/initialAdminPassword

Read Windows file (if Jenkins runs on Windows)

./jenkins-cve-2024-23897 http://win-jenkins:8080 C:/Windows/win.ini

⚙️ Come funziona

root@kitploit:~
Inizializzazione della sessione: genera un ID di sessione univoco di 20 byte

Costruzione del payload: crea un payload binario con la struttura help @/path/to/file

Fase di upload: invia il payload all'endpoint CLI di Jenkins

Fase di download: recupera il contenuto del file dalla risposta

Output: mostra il contenuto del file o il messaggio di errore

📊 Caratteristiche

root@kitploit:~
Implementazione in Go puro - Nessuna dipendenza esterna

Multipiattaforma - Funziona su Windows, Linux, macOS

Timeout configurabili - Regolabili per reti lente

Gestione degli errori pulita - Messaggi di errore dettagliati

Binary-safe - Gestisce sia file di testo che binari

⚠️ Note importanti

root@kitploit:~
Solo a scopo educativo - Utilizzare esclusivamente su sistemi di tua proprietà o per cui hai il permesso di test

Letture non autenticate - Senza autenticazione, sono leggibili solo le prime ~3 righe

File binari - Potrebbero essere influenzati da problemi di codifica (usa un target Windows per una migliore estrazione dei binari)
Scarica lo strumento