
Интерактивная командная строка для red teaming и пентеста. Автоматически отправляет команды через SOCKS4/5 прокси с помощью proxychains. Опциональная интеграция с Cobalt Strike получает beacon SOCKS4/5 прокси с team server. Автоматически ведет логи активности в локальный CSV-файл и на team server Cobalt Strike (если настроен).
Интерактивная командная строка для red teaming и пентеста. Автоматически отправляет команды через прокси SOCKS4/5 через proxychains. Опциональная интеграция с Cobalt Strike извлекает прокси SOCKS4/5 бикона с сервера команды. Автоматически записывает действия в локальный CSV-файл и на сервер команды Cobalt Strike (если настроено).
Обратите внимание, что поскольку RedShell использует proxychains под капотом, проксируется только TCP-трафик.
RedShell работает на Python > 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
Если вы используете пивот на сервере команды, значения контекста устанавливаются автоматически на основе бикона.
Приглашение командной строки автоматически обновляется с контекстными переменными (user@host).
Следующие команды RedShell фиксируются в журналах активности:
beacon_exec - Выполнить команду через beacon socks прокси и одновременно записать ее на сервер команды.proxy_exec - Выполнить команду через пользовательский socks прокси и одновременно записать ее в локальный файл.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 socks прокси. Они могут быть запущены в контексте текущего пользователя или через sudo. Указание 'proxychains' в команде необязательно. Команды принудительно проксируются через proxychains. Идентификаторы тактик MITRE ATT&CK необязательны.
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, а затем вызывайте с '$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 для полных условий.