
Plugin tutto-in-uno per Burp Suite per il rilevamento e lo sfruttamento delle vulnerabilità di deserializzazione Java
Java Deserialization Scanner è un plugin per Burp Suite progettato per rilevare e sfruttare le vulnerabilità di deserializzazione Java. È stato scritto da Federico Dotta, Principal Security Analyst presso HN Security.
Il plugin è composto da tre diversi componenti:
Un breve articolo contenente una mini guida su come utilizzare i vari componenti del plugin è disponibile al seguente URL: https://web.archive.org/web/20201130104913/https://techblog.mediaservice.net/2017/05/reliable-discovery-and-exploitation-of-java-deserialization-vulnerabilities/
Java Deserialization Scanner utilizza payload personalizzati generati con una versione modificata di "ysoserial", strumento creato da frohoff e gebl, per rilevare le vulnerabilità di deserializzazione Java. Lo strumento originale (https://github.com/frohoff/ysoserial) genera payload per l'esecuzione di comandi sul sistema, utilizzando la funzione Runtime.exec. Di solito, tuttavia, non è possibile vedere l'output del comando e di conseguenza non è semplice scrivere uno scanner basato su questo tipo di funzione. Per questo motivo, viene utilizzata una versione modificata di ysoserial per generare diversi tipi di payload, utili per il rilevamento del problema piuttosto che per lo sfruttamento:
Attualmente, i controlli passivi di Java Deserialization Scanner segnalano la presenza di oggetti Java serializzati nelle richieste HTTP e i controlli attivi scansionano attivamente la presenza di funzioni di deserializzazione deboli in combinazione con la presenza delle seguenti librerie deboli:
Inoltre, è stato introdotto il payload URLSNDS per rilevare attivamente la deserializzazione Java senza alcuna libreria vulnerabile. Se il plugin trova solo il problema URLDNS (e nessuna libreria vulnerabile), l'attaccante può probabilmente eseguire attacchi DoS, ma per ottenere l'esecuzione remota di codice è necessario uno sforzo maggiore. Fare riferimento a questo link per maggiori dettagli.
Tutti i componenti del plugin supportano le seguenti codifiche:
Nella cartella test sono presenti alcune semplici applicazioni server Java che possono essere utilizzate per testare il plugin. Ogni applicazione utilizza una diversa libreria Java vulnerabile.
Il plugin offre una scheda dedicata per avviare il rilevamento con i payload sleep e DNS su punti di inserimento personalizzati, al fine di verificare le vulnerabilità di deserializzazione Java in situazioni particolari in cui strani punti di ingresso non consentono il rilevamento con lo scanner. I risultati del tester manuale possono essere inseriti tra i risultati dello scanner di Burp Suite.
Il tester manuale offre un metodo di rilevamento aggiuntivo: il rilevamento CPU. Il metodo di rilevamento CPU si basa sul lavoro SerialDOS di Wouter Coekaerts (https://gist.github.com/coekie/a27cc406fc9f3dc7a70d) ed è in grado di rilevare problemi di deserializzazione senza la presenza di alcuna libreria vulnerabile, utilizzando un oggetto che impiega molti cicli di CPU per l'attività di deserializzazione e controllando il tempo di risposta. Il metodo di rilevamento CPU non è incluso di default nei controlli dello scan attivo, perché deve essere usato con cautela: l'invio di un numero elevato di payload SerialDOS “leggeri” potrebbe comunque causare problemi su sistemi vecchi o molto caricati.
Dopo aver trovato una vulnerabilità di deserializzazione Java, è possibile sfruttare attivamente il problema con la scheda dedicata “Exploiting”. La scheda “Exploiting” offre un'interfaccia comoda per sfruttare le vulnerabilità di deserializzazione. Questa scheda utilizza lo strumento ysoserial per generare vettori di sfruttamento e include il payload generato in una richiesta HTTP. ysoserial accetta come argomento una libreria vulnerabile e un comando e genera un oggetto serializzato in forma binaria che può essere inviato all'applicazione vulnerabile per eseguire il comando sul sistema target (ovviamente se l'applicazione target è vulnerabile). La scheda Exploiting supporta gli stessi formati di codifica delle sezioni di rilevamento del plugin.

Per migliorare questa estensione, segnala qualsiasi problema riscontrato nel plugin. Inoltre, se vuoi, segnalami qualsiasi libreria Java divulgata utile per lo sfruttamento di questa debolezza e, se avrò tempo, aggiungerò un controllo attivo per essa nel mio plugin.
Questo software è stato creato esclusivamente per scopi di ricerca accademica e per lo sviluppo di tecniche difensive efficaci, e non è inteso per essere utilizzato per attaccare sistemi se non esplicitamente autorizzati. I maintainer del progetto non sono responsabili dell'uso improprio del software. Usalo in modo responsabile.
Copyright (c) 2020 Java Deserialization Scanner
Con la presente si concede gratuitamente a ogni persona che ottenga una copia di questo software e dei relativi file di documentazione (il "Software"), il diritto di utilizzare il Software senza restrizioni, inclusi, senza limitazione, i diritti di utilizzare, copiare, modificare, fondere, pubblicare, distribuire, concedere in sublicenza e/o vendere copie del Software, e di permettere alle persone a cui il Software è fornito di fare altrettanto, alle seguenti condizioni:
La presente nota sul copyright e questa nota di permesso devono essere incluse in tutte le copie o parti sostanziali del Software.
IL SOFTWARE È FORNITO "COSÌ COM'È", SENZA GARANZIA DI ALCUN TIPO, ESPRESSA O IMPLICITA, INCLUSI MA NON LIMITATI ALLE GARANZIE DI COMMERCIABILITÀ, IDONEITÀ PER UNO SCOPO PARTICOLARE E NON VIOLAZIONE. IN NESSUN CASO GLI AUTORI O I TITOLARI DEL COPYRIGHT SARANNO RESPONSABILI PER QUALSIASI RECLAMO, DANNO O ALTRA RESPONSABILITÀ, SIA IN UN'AZIONE DI CONTRATTO, ILLECITO O ALTRO, DERIVANTE DA, IN RELAZIONE A O IN CONNESSIONE CON IL SOFTWARE O L'USO O ALTRE OPERAZIONI NEL SOFTWARE.