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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
martian — Martian कस्टम HTTP/S प्रॉक्सी बनाने के लिए एक लाइब्रेरी है। | Kitploit
उपकरण/GitHubGitHub/google/martian
गतिशील विश्लेषण (सैंडबॉक्सिंग)वेब प्रॉक्सी और अवरोधनएपीआई सुरक्षा परीक्षणवेब सुरक्षापेनिट्रेशन टेस्टिंगउपयोगिताएँ और फ्रेमवर्कArchived
GitHubgoogle/martian

martian

Martian कस्टम HTTP/S प्रॉक्सी बनाने के लिए एक लाइब्रेरी है।

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

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

सभी देखें →

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

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

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

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

Martian Proxy Build Status

Martian Proxy एक प्रोग्रामेबल HTTP प्रॉक्सी है जिसे परीक्षण के लिए उपयोग करने हेतु डिज़ाइन किया गया है।

Martian एक बेहतरीन उपकरण है यदि आप यह करना चाहते हैं:

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

Go क्रॉस-कंपाइलेशन का लाभ उठाकर, Martian को कहीं भी तैनात किया जा सकता है जहाँ Go को लक्षित किया जा सकता है।

नवीनतम संस्करण

v3.0.0

आवश्यकताएँ

Go 1.11

Go मॉड्यूल्स समर्थन

Martian Proxy ने v3.0.0 से Go मॉड्यूल्स के लिए समर्थन जोड़ा है। यदि आप ऐसे Go संस्करण का उपयोग करते हैं जो मॉड्यूल्स का समर्थन नहीं करता है, तो यह आपको तोड़ देगा। Go मॉड्यूल्स समर्थन के बिना नवीनतम संस्करण v2.1.0 टैग किया गया था।

शुरू करना

स्थापना

Martian Proxy को go install का उपयोग करके स्थापित किया जा सकता है

root@kitploit:~
go get github.com/google/martian/ && \
go install github.com/google/martian/cmd/proxy

प्रॉक्सी प्रारंभ करें

मान लीजिए कि आपने Martian स्थापित कर लिया है, प्रॉक्सी चलाना उतना ही सरल है

root@kitploit:~
$GOPATH/bin/proxy

यदि आप Martian चलने के दौरान सिस्टम लॉग देखना चाहते हैं, तो verbosity फ़्लैग पास करें:

root@kitploit:~
$GOPATH/bin/proxy -v=2

डिफ़ॉल्ट रूप से, Martian पोर्ट 8080 पर चलेगा, और Martian API 8181 पर चलेगा। पोर्ट को फ़्लैग्स के माध्यम से निर्दिष्ट किया जा सकता है:

root@kitploit:~
$GOPATH/bin/proxy -addr=:9999 -api-addr=:9898

लॉगिंग

अनुरोधों और प्रतिक्रियाओं की लॉगिंग के लिए एक लॉगिंग संशोधक उपलब्ध है या HAR लॉग उपलब्ध हैं यदि -har फ़्लैग का उपयोग किया जाता है।

HAR लॉगिंग

Martian में HAR लॉगिंग सक्षम करने के लिए बाइनरी को -har फ़्लैग के साथ कॉल करें:

root@kitploit:~
$GOPATH/bin/proxy -har

यदि -har फ़्लैग सक्षम किया गया है तो दो HAR संबंधित एंडपॉइंट उपलब्ध होंगे:

root@kitploit:~
GET http://martian.proxy/logs

अंतिम रीसेट के बाद से प्रॉक्सी द्वारा देखे गए सभी अनुरोधों और प्रतिक्रियाओं का HAR लॉग प्राप्त करेगा।

root@kitploit:~
DELETE http://martian.proxy/logs/reset

इन-मेमोरी HAR लॉग को रीसेट करेगा। ध्यान दें कि जब तक इसे समय-समय पर रीसेट नहीं किया जाता, लॉग असीमित रूप से बढ़ता रहेगा।

कॉन्फ़िगर करें

