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
10131vor 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
  1. 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.

Tool herunterladen