Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
ritm — Ruby In The Middle (HTTP/HTTPS इंटरसेप्शन प्रॉक्सी) | Kitploit
उपकरण/GitHubGitHub/argos83/ritm
गतिशील विश्लेषण (सैंडबॉक्सिंग)वेब प्रॉक्सी और अवरोधनवेब सुरक्षापेनिट्रेशन टेस्टिंग
GitHubargos83/ritm

ritm

Ruby In The Middle (HTTP/HTTPS इंटरसेप्शन प्रॉक्सी)

रिपॉजिटरी देखें
101317 साल पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

Ruby In The Middle (HTTP/HTTPS इंटरसेप्शन प्रॉक्सी)

Ruby in the middle (RITM) एक HTTP/HTTPS इंटरसेप्शन प्रॉक्सी है जो ऑन-द-फ्लाई सर्टिफिकेट जनरेशन और साइनिंग करता है, जो उपयोगकर्ता को Ruby भाषा की पूर्ण शक्ति के साथ छोड़ता है ताकि वह अनुरोधों (requests) और प्रतिक्रियाओं (responses) को अपनी इच्छानुसार इंटरसेप्ट और संशोधित कर सके।

स्थापना

gem install ritm

बुनियादी उपयोग

  1. अपने इंटरसेप्शन हैंडलर लिखें
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. प्रॉक्सी सर्वर शुरू करें
root@kitploit:~
Ritm.start
 
puts 'Hit enter to finish'
gets

Ritm.shutdown
  1. अपने ब्राउज़र को कॉन्फ़िगर करें

या जिस भी HTTP क्लाइंट से आप ट्रैफ़िक इंटरसेप्ट करना चाहते हैं, उसे localhost:8080 पर प्रॉक्सी से कनेक्ट करने के लिए कॉन्फ़िगर करें।

  1. वेब ब्राउज़ करें!

ऊपर दिए गए उदाहरणों के लिए, Google में कुछ भी खोजें और अपनी पसंदीदा समाचार पत्र वेबसाइट पर भी जाएँ।

RITM द्वारा उत्पन्न स्व-हस्ताक्षरित प्रमाणपत्रों पर भरोसा करना

पिछले उदाहरण में आपके क्लाइंट को HTTPS संसाधनों तक पहुँचने का प्रयास करते समय समस्याएँ आ सकती हैं। कुछ मामलों में आप अपने ब्राउज़र में एक अपवाद जोड़ सकते हैं (या अपने HTTP क्लाइंट को प्रमाणपत्र सत्यापित न करने का निर्देश दे सकते हैं) लेकिन कुछ अन्य मामलों में आप अपवाद नहीं जोड़ पाएंगे। इसका कारण यह है कि SSL ट्रैफ़िक को डिक्रिप्ट और संशोधित करने में सक्षम होने के लिए, RITM को क्लाइंट के साथ SSL नेगोशिएशन करना होगा (अपने स्वयं के प्रमाणपत्रों का उपयोग करके) और फिर यह सर्वर की ओर एक अलग SSL सत्र स्थापित करेगा। अर्थात:

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

आपका क्लाइंट जिस भी अलग-अलग सर्वर के होस्टनाम से संवाद करने का प्रयास करता है, उसके लिए RITM एक प्रमाणपत्र तुरंत उत्पन्न करेगा और उसे पूर्व-कॉन्फ़िगर्ड सर्टिफिकेट अथॉरिटी (CA) से हस्ताक्षरित करेगा। इसलिए, एक सुरक्षित कनेक्शन स्थापित करने में सक्षम होने के लिए आपको अपने क्लाइंट (जैसे ब्राउज़र) को RITM के CA पर भरोसा करने के लिए कॉन्फ़िगर करना होगा।

सुरक्षा कारणों से, जब भी आप डिफ़ॉल्ट सेटिंग्स के साथ RITM के प्रॉक्सी को शुरू करते हैं, तो यह एक नया आंतरिक सर्टिफिकेट अथॉरिटी उत्पन्न करेगा। इसके बजाय अपने स्वयं के CA का उपयोग करने के लिए (ताकि इसे आपके ब्राउज़र द्वारा लोड और विश्वसनीय किया जा सके) निम्नलिखित चरणों का पालन करें:

  1. एक सर्टिफिकेट अथॉरिटी PEM और प्राइवेट की फ़ाइलें उत्पन्न करें

आप इन दो फ़ाइलों को उत्पन्न करने के लिए OpenSSL या RITM का उपयोग कर सकते हैं। OpenSSL के साथ:

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

या 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. पिछले उदाहरण के चरण 2 को दोहराएं, इस बार यह संकेत देते हुए कि प्रमाणपत्रों पर हस्ताक्षर करने के लिए किस CA का उपयोग किया जाना चाहिए
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. अपने ब्राउज़र या क्लाइंट में CA प्रमाणपत्र पर भरोसा करें

मैं इसे आप पर छोड़ता हूँ कि आप अपने ब्राउज़र या क्लाइंट में यह कैसे करें। 4. वेब सर्फ़ करें!

  1. जब आप काम पूरा कर लें तो अपने विश्वसनीय प्राधिकारियों से CA को हटा दें!

या CA की प्राइवेट की की बहुत अच्छी तरह से देखभाल करें क्योंकि उस की को रखने वाला कोई भी आपके सभी ट्रैफ़िक को डिक्रिप्ट करने में सक्षम होगा! यह भी ध्यान दें कि प्रॉक्सी का उपयोग करते समय प्रत्येक सर्वर स्वचालित रूप से विश्वसनीय होगा, भले ही अंतिम सर्वर का प्रमाणपत्र मान्य न हो।

विभिन्न सेटिंग्स के साथ कई सत्र चलाना

ऊपर दिए गए उदाहरणों में हम डिफ़ॉल्ट वैश्विक सत्र का उपयोग कर रहे थे। यदि आप स्थिर रूप से कॉन्फ़िगर्ड वैश्विक सत्र का उपयोग करना पसंद नहीं करते हैं, या आप एक साथ कई सत्र चाहते हैं (जैसे विभिन्न पोर्ट पर सुनने वाले और विभिन्न इंटरसेप्शन हैंडलर का उपयोग करने वाले कई प्रॉक्सी) तो आप इस तरह से विभिन्न सत्र इंस्टेंस बना सकते हैं:

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

लाइसेंस

Apache लाइसेंस, संस्करण 2.0 ("लाइसेंस") के तहत लाइसेंस प्राप्त; आप इस फ़ाइल का उपयोग केवल लाइसेंस के अनुपालन में ही कर सकते हैं। आप लाइसेंस की एक प्रति यहाँ प्राप्त कर सकते हैं

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

जब तक लागू कानून द्वारा आवश्यक न हो या लिखित रूप में सहमति न दी गई हो, लाइसेंस के तहत वितरित सॉफ़्टवेयर "जैसा है" (AS IS) आधार पर वितरित किया जाता है, बिना किसी प्रकार की वारंटी या शर्तों के, चाहे वह स्पष्ट या निहित हो। लाइसेंस के तहत विशिष्ट अनुमतियों और सीमाओं के लिए लाइसेंस देखें।

टूल डाउनलोड करें