
Exploit proof-of-concept per CVE-2024-24824 che dimostra come una primitiva di caricamento arbitrario di classi possa essere trasformata in esecuzione di codice remoto su installazioni Graylog vulnerabili.
Questo repository contiene l'exploit proof-of-concept presentato nel mio talk:
Sfruttare il caricamento arbitrario di classi sulla JVM
Guardalo qui se sei interessato: Youtube
L'exploit ha come bersaglio CVE-2024-24824 (un piccolo refuso nelle slide), una vulnerabilità di caricamento arbitrario di classi che colpisce le versioni di Graylog dalla 2.0.0 alla 5.2.3.
Piuttosto che considerare il caricamento arbitrario di classi come un obiettivo finale, questa ricerca esplora come la primitiva possa essere abusata per scoprire e costruire tecniche di exploitation sempre più potenti analizzando il classpath JVM disponibile.
Data la possibilità di istanziare classi arbitrarie con dati controllati dall'attaccante, la sfida diventa:
Cosa possiamo effettivamente farci?
La risposta dipende interamente da quali classi esistono nel classpath dell'applicazione target.
La ricerca associata ha esplorato come una primitiva di caricamento arbitrario di classi possa essere trasformata in molteplici primitive di exploitation, tra cui:
Questo repository si concentra sull'exploit di esecuzione remota di codice dimostrato durante il talk.
Di seguito è riportato il risultato atteso dell'esecuzione dell'exploit su un'istanza vulnerabile:

exploit/
exploit source
docs/
slides
Il talk associato illustra il processo di exploitation dall'inizio alla fine:
L'obiettivo è dimostrare il ragionamento alla base dello sviluppo di exploit piuttosto che limitarsi a sganciare un exploit.
Questo codice è rilasciato esclusivamente a scopo educativo, per la ricerca sulla sicurezza e per test di sicurezza autorizzati.
Testa solo sistemi di tua proprietà o per i quali hai esplicita autorizzazione a valutare.