एक बार Martian चल रहा हो, तो आपको इसका व्यवहार कॉन्फ़िगर करने की आवश्यकता है। कॉन्फ़िगरेशन के बिना, Martian केवल प्रॉक्सी कर रहा है बिना अनुरोधों या प्रतिक्रियाओं पर कुछ भी किए। यदि सक्षम किया गया है, तो अतिरिक्त कॉन्फ़िगरेशन के बिना लॉगिंग होगी।

Martian को HTTP पर भेजे गए JSON संदेशों द्वारा कॉन्फ़िगर किया जाता है जो सामान्य रूप लेते हैं:

root@kitploit:~
{
  "header.Modifier": {
    "scope": ["response"],
    "name": "Test-Header",
    "value": "true"
  }
}

उपरोक्त कॉन्फ़िगरेशन Martian को सभी प्रतिक्रियाओं पर "Test-Header" नाम और "true" मान वाला हेडर इंजेक्ट करने के लिए कहता है।

आइए इस संदेश के भागों को समझें।

  • [package.Type]: आप जिस संशोधक का उपयोग करना चाहते हैं उसका package.Type। इस मामले में, यह "header.Modifier" है, जो हेडर सेट करने वाले संशोधक का नाम है (header.Modifier के बारे में अधिक जानने के लिए, कृपया संशोधक संदर्भ देखें)।

  • [package.Type].scope: इंगित करता है कि संशोधक को अनुरोधों, प्रतिक्रियाओं या दोनों पर लागू करना है या नहीं। यह "request", "response" या दोनों वाली एक सरणी हो सकती है।

  • [package.Type].[key]: संशोधक विशिष्ट डेटा। हेडर संशोधक के मामले में, हमें हेडर का name और value चाहिए।

यह एक सरल कॉन्फ़िगरेशन है, अधिक जटिल कॉन्फ़िगरेशन के लिए, संशोधकों को वांछित व्यवहार बनाने के लिए समूहों और फ़िल्टरों के साथ जोड़ा जाता है।

Martian को कॉन्फ़िगर करने के लिए, JSON को http://martian.proxy/modifiers पर POST करें। आप HTTP अनुरोध करने के लिए अपनी पसंद की भाषा जो भी तंत्र प्रदान करती है उसका उपयोग करना चाहेंगे, लेकिन डेमो उद्देश्यों के लिए, curl काम करता है (मान लें कि आपका कॉन्फ़िगरेशन modifier.json नामक फ़ाइल में है)।

root@kitploit:~
    curl -x localhost:8080 \
         -X POST \
         -H "Content-Type: application/json" \
         -d @modifier.json \
            "http://martian.proxy/configure"

HTTPS अनुरोधों और प्रतिक्रियाओं को इंटरसेप्ट करना

Martian HTTPS अनुरोधों और प्रतिक्रियाओं को संशोधित करने का समर्थन करता है यदि ऐसा करने के लिए कॉन्फ़िगर किया गया हो।

Martian के लिए HTTPS ट्रैफ़िक को इंटरसेप्ट करने हेतु ब्राउज़र में एक कस्टम CA प्रमाणपत्र स्थापित होना चाहिए ताकि कनेक्शन चेतावनियाँ न दिखाई जाएँ।

CA प्रमाणपत्र स्थापित करने का सबसे आसान तरीका है प्रॉक्सी को -cert और -key फ़्लैग्स का उपयोग करके कस्टम CA प्रमाणपत्र और निजी कुंजी का उपयोग करने के लिए आवश्यक फ़्लैग्स के साथ प्रारंभ करना, या प्रॉक्सी को -generate-ca-cert फ़्लैग का उपयोग करके एक उत्पन्न करने देना।

प्रॉक्सी प्रारंभ होने के बाद, प्रॉक्सी का उपयोग करने के लिए कॉन्फ़िगर किए गए ब्राउज़र में http://martian.proxy/authority.cer पर जाएँ और प्रमाणपत्र स्थापित करने के लिए एक संकेत प्रदर्शित किया जाएगा।

MITM कार्यक्षमता को कॉन्फ़िगर करने में सहायता के लिए examples/main.go में कई फ़्लैग उपलब्ध हैं:

