Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
ritm — Ruby In The Middle (Proxy d'interception HTTP/HTTPS) | Kitploit
Outils/GitHubGitHub/argos83/ritm
Analyse Dynamique (Sandboxing)Proxies Web et InterceptionSécurité WebTests d'Intrusion
GitHubargos83/ritm

ritm

Ruby In The Middle (Proxy d'interception HTTP/HTTPS)

Voir le dépôt
10131il y a 7 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Ruby In The Middle (proxy d'interception HTTP/HTTPS)

Ruby in the middle (RITM) est un proxy d'interception HTTP/HTTPS avec génération et signature de certificats à la volée, qui laisse à l'utilisateur toute la puissance du langage Ruby pour intercepter et même modifier les requêtes et réponses comme bon lui semble.

Installation

gem install ritm

Utilisation de base

  1. Écrivez vos gestionnaires d'interception
root@kitploit:~
require 'ritm'

# A single answer for all your google searches
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')

# Replaces every picture on the web with my pretty face
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. Démarrez le serveur proxy
root@kitploit:~
Ritm.start
 
puts 'Hit enter to finish'
gets

Ritm.shutdown
  1. Configurez votre navigateur

Ou tout client HTTP dont vous souhaitez intercepter le trafic, pour vous connecter au proxy sur localhost:8080

  1. Naviguez sur le Web !

Pour les exemples ci-dessus, cherchez n'importe quoi sur Google et visitez également votre site de journal préféré.

Faire confiance aux certificats auto-signés générés par RITM

Avec l'exemple précédent, votre client a peut-être rencontré des problèmes en essayant d'accéder à des ressources HTTPS. Dans certains cas, vous pouvez ajouter une exception dans votre navigateur (ou demander à votre client HTTP de ne pas vérifier les certificats), mais dans d'autres cas vous ne pourrez pas ajouter d'exceptions. La raison en est que pour déchiffrer et pouvoir modifier le trafic SSL, RITM doit être celui qui effectue la négociation SSL avec le client (en utilisant son propre ensemble de certificats), puis il établira une session SSL distincte vers le serveur. C'est-à-dire :

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

Pour chaque nom d'hôte de serveur avec lequel votre client tente de communiquer, RITM générera un certificat à la volée et le signera avec une autorité de certification (CA) pré-configurée. Ainsi, pour pouvoir établir une connexion sécurisée, vous devrez configurer votre client (par exemple votre navigateur) pour faire confiance à la CA de RITM.

Pour des raisons de sécurité, chaque fois que vous démarrez le proxy RITM avec les paramètres par défaut, il génère une nouvelle autorité de certification interne. Pour utiliser votre propre CA à la place (afin qu'elle puisse être chargée et approuvée par votre navigateur), suivez les étapes suivantes :

  1. Générez les fichiers PEM et de clé privée d'une autorité de certification

Vous pouvez utiliser OpenSSL ou RITM pour générer ces deux fichiers. Avec OpenSSL :

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

Ou avec 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. Répétez l'étape 2 de l'exemple précédent, cette fois en indiquant quelle CA doit être utilisée pour signer les certificats
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. Ajoutez le certificat CA dans les autorités de confiance de votre navigateur ou client

Je vous laisse découvrir comment cela se fait dans votre navigateur ou client.

  1. Naviguez sur le Web !

  2. Une fois terminé, supprimez la CA de vos autorités de confiance !

Ou prenez grand soin de la clé privée de la CA, car toute personne en possession de cette clé pourra déchiffrer tout votre trafic ! Notez également que lors de l'utilisation du proxy, chaque serveur sera automatiquement considéré comme digne de confiance, même si le certificat du serveur final n'est pas valide.

Exécuter plusieurs sessions avec des paramètres différents

Dans les exemples ci-dessus, nous avons utilisé la session globale par défaut. Si vous n'aimez pas utiliser une session globale configurée statiquement, ou si vous souhaitez avoir plusieurs sessions coexistantes (par exemple, plusieurs proxys écoutant sur des ports différents et utilisant des gestionnaires d'interception différents), vous pouvez créer différentes instances de session de cette manière :

root@kitploit:~
session = Ritm::Session.new

# Now you can use the same methods but on the session instance

session.configure { proxy[:bind_port] = 7777 }
session.on_request { |req| ...do something here ... }

another_session = Ritm::Session.new
another_session.configure { proxy[:bind_port] = 8888 }
another_session.on_request { |req| ...do something else ... }

session.start
another_session.start

puts 'Hit enter to finish'
gets

session.shutdown
another_session.shutdown

Licence

Sous licence Apache, version 2.0 (la « Licence ») ; vous ne pouvez pas utiliser ce fichier sauf en conformité avec la Licence. Vous pouvez obtenir une copie de la Licence à l'adresse

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

Sauf si la loi applicable l'exige ou si un accord écrit a été conclu, le logiciel distribué sous la Licence est distribué sur une base « AS IS », SANS GARANTIES OU CONDITIONS D'AUCUNE SORTE, expresses ou implicites. Consultez la Licence pour connaître les autorisations et les limitations spécifiques applicables.

Télécharger l’outil