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
ritm — Ruby In The Middle (HTTP/HTTPS-Abfangproxy) | Kitploit
Tools/GitHubGitHub/argos83/ritm
Dynamische Analyse (Sandboxing)Web-Proxys & AbfangenWebsicherheitPenetrationstests
GitHubargos83/ritm

ritm

Ruby In The Middle (HTTP/HTTPS-Abfangproxy)

Repository anzeigen
101312vor 7 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

Ruby In The Middle (HTTP/HTTPS-Abfangproxy)

Ruby in the middle (RITM) ist ein HTTP/HTTPS-Abfangproxy mit dynamischer Zertifikatserstellung und -signierung, der dem Anwender die volle Leistungsfähigkeit der Ruby-Sprache bietet, um Anfragen und Antworten nach Belieben abzufangen und sogar zu modifizieren.

Installation

gem install ritm

Grundlegende Verwendung

  1. Schreiben Sie Ihre Abfanghandler
root@kitploit:~
require 'ritm'

# Eine einzige Antwort für alle Ihre Google-Suchen
Ritm.on_request do |req|
  if req.request_uri.host.start_with? 'www.google.'
    new_query_string = req.request_uri.query.gsub(/(?<=^q=|&q=)(((?!&|$).)*)(?=&|$)/, 'RubyInTheMiddle')
    req.request_uri.query = new_query_string
  end
end

my_picture = File.read('i_am_famous.jpg')

# Ersetzt jedes Bild im Web durch mein hübsches Gesicht
Ritm.on_response do |_req, res|
  if res.header['content-type'] && res.header['content-type'].start_with?('image/')
    res.header['content-type'] = 'image/jpeg'
    res.body = my_picture
  end
