Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
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
BaRMIe — Java RMI-Enumeration- und Angriffstool. | Kitploit
Tools/GitHubGitHub/nickstadb/barmie
SchwachstellenanalyseExploitationInformationsbeschaffungPenetrationstests
GitHubnickstadb/barmie

BaRMIe

Java RMI-Enumeration- und Angriffstool.

Repository anzeigen
74797vor 8 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

BaRMIe

BaRMIe ist ein Tool zum Aufzählen und Angreifen von Java RMI (Remote Method Invocation)-Diensten.

RMI-Dienste legen oft gefährliche Funktionalität ohne angemessene Sicherheitskontrollen offen, jedoch bleiben RMI-Dienste bei Sicherheitsbewertungen aufgrund des Mangels an effektiven Testtools meist unbemerkt. Im Jahr 2008 sprach Adam Boulton auf der AppSec USA (YouTube) und veröffentlichte einige RMI-Angriffstools, die bald darauf verschwanden. Aber selbst mit diesen Tools basiert ein erfolgreicher Zero-Knowledge-Angriff auf einer erheblichen Brute-Force-Attacke (~64 Bit/9 Trillionen Möglichkeiten), die über das Netzwerk durchgeführt wird.

Das Ziel von BaRMIe ist es, Sicherheitsexperten zu befähigen, unsichere RMI-Dienste zu identifizieren, anzugreifen und zu sichern. Durch die Verwendung partieller RMI-Schnittstellen aus vorhandener Software kann BaRMIe direkt mit diesen Diensten interagieren, ohne zuerst 64 Bit über das Netzwerk zu bruteforcen.

Laden Sie den neuesten Build, fertig zum Ausführen, hier herunter: https://github.com/NickstaDB/BaRMIe/releases/latest

Haftungsausschluss

BaRMIe wurde geschrieben, um Sicherheitsexperten bei der Identifizierung unsicherer RMI-Dienste auf Systemen zu unterstützen, für die der Benutzer zuvor die Erlaubnis zum Angriff erhalten hat. Unbefugter Zugriff auf Computersysteme ist illegal und BaRMIe muss in Übereinstimmung mit allen relevanten Gesetzen verwendet werden. Andernfalls könnte dies zu einer Strafverfolgung führen. Die Entwickler von BaRMIe übernehmen keine Haftung und sind nicht verantwortlich für Missbrauch oder Schäden, die durch dieses Programm verursacht werden.

Verwendung

Die Verwendung von BaRMIe ist unkompliziert. Führen Sie BaRMIe ohne Parameter aus, um Nutzungsinformationen zu erhalten.

root@kitploit:~
$ java -jar BaRMIe.jar
  ▄▄▄▄    ▄▄▄       ██▀███   ███▄ ▄███▓ ██▓▓█████
 ▓█████▄ ▒████▄    ▓██ ▒ ██▒▓██▒▀█▀ ██▒▓██▒▓█   ▀
 ▒██▒ ▄██▒██  ▀█▄  ▓██ ░▄█ ▒▓██    ▓██░▒██▒▒███
 ▒██░█▀  ░██▄▄▄▄██ ▒██▀▀█▄  ▒██    ▒██ ░██░▒▓█  ▄
 ░▓█  ▀█▓ ▓█   ▓██▒░██▓ ▒██▒▒██▒   ░██▒░██░░▒████▒
 ░▒▓███▀▒ ▒▒   ▓▒█░░ ▒▓ ░▒▓░░ ▒░   ░  ░░▓  ░░ ▒░ ░
 ▒░▒   ░   ▒   ▒▒ ░  ░▒ ░ ▒░░  ░      ░ ▒ ░ ░ ░  ░
  ░    ░   ░   ▒     ░░   ░ ░      ░    ▒ ░   ░
  ░            ░  ░   ░            ░    ░     ░  ░
       ░                                     v1.0
             Java RMI Aufzählungswerkzeug.
               Geschrieben von Nicky Bloor (@NickstaDB)

Warnung: BaRMIe wurde geschrieben, um Sicherheitsexperten bei der Identifizierung
         der unsicheren Nutzung von RMI-Diensten auf Systemen zu unterstützen,
         für die der Benutzer zuvor die Erlaubnis zum Angriff erhalten hat.
         BaRMIe muss in Übereinstimmung mit allen relevanten Gesetzen verwendet
         werden. Andernfalls könnte dies zu Ihrer Strafverfolgung führen.
         Die Entwickler übernehmen keine Haftung und sind nicht verantwortlich
         für Missbrauch oder Schäden, die durch dieses Programm verursacht werden.

Nutzung:
  BaRMIe -enum [options] [host] [port]
    RMI-Dienste auf dem/den angegebenen Endpunkt(en) aufzählen.
    Hinweis: Wenn -enum nicht angegeben ist, ist dies der Standardmodus.
  BaRMIe -attack [options] [host] [port]
    Das/die angegebene(n) Ziel(e) aufzählen und angreifen.
Optionen:
  --threads  Die Anzahl der Threads für die Aufzählung (Standard 10).
  --timeout  Das Timeout für blockierende Socket-Operationen (Standard 5.000 ms).
  --targets  Eine Datei mit Zielen zum Scannen.
             Die Datei sollte einen einzelnen Host oder ein durch Leerzeichen
             getrenntes Paar aus Host und Port pro Zeile enthalten.
             Alternativ werden alle nmap-Ausgabeformate unterstützt. BaRMIe
             analysiert nmap-Ausgaben auf Port 1099, 'rmiregistry' oder
             'Java RMI'-Dienste als Ziele.
             Hinweis: [host] [port] wird nicht unterstützt, wenn --targets verwendet wird.