root@kitploit:~
-key=""
  PEM encoded private key file of the CA certificate provided in -cert; used
  to sign certificates that are generated on-the-fly
-cert=""
  PEM encoded CA certificate file used to generate certificates
-generate-ca-cert=false
  generates a CA certificate and private key to use for man-in-the-middle;
  most users choosing this option will immediately visit
  http://martian.proxy/authority.cer in the browser whose traffic is to be
  intercepted to install the newly generated CA certificate
-organization="Martian Proxy"
  organization name set on the dynamically-generated certificates during
  man-in-the-middle
-validity="1h"
  window of time around the time of request that the dynamically-generated
  certificate is valid for; the duration is set such that the total valid
  timeframe is double the value of validity (1h before & 1h after)

वेरिफ़ायर जाँचें

मान लीजिए कि आपने Martian को किसी विशिष्ट URL की प्रतिक्रियाओं में एक विशिष्ट हेडर की उपस्थिति सत्यापित करने के लिए कॉन्फ़िगर किया है।

यहाँ एक कॉन्फ़िगरेशन है जो सत्यापित करता है कि example.com के सभी अनुरोध 200 OK के साथ प्रतिक्रियाएँ लौटाते हैं।

root@kitploit:~
      {
        "url.Filter": {
          "scope": ["request", "response"],
          "host" : "example.com",
          "modifier" : {
            "status.Verifier": {
              "scope" : ["response"],
              "statusCode": 200
            }
          }
        }
      }

एक बार Martian चल रहा हो, कॉन्फ़िगर किया गया हो और जिन अनुरोधों और परिणामी प्रतिक्रियाओं को आप सत्यापित करना चाहते हैं वे हो चुके हों, तो आप अपनी अपेक्षा सत्यापित कर सकते हैं कि आपको केवल 200 OK प्रतिक्रियाएँ वापस मिलीं।

वेरिफिकेशन जाँचने के लिए, निम्न करें:

root@kitploit:~
GET http://martian.proxy/verify

असफल अपेक्षाओं को त्रुटियों के रूप में ट्रैक किया जाता है, और त्रुटियों की सूची host:port/martian/verify पर GET अनुरोध करके प्राप्त की जाती है, जो त्रुटियों की एक सूची लौटाएगा:

root@kitploit:~
  {
      "errors" : [
          {
              "message": "response(http://example.com) status code verify failure: got 500, want 200"
          },
          {
              "message": "response(http://example.com/foo) status code verify failure: got 500, want 200"
          }
      ]
  }

वेरिफिकेशन त्रुटियाँ मेमोरी में तब तक रखी जाती हैं जब तक उन्हें स्पष्ट रूप से साफ़ नहीं किया जाता:

root@kitploit:~
POST http://martian.proxy/verify/reset

एक लाइब्रेरी के रूप में Martian

Martian को किसी भी Go प्रोग्राम में शामिल किया जा सकता है और लाइब्रेरी के रूप में उपयोग किया जा सकता है।

पूरी तरह से संशोधक (Modifiers All The Way Down)

Martian की अनुरोध और प्रतिक्रिया संशोधन प्रणाली सामान्य और विस्तार योग्य होने के लिए डिज़ाइन की गई है। डिज़ाइन उद्देश्य व्यक्तिगत संशोधक व्यवहार प्रदान करना है जिन्हें लगभग किसी भी वांछित संशोधन को बनाने के लिए व्यवस्थित किया जा सकता है।

जब व्यवहार बनाने के लिए Martian के साथ काम करते हैं, तो आपको इन विभिन्न प्रकार की अंतःक्रियाओं से परिचित होना होगा:

  • संशोधक: किसी अनुरोध या प्रतिक्रिया की स्थिति बदलते हैं
  • फ़िल्टर: सशर्त रूप से किसी निहित संशोधक को निष्पादित करने की अनुमति देते हैं
  • समूह: समूह में निर्दिष्ट क्रम में निष्पादित होने के लिए कई संशोधकों को बंडल करते हैं
  • वेरिफ़ायर: अपेक्षाओं के विरुद्ध नेटवर्क ट्रैफ़िक को ट्रैक करते हैं