end
Tool herunterladen
  • Starten Sie den Proxy-Server
  • root@kitploit:~
    Ritm.start
     
    puts 'Hit enter to finish'
    gets
    
    Ritm.shutdown
    
    1. Konfigurieren Sie Ihren Browser

    Oder jeden anderen HTTP-Client, dessen Datenverkehr Sie abfangen möchten, um eine Verbindung zum Proxy unter localhost:8080 herzustellen

    1. Surfen Sie im Internet!

    Für die obigen Beispiele suchen Sie etwas bei Google und besuchen Sie auch Ihre Lieblingsnachrichten-Website.

    Vertrauen in selbstsignierte Zertifikate, die von RITM generiert werden

    Im vorherigen Beispiel könnte Ihr Client Probleme beim Zugriff auf HTTPS-Ressourcen haben. In einigen Fällen können Sie eine Ausnahme in Ihrem Browser hinzufügen (oder Ihren HTTP-Client anweisen, Zertifikate nicht zu überprüfen), aber in einigen anderen Fällen werden Sie keine Ausnahmen hinzufügen können. Der Grund dafür ist, dass RITM, um SSL-Verkehr entschlüsseln und modifizieren zu können, die SSL-Verhandlung mit dem Client selbst durchführen muss (unter Verwendung seines eigenen Zertifikatssatzes) und dann eine separate SSL-Sitzung zum Server aufbaut. D.h.:

    root@kitploit:~
    Client <--- SSL-Sitzung ---> RITM <--- SSL-Sitzung ---> Server
    

    Für jeden unterschiedlichen Server-Hostnamen, mit dem Ihr Client kommunizieren möchte, generiert RITM ein Zertifikat dynamisch und signiert es mit einer vorkonfigurierten Zertifizierungsstelle (CA). Daher müssen Sie Ihren Client (z.B. Browser) so konfigurieren, dass er der CA von RITM vertraut, um eine sichere Verbindung herstellen zu können.

    Aus Sicherheitsgründen generiert RITM bei jedem Start des Proxys mit den Standardeinstellungen eine neue interne Zertifizierungsstelle. Um stattdessen Ihre eigene CA zu verwenden (damit sie von Ihrem Browser geladen und vertraut werden kann), führen Sie die folgenden Schritte aus:

    1. Erstellen Sie PEM- und Private-Key-Dateien für eine Zertifizierungsstelle

    Sie können OpenSSL oder RITM verwenden, um diese beiden Dateien zu generieren. Mit OpenSSL:

    root@kitploit:~
    openssl req -new -nodes -x509 -days 365 -extensions v3_ca -keyout insecure_ca.key -out insecure_ca.crt
    

    Oder mit RITM:

    root@kitploit:~
    require 'ritm/certs/ca'
    
    ca = Ritm::CA.create common_name: 'InsecureCA'
    
    File.write('insecure_ca.crt', ca.pem)
    File.write('insecure_ca.key', ca.private_key.to_s)
    
    1. Wiederholen Sie Schritt 2 aus dem vorherigen Beispiel, diesmal mit Angabe der zu verwendenden CA zum Signieren von Zertifikaten
    root@kitploit:~
    Ritm.configure do
      ssl_reverse_proxy.ca[:pem] = 'path/to/insecure_ca.crt'
      ssl_reverse_proxy.ca[:key] = 'path/to/insecure_ca.key'
    end
    
    Ritm.start
    
    puts 'Hit enter to finish'
    gets
    
    Ritm.shutdown
    
    1. Vertrauen Sie dem CA-Zertifikat in Ihrem Browser oder Client

    Es bleibt Ihnen überlassen, herauszufinden, wie dies in Ihrem Browser oder Client funktioniert. 4. Surfen Sie im Internet!

    1. Wenn Sie fertig sind, entfernen Sie die CA aus Ihren vertrauenswürdigen Stellen!

    Oder bewahren Sie den privaten Schlüssel der CA sehr gut auf, denn jeder, der diesen Schlüssel besitzt, kann Ihren gesamten Verkehr entschlüsseln! Beachten Sie auch, dass bei Verwendung des Proxys jeder Server automatisch als vertrauenswürdig eingestuft wird, selbst wenn das Endserver-Zertifikat ungültig ist.

    Ausführen mehrerer Sitzungen mit unterschiedlichen Einstellungen

    In den obigen Beispielen haben wir die standardmäßige globale Sitzung verwendet. Wenn Sie keine statisch konfigurierte globale Sitzung verwenden möchten, oder wenn Sie mehrere gleichzeitig bestehende Sitzungen wünschen (z.B. mehrere Proxys, die auf verschiedenen Ports lauschen und unterschiedliche Abfanghandler verwenden), können Sie verschiedene Sitzungsinstanzen auf diese Weise erstellen:

    root@kitploit:~
    session = Ritm::Session.new
    
    # Jetzt können Sie die gleichen Methoden, aber auf der Sitzungsinstanz verwenden
    
    session.configure { proxy[:bind_port] = 7777 }
    session.on_request { |req| ...hier etwas tun ... }
    
    another_session = Ritm::Session.new
    another_session.configure { proxy[:bind_port] = 8888 }
    another_session.on_request { |req| ...etwas anderes tun ... }
    
    session.start
    another_session.start
    
    puts 'Hit enter to finish'
    gets
    
    session.shutdown
    another_session.shutdown
    

    Lizenz

    Lizenziert unter der Apache License, Version 2.0 (der "Lizenz"); Sie dürfen diese Datei nur in Übereinstimmung mit der Lizenz verwenden. Eine Kopie der Lizenz erhalten Sie unter

    http://www.apache.org/licenses/LICENSE-2.0

    Sofern nicht durch anwendbares Recht vorgeschrieben oder schriftlich vereinbart, wird die unter der Lizenz verbreitete Software ohne jegliche Garantie, weder ausdrücklich noch stillschweigend, einschließlich, aber nicht beschränkt auf die stillschweigenden Garantien der Marktgängigkeit und der Eignung für einen bestimmten Zweck, bereitgestellt. Weitere Einzelheiten entnehmen Sie bitte der Lizenz.