
Cobalt Strike C2 रिवर्स प्रॉक्सी जो पैकेट निरीक्षण और malleable प्रोफ़ाइल सहसंबंध के माध्यम से ब्लू टीमों, AVs, EDRs, स्कैनर्स को दूर रखता है
(पहले proxy2's malleable_redirector प्लगइन के रूप में जाना जाता था)
आइए C2 रिडायरेक्टर IR लचीलेपन में बार को ऊपर उठाएं, है न?

Red Teaming व्यवसाय ने घटना प्रतिक्रियाकर्ताओं से निपटने और उन्हें गुमराह करने के साथ-साथ प्रतिरोधी C2 रिडायरेक्टर नेटवर्क प्रदान करने के कई विभिन्न महान विचार देखे हैं।
यह कार्य उन कई महान विचारों को एक हल्की उपयोगिता में जोड़ता है, जो Apache2 की सरल HTTP(S) रिवर्स-प्रॉक्सी होने की जड़ों का अनुकरण करता है।
Malleable C2 प्रोफाइल की समझ, खराब IP पतों के पूल का ज्ञान और आसानी से नई निरीक्षण और गलत रूटिंग तर्क जोड़ने की लचीलापन - के परिणामस्वरूप IR निरीक्षणों के लिए एक चालाक प्रतिकारक तैयार हुआ।

यदि कोई अमान्य इनबाउंड पैकेट RedWarden तक पहुँचता है - तो आप उसे redirect, reset या बस proxy कर सकते हैं!
यह प्रोग्राम एक HTTP/HTTPS रिवर्स-प्रॉक्सी के रूप में कार्य करता है जिसमें इनबाउंड C2 HTTP अनुरोधों पर कई प्रतिबंध लगाए गए हैं, जो चुनता है कि कौन से पैकेट Teamserver को निर्देशित किए जाएं और कौन से छोड़ दिए जाएं, ठीक वैसे ही जैसे Apache2 के mod_rewrite में .htaccess फ़ाइल प्रतिबंध अनिवार्य हैं।
RedWarden को C2 रिडायरेक्टर लेयर पर IR/AV/EDRs/Sandboxes से बचाव की समस्या को हल करने के लिए बनाया गया था। इसका उद्देश्य उस उद्देश्य के लिए उपयोग किए जाने वाले क्लासिकल Apache2 + mod_rewrite सेटअप को बदलना है।
विशेषताएँ:
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 हेडर निरीक्षण के माध्यम से ज्ञात खराब कीवर्ड खोज का उपयोग करके, रिडायरेक्टर की अवांछित पीयरों के प्रति लचीलापन में काफी वृद्धि होती है जो हमलावर बुनियादी ढाँचों की जांच करना चाहते हैं।
अमान्य पैकेटों को तीन रणनीतियों के अनुसार गलत रूट किया जा सकता है:
यह कॉन्फ़िगरेशन कॉन्फ़िगरेशन फ़ाइल में अनिवार्य है:```yaml
drop_action: redirect
नीचे दिया गया उदाहरण `redirect` के `https://googole.com` पर परिणाम दिखाता है:

समझदारी से उपयोग करें, सुरक्षित रहें।
### आवश्यकताएँ
यह प्रोग्राम केवल Linux सिस्टम पर चल सकता है क्योंकि यह एकाधिक प्रक्रियाओं को चलाने के लिए fork का उपयोग करता है।
साथ ही, `openssl` सिस्टम कमांड के इंस्टॉल होने की उम्मीद है क्योंकि इसका उपयोग SSL प्रमाणपत्र उत्पन्न करने के लिए किया जाता है।
अंत में, सभी Python3 PIP आवश्यकताओं को आसानी से इंस्टॉल करें:```shell
bash $ sudo pip3 install -r requirements.txt
न्यूनतम RedWarden का config.yaml कॉन्फ़िगरेशन फ़ाइल में शामिल हो सकता है:```yaml port:
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:
drop_action: reset
फिर, कॉन्फ़िग फ़ाइल का पथ देकर प्रोग्राम लॉन्च किया जा सकता है:```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. [...]
## उपयोग के मामले
### अपने बीकन ट्रैफ़िक उत्पत्तिकर्ताओं पर 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" }
और बाद वाला देता है:```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:
उस शब्दकोश की प्रत्येक प्रविष्टि आने वाले पीयर के IP पते के निर्धारित IP Geo मेटाडेटा पर मिलान करने के लिए रेगुलर एक्सप्रेशन स्वीकार करती है।
हम `country` प्रॉपर्टी में तीन प्रविष्टियों का उपयोग करते हैं ताकि निर्दिष्ट मानों में से एक वाले अनुरोधों की अनुमति दी जा सके।
अपने कॉन्फ़िगरेशन में यह सेट करने के बाद, आप `ipLookupHelper` उपयोगिता के साथ जाँच सकते हैं कि कोई अन्य IP पता RedWarden के IP भू-स्थान विभेदक से गुज़रेगा या नहीं, जो दूसरा पैरामीटर स्वीकार करती है:

अंतिम पंक्ति आपको बताती है कि पैकेट अवरुद्ध होगा या स्वीकार किया जाएगा।
और बस इतना ही! अपने 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
repair_these_headers:
### समस्याग्रस्त प्रतिक्रिया हेडर हटाएं
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]
यदि अनुरोध 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
policy:
allow_proxy_pass: True
allow_dynamic_peer_whitelisting: True
drop_invalid_useragent: True
drop_http_banned_header_names: True
drop_http_banned_header_value: True
drop_dangerous_ip_reverse_lookup: True
drop_ipgeo_metadata_containing_banned_keywords: True
drop_malleable_without_expected_header: True
drop_malleable_without_expected_header_value: True
drop_malleable_without_expected_request_section: True
drop_malleable_without_request_section_in_uri: True
drop_malleable_without_prepend_pattern: True
drop_malleable_without_apppend_pattern: True
drop_malleable_unknown_uris: True
drop_malleable_with_invalid_uri_append: True
डिफ़ॉल्ट रूप से ये सभी जाँचें लागू होती हैं।
`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)