
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.
exemplo:
beacon_exec -t T1550.002,T1003.002 cme smb 192.168.1.1 --local-auth -u Administrator -H C713B1D611657D0687A568122193F230 --sam
Exemplo:

Nota sobre as opções de diretório de instalação do Redshell e CS - o script precisa saber onde ele está, assim como o Cobalt Strike. Se algo der errado, defina os diretórios adequadamente:
redshell > set redshell_directory /opt/redshell
redshell > set cs_directory /opt/cobaltstrike
Nota sobre senhas usadas em comandos *exec: caracteres especiais em senhas podem ser interpretados como meta caracteres do shell, o que pode fazer com que os comandos falhem. Para contornar isso, defina a opção de senha e então invoque com '$password'. Exemplo:
redshell > set password Test12345
senha - era: ''
agora: 'Test12345'
redshell > beacon_exec cme smb 192.168.1.14 --local-auth -u administrator -p $password --shares
O RedShell inclui comandos para navegar pelo sistema de arquivos:
redshell > cd /opt/redshell/
redshell > pwd
/opt/redshell
Comandos adicionais podem ser executados através do comando shell ou pelo atalho '!':
redshell > shell date
Mon 29 Jul 2019 05:33:02 PM MDT
redshell > !date
Mon 29 Jul 2019 05:33:03 PM MDT
Os comandos são monitorados e acessíveis através do comando history:
redshell > history
1 load_config config.txt
2 status
3 help
O RedShell também inclui preenchimento com tab e limpeza da janela do terminal via 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,
Notas:
Este projeto está licenciado sob os termos da licença de código aberto Apache 2.0. Consulte LICENSE para os termos completos.