
레드팀 및 침투 테스트를 위한 대화형 명령 프롬프트입니다. proxychains를 통해 SOCKS4/5 프록시를 자동으로 푸시합니다. 선택적 Cobalt Strike 통합으로 팀 서버에서 비콘 SOCKS4/5 프록시를 가져옵니다. 활동을 로컬 CSV 파일과 Cobalt Strike 팀 서버(구성된 경우)에 자동으로 기록합니다.
레드팀 공격 및 침투 테스트를 위한 대화형 명령 프롬프트입니다. proxychains를 통해 SOCKS4/5 프록시를 거쳐 명령을 자동으로 전송합니다. 선택적으로 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
____ _______ __ ____
/ __ \___ ____/ / ___// /_ ___ / / /
/ /_/ / _ \/ __ /\__ \/ __ \/ _ \/ / /
/ _, _/ __/ /_/ /___/ / / / / __/ / /
/_/ |_|\___/\__,_//____/_/ /_/\___/_/_/
로깅 위치: /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 명령으로 사용자 정의 socks 버전 4 또는 5 프록시를 설정할 수 있습니다.
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 또는 cs_use_pivot 명령 사용) SOCKS 프록시에 대한 연결 및 인증(해당하는 경우)을 자동으로 확인합니다. 다음 명령으로 비활성화할 수 있습니다: set check_socks false
RedShell의 컨텍스트는 활동 로깅의 핵심 요소입니다. 컨텍스트를 사용하면 대상 네트워크에서 활동을 실행하는 소스 호스트의 관점을 (활동 로그에서) 설정할 수 있습니다. 활동 로그에 포함될 수 있는 컨텍스트 속성: IP 주소, DNS 이름, NetBIOS 이름, 사용자 이름, 프로세스 ID. 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
팀 서버에서 피벗을 사용하는 경우 컨텍스트 값은 비콘을 기반으로 자동으로 설정됩니다.
명령 프롬프트는 컨텍스트 변수(사용자@호스트)로 자동 업데이트됩니다.
다음 RedShell 명령은 활동 로그에 캡처됩니다:
beacon_exec - 비콘 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
예제:

비콘 socks 프록시를 통해 명령 실행. 현재 사용자 컨텍스트 또는 sudo를 통해 실행할 수 있습니다. 명령에 'proxychains'를 지정하는 것은 선택 사항입니다. 명령은 강제로 proxychains를 통해 실행됩니다. MITRE ATT&CK 전술 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 옵션을 설정한 다음 '$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을 통한 터미널 창 지우기 기능도 포함되어 있습니다.
날짜시간,IP 주소,DNS 이름,NetBIOS 이름,사용자,PID,활동,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를 참조하세요.