Ruby in the middle (RITM)

Ruby in the middle (RITM) es un proxy HTTP y HTTPS para interceptar tráfico con el que es posible firmar y generar certificados y firmas al vuelo, lo que deja al usuario con toda la potencia del lenguaje Ruby para interceptar e incluso modificar peticiones y respuestas como quiera.

El cliente intenta conectarse a cada nombre de servidor diferente. RITM genera un certificado sobre la marcha y lo firma con una autoridad de certificación preconfigurada (CA). Por lo tanto, con el fin de ser capaz de establecer una conexión segura se tendrá que configurar el cliente (por ejemplo, el navegador) para confiar en la CA de RITM. Por razones de seguridad, cada vez que se inicia el proxy de RITM con la configuración predeterminada se crea una nueva autoridad de certificación interna. Aunque si lo prefieres, también se puede utilizar una entidad emisora propia.

Instalación

gem install ritm

Uso básico

1.- Escribe tus "interception handlers":

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  

2.- Inicia el servidor proxy
 proxy = Ritm::Proxy::Launcher.new  
 proxy.start  
 puts 'Hit enter to finish'  
 gets  
 proxy.shutdown  

3.- Configura el navegador o el cliente HTTP del que quieras interceptar tráfico con el proxy

4.- Navega por Internet: por ejemplo busca cualquier cosa en Google o visita tu periódico favorito

Fuente: https://github.com/argos83/ritm

Comentarios