Zuverlässigkeit:
    Ein +/- System wird verwendet, um die Angriffszuverlässigkeit wie folgt anzuzeigen:
      [+  ]: Zeigt einen anwendungsspezifischen Angriff an
      [-  ]: Zeigt einen JRE-Angriff an
      [ + ]: Greift unsichere Methoden an (wie 'writeFile' ohne Authentifizierung)
      [ - ]: Greift Java-Deserialisierung an (d.h. Objektparameter)
      [  +]: Erfordert keine nicht standardmäßigen Abhängigkeiten
      [  -]: Nicht standardmäßige Abhängigkeiten sind erforderlich

Der Aufzählungsmodus (-enum) extrahiert Details von Objekten, die über einen RMI-Registrierungsdienst verfügbar gemacht werden, und listet bekannte Angriffe auf, die den Endpunkt betreffen.

Der Angriffsmodus (-attack) listet zunächst die angegebenen Ziele auf und bietet dann ein Menüsystem zum Starten bekannter Angriffe gegen RMI-Dienste.

Ein einzelnes Ziel kann über die Befehlszeile angegeben werden. Alternativ kann BaRMIe Ziele aus einer einfachen Textdatei oder nmap-Ausgabe extrahieren.

Keine anfälligen Ziele identifiziert?

Großartig! Dies ist Ihre Gelegenheit, zur Verbesserung von BaRMIe beizutragen! BaRMIe ist auf gewisse Kenntnisse der über RMI verfügbar gemachten Klassen angewiesen, daher werden Beiträge einen großen Beitrag zur Verbesserung von BaRMIe und der Sicherheit von RMI-Diensten leisten.

Wenn Sie Zugriff auf JAR-Dateien oder Quellcode der Zielanwendung haben, ist die Erstellung eines Angriffs so einfach wie das Kompilieren von Code gegen die entsprechenden JAR-Dateien. Rufen Sie das entsprechende Remote-Objekt mit den Klassen LocateRegistry und Registry ab und rufen Sie die gewünschten Methoden auf. Alternativ suchen Sie nach Remote-Methoden, die beliebige Objekte oder anderweitig nicht-primitive Parameter akzeptieren, da diese verwendet werden können, um Deserialisierungs-Payloads zu liefern. Weitere Dokumentation zum Angriff auf RMI und zur Erstellung von Angriffen für BaRMIe wird in naher Zukunft verfügbar sein.

Alternativ nehmen Sie Kontakt auf und geben Sie so viele Details wie möglich an, einschließlich der BaRMIe -enum-Ausgabe und idealerweise der relevanten JAR-Dateien.

Angriffsarten

BaRMIe ist in der Lage, drei Arten von Angriffen gegen RMI-Dienste durchzuführen. Nachfolgend eine kurze Beschreibung der einzelnen Angriffe. Weitere technische Details werden in naher Zukunft unter https://nickbloor.co.uk/ veröffentlicht. Darüber hinaus habe ich die Ergebnisse meiner Forschung auf der 44CON 2017 präsentiert, und die Folien sind hier zu finden: BaRMIe - Poking Java's Back Door.

1. Angriff auf unsichere Methoden

Die erste und einfachste Methode, unsichere RMI-Dienste anzugreifen, besteht darin, einfach unsichere Remote-Methoden aufzurufen. Oft wird gefährliche Funktionalität über RMI verfügbar gemacht, die ausgelöst werden kann, indem man einfach die Referenz des Remote-Objekts abruft und die gefährliche Methode aufruft. Der folgende Code ist ein Beispiel dafür:

root@kitploit:~
//Get a reference to the remote RMI registry service
Registry reg = LocateRegistry.getRegistry(targetHost, targetPort);

//Get a reference to the target RMI object
Foo bar = (Foo)reg.lookup(objectName);

//Call the remote executeCommand() method
bar.executeCommand(cmd);

2. Deserialisierung über Objektparameter

Einige RMI-Dienste legen keine gefährliche Funktionalität offen oder implementieren Sicherheitskontrollen wie Authentifizierung und Sitzungsverwaltung. Wenn der RMI-Dienst eine Methode bereitstellt, die ein beliebiges Objekt als Parameter akzeptiert, kann diese Methode als Einstiegspunkt für Deserialisierungsangriffe verwendet werden. Einige Beispiele für solche Methoden sind unten zu sehen:

root@kitploit:~
public void setOption(String name, Object value);
public void addAll(List values);

3. Deserialisierung durch illegalen Methodenaufruf

Aufgrund der Verwendung von Serialisierung und der unsicheren Handhabung von Methodenparametern auf dem Server ist es möglich, jede Methode mit nicht-primitiven Parametertypen als Einstiegspunkt für Deserialisierungsangriffe zu verwenden. BaRMIe erreicht dies durch die Verwendung von TCP-Proxys, um Methodenparameter auf Netzwerkebene zu modifizieren, wodurch im Wesentlichen illegale Methodenaufrufe ausgelöst werden. Einige Beispiele für anfällige Methoden sind unten zu sehen:

root@kitploit:~
public void setName(String name);
public Long add(Integer i1, Integer i2);
public void sum(int[] values); 

Die Parameter jeder dieser Methoden können durch einen Deserialisierungs-Payload ersetzt werden, während der Methodenaufruf durch einen Proxy geht. Dieser Angriff ist möglich, weil Java nicht versucht zu überprüfen, ob die über das Netzwerk empfangenen Remote-Methodenparameter mit den tatsächlichen Parametertypen kompatibel sind, bevor sie deserialisiert werden.

Tool herunterladen