Ausnahme gefangen: SSL certificate problem: certificate is not yet valid ๐Ÿ“Œ Ermir - An Evil Java RMI Registry

๐Ÿ  Team IT Security News

TSecurity.de ist eine Online-Plattform, die sich auf die Bereitstellung von Informationen,alle 15 Minuten neuste Nachrichten, Bildungsressourcen und Dienstleistungen rund um das Thema IT-Sicherheit spezialisiert hat.
Ob es sich um aktuelle Nachrichten, Fachartikel, Blogbeitrรคge, Webinare, Tutorials, oder Tipps & Tricks handelt, TSecurity.de bietet seinen Nutzern einen umfassenden รœberblick รผber die wichtigsten Aspekte der IT-Sicherheit in einer sich stรคndig verรคndernden digitalen Welt.

16.12.2023 - TIP: Wer den Cookie Consent Banner akzeptiert, kann z.B. von Englisch nach Deutsch รผbersetzen, erst Englisch auswรคhlen dann wieder Deutsch!

Google Android Playstore Download Button fรผr Team IT Security



๐Ÿ“š Ermir - An Evil Java RMI Registry


๐Ÿ’ก Newskategorie: IT Security Nachrichten
๐Ÿ”— Quelle: kitploit.com


Ermir is an Evil/Rogue RMI Registry, it exploits unsecure deserialization on any Java code calling standard RMI methods on it (list()/lookup()/bind()/rebind()/unbind()).


Requirements

  • Ruby v3 or newer.

Installation

Install Ermir from rubygems.org:

$ gem install ermir

or clone the repo and build the gem:

$ git clone https://github.com/hakivvi/ermir.git
$ rake install

Usage

Ermir is a cli gem, it comes with 2 cli files ermir and gadgetmarshal, ermir is the actual gem and the latter is just a pretty interface to GadgetMarshaller.java file which rewrites the gadgets of Ysoserial to match MarshalInputStream requirements, the output should be then piped into ermir or a file, in case of custom gadgets use MarshalOutputStream instead of ObjectOutputStream to write your serialized object to the output stream.

ermir usage:

RMI Registry which exploits unsecure Java deserialization on any Java code calling standard RMI methods on it. Usage: ermir [options] -l, --listen bind the RMI Registry to this ip and port (default: 0.0.0.0:1099). -f, --file path to file containing the gadget to be deserialized. -p, --pipe read the serialized gadget from the standard input stream. -v, --version print Ermir version. -h, --help print options help. Example: $ gadgetmarshal /path/to/ysoserial.jar Groovy1 calc.exe | ermir --listen 127.0.0.1:1099 --pipe" dir="auto">
โžœ  ~ ermir
Ermir by @hakivvi * https://github.com/hakivvi/ermir.
Info:
Ermir is a Rogue/Evil RMI Registry which exploits unsecure Java deserialization on any Java code calling standard RMI methods on it.
Usage: ermir [options]
-l, --listen bind the RMI Registry to this ip and port (default: 0.0.0.0:1099).
-f, --file path to file containing the gadget to be deserialized.
-p, --pipe read the serialized gadget from the standard input stream.
-v, --version print Ermir version.
-h, --help print options help.
Example:
$ gadgetmarshal /path/to/ysoserial.jar Groovy1 calc.exe | ermir --listen 127.0.0.1:1099 --pipe

gadgetmarshal usage:

โžœ  ~ gadgetmarshal
Usage: gadgetmarshal /path/to/ysoserial.jar Gadget1 cmd (optional)/path/to/output/file

How does it work?

