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
WLT3Serial — Exploit di deserializzazione basato su Java nativo per i listener T3 (e T3S) di WebLogic. | Kitploit
Strumenti/GitHubGitHub/bort-millipede/wlt3serial
Generazione di PayloadAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingArchived
GitHubbort-millipede/wlt3serial

WLT3Serial

Exploit di deserializzazione basato su Java nativo per i listener T3 (e T3S) di WebLogic.

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

WLT3Serial

Exploit di deserializzazione nativo basato su Java per i listener T3 (e T3S) di WebLogic (come descritto QUI). Richiede le dipendenze di terze parti ysoserial e wlthint3client.

Vantaggi/Svantaggi rispetto a JavaUnserializeExploits weblogic.py e loubia

Vantaggi:

  • Gestisce la comunicazione T3/T3S in modo nativo (per la maggior parte dei metodi di sfruttamento) con Java invece di utilizzare catture di pacchetti monouso con script Python, e pertanto dovrebbe funzionare contro tutte le versioni del server WebLogic.
  • Genera i payload degli oggetti direttamente tramite ysoserial durante ogni esecuzione invece di utilizzare payload di oggetti generati una volta sola, e pertanto supporta tutti i tipi di payload di oggetti nell'ultima versione di ysoserial.
  • Analizza (e visualizza se richiesto) tutte le eccezioni sollevate durante l'esecuzione e indica chiaramente il risultato complessivo presunto dell'esecuzione basato su queste eccezioni. Ciò include notificare all'utente se lo sfruttamento sembra avere successo, se la comunicazione abilitata SSL/TLS è fallita o se il server WebLogic di destinazione sembra essere stato corretto contro lo sfruttamento.
  • Offre diversi metodi per la consegna del payload (simili sia a JavaUnserialize weblogic.py/loubia che a ysoserial.exploit.RMIRegistryExploit).

Svantaggi:

  • Dipende da un file .jar (wlthint3client.jar) che non può essere distribuito da me (a causa dei termini di licenza Oracle) e può essere scaricato solo con un nome utente/password Oracle. Per questo motivo, posso distribuire solo un jar di rilascio "thin" che richiede comunque all'utente di ottenere il file wlthint3client.jar richiesto da Oracle.
  • A causa di problemi con il modo in cui la JVM carica le classi durante l'inizializzazione, l'uso di un file jar eseguibile completo all-in-one WLT3Serial (WLT3Serial-full-[VERSION].jar) non è più supportato. Pertanto, WLT3Serial richiede più file (elencati di seguito) per funzionare correttamente con piena funzionalità.

Compilazione

Richiede Oracle Java 7 o 8. Non è stato testato con altri fornitori Java (come OpenJDK o IBM JRE), quindi non prometto supporto per questi. Può probabilmente essere compilato con Java 9 o 10, ma non prometto supporto per questi.

WLT3Serial viene compilato tramite il sistema di automazione della compilazione Gradle. Si dovrebbe usare Gradle 4 per la compilazione, sebbene altre versioni siano state parzialmente testate (vedi sezione Sviluppo).

