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":
2.- Inicia el servidor proxy
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
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
Publicar un comentario