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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
RedWarden — Cobalt Strike C2 रिवर्स प्रॉक्सी जो पैकेट निरीक्षण और malleable प्रोफ़ाइल सहसंबंध के माध्यम से ब्लू टीमों, AVs, EDRs, स्कैनर्स को दूर रखता है | Kitploit
उपकरण/GitHubGitHub/mgeeky/redwarden
भेद्यता परीक्षण फ्रेमवर्कटोहीशोषण फ्रेमवर्कवेब प्रॉक्सी और अवरोधनआईडीएस/आईपीएस से बचनारिवर्स इंजीनियरिंगजानकारी एकत्र करनानेटवर्क सुरक्षाकमांड एंड कंट्रोलखतरा खुफियारेड टीमिंगArchived
9971383 साल पहलेKitploit द्वारा समीक्षित

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

सभी देखें →

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

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

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

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

RedWarden

Cobalt Strike C2 रिवर्स प्रॉक्सी जो पैकेट निरीक्षण और malleable प्रोफ़ाइल सहसंबंध के माध्यम से ब्लू टीमों, AVs, EDRs, स्कैनर्स को दूर रखता है

रिपॉजिटरी देखें

RedWarden - Flexible CobaltStrike Malleable Redirector

(पहले proxy2's malleable_redirector प्लगइन के रूप में जाना जाता था)

आइए C2 रिडायरेक्टर IR लचीलेपन में बार को ऊपर उठाएं, है न?

RedWarden

Red Teaming व्यवसाय ने घटना प्रतिक्रियाकर्ताओं से निपटने और उन्हें गुमराह करने के साथ-साथ प्रतिरोधी C2 रिडायरेक्टर नेटवर्क प्रदान करने के कई विभिन्न महान विचार देखे हैं।

यह कार्य उन कई महान विचारों को एक हल्की उपयोगिता में जोड़ता है, जो Apache2 की सरल HTTP(S) रिवर्स-प्रॉक्सी होने की जड़ों का अनुकरण करता है।

Malleable C2 प्रोफाइल की समझ, खराब IP पतों के पूल का ज्ञान और आसानी से नई निरीक्षण और गलत रूटिंग तर्क जोड़ने की लचीलापन - के परिणामस्वरूप IR निरीक्षणों के लिए एक चालाक प्रतिकारक तैयार हुआ।

RedWarden

यदि कोई अमान्य इनबाउंड पैकेट RedWarden तक पहुँचता है - तो आप उसे redirect, reset या बस proxy कर सकते हैं!

सारांश

यह प्रोग्राम एक HTTP/HTTPS रिवर्स-प्रॉक्सी के रूप में कार्य करता है जिसमें इनबाउंड C2 HTTP अनुरोधों पर कई प्रतिबंध लगाए गए हैं, जो चुनता है कि कौन से पैकेट Teamserver को निर्देशित किए जाएं और कौन से छोड़ दिए जाएं, ठीक वैसे ही जैसे Apache2 के mod_rewrite में .htaccess फ़ाइल प्रतिबंध अनिवार्य हैं।

RedWarden को C2 रिडायरेक्टर लेयर पर IR/AV/EDRs/Sandboxes से बचाव की समस्या को हल करने के लिए बनाया गया था। इसका उद्देश्य उस उद्देश्य के लिए उपयोग किए जाने वाले क्लासिकल Apache2 + mod_rewrite सेटअप को बदलना है।

विशेषताएँ:

  • Malleable C2 प्रोफ़ाइल पार्सर जो इनबाउंड HTTP/S अनुरोधों को malleable के अनुबंध के अनुसार सख्ती से मान्य करने और उल्लंघन के मामले में बाहरी पैकेटों को छोड़ने में सक्षम है (Malleable Profiles 4.0+ विविधताओं सहित)
  • अप्रत्याशित और अनावश्यक HTTP हेडरों को अनफ़िल्टर/मरम्मत करने की क्षमता जो मध्यवर्ती सिस्टम जैसे प्रॉक्सी और कैश (जैसे CloudFlare) द्वारा जोड़े गए हैं, ताकि एक मान्य Malleable अनुबंध के अनुरूप हों।
  • IT सुरक्षा विक्रेताओं से जुड़े ज्ञात IPv4 पूलों और श्रेणियों की एकीकृत क्यूरेटेड विशाल ब्लैकलिस्ट
  • Grepable आउटपुट लॉग प्रविष्टियाँ (Apache2 संयुक्त एक्सेस लॉग और कस्टम RedWarden प्रारूपों में दोनों) जो पीयर कनेक्टिविटी घटनाओं/समस्याओं को ट्रैक करने में उपयोगी हैं
  • कनेक्ट होने वाले पीयर के IPv4 पते को IP जियोलोकेशन/whois जानकारी के विरुद्ध क्वेरी करने और पूर्वनिर्धारित रेगुलर एक्सप्रेशन से तुलना करने की क्षमता ताकि विश्वसनीय संगठनों/देशों/शहरों आदि के बाहर कनेक्ट होने वाले पीयर को नकारा जा सके।
  • अंतर्निर्मित रीप्ले हमले शमन जो स्वीकृत अनुरोधों के MD5 हैशसम को स्थानीय रूप से संग्रहीत SQLite डेटाबेस में लॉग करके और पहले स्वीकार किए गए अनुरोधों को रोककर लागू किया जाता है।
  • ProxyPass स्टेटमेंट को परिभाषित करने की अनुमति देता है ताकि विशिष्ट URL से मेल खाने वाले अनुरोधों को अन्य होस्ट्स पर भेजा जा सके
  • एकाधिक Teamservers के लिए समर्थन
  • कई रिवर्स-प्रॉक्सी होस्ट्स/रिडायरेक्शन साइटों के लिए समर्थन जो यादृच्छिक क्रम में दिए जाते हैं - जो ट्रैफिक को लोड-बैलेंस करने या अधिक बहुमुखी बुनियादी ढाँचा बनाने की सुविधा देता है
  • यदि ट्रैफिक में कुछ हेडर दूषित हो गए हों तो अपेक्षित malleable अनुबंध के अनुसार HTTP पैकेटों की मरम्मत कर सकता है
  • CloudFlare/CDN/Domain Fronting पर मेरा Beacon काम क्यों नहीं करता, इसके समस्या निवारण में बिताई गई नींद हराम रातें अब विस्तृत वर्बोज़ HTTP(S) अनुरोध/प्रतिक्रिया लॉग की बदौलत खत्म हो गई हैं

RedWarden अपने इनपुट पर Malleable C2 प्रोफ़ाइल और टीमसर्वर का hostname:port लेता है। फिर यह आपूर्ति किए गए malleable प्रोफ़ाइल अनुभागों को पार्स करके अनुबंध को समझता है और केवल उन इनबाउंड अनुरोधों को पास करता है जो इसे संतुष्ट करते हैं, जबकि दूसरों को गलत दिशा में भेजता है।

http-stager, http-get, http-post जैसे अनुभाग और उनके संबंधित uris, हेडर, प्रीपेंड/अपेंड पैटर्न, User-Agent सभी का उपयोग वैध बीकन के अनुरोध और असंबंधित इंटरनेट शोर या IR/AV/EDRs के आउट-ऑफ-बाउंड पैकेट के बीच अंतर करने के लिए किया जाता है।

यह प्रोग्राम निम्नलिखित से प्राप्त अद्भुत ज्ञात खराब IP श्रेणियों से लाभ उठाता है: curi0usJack और अन्य: https://gist.github.com/curi0usJack/971385e8334e189d93a6cb4671238b10

IP पतों की ब्लैकलिस्टिंग के साथ-साथ रिवर्स-IP DNS क्वेरी और HTTP हेडर निरीक्षण के माध्यम से ज्ञात खराब कीवर्ड खोज का उपयोग करके, रिडायरेक्टर की अवांछित पीयरों के प्रति लचीलापन में काफी वृद्धि होती है जो हमलावर बुनियादी ढाँचों की जांच करना चाहते हैं।

अमान्य पैकेटों को तीन रणनीतियों के अनुसार गलत रूट किया जा सकता है:

  • redirect: पीयर को दूसरी वेबसाइटों पर रिडायरेक्ट करें, जैसे Rick Roll।
  • reset: TCP कनेक्शन को तुरंत खत्म करें।
  • proxy: किसी अन्य वेबसाइट से प्रतिक्रिया लाएँ, ताकि क्लोन/हाईजैक की गई वेबसाइट का यथासंभव निकटता से अनुकरण किया जा सके।

यह कॉन्फ़िगरेशन कॉन्फ़िगरेशन फ़ाइल में अनिवार्य है:```yaml

What to do with the request originating not conforming to Beacon, whitelisting or

ProxyPass inclusive statements:

- 'redirect' it to another host with (HTTP 301),

- 'reset' a TCP connection with connecting client

- 'proxy' the request, acting as a reverse-proxy against specified action_url

(may be dangerous if client fetches something it shouldn't supposed to see!)

Valid values: 'reset', 'redirect', 'proxy'.

Default: redirect

drop_action: redirect

root@kitploit:~
नीचे दिया गया उदाहरण `redirect` के `https://googole.com` पर परिणाम दिखाता है:

![redirect](https://assets.kitploit.com/production/public/readmes/4322/2ac28c863e766b5aaa2f225c33c225075c7042383d9c51860342a4da63cc6dcd.png)

समझदारी से उपयोग करें, सुरक्षित रहें।

### आवश्यकताएँ

यह प्रोग्राम केवल Linux सिस्टम पर चल सकता है क्योंकि यह एकाधिक प्रक्रियाओं को चलाने के लिए fork का उपयोग करता है।

साथ ही, `openssl` सिस्टम कमांड के इंस्टॉल होने की उम्मीद है क्योंकि इसका उपयोग SSL प्रमाणपत्र उत्पन्न करने के लिए किया जाता है।

अंत में, सभी Python3 PIP आवश्यकताओं को आसानी से इंस्टॉल करें:```shell
bash $ sudo pip3 install -r requirements.txt

Usage

Example usage

न्यूनतम RedWarden का config.yaml कॉन्फ़िगरेशन फ़ाइल में शामिल हो सकता है:```yaml port:

  • 80/http
  • 443/https

profile: jquery-c2.3.14.profile

ssl_cacert: /etc/letsencrypt/live/attacker.com/fullchain.pem ssl_cakey: /etc/letsencrypt/live/attacker.com/privkey.pem

teamserver_url:

  • 1.2.3.4:8080

drop_action: reset

root@kitploit:~
फिर, कॉन्फ़िग फ़ाइल का पथ देकर प्रोग्राम लॉन्च किया जा सकता है:```shell
bash$ sudo python3 RedWarden.py -c config.yaml

  [INFO] 19:21:42: Loading 1 plugin...
  [INFO] 19:21:42: Plugin "malleable_redirector" has been installed.
  [INFO] 19:21:42: Preparing SSL certificates and keys for https traffic interception...
  [INFO] 19:21:42: Using provided CA key file: ca-cert/ca.key
  [INFO] 19:21:42: Using provided CA certificate file: ca-cert/ca.crt
  [INFO] 19:21:42: Using provided Certificate key: ca-cert/cert.key
  [INFO] 19:21:42: Serving http proxy on: 0.0.0.0, port: 80...
  [INFO] 19:21:42: Serving https proxy on: 0.0.0.0, port: 443...
  [INFO] 19:21:42: [REQUEST] GET /jquery-3.3.1.min.js
  [INFO] 19:21:42: == Valid malleable http-get request inbound.
  [INFO] 19:21:42: Plugin redirected request from [code.jquery.com] to [1.2.3.4:8080]
  [INFO] 19:21:42: [RESPONSE] HTTP 200 OK, length: 5543
  [INFO] 19:21:45: [REQUEST] GET /jquery-3.3.1.min.js
  [INFO] 19:21:45: == Valid malleable http-get request inbound.
  [INFO] 19:21:45: Plugin redirected request from [code.jquery.com] to [1.2.3.4:8080]
  [INFO] 19:21:45: [RESPONSE] HTTP 200 OK, length: 5543
  [INFO] 19:21:46: [REQUEST] GET /
  [...]
  [ERROR] 19:24:46: [DROP, reason:1] inbound User-Agent differs from the one defined in C2 profile.
  [...]
  [INFO] 19:24:46: [RESPONSE] HTTP 301 Moved Permanently, length: 212
  [INFO] 19:24:48: [REQUEST] GET /jquery-3.3.1.min.js
  [INFO] 19:24:48: == Valid malleable http-get request inbound.
  [INFO] 19:24:48: Plugin redirected request from [code.jquery.com] to [1.2.3.4:8080]
  [...]

उपरोक्त आउटपुट में एक पंक्ति है जो बताती है कि एक अनधिकृत, हमारे C2 प्रोफाइल के अनुरूप नहीं होने वाला इनबाउंड अनुरोध था, जो असंगत User-Agent स्ट्रिंग प्रस्तुत होने के कारण गिरा दिया गया।``` [...] [DROP, reason:1] inbound User-Agent differs from the one defined in C2 profile. [...]

root@kitploit:~
## उपयोग के मामले

### अपने बीकन ट्रैफ़िक उत्पत्तिकर्ताओं पर IP भू-स्थान लागू करें

आपने अपना Pre-Phish और OSINT बहुत अच्छी तरह से किया है। अब आप जानते हैं कि आपके लक्ष्य कहाँ रहते हैं और आपके पास कुछ सुराग हैं कि ट्रैफ़िक कहाँ से उत्पन्न होना चाहिए, या कम से कम पूरी तरह से सहायक ट्रैफ़िक का पता कैसे लगाया जाए।
रीडायरेक्टर पर बीकन अनुरोधों पर IP भू-स्थान कैसे लागू करें?

RedWarden मदद के लिए आता है!

मान लीजिए, आप केवल पोलैंड, यूरोप से उत्पन्न होने वाले ट्रैफ़िक को स्वीकार करना चाहते हैं।
आपके Pre-Phish/OSINT परिणाम इंगित करते हैं कि:

- `89.64.64.150` आपके एक लक्ष्य का वैध IP है, जो पोलैंड से उत्पन्न हुआ है
- `59.99.140.76` जबकि यह वैध नहीं है और यह एक सामान्य इंटरनेट शोर पैकेट के रूप में आपके सिस्टम तक पहुंचा।

आप RedWarden की उपयोगिता `lib/ipLookupHelper.py` का उपयोग इन दो पतों के बारे में IP भू-स्थान मेटाडेटा एकत्र करने के लिए कर सकते हैं:```shell
bash$ python3 ipLookupHelper.py

Usage: ./ipLookupHelper.py <ipaddress> [malleable-redirector-config]

Use this small utility to collect IP Lookup details on your target IPv4 address and verify whether
your 'ip_geolocation_requirements' section of proxy2 malleable-redirector-config.yaml would match that
IP address. If second param is not given - no 

पहला लाता है:```shell bash$ python3 ipLookupHelper.py 89.64.64.150 [dbg] Following IP Lookup providers will be used: ['ip_api_com', 'ipapi_co'] [.] Lookup of: 89.64.64.150 [dbg] Calling IP Lookup provider: ipapi_co [dbg] Calling IP Lookup provider: ip_api_com [dbg] New IP lookup entry cached: 89.64.64.150 [.] Output: { "organization": [ "UPC Polska Sp. z o.o.", "UPC.pl", "AS6830 Liberty Global B.V." ], "continent": "Europe", "continent_code": "EU", "country": "Poland", "country_code": "PL", "ip": "89.64.64.150", "city": "Warsaw", "timezone": "Europe/Warsaw", "fulldata": { "status": "success", "country": "Poland", "countryCode": "PL", "region": "14", "regionName": "Mazovia", "city": "Warsaw", "zip": "00-202", "lat": 52.2484, "lon": 21.0026, "timezone": "Europe/Warsaw", "isp": "UPC.pl", "org": "UPC Polska Sp. z o.o.", "as": "AS6830 Liberty Global B.V.", "query": "89.64.64.150" }, "reverse_ip": "89-64-64-150.dynamic.chello.pl" }

root@kitploit:~
और बाद वाला देता है:```shell
bash$ python3 ipLookupHelper.py 59.99.140.76
[dbg] Following IP Lookup providers will be used: ['ip_api_com', 'ipapi_co']
[dbg] Read 1 cached entries from file.
[.] Lookup of: 59.99.140.76
[dbg] Calling IP Lookup provider: ip_api_com
[dbg] New IP lookup entry cached: 59.99.140.76
[.] Output:
{
  "organization": [
    "",
    "BSNL Internet",
    "AS9829 National Internet Backbone"
  ],
  "continent": "Asia",
  "continent_code": "AS",
  "country": "India",
  "country_code": "IN",
  "ip": "59.99.140.76",
  "city": "Palakkad",
  "timezone": "Asia/Kolkata",
  "fulldata": {
    "status": "success",
    "country": "India",
    "countryCode": "IN",
    "region": "KL",
    "regionName": "Kerala",
    "city": "Palakkad",
    "zip": "678001",
    "lat": 10.7739,
    "lon": 76.6487,
    "timezone": "Asia/Kolkata",
    "isp": "BSNL Internet",
    "org": "",
    "as": "AS9829 National Internet Backbone",
    "query": "59.99.140.76"
  },
  "reverse_ip": ""
}

अब आप देख सकते हैं कि पहले वाले में "country": "Poland" था जबकि दूसरे में "country": "India" था। इस जानकारी के साथ हम अपनी बाधाओं को एक बड़े YAML शब्दकोश के रूप में तैयार करने के लिए तैयार हैं:```yaml ip_geolocation_requirements: organization: continent: continent_code: country: - Poland - PL - Polska country_code: city: timezone:

root@kitploit:~
उस शब्दकोश की प्रत्येक प्रविष्टि आने वाले पीयर के IP पते के निर्धारित IP Geo मेटाडेटा पर मिलान करने के लिए रेगुलर एक्सप्रेशन स्वीकार करती है।  
हम `country` प्रॉपर्टी में तीन प्रविष्टियों का उपयोग करते हैं ताकि निर्दिष्ट मानों में से एक वाले अनुरोधों की अनुमति दी जा सके।  

अपने कॉन्फ़िगरेशन में यह सेट करने के बाद, आप `ipLookupHelper` उपयोगिता के साथ जाँच सकते हैं कि कोई अन्य IP पता RedWarden के IP भू-स्थान विभेदक से गुज़रेगा या नहीं, जो दूसरा पैरामीटर स्वीकार करती है:

![ipLookupHelper IP Geo discriminator](https://assets.kitploit.com/production/public/readmes/4322/f67983439349d959f5ce0b08c45e53de3664d82796fd15273f3bb72f831ac7dc.png)

अंतिम पंक्ति आपको बताती है कि पैकेट अवरुद्ध होगा या स्वीकार किया जाएगा।

और बस इतना ही! अपने IP भू-स्थान बाधाओं को समझदारी और सुरक्षित रूप से कॉन्फ़िगर करें, किसी भी IP Geo-संबंधित DROP प्रविष्टियों के लिए RedWarden लॉग का सावधानीपूर्वक निरीक्षण करें और अपने C2 ट्रैफ़िक को साफ-सुथरा रखें!


### मिथ्या किए गए Beacon अनुरोधों की मरम्मत करें

यदि आप अपने डोमेन फ्रंटिंग / रीडायरेक्टर के रूप में AWS Lambda या CloudFlare जैसी अंतरिम प्रणालियों का उपयोग करते हैं, तो आप निश्चित रूप से ऐसी स्थिति में आए होंगे जहां आपके कुछ पैकेट Teamserver द्वारा स्वीकार नहीं किए जा सके क्योंकि वे सहमत malleable अनुबंध से विचलित हो गए थे। चाहे वह एक छेड़छाड़ किया गया या हटाया गया HTTP हेडर हो, पुनः क्रमित कुकीज़ या कुछ और - मुझे यकीन है कि इसने आपके जीवन के घंटे बर्बाद किए होंगे।

C2 चैनल सेटअप प्रक्रिया की समस्याओं और अंतरिम प्रणालियों की छेड़छाड़ से निपटने के लिए, RedWarden Beacon पैकेट की मरम्मत करने की कार्यक्षमता प्रदान करता है।

यह जाँच करके ऐसा करता है कि Malleable Profile पैकेट से क्या अपेक्षा करता है और प्रोफ़ाइल की आवश्यकताओं के अनुसार कॉन्फ़िगर किए गए HTTP हेडर को उनके सहमत मानों पर पुनर्स्थापित कर सकता है।

निम्नलिखित सरल प्रोफ़ाइल पर विचार करें:```
http-get {
    set uri "/api/abc";
    client {

        header "Accept-Encoding" "gzip, deflate";

        metadata {
            base64url;
            netbios;
            base64url;
            parameter "auth";
        }
    }
    ...

आप यह Accept-Encoding देख रहे हैं? हर Beacon अनुरोध में वह Header और वह मान होना चाहिए। क्या होगा यदि आपका Beacon CloudFlare सिस्टम से टकराता है और वे एक अनुरोध उत्सर्जित करते हैं जो उस Header से हटा दिया जाएगा या उसमें Accept-Encoding: gzip होगा? Teamserver उस अनुरोध को तुरंत छोड़ देगा।

RedWarden कॉन्फ़िगरेशन खंड में repair_these_headers नामक इस हेडर को सेट करके आप अपने कनेक्शन को सुरक्षित कर सकते हैं।:```yaml

This option repairs Beacon requests's header value by restoring to what was expected in Malleable C2 profile.

If RedWarden validates inbound request's HTTP headers, according to policy drop_malleable_without_expected_header_value:

"[IP: DROP, reason:6] HTTP request did not contain expected header value:"

and detects some header is missing or was overwritten along the wire, the request will be dropped.

We can relax this policy a bit however, since there are situations in which Cache systems (such as Cloudflare) could tamper with our

requests thus breaking Malleable contracts. What we can do is to specify list of headers, that should be overwritten back to their values

defined in provided Malleable profile.

So for example, if our profile expects:

header "Accept-Encoding" "gzip, deflate";

but we receive a request having following header set instead:

Accept-Encoding: gzip

Because it was tampered along the wire by some of the interim systems (such as web-proxies or caches), we can

detect that and set that header's value back to what was expected in Malleable profile.

In order to protect Accept-Encoding header, as an example, the following configuration could be used:

repair_these_headers:

- Accept-Encoding

Default:

repair_these_headers:

  • Accept-Encoding
root@kitploit:~
### समस्याग्रस्त प्रतिक्रिया हेडर हटाएं

Cobalt Strike 4.7+ के साथ मैंने देखा कि Teamserver बिना किसी सूचना के स्वचालित रूप से Content-Encoding हेडर हटा देता है, जिससे हमारे malleable `http-(get|post).server` अनुबंध का उल्लंघन होता है।

चूंकि RedWarden ने अनुबंध का पालन किया, Beacon या तो प्रतिक्रियाओं को छोड़ रहा था या उन्हें गलत तरीके से डीकंप्रेस कर रहा था।

यह विकल्प निर्दिष्ट करता है कि Teamserver प्रतिक्रियाओं से आने वाले कौन से हेडर को Beacon प्रक्रिया तक पहुंचने से पहले हटा दिया जाना चाहिए:```yaml

remove_these_response_headers:
  - Content-Encoding

RedWarden अब Teamserver प्रतिक्रियाओं से Content-Encoding हेडर को डिफ़ॉल्ट रूप से हटा देगा, ताकि CS4.7+ संस्करणों के साथ संचालन क्षमता बनी रहे।

उदाहरण आउटपुट

आइए प्रॉक्सी द्वारा उत्पन्न आउटपुट पर एक नज़र डालें।

verbose: True विकल्प के तहत, वर्बोसिटी अधिकांशतः INFO पर सेट होगी, जो स्वीकृत अनुरोधों को अस्वीकृत अनुरोधों से अलग बताएगी।

अनुरोध स्वीकार किया जा सकता है यदि वह RedWarden की कॉन्फ़िगरेशन फ़ाइल में कॉन्फ़िगर किए गए सभी मापदंडों को पूरा करता है। ऐसी स्थिति में [ALLOW, ...] प्रविष्टि लॉग के साथ आगे बढ़ेगा:``` [INFO] 2021-04-24/17:30:48: [REQUEST] GET /js/scripts.js [INFO] 2021-04-24/17:30:48: == Valid malleable http-get (variant: default) request inbound. [INFO] 2021-04-24/17:30:48: [ALLOW, 2021-04-24/19:30:48, 111.222.223.224] "/js/scripts.js" - UA: "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko" [INFO] 2021-04-24/17:30:48: Connected peer sent 2 valid http-get and 0 valid http-post requests so far, out of 15/5 required to consider him temporarily trusted [INFO] 2021-04-24/17:30:48: Plugin redirected request from [attacker.com] to [127.0.0.1:5555]

root@kitploit:~
यदि अनुरोध RedWarden द्वारा प्रत्येक अनुरोध पर किए जाने वाले किसी भी जाँच में विफल रहता है, तो संबंधित `[DROP, ...]` पंक्ति उत्सर्जित होगी जिसमें ड्रॉप के **कारण** के बारे में जानकारी होगी।:```
[INFO] 2021-04-24/16:48:28: [REQUEST] GET /
[ERROR] 2021-04-24/16:48:29: [DROP, 2021-04-24/18:48:28, reason:1, 128.14.211.186] inbound User-Agent differs from the one defined in C2 profile.
[INFO] 2021-04-24/16:48:29: [DROP, 2021-04-24/18:48:28, 128.14.211.186] "/" - UA: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36"
[ERROR] 2021-04-24/16:48:29: [REDIRECTING invalid request from 128.14.211.186 (zl-dal-us-gp3-wk107.internet-census.org)] GET /

ड्रॉप नीतियाँ फाइन-ट्यूनिंग

ऐसे कई कारण हैं जो यह निर्धारित करते हैं कि अनुरोध को गिराया जा सकता है या नहीं। इनमें से प्रत्येक जाँच को आवश्यकताओं के अनुसार या फाइन-ट्यूनिंग या गलत निर्णय सुधारने की प्रक्रिया में स्वतंत्र रूप से चालू और बंद किया जा सकता है:

example-config.yaml से अंश:```yaml

Fine-grained requests dropping policy - lets you decide which checks

you want to have enforced and which to skip by setting them to False

Default: all checks enabled

policy:

[IP: ALLOW, reason:0] Request conforms ProxyPass entry (url="..." host="..."). Passing request to specified host

allow_proxy_pass: True

[IP: ALLOW, reason:2] Peer's IP was added dynamically to a whitelist based on a number of allowed requests

allow_dynamic_peer_whitelisting: True

[IP: DROP, reason:1] inbound User-Agent differs from the one defined in C2 profile.

drop_invalid_useragent: True

[IP: DROP, reason:2] HTTP header name contained banned word

drop_http_banned_header_names: True

[IP: DROP, reason:3] HTTP header value contained banned word:

drop_http_banned_header_value: True

[IP: DROP, reason:4b] peer's reverse-IP lookup contained banned word

drop_dangerous_ip_reverse_lookup: True

[IP: DROP, reason:4e] Peer's IP geolocation metadata contained banned keyword! Peer banned in generic fashion.

drop_ipgeo_metadata_containing_banned_keywords: True

[IP: DROP, reason:5] HTTP request did not contain expected header

drop_malleable_without_expected_header: True

[IP: DROP, reason:6] HTTP request did not contain expected header value:

drop_malleable_without_expected_header_value: True

[IP: DROP, reason:7] HTTP request did not contain expected (metadata|id|output) section header:

drop_malleable_without_expected_request_section: True

[IP: DROP, reason:8] HTTP request was expected to contain (metadata|id|output) section with parameter in URI:

drop_malleable_without_request_section_in_uri: True

[IP: DROP, reason:9] Did not found append pattern:

drop_malleable_without_prepend_pattern: True

[IP: DROP, reason:10] Did not found append pattern:

drop_malleable_without_apppend_pattern: True

[IP: DROP, reason:11] Requested URI does not aligns any of Malleable defined variants:

drop_malleable_unknown_uris: True

[IP: DROP, reason:12] HTTP request was expected to contain <> section with URI-append containing prepend/append fragments

drop_malleable_with_invalid_uri_append: True

root@kitploit:~
डिफ़ॉल्ट रूप से ये सभी जाँचें लागू होती हैं।

`debug: True` चालू करने से आपका कंसोल बफर RedWarden द्वारा अपनी जटिल निर्णय प्रक्रिया में उठाए गए प्रत्येक कदम का वर्णन करने वाली लॉग लाइनों से भर जाएगा।
यदि आप अपने अनुरोधों और प्रतिक्रियाओं के पूरे बॉडी देखना चाहते हैं - तो `debug` और `trace` को true पर सेट करें और लॉगिंग के बोझ में दब जाएँ!


## FAQ

**- क्या यह प्रोग्राम Malleable Profile के बिना चल सकता है?**

हाँ, चल सकता है। हालांकि अनुरोध निरीक्षण तर्क बंद हो जाएगा, बाकी चीजें ठीक काम करनी चाहिए: IP भू-स्थान प्रवर्तन, रिवर्स-लुकअप तर्क, प्रतिबंधित IP सूची, आदि।

**- क्या इस प्रोग्राम को अन्य C2 फ्रेमवर्कों, जैसे Mythic, Covenant आदि में आसानी से अनुकूलित किया जा सकता है?**

आसानी से नहीं। कुछ प्रयासों से - हाँ। जैसा कि मैंने नीचे वर्णित किया है, टूल खराब लिखा गया है जो अन्य C2 के अनुकूलन को दर्दनाक बना देगा। हालांकि कुछ समय और प्रयास देकर यह पूरी तरह से किया जा सकता है।

**- मेरे पैकेट ड्रॉप हो रहे हैं। क्यों?**

`debug: True` और `trace: True` सक्षम करके जितना हो सके उतने लॉग इकट्ठा करने का प्रयास करें। फिर आपको लॉग के माध्यम से जाना होगा और देखना होगा कि क्या हो रहा है। क्या पैकेट बिल्कुल वैसे दिखते हैं जैसा आपने अपने Malleable प्रोफ़ाइल में अपेक्षित किया था? या हो सकता है कि नेटवर्क के साथ कोई सूक्ष्म छेड़छाड़ हुई हो जिसके कारण RedWarden पैकेट को ड्रॉप करता है (और यह Teamserver को भी ड्रॉप करने का कारण बन सकता है?)।


## ज्ञात समस्याएँ

- यह इंटरैक्टिव स्लीप थ्रूपुट पर हल्का ओवरहेड जोड़ सकता है
- ProxyPass प्रसंस्करण तर्क सही से बहुत दूर है और वास्तव में बगी है (और अरे यार यह बदसूरत है!)।
- कॉन्फ़िगरेशन फ़ाइलों के अजीब रूप RedWarden पार्सर को पटरी से उतार सकते हैं और इसे शिकायत करने पर मजबूर कर सकते हैं। इससे उबरने का सबसे आसान तरीका `example-config.yaml` को कॉपी करके उस पर काम करना होगा।


## ओह माय गॉड यह कोड इंजीनियरिंग का इतना बेकार टुकड़ा क्यों है?

कोड _एक बहुत बड़ी गड़बड़ है_ - मैं इसे स्वीकार करता हूँ - और इसका एक ईमानदार कारण भी है: परियोजना 90% वास्तविक Red Team अभियानों के दौरान विकसित की जा रही थी। जैसा कि हम सभी जानते हैं, इस प्रकार के अभियानों में बहुत सी चीजें करनी होती हैं, जिससे उचित जटिल उपकरण विकास के लिए लगभग कोई समय नहीं बचता है। परियोजना की स्थापना में इस कार्यक्रम की महत्वपूर्णता का तो जिक्र ही नहीं। यह टूल शुरू में Python2 में लिखे एक साधारण प्रॉक्सी स्क्रिप्ट के रूप में शुरू हुआ, फिर प्लगइन्स के साथ प्रॉक्सी के रूप में विकसित हुआ, इसमें `malleable_redirector` प्लगइन जोड़ा गया - और तब से मैं वास्तव में `proxy2` को अन्य प्लगइन्स के साथ बैकवर्ड संगतता बनाए रखने के लिए (बेचारा मैं, मैं Microsoft की तरह था!) और इसके मूल उद्देश्य से जुड़े रहने के लिए कड़ी मेहनत कर रहा हूँ।

हालांकि अब इसे जाने देने, इसे रीब्रांड करने और पेश किए गए सभी खराब कोड स्मेल को ठीक करना शुरू करने का समय आ गया है।

इतना सब कहने के बाद, कृपया मुद्दे उठाते समय, पुल अनुरोध सबमिट करते समय मेरे प्रति कुछ सहानुभूति दिखाएँ और न्याय करने के बजाय मदद करने का प्रयास करें! :-)
धन्यवाद!


## TODO

- खतरनाक उद्देश्यों के लिए Threat Intelligence फ़ीड का उपयोग करने की संभावना पर शोध करें - उदाहरण के लिए IP के आधार पर Security Vendors का पता लगाना
- MaxMind GeoIP डेटाबेस/API के लिए समर्थन जोड़ें
- JA3 हस्ताक्षरों का पता लगाने और ब्लॉक करने दोनों के साथ-साथ nginx/Apache2/कस्टम सेटअप का अनुकरण करने के लिए समर्थन लागू करें।
- प्रॉक्सी के अपने विवेक पर स्टेजिंग और संचार प्रक्रियाओं को अस्वीकार करने की सुविधा प्रदान करने के लिए कुछ अनोखा बीकन ट्रैकिंग तर्क जोड़ें
- रीडायरेक्ट क्षमताएँ प्रदान करते समय दिन के समय की बाधा लागू करें (_केवल कार्यालय समय के दौरान प्रॉक्सी_)
- CONNECT/रिले पर प्रॉक्सी प्रमाणीकरण और प्राधिकरण तर्क जोड़ें।
- मोबाइल उपयोगकर्ताओं के लिए लक्षित रीडायरेक्ट जोड़ें
- इंजेक्ट किए जाने वाले कस्टम HTTP हेडर, या हटाए जाने वाले हेडर को परिभाषित करने के लिए कॉन्फ़िगरेशन विकल्प जोड़ें
- ProxyPass मानदंड पारित करने वाले अनुरोधों में विशिष्ट HTTP हेडर की उपस्थिति की आवश्यकता के लिए कॉन्फ़िगरेशन विकल्प जोड़ें।
- इंटरैक्टिव इंटरफ़ेस जो Nmap की तरह आउटपुट लॉगिंग वर्बोसिटी को नियंत्रित करने वाले सरल वर्ण टाइप करने की अनुमति देता है
- Malleable प्रोफ़ाइल पार्सर तर्क को [pyMalleableC2](https://github.com/Porchetta-Industries/pyMalleableC2) में फिर से लिखें। जब मैंने पहली बार अपना पार्सर तर्क कोड करना शुरू किया था, तब Github पर ऐसा कोई टूलकिट नहीं था।
- सभी कोडबेस को रिफैक्टर करें


---

### ☕ सहायता दिखाएँ ☕

यह और अन्य परियोजनाएँ नींद हराम रातों और **बहुत सारी कड़ी मेहनत** का परिणाम हैं। यदि आपको मैं जो करता हूँ वह पसंद है और आप सराहना करते हैं कि मैं हमेशा समुदाय को वापस देता हूँ,
[मुझे एक कॉफी खरीदने पर विचार करें](https://github.com/sponsors/mgeeky) _(या बेहतर एक बीयर)_ बस धन्यवाद कहने के लिए! 💪 

---

## लेखक```   
   Mariusz Banach / mgeeky, '19-'21
   <mb [at] binary-offensive.com>
   (https://github.com/mgeeky) 
टूल डाउनलोड करें