Dipendenze di terze parti:

  • ysoserial - Per generare payload di deserializzazione di oggetti; è richiesta la versione v0.0.5 o superiore (verrà scaricata automaticamente da Gradle se non fornita in anticipo dall'utente.)
  • wlthint3client - Per gestire le connessioni T3/T3S in modo nativo; deve essere fornito dall'utente (a causa dei termini di licenza Oracle): può essere scaricato (richiede nome utente/password Oracle) come parte del file wls1036_dev.zip (situato in /wlserver/server/lib/wlthint3client.jar) ospitato su questa pagina ("Distribuzione Zip per Mac OSX, Windows e Linux" sotto la sezione "Oracle WebLogic Server 10.3.6").

Procedura:

  1. Clona il repository WLT3Serial. git clone https://github.com/Bort-Millipede/WLT3Serial.git
  2. Apri il terminale e naviga fino al repository clonato.
  3. Esegui il comando seguente per creare la directory di compilazione preliminare: gradle clean prepare
  4. Posiziona il file wlthint3client.jar scaricato nella directory build/libs/.
  5. (OPZIONALE) Se si utilizza una versione preferita di ysoserial (v0.0.5 o superiore), posiziona il file ysoserial.jar nella directory build/libs/.
  6. Per compilare il file jar WLT3Serial (situato in build/libs/WLT3Serial-[VERSION].jar), esegui il comando seguente: gradle build -x test

Utilizzo

Richiede Oracle Java 7 o 8. Non è stato testato con altri fornitori Java (come OpenJDK o IBM JRE), quindi non prometto supporto per questi. Può probabilmente essere utilizzato con Java 9 o 10, ma non prometto supporto per questi.

Se si utilizzano i metodi di sfruttamento Property (predefinito), Bind o WLBind, WLT3Serial deve essere eseguito come segue (nota il valore del parametro java '-cp'):

  • su *nix: java -cp /path/to/ysoserial.jar:/path/to/wlthint3client.jar:/path/to/WLT3Serial-[VERSION].jar bort.millipede.wlt3.WLT3Serial [OPTIONS] REMOTE_HOST REMOTE_PORT PAYLOAD_TYPE PAYLOAD_CMD
  • su Windows: java -cp \path\to\ysoserial.jar;\path\to\wlthint3client.jar;\path\to\WLT3Serial-[VERSION].jar bort.millipede.wlt3.WLT3Serial [OPTIONS] REMOTE_HOST REMOTE_PORT PAYLOAD_TYPE PAYLOAD_CMD

Se si utilizza il metodo di sfruttamento CustomClass, WLT3Serial deve essere eseguito come segue (nota il valore del parametro java '-cp'):

  • su *nix: java -cp /path/to/ysoserial.jar:/path/to/WLT3Serial-[VERSION].jar:/path/to/wlthint3client.jar bort.millipede.wlt3.WLT3Serial [OPTIONS] REMOTE_HOST REMOTE_PORT PAYLOAD_TYPE PAYLOAD_CMD
  • su Windows: java -cp \path\to\ysoserial.jar;\path\to\WLT3Serial-[VERSION].jar;\path\to\wlthint3client.jar bort.millipede.wlt3.WLT3Serial [OPTIONS] REMOTE_HOST REMOTE_PORT PAYLOAD_TYPE PAYLOAD_CMD

Di seguito è riportato il menu di aiuto integrato:

root@kitploit:~
Usage: WLT3Serial [OPTIONS] REMOTE_HOST REMOTE_PORT PAYLOAD_TYPE PAYLOAD_CMD

Options:
	--help				print usage (you're lookin at it)

	--verbose			Verbose output (full thrown exception output; Disabled by default)

	--method=EXPLOIT_METHOD		Exploit Method for delivering generated ysoserial payload
		Exploit Methods:
			Property	Send ysoserial payload as connection environment property value (Default; via javax.naming.Context.lookup(), variation of ysoserial.exploit.RMIRegistryExploit)
			Bind		Send ysoserial payload as object to bind to name (via javax.naming.Context.bind(), similar to ysoserial.exploit.RMIRegistryExploit)
			WLBind		Send ysoserial payload as WebLogic RMI object to bind to name (via weblogic.rmi.Naming.bind(), similar to ysoserial.exploit.RMIRegistryExploit)
			CustomClass	Send ysoserial payload during T3/T3S connection initialization (via custom weblogic.rjvm.ClassTableEntry class, similar to JavaUnserializeExploits weblogic.py)

	--t3s[=PROTOCOL]		Use T3S (transport-encrypted) connection (Disabled by default)
		Protocols:
			TLSv1.2
			TLSv1.1
			TLSv1 (Default)
			SSLv3
			SSLv2 (SSLv2Hello handshake only, then fallback to SSLv3 for communication: this is an Oracle Java limitation, not a WLT3Serial limitation)


Available Payload Types (WebLogic is usually vulnerable to "CommonsCollectionsX" and "JRMPClientX" types):
	(available payloads listed here)

Note sui metodi di sfruttamento

I metodi Property, Bind e WLBind sono tutti molto simili. Ciò al punto che se un sistema target non può essere sfruttato utilizzando uno di questi metodi, probabilmente non può essere sfruttato utilizzando nessuno di essi. Il metodo CustomClass è completamente diverso dagli altri metodi.

Vantaggi/Svantaggi dei metodi Property/Bind/WLBind:

  • Vantaggio: Poiché questi metodi tentano lo sfruttamento tramite classi/metodi WebLogic disponibili dal file wlthint3client.jar, la comunicazione T3/T3S è gestita in modo nativo e viene generato un output significativo (eccezioni, stack trace, ecc.) per aiutare gli utenti a determinare il potenziale e il successo dello sfruttamento.
  • Svantaggio: Al momento della stesura, Oracle ha corretto la maggior parte (se non tutti) i metodi di sfruttamento utilizzando questi metodi.

Vantaggi/Svantaggi del metodo CustomClass:

  • Vantaggio: Poiché questo metodo attacca un classloader WebLogic diverso (che contiene librerie vulnerabili aggiuntive) rispetto ai metodi sopra, sono disponibili nuovi metodi di sfruttamento riusciti.
  • Svantaggio: A causa della natura di come questo metodo consegna i payload ai server target (essenzialmente paralizzando la comunicazione nativa T3/T3S), non è possibile generare un output significativo (eccezioni, stack trace, ecc.) per aiutare gli utenti a determinare il potenziale e il successo dello sfruttamento.

Note sulla connessione T3S

Si consiglia all'utente di eseguire una scansione del servizio target con sslscan o lo script nmap ssl-enum-ciphers per scoprire quali protocolli sono supportati. In questo modo, l'utente può ottimizzare l'opzione --t3s quando esegue WLT3Serial.

Sviluppo

Nel tentativo di migliorare gli exploit JavaUnserializeExploits weblogic.py e loubia, WLT3Serial è stato sviluppato in Java utilizzando le seguenti risorse per connettersi ai servizi T3/T3S di WebLogic:

  • https://docs.oracle.com/cd/E21764_01/web.1111/e13717/wlthint3client.htm
  • https://docs.oracle.com/cd/E13222_01/wls/docs92/jndi/jndi.html
  • https://docs.oracle.com/cd/E11035_01/wls100/javadocs/weblogic/rmi/Naming.html
  • https://gist.github.com/fkrauthan/ac8624466a4dee4fd02f

È stata posta enfasi sulla gestione delle connessioni T3 in modo nativo in Java, nonché su una corretta gestione degli errori per fornire un output dei comandi utile all'utente.

WLT3Serial è stato sviluppato utilizzando le seguenti versioni software:

  • Oracle Java 8 Update 191
  • Oracle Java 7 Update 80 e Oracle Java 7 Update 17
  • Gradle 4.10.2, 3.2 (parzialmente testato), 2.10 (parzialmente testato), 1.4 (parzialmente testato)

I test in tempo reale durante lo sviluppo sono stati condotti contro le seguenti versioni di WebLogic Server:

  • 10.3.6
  • 12.1.3
  • 12.2.1.1 (vulnerabile solo a determinati tipi di payload e metodi di sfruttamento)
  • 12.2.1.2 (vulnerabile solo a determinati tipi di payload e metodi di sfruttamento)
  • 12.2.1.3 (parzialmente vulnerabile)

Dichiarazione di non responsabilità

Gli sviluppatori forniscono il software gratuitamente senza garanzia e non si assumono alcuna responsabilità per eventuali danni causati ai sistemi dall'uso del software. È responsabilità dell'utente rispettare tutte le leggi locali, statali e federali durante l'utilizzo del software.

Copyright

(C) 2017, 2018 Jeffrey Cap (Bort_Millipede)

Scarica lo strumento