
Um prompt de comando interativo para operações de red team e pentest. Envia comandos automaticamente através de proxies SOCKS4/5 via proxychains. Integração opcional com Cobalt Strike obtém proxies SOCKS4/5 dos beacons do servidor da equipe. Registra automaticamente as atividades em um arquivo CSV local e no servidor da equipe Cobalt Strike (se configurado).
Um prompt de comando interativo para red team e testes de penetração. Envia comandos automaticamente através de proxies SOCKS4/5 via proxychains. Integração opcional com Cobalt Strike obtém proxies SOCKS4/5 de beacon do servidor da equipe. Registra atividades automaticamente em um arquivo CSV local e em um servidor da equipe Cobalt Strike (se configurado).
Observe que, como o RedShell usa proxychains internamente, apenas o tráfego TCP é proxyado.
O RedShell roda em Python > 3.8.
Instale as dependências:
pip3 install -r requirements.txt
Instale o proxychains-ng (https://github.com/rofl0r/proxychains-ng):
apt install proxychains4
O RedShell não depende mais do Cobalt Strike. No entanto, se você estiver usando a integração com o Cobalt Strike, o cliente CS deve estar instalado no mesmo host que o RedShell. Torne também o wrapper agscript executável:
chmod +x agscript.sh
Inicie o RedShell:
$python3 redshell.py
____ _______ __ ____
/ __ \___ ____/ / ___// /_ ___ / / /
/ /_/ / _ \/ __ /\__ \/ __ \/ _ \/ / /
/ _, _/ __/ /_/ /___/ / / / / __/ / /
/_/ |_|\___/\__,_//____/_/ /_/\___/_/_/
Logging para: /home/user/.redshell/redshell_2022_08_22_13_00_13.csv
redshell >
Exibir ajuda:
redshell > help
Comandos documentados (use 'help -v' para detalhado/'help <tópico>' para detalhes):
===========================================================================
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
Definir opções:
redshell> set opção VALOR
O RedShell registra automaticamente atividades através dos comandos beacon_exec, proxy_exec, exec ou log. O registro é iniciado automaticamente na inicialização e os arquivos de log são gravados em: ~/.redshell.
Para registrar no Cobalt Strike, conecte-se a um servidor da equipe, selecione um pivô e use o comando beacon_exec.
O RedShell usa proxychains-ng e um arquivo de configuração personalizado do proxychains. Modificações no arquivo de configuração e o proxy de comandos são tratados dinamicamente.
Para usar proxy através de um Cobalt Strike, conecte-se a um servidor da equipe, selecione um pivô e use o comando beacon_exec. Consulte a seção Cobalt Strike para detalhes.
Proxies personalizados versão 4 ou 5 do SOCKS podem ser definidos com o comando socks.
redshell > socks -h
usage: socks [-h] [-u SOCKS5_USER] [-p SOCKS5_PASS] {socks4,socks5} ip_address socks_port
Use um servidor socks4/5 personalizado
argumentos posicionais:
{socks4,socks5}
ip_address
socks_port
opções:
-h, --help show this help message and exit
-u SOCKS5_USER
-p SOCKS5_PASS
O RedShell verifica automaticamente conexões e autenticação (quando aplicável) aos proxies SOCKS ao selecioná-los (usando os comandos socks ou cs_use_pivot). Isso pode ser desabilitado com o seguinte comando: set check_socks false
O contexto do RedShell é um aspecto fundamental do registro de atividades. O contexto permite definir a perspectiva (nos logs de atividade) do host de origem que executa atividades em uma rede alvo. Os seguintes atributos de contexto podem ser incluídos nos logs de atividade: Endereço IP, Nome DNS, Nome NetBIOS, Nome de Usuário e ID do Processo. Apenas o Endereço IP é obrigatório.
Notas sobre o contexto:
Após definir um proxy socks com o comando socks, adicione detalhes do contexto com o comando context.
RedShell > context -h
usage: context [-h] [-d DNSNAME] [-n NETBIOSNAME] [-u USERNAME] [-p PID] ip_address
Define um contexto personalizado (IP de Origem/DNS/NetBIOS/Usuário/PID) para registro
argumentos posicionais:
ip_address Endereço IP de Origem
argumentos opcionais:
-h, --help show this help message and exit
-d DNSNAME, --dnsname DNSNAME
Nome DNS
-n NETBIOSNAME, --netbiosname NETBIOSNAME
Nome NetBIOS
-u USERNAME, --username USERNAME
Nome de Usuário
-p PID, --pid PID ID do Processo
Se você estiver usando um pivô em um servidor da equipe, os valores do contexto são definidos automaticamente com base no beacon.
O prompt de comando é atualizado automaticamente com as variáveis de contexto (usuário@host).
Os seguintes comandos do RedShell são capturados nos logs de atividade:
beacon_exec - Executa um comando através do proxy socks do beacon e o registra simultaneamente no servidor da equipe.proxy_exec - Executa um comando através de um proxy socks personalizado e o registra simultaneamente no arquivo local.exec - Executa um comando e o registra no arquivo local.log - Adiciona uma entrada de log manual ao arquivo local.
Defina as opções de conexão do Cobalt Strike:
redshell > set cs_host 127.0.0.1
redshell > set cs_port 50050
redshell > set cs_user algumcara
Conecte ao servidor da equipe (você será solicitado a fornecer a senha do servidor da equipe):
redshell > cs_connect
Exemplo:

Ou carregue de um arquivo de configuração. Nota: as senhas do servidor da equipe não são lidas de arquivos de configuração. O RedShell solicitará a senha do servidor da equipe e se conectará automaticamente.
$ cat config.txt
cs_host=127.0.0.1
cs_port=12345
cs_user=algumcara
cs_directory=/caminho/para/instalacao/do/cobaltstrike
redshell > cs_load_config config.txt
Mostrar pivôs de proxy disponíveis:
redshell > cs_pivots
Exemplo:

Selecionar um pivô de proxy (nota: isso só pode ser definido após uma conexão com o servidor da equipe ter sido estabelecida):
redshell > cs_use_pivot 2
O pivô SOCKS5 requer autenticação.
Digite o usuário SOCKS5: usuario
Digite a senha SOCKS5:
Verificar status do Cobalt Strike:
redshell > cs_status
Exemplo:

Executar comandos através do proxy socks do beacon. Eles podem ser executados no contexto do usuário atual ou via sudo. Especificar 'proxychains' no comando é opcional. Os comandos são forçados a passar pelo proxychains. IDs de Tática MITRE ATT&CK são opcionais.
redshell > beacon_exec -h
usage: beacon_exec [-h] [-t TTP] ...
Executa um comando através do proxy socks do beacon e o registra simultaneamente no servidor da equipe.
argumentos posicionais:
command Comando a ser executado através do proxy e registrado.
argumentos opcionais:
-h, --help show this help message and exit
-t TTP, --ttp TTP IDs de Tática MITRE ATT&CK. Delimitados por vírgula para especificar vários.