java.rmi.registry.Registry offers 5 methods: list(), lookup(), bind(), rebind(), unbind():

  • public Remote lookup(String name): lookup() searches for a bound object in the registry by its name, the registry returns a Remote object which references the remote object that was looked up, the returned object is read using MarshalInputStream.readObject() which is just another layer on top of ObjectInputStream, basically it excpects after each class/proxy descriptor (TC_CLASSDESC/TC_PROXYCLASSDESC) an URL that will be used to load this class or proxy class. this is the same wild bug that was fixed in jdk7u21. (Ermir does not specify this URL as only old Java version are vulnerable, instead it just write null). as Ysoserial gadgets are being serialized using ObjectOutputStream, Ermir uses gadgetmarshal -a wrapper around GadgetMarshaller.java- to serialize the specified gagdet to match MarshalInputStream requirements.

  • public String[] list(): list() asks the registry for all the bound objects names, while String type cannot be subsitued with a malicious gadget as it is not like any ordinary object and it is not read using readObject() but rather readUTF(), however as list() returns String[] which is an actual object and it is read using readObject(), Ermir sends the gadget instead of this String[] type.

  • public void bind(java.lang.String $param_String_1, java.rmi.Remote $param_Remote_2): bind() binds an object to a name on the registry, in bind() case the return type is void and there is nothing being returned, however if the registry specifies in the RMI return data packet that this return is an execptional return, the client/server client will call readObject() despite the return type is void, this is how the regitry sends exceptions to its client (usually java.lang.ClassNotFoundException), once again Ermir will deliver the serialized gadget instead of a legitimate Exception object.

  • public void rebind(java.lang.String $param_String_1, java.rmi.Remote $param_Remote_2): rebind() replaces the binding of the passed name with the supplied remote reference, also returns void, Ermir returns an exception just like bind().

  • public void unbind(java.lang.String $param_String_1): unbind() unbinds a remote object by name in the RMI registry, this one also returns void.

PoC

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/hakivvi/ermir. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the code of conduct.

License

The gem is available as open source under the terms of the MIT License.

Code of Conduct

Everyone interacting in the Ermir project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.



...



๐Ÿ“Œ Ermir - An Evil Java RMI Registry


๐Ÿ“ˆ 85.21 Punkte

๐Ÿ“Œ ZTE ZXIPTV-EPG bis 5.09.02 Java RMI Service RMI Request erweiterte Rechte


๐Ÿ“ˆ 43.54 Punkte

๐Ÿ“Œ ZTE ZXIPTV-EPG up to 5.09.02 Java RMI Service RMI Request privilege escalation


๐Ÿ“ˆ 43.54 Punkte

๐Ÿ“Œ CVE-2019-18580 | Dell EMC Storage Monitoring/Reporting 4.3.1 Java RMI Deserialization RMI Request deserialization (DSA-2019-176)


๐Ÿ“ˆ 43.54 Punkte

๐Ÿ“Œ RMIScout - Wordlist And Bruteforce Strategies To Enumerate Java RMI Functions And Exploit RMI Parameter Unmarshalling Vulnerabilities


๐Ÿ“ˆ 43.54 Punkte

๐Ÿ“Œ CVE-2020-5327 | Dell Security Management Server up to 10.2.9 Java RMI Deserialization RMI Request deserialization


๐Ÿ“ˆ 43.54 Punkte

๐Ÿ“Œ Bugtraq: [CVE-2016-8736] Apache Openmeetings RMI Registry Java Deserialization RCE


๐Ÿ“ˆ 37.33 Punkte

๐Ÿ“Œ Bugtraq: [CVE-2016-8736] Apache Openmeetings RMI Registry Java Deserialization RCE


๐Ÿ“ˆ 37.33 Punkte

๐Ÿ“Œ #0daytoday #Oracle WebLogic 12.1.2.0 RMI Registry UnicastRef Object Java Deserialization Remote Cod [#0day #Exploit]


๐Ÿ“ˆ 37.33 Punkte

๐Ÿ“Œ [webapps] Oracle WebLogic 12.1.2.0 - RMI Registry UnicastRef Object Java Deserialization Remote Code Execution


๐Ÿ“ˆ 37.33 Punkte

๐Ÿ“Œ Code42 CrashPlan 5.4.x RMI Server org.apache.commons.ssl.rmi.DateRMI privilege escalation


๐Ÿ“ˆ 37.04 Punkte

๐Ÿ“Œ Apache Cassandra up to 3.11.1 JMX/RMI Interface RMI Request privilege escalation


๐Ÿ“ˆ 37.04 Punkte