संशोधक, फ़िल्टर और समूह सभी RequestModifier, ResponseModifier या RequestResponseModifier लागू करते हैं (martian.go में परिभाषित)।

root@kitploit:~
ModifyRequest(req *http.Request) error

ModifyResponse(res *http.Response) error

पूरे कोड (और इस दस्तावेज़) में आप "modifier" शब्द देखेंगे जो संशोधकों, समूहों और फ़िल्टरों को शामिल करने वाले शब्द के रूप में उपयोग किया जाता है। भले ही कोई समूह किसी अनुरोध या प्रतिक्रिया को संशोधित नहीं करता है, फिर भी हम इसे "modifier" कहते हैं।

हम modifier इंटरफ़ेस लागू करने वाली किसी भी चीज़ को Modifier कहते हैं।

पार्सर पंजीकरण

प्रत्येक संशोधक को Martian के साथ अपना स्वयं का पार्सर पंजीकृत करना होगा। पार्सर एक JSON संदेश को Go स्ट्रक्चर में पार्स करने के लिए ज़िम्मेदार है जो एक संशोधक इंटरफ़ेस लागू करता है।

Martian संशोधक पार्सर को रन-टाइम पर निर्मित स्ट्रिंग्स से फ़ंक्शनों के मानचित्र के रूप में रखता है। प्रत्येक संशोधक init() में parse.Register कॉल के साथ अपने पार्सर को पंजीकृत करने के लिए ज़िम्मेदार है।

parse.Register का सिग्नेचर:

root@kitploit:~
Register(name string, parseFunc func(b []byte) (interface{}, error))

Register package.Type के रूप में कुंजी को स्ट्रिंग के रूप में लेता है। उदाहरण के लिए, cookie_modifier स्वयं को cookie.Modifier कुंजी के साथ पंजीकृत करता है और query_string_filter स्वयं को querystring.Filter के रूप में पंजीकृत करता है। यह स्ट्रिंग JSON कॉन्फ़िगरेशन संदेश में name के मान के समान है।

निम्नलिखित कॉन्फ़िगरेशन संदेश में, header.Modifier वह तरीका है जिससे हेडर संशोधक header_modifier.go के init() में पंजीकृत होता है।

root@kitploit:~
{
  "header.Modifier": {
    "scope": ["response"],
    "name" : "Test-Header",
    "value" : "true"
  }
}

header_modifier.go से पार्सर पंजीकरण का उदाहरण:

root@kitploit:~
func init() {
  parse.Register("header.Modifier", modifierFromJSON)
}

func modifierFromJSON(b []byte) (interface{}, error) {
  ...
}

अपना स्वयं का संशोधक जोड़ना

यदि आपके मन में कोई उपयोग-मामला है जिसके लिए हमने संशोधक, फ़िल्टर या वेरिफ़ायर विकसित नहीं किए हैं, तो आप Martian को अपनी बहुत विशिष्ट आवश्यकताओं के अनुसार आसानी से विस्तारित कर सकते हैं।

एक संशोधक के 2 अनिवार्य भाग हैं:

  • संशोधक इंटरफ़ेस लागू करें
  • पार्सर पंजीकृत करें

कोई भी Go स्ट्रक्चर जो उन इंटरफ़ेस को लागू करता है वह modifier के रूप में कार्य कर सकता है।

संपर्क

Martian का उपयोग कैसे करें, सुविधाओं की घोषणाएँ, या डिज़ाइन चर्चाओं पर प्रश्नों और टिप्पणियों के लिए हमारे सार्वजनिक Google Group को https://groups.google.com/forum/#!forum/martianproxy-users पर देखें।

सुरक्षा संबंधी मुद्दों के लिए कृपया हमारे निजी कोर समूह को [email protected] पर एक विस्तृत रिपोर्ट भेजें।

अस्वीकरण

यह Google का आधिकारिक उत्पाद नहीं है (प्रयोगात्मक या अन्यथा), यह केवल ऐसा कोड है जो संयोगवश Google के स्वामित्व में है।

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