
موجه أوامر تفاعلي لعمليات الفريق الأحمر واختبار الاختراق. يدفع الأوامر تلقائيًا عبر وكلاء SOCKS4/5 باستخدام proxychains. التكامل الاختياري مع Cobalt Strike يسحب وكلاء SOCKS4/5 من beacon من خادم الفريق. يسجل الأنشطة تلقائيًا في ملف CSV محلي وخادم فريق Cobalt Strike (إذا تم تكوينه).
واجهة أوامر تفاعلية لعمليات الفرق الحمراء واختبار الاختراق. تقوم تلقائيًا بدفع الأوامر عبر وكلاء SOCKS4/5 باستخدام proxychains. التكامل الاختياري مع Cobalt Strike يسحب وكلاء SOCKS4/5 من خادم الفريق. تسجل الأنشطة تلقائيًا إلى ملف CSV محلي وخادم Cobalt Strike (إذا تم تكوينه).
لاحظ أنه نظرًا لأن RedShell يستخدم proxychains داخليًا، فإن حركة TCP فقط هي التي يتم توجيهها عبر الوكيل.
RedShell يعمل على بايثون > 3.8.
تثبيت التبعيات:
pip3 install -r requirements.txt
تثبيت proxychains-ng (https://github.com/rofl0r/proxychains-ng):
apt install proxychains4
لم يعد RedShell يعتمد على Cobalt Strike. ومع ذلك، إذا كنت تستخدم تكامل Cobalt Strike، فيجب تثبيت عميل CS على نفس المضيف الذي يعمل عليه RedShell. أيضًا، اجعل غلاف agscript قابلاً للتنفيذ:
chmod +x agscript.sh
بدء RedShell:
$python3 redshell.py
____ _______ __ ____
/ __ \___ ____/ / ___// /_ ___ / / /
/ /_/ / _ \/ __ /\__ \/ __ \/ _ \/ / /
/ _, _/ __/ /_/ /___/ / / / / __/ / /
/_/ |_|\___/\__,_//____/_/ /_/\___/_/_/
Logging to: /home/user/.redshell/redshell_2022_08_22_13_00_13.csv
redshell >
عرض المساعدة:
redshell > help
Documented commands (use 'help -v' for verbose/'help <topic>' for details):
===========================================================================
beacon_exec cs_connect cs_status help pwd socks
cd cs_disconnect cs_use_pivot history quit
config cs_load_config exec log set
context cs_pivots exit proxy_exec shell
تعيين الخيارات:
redshell> set option VALUE
RedShell يسجل الأنشطة تلقائيًا عبر أوامر beacon_exec و proxy_exec و exec أو log. يتم تهيئة التسجيل تلقائيًا عند بدء التشغيل، وتُكتب ملفات السجل إلى: ~/.redshell.
للتسجيل على Cobalt Strike، اتصل بخادم الفريق، واختر محورًا، واستخدم أمر beacon_exec.
يستخدم RedShell proxychains-ng وملف تكوين مخصص لـ proxychains. يتم التعامل مع تعديلات ملف التكوين وتوجيه الأوامر بشكل فوري.
للتوجيه عبر Cobalt Strike، اتصل بخادم الفريق، واختر محورًا، واستخدم أمر beacon_exec. راجع قسم Cobalt Strike للحصول على التفاصيل.
يمكن تعيين وكلاء مخصصين من إصدار socks 4 أو 5 باستخدام الأمر socks.
redshell > socks -h
usage: socks [-h] [-u SOCKS5_USER] [-p SOCKS5_PASS] {socks4,socks5} ip_address socks_port
Use a custom socks4/5 server
positional arguments:
{socks4,socks5}
ip_address
socks_port
options:
-h, --help show this help message and exit
-u SOCKS5_USER
-p SOCKS5_PASS
يقوم RedShell تلقائيًا بالتحقق من الاتصالات والمصادقة (حيثما أمكن) لوكلاء SOCKS عند الاختيار (باستخدام الأمر socks أو cs_use_pivot). يمكن تعطيل ذلك بالأمر التالي: set check_socks false
السياق في RedShell هو جانب أساسي من تسجيل النشاط. يسمح لك السياق بتعيين المنظور (في سجلات النشاط) للمضيف المصدر الذي ينفذ الأنشطة في شبكة الهدف. يمكن تضمين سمات السياق التالية في سجلات النشاط: عنوان IP، اسم DNS، اسم NetBIOS، اسم المستخدم، ومعرف العملية. عنوان IP فقط مطلوب.
ملاحظات حول السياق:
بعد تعيين وكيل socks باستخدام الأمر socks، أضف تفاصيل السياق باستخدام الأمر context.
RedShell> context -h
usage: context [-h] [-d DNSNAME] [-n NETBIOSNAME] [-u USERNAME] [-p PID] ip_address
Set a custom context (Source IP/DNS/NetBIOS/User/PID) for logging
positional arguments:
ip_address Source IP Address
optional arguments:
-h, --help show this help message and exit
-d DNSNAME, --dnsname DNSNAME
DNS Name
-n NETBIOSNAME, --netbiosname NETBIOSNAME
NetBIOS Name
-u USERNAME, --username USERNAME
User Name
-p PID, --pid PID Process ID
إذا كنت تستخدم محورًا على خادم فريق، يتم تعيين قيم السياق تلقائيًا بناءً على beacon.
يتم تحديث موجه الأوامر تلقائيًا بمتغيرات السياق (user@host).
يتم تسجيل أوامر RedShell التالية في سجلات النشاط:
beacon_exec - تنفيذ أمر عبر وكيل beacon وتسجيله في نفس الوقت على خادم الفريق.proxy_exec - تنفيذ أمر عبر وكيل مخصص وتسجيله في نفس الوقت في الملف المحلي.exec - تنفيذ أمر وتسجيله في الملف المحلي.log - إضافة إدخال سجل يدوي إلى الملف المحلي.
تعيين خيارات الاتصال بـ Cobalt Strike:
redshell > set cs_host 127.0.0.1
redshell > set cs_port 50050
redshell > set cs_user somedude
الاتصال بخادم الفريق (سيُطلب منك كلمة مرور خادم الفريق):
redshell > cs_connect
مثال:

أو التحميل من ملف تكوين. ملاحظة: لا تتم قراءة كلمات مرور خادم الفريق من ملفات التكوين. سيطلب RedShell كلمة مرور خادم الفريق ثم يتصل تلقائيًا.
$ cat config.txt
cs_host=127.0.0.1
cs_port=12345
cs_user=somedude
cs_directory=/path/to/cobaltstrike/install
redshell > cs_load_config config.txt
إظهار محاور الوكيل المتاحة:
redshell > cs_pivots
مثال:

اختيار محور وكيل (ملاحظة: لا يمكن تعيين هذا إلا بعد إنشاء اتصال بخادم الفريق):
redshell > cs_use_pivot 2
SOCKS5 pivot requires authentication.
Enter SOCKS5 user: username
Enter SOCKS5 password:
التحقق من حالة Cobalt Strike:
redshell > cs_status
مثال:

تنفيذ الأوامر عبر وكيل beacon. يمكن تشغيلها في سياق المستخدم الحالي أو عبر sudo. تحديد 'proxychains' في الأمر اختياري. يتم فرض الأوامر عبر proxychains. معرفات MITRE ATT&CK Tactic ID اختيارية.
redshell > beacon_exec -h
usage: beacon_exec [-h] [-t TTP] ...
Execute a command through beacon socks proxy and simultaneously log it to the teamserver.
positional arguments:
command Command to execute through the proxy and log.
optional arguments:
-h, --help show this help message and exit
-t TTP, --ttp TTP MITRE ATT&CK Tactic IDs. Comma delimited to specify multiple.
example:
beacon_exec -t T1550.002,T1003.002 cme smb 192.168.1.1 --local-auth -u Administrator -H C713B1D611657D0687A568122193F230 --sam
مثال:

ملاحظة حول خيارات دليل Redshell و CS - يحتاج البرنامج النصي إلى معرفة مكان وجوده، بالإضافة إلى Cobalt Strike. إذا حدث خطأ، تأكد من تعيين الدلائل وفقًا لذلك:
redshell > set redshell_directory /opt/redshell
redshell > set cs_directory /opt/cobaltstrike
ملاحظة حول كلمات المرور المستخدمة في أوامر *exec: قد يتم تفسير الأحرف الخاصة في كلمات المرور كأحرف تحكم في الصدفة، مما قد يتسبب في فشل الأوامر. لتجنب ذلك، قم بتعيين خيار كلمة المرور ثم استخدمها باستخدام '$password'. مثال:
redshell > set password Test12345
password - was: ''
now: 'Test12345'
redshell > beacon_exec cme smb 192.168.1.14 --local-auth -u administrator -p $password --shares
يتضمن RedShell أوامر للتنقل في نظام الملفات:
redshell > cd /opt/redshell/
redshell > pwd
/opt/redshell
يمكن تشغيل أوامر إضافية عبر أمر shell أو عبر الاختصار '!':
redshell > shell date
Mon 29 Jul 2019 05:33:02 PM MDT
redshell > !date
Mon 29 Jul 2019 05:33:03 PM MDT
يتم تتبع الأوامر ويكون الوصول إليها عبر أمر history:
redshell > history
1 load_config config.txt
2 status
3 help
يتضمن RedShell أيضًا إكمال علامات التبويب ومسح نافذة الطرفية عبر ctrl + l.
Datetime,IP Address,DNS Name,NetBIOS Name,User,PID,Activity,TTPs
2021/09/21 14:22:32 +0000,192.168.56.106,,WINDEV,USER,7312,[PROXY] cme smb 192.168.56.105,
ملاحظات:
هذا المشروع مرخص بموجب شروط ترخيص Apache 2.0 مفتوح المصدر. يرجى الرجوع إلى LICENSE للحصول على الشروط الكاملة.