Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
WLT3Serial — Exploit de désérialisation natif basé sur Java pour les écouteurs T3 (et T3S) de WebLogic. | Kitploit
Outils/GitHubGitHub/bort-millipede/wlt3serial
Génération de PayloadsAnalyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionArchived
GitHubbort-millipede/wlt3serial

WLT3Serial

Exploit de désérialisation natif basé sur Java pour les écouteurs T3 (et T3S) de WebLogic.

Voir le dépôt
3410il y a 6 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

WLT3Serial

Exploit de désérialisation natif en Java pour les écouteurs T3 (et T3S) de WebLogic (tel que décrit ICI). Nécessite les dépendances tierces ysoserial et wlthint3client.

Avantages/Inconvénients par rapport à JavaUnserializeExploits weblogic.py et loubia

Avantages :

  • Gère la communication T3/T3S nativement (pour la plupart des méthodes d'exploitation) avec Java au lieu d'utiliser des captures de paquets ponctuelles avec des scripts Python, et devrait donc fonctionner avec toutes les versions de serveur WebLogic.
  • Génère les charges utiles d'objets directement via ysoserial à chaque exécution au lieu de charges utiles d'objets générées une fois, et prend donc en charge tous les types de charges utiles d'objets de la dernière version de ysoserial.
  • Analyse (et affiche si demandé) toutes les exceptions levées lors de l'exécution, et indique clairement le résultat global présumé de l'exécution basé sur ces exceptions. Cela inclut la notification à l'utilisateur si l'exploitation semble réussie, si la communication SSL/TLS a échoué, ou si le serveur WebLogic cible semble être patché contre l'exploitation.
  • Propose plusieurs méthodes différentes pour la livraison de la charge utile (similaire à la fois à JavaUnserialize weblogic.py/loubia et ysoserial.exploit.RMIRegistryExploit).

Inconvénients :

  • Dépend d'un fichier .jar (wlthint3client.jar) qui ne peut pas être distribué par moi (en raison des conditions de licence Oracle) et ne peut être téléchargé qu'avec un nom d'utilisateur/mot de passe Oracle. Pour cette raison, je ne peux distribuer qu'un fichier jar de version "allégée" qui nécessite toujours que l'utilisateur obtienne le fichier wlthint3client.jar requis auprès d'Oracle.
  • En raison de problèmes liés à la façon dont la JVM charge les classes lors de l'initialisation, l'utilisation d'un fichier jar exécutable tout-en-un WLT3Serial (WLT3Serial-full-[VERSION].jar) n'est plus prise en charge. Par conséquent, WLT3Serial nécessite plusieurs fichiers (décrits ci-dessous) pour fonctionner correctement avec toutes les fonctionnalités.

Construction

Nécessite Oracle Java 7 ou 8. N'a pas été testé avec d'autres fournisseurs Java (tels que OpenJDK ou IBM JRE), donc je ne garantis aucun support pour ceux-ci. Peut probablement être construit avec Java 9 ou 10, mais je ne garantis aucun support pour ceux-ci.

WLT3Serial est construit via le système d'automatisation de construction Gradle. Gradle 4 doit être utilisé pour la construction, bien que d'autres versions aient été partiellement testées (voir la section Développement).

Dépendances tierces :

  • ysoserial - Pour générer des charges utiles de désérialisation d'objets ; Version v0.0.5 ou supérieure requise (sera téléchargée automatiquement par Gradle si elle n'est pas fournie à l'avance par l'utilisateur).
  • wlthint3client - Pour gérer les connexions T3/T3S nativement ; doit être fourni par l'utilisateur (en raison des conditions de licence Oracle) : Peut être téléchargé (nécessite un nom d'utilisateur/mot de passe Oracle) dans le cadre du fichier wls1036_dev.zip (situé dans /wlserver/server/lib/wlthint3client.jar) hébergé sur cette page ("Distribution Zip pour Mac OSX, Windows et Linux" sous la section "Oracle WebLogic Server 10.3.6").

Procédure :

  1. Clonez le dépôt WLT3Serial. git clone https://github.com/Bort-Millipede/WLT3Serial.git
  2. Ouvrez un terminal et naviguez vers le dépôt cloné.
  3. Exécutez la commande suivante pour créer le répertoire de construction préliminaire : gradle clean prepare
  4. Placez le fichier wlthint3client.jar téléchargé dans le répertoire build/libs/.
  5. (OPTIONNEL) Si vous utilisez une version préférée de ysoserial (v0.0.5 ou supérieure), placez le fichier ysoserial.jar dans le répertoire build/libs/.
  6. Pour construire le fichier jar WLT3Serial (situé dans build/libs/WLT3Serial-[VERSION].jar), exécutez la commande suivante : gradle build -x test

Utilisation

Nécessite Oracle Java 7 ou 8. N'a pas été testé avec d'autres fournisseurs Java (tels que OpenJDK ou IBM JRE), donc je ne garantis aucun support pour ceux-ci. Peut probablement être utilisé avec Java 9 ou 10, mais je ne garantis aucun support pour ceux-ci.

Si vous utilisez les méthodes d'exploitation Property (par défaut), Bind ou WLBind, WLT3Serial doit être exécuté comme suit (notez la valeur du paramètre java '-cp') :

  • sur *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
  • sur 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

Si vous utilisez la méthode d'exploitation CustomClass, WLT3Serial doit être exécuté comme suit (notez la valeur du paramètre java '-cp') :

  • sur *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
  • sur 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

Voici le texte du menu d'aide intégré :

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)

Notes sur les méthodes d'exploitation

Les méthodes Property, Bind et WLBind sont toutes très similaires. Au point que si un système cible ne peut pas être exploité en utilisant l'une de ces méthodes, il ne pourra probablement pas être exploité en utilisant aucune d'entre elles. La méthode CustomClass est complètement différente des autres méthodes.

Avantages/Inconvénients des méthodes Property/Bind/WLBind :

  • Avantage : Étant donné que ces méthodes effectuent une tentative d'exploitation via les classes/méthodes WebLogic disponibles dans le fichier wlthint3client.jar, la communication T3/T3S est gérée nativement et une sortie significative (exceptions, traces de pile, etc.) est générée pour aider les utilisateurs à déterminer le potentiel et le succès de l'exploitation.
  • Inconvénient : Au moment de la rédaction, Oracle a patché la plupart (sinon toutes) des modes d'exploitation utilisant ces méthodes.

Avantages/Inconvénients de la méthode CustomClass :

  • Avantage : Étant donné que cette méthode attaque un chargeur de classe WebLogic différent (qui contient des bibliothèques vulnérables supplémentaires) par rapport aux méthodes ci-dessus, de nouveaux modes d'exploitation réussis sont disponibles.
  • Inconvénient : En raison de la nature de la façon dont cette méthode livre les charges utiles aux serveurs cibles (en paralysant essentiellement la communication T3/T3S native), une sortie significative (exceptions, traces de pile, etc.) pour aider les utilisateurs à déterminer le potentiel et le succès de l'exploitation ne peut pas être générée.

Notes sur la connexion T3S

Il est recommandé à l'utilisateur d'effectuer un scan du service cible avec sslscan ou le script nmap ssl-enum-ciphers pour découvrir quels protocoles sont supportés. Ainsi, l'utilisateur peut affiner l'option --t3s lors de l'exécution de WLT3Serial.

Développement

Dans le but d'améliorer les exploits JavaUnserializeExploits weblogic.py et loubia, WLT3Serial a été développé en Java en utilisant les ressources suivantes pour se connecter aux services T3/T3S de 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

L'accent a été mis sur la gestion native des connexions T3 en Java, ainsi que sur une gestion appropriée des erreurs pour fournir une sortie de commande utile à l'utilisateur.

WLT3Serial a été développé en utilisant les versions logicielles suivantes :

  • Oracle Java 8 Update 191
  • Oracle Java 7 Update 80 et Oracle Java 7 Update 17
  • Gradle 4.10.2, 3.2 (testé partiellement), 2.10 (testé partiellement), 1.4 (testé partiellement)

Les tests en direct pendant le développement ont été effectués contre les versions suivantes du serveur WebLogic :

  • 10.3.6
  • 12.1.3
  • 12.2.1.1 (uniquement vulnérable à certains types de charges utiles et méthodes d'exploitation)
  • 12.2.1.2 (uniquement vulnérable à certains types de charges utiles et méthodes d'exploitation)
  • 12.2.1.3 (partiellement vulnérable)

Avertissement

Les développeurs fournissent le logiciel gratuitement sans garantie et déclinent toute responsabilité pour tout dommage causé aux systèmes par l'utilisation du logiciel. Il est de la responsabilité de l'utilisateur de respecter toutes les lois locales, étatiques et fédérales lors de l'utilisation du logiciel.

Copyright

(C) 2017, 2018 Jeffrey Cap (Bort_Millipede)

Télécharger l’outil