๐Ÿ“Œ Code42 CrashPlan 5.4.x RMI Server org.apache.commons.ssl.rmi.DateRMI erweiterte Rechte


๐Ÿ“ˆ 37.04 Punkte

๐Ÿ“Œ Apache Cassandra bis 3.11.1 JMX/RMI Interface RMI Request erweiterte Rechte


๐Ÿ“ˆ 37.04 Punkte

๐Ÿ“Œ Oracle Java SE 7u211/8u202/11.0.2/12; Java SE Embedded: 8u201 RMI privilege escalation


๐Ÿ“ˆ 31.52 Punkte

๐Ÿ“Œ Apache OpenMeetings 3.1.0 RMI Registry privilege escalation


๐Ÿ“ˆ 30.83 Punkte

๐Ÿ“Œ NetGain Enterprise Manager RMI Registry privilege escalation


๐Ÿ“ˆ 30.83 Punkte

๐Ÿ“Œ Apache OpenMeetings 3.1.0 RMI Registry erweiterte Rechte


๐Ÿ“ˆ 30.83 Punkte

๐Ÿ“Œ Apache OpenMeetings 3.1.0 RMI Registry erweiterte Rechte


๐Ÿ“ˆ 30.83 Punkte

๐Ÿ“Œ NetGain Enterprise Manager RMI Registry erweiterte Rechte [CVE-2017-17406]


๐Ÿ“ˆ 30.83 Punkte

๐Ÿ“Œ [remote] HPE iMC 7.3 - RMI Java Deserialization


๐Ÿ“ˆ 25.02 Punkte

๐Ÿ“Œ HPE iMC 7.3 RMI Java Deserialization


๐Ÿ“ˆ 25.02 Punkte

๐Ÿ“Œ #0daytoday #HPE iMC 7.3 - RMI Java Deserialization Exploit CVE-2017-5792 [remote #exploits #0day #Exploit]


๐Ÿ“ˆ 25.02 Punkte

๐Ÿ“Œ Oracle Java SE 6u101/7u85/8u60 RMI denial of service


๐Ÿ“ˆ 25.02 Punkte

๐Ÿ“Œ IBM SDK Java Technology Edition Sandbox javax.rmi.CORBA.ValueHandler privilege escalation


๐Ÿ“ˆ 25.02 Punkte

๐Ÿ“Œ IBM SDK Java Technology Edition Sandbox javax.rmi.CORBA.ValueHandler privilege escalation


๐Ÿ“ˆ 25.02 Punkte

๐Ÿ“Œ Oracle Java SE 6u131/7u121/8u112 RMI ObjectInputStream.skipCustomData denial of service


๐Ÿ“ˆ 25.02 Punkte

๐Ÿ“Œ EMC Network Configuration Manager 9.3.x/9.4.0.x/9.4.1.x/9.4.2.x Java RMI privilege escalation


๐Ÿ“ˆ 25.02 Punkte

๐Ÿ“Œ Oracle Java SE 6u151/7u141/8u131 RMI memory corruption


๐Ÿ“ˆ 25.02 Punkte

๐Ÿ“Œ Oracle Java SE 6u151/7u141/8u131 RMI memory corruption


๐Ÿ“ˆ 25.02 Punkte

๐Ÿ“Œ Oracle Java SE 6u161/7u151/8u144/9 RMI weak encryption


๐Ÿ“ˆ 25.02 Punkte

๐Ÿ“Œ Oracle Java SE 6u181/7u171/8u162 RMI privilege escalation


๐Ÿ“ˆ 25.02 Punkte

๐Ÿ“Œ Fastjson up to 1.2.24 rmi:// URL AjaxApplication.java parseObject dataSourceName Remote Code Execution


๐Ÿ“ˆ 25.02 Punkte

๐Ÿ“Œ Remote-Method-Guesser - Tool For Java RMI Enumeration And Bruteforce Of Remote Methods


๐Ÿ“ˆ 25.02 Punkte

๐Ÿ“Œ Oracle Java up to 7 Update 11 RMI cross site scriting


๐Ÿ“ˆ 25.02 Punkte











matomo