Ruby in the middle (RITM)

Ruby in the middle (RITM) es un proxy HTTP y HTTPS de interceptación 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

Via: www.hackplayers.com
Ruby in the middle (RITM) Ruby in the middle (RITM) Reviewed by Zion3R on 19:26 Rating: 5