
Un símbolo de sistema interactivo para red teaming y pentesting. Envía automáticamente comandos a través de proxies SOCKS4/5 mediante proxychains. La integración opcional con Cobalt Strike extrae proxies SOCKS4/5 de beacon del servidor del equipo. Registra automáticamente las actividades en un archivo CSV local y en un servidor de equipo de Cobalt Strike (si está configurado).
Un prompt de comandos interactivo para red teaming y pentesting. Automáticamente envía comandos a través de proxies SOCKS4/5 mediante proxychains. La integración opcional con Cobalt Strike obtiene los proxies SOCKS4/5 del beacon desde el servidor del equipo. Automáticamente registra las actividades en un archivo CSV local y en un servidor de equipo de Cobalt Strike (si está configurado).
Tenga en cuenta que debido a que RedShell utiliza proxychains internamente, solo se proxy el tráfico TCP.
RedShell funciona con Python > 3.8.
Instalar dependencias:
pip3 install -r requirements.txt
Instalar proxychains-ng (https://github.com/rofl0r/proxychains-ng):
apt install proxychains4
RedShell ya no depende de Cobalt Strike. Sin embargo, si estás usando la integración con Cobalt Strike, el cliente CS debe estar instalado en el mismo host que RedShell. También haz ejecutable el envoltorio agscript:
chmod +x agscript.sh
Iniciar RedShell:
$python3 redshell.py
____ _______ __ ____
/ __ \___ ____/ / ___// /_ ___ / / /
/ /_/ / _ \/ __ /\__ \/ __ \/ _ \/ / /
/ _, _/ __/ /_/ /___/ / / / / __/ / /
/_/ |_|\___/\__,_//____/_/ /_/\___/_/_/
Logging to: /home/user/.redshell/redshell_2022_08_22_13_00_13.csv
redshell >
Mostrar ayuda:
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
Establecer opciones:
redshell> set option VALUE
RedShell registra automáticamente las actividades mediante los comandos beacon_exec, proxy_exec, exec o log. El registro se inicializa automáticamente al inicio, y los archivos de registro se escriben en: ~/.redshell.
Para registrar en Cobalt Strike, conéctate a un servidor de equipo, selecciona un pivote y usa el comando beacon_exec.
RedShell usa proxychains-ng y un archivo de configuración personalizado de proxychains. Las modificaciones del archivo de configuración y el proxy de comandos se manejan sobre la marcha.
Para hacer proxy a través de Cobalt Strike, conéctate a un servidor de equipo, selecciona un pivote y usa el comando beacon_exec. Consulta la sección de Cobalt Strike para más detalles.
Se pueden establecer proxies socks versión 4 o 5 personalizados con el comando 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 verifica automáticamente las conexiones y la autenticación (cuando corresponda) a los proxies SOCKS al seleccionarlos (ya sea usando los comandos socks o cs_use_pivot). Esto se puede deshabilitar con el siguiente comando: set check_socks false
El contexto de RedShell es un aspecto clave del registro de actividades. El contexto te permite establecer la perspectiva (en los registros de actividad) del host de origen que ejecuta actividades en una red objetivo. Los siguientes atributos de contexto pueden incluirse en los registros de actividad: Dirección IP, Nombre DNS, Nombre NetBIOS, Nombre de Usuario e ID de Proceso. Solo se requiere la Dirección IP.
Notas sobre el contexto:
Después de establecer un proxy socks con el comando socks, agrega detalles de contexto con el comando 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
Si estás usando un pivote en un servidor de equipo, los valores de contexto se establecen automáticamente según el beacon.
El símbolo del sistema se actualiza automáticamente con las variables de contexto (usuario@host).
Los siguientes comandos de RedShell se capturan en los registros de actividad:
beacon_exec - Ejecuta un comando a través del proxy socks del beacon y lo registra simultáneamente en el servidor del equipo.proxy_exec - Ejecuta un comando a través de un proxy socks personalizado y lo registra simultáneamente en el archivo local.exec - Ejecuta un comando y lo registra en el archivo local.log - Agrega una entrada de registro manual al archivo local.
Establece las opciones de conexión de Cobalt Strike:
redshell > set cs_host 127.0.0.1
redshell > set cs_port 50050
redshell > set cs_user somedude
Conéctate al servidor del equipo (se te pedirá la contraseña del servidor del equipo):
redshell > cs_connect
Ejemplo:

O carga desde un archivo de configuración. Nota: las contraseñas del servidor del equipo no se leen de los archivos de configuración. RedShell pedirá la contraseña del servidor y luego se conectará automáticamente.
$ 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
Muestra los pivotes proxy disponibles:
redshell > cs_pivots
Ejemplo:

Selecciona un pivote proxy (nota: esto solo se puede establecer después de que se haya establecido una conexión con el servidor del equipo):
redshell > cs_use_pivot 2
SOCKS5 pivot requires authentication.
Enter SOCKS5 user: username
Enter SOCKS5 password:
Verifica el estado de Cobalt Strike:
redshell > cs_status
Ejemplo:

Ejecuta comandos a través del proxy socks del beacon. Estos se pueden ejecutar en el contexto del usuario actual o mediante sudo. Especificar 'proxychains' en el comando es opcional. Los comandos se fuerzan a través de proxychains. Los IDs de Táctica MITRE ATT&CK son opcionales.
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
Ejemplo:

Nota sobre las opciones de directorio de instalación de Redshell y CS: el script necesita saber dónde se encuentra, así como Cobalt Strike. Si algo falla, asegúrate de configurar los directorios en consecuencia:
redshell > set redshell_directory /opt/redshell
redshell > set cs_directory /opt/cobaltstrike
Nota sobre las contraseñas usadas en los comandos *exec: los caracteres especiales en las contraseñas pueden ser interpretados como metacaracteres de shell, lo que podría causar que los comandos fallen. Para evitarlo, establece la opción de contraseña y luego invoca con '$password'. Ejemplo:
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 incluye comandos para navegar por el sistema de archivos:
redshell > cd /opt/redshell/
redshell > pwd
/opt/redshell
Se pueden ejecutar comandos adicionales mediante el comando shell o mediante el atajo '!':
redshell > shell date
Mon 29 Jul 2019 05:33:02 PM MDT
redshell > !date
Mon 29 Jul 2019 05:33:03 PM MDT
Los comandos se rastrean y son accesibles mediante el comando history:
redshell > history
1 load_config config.txt
2 status
3 help
RedShell también incluye autocompletado con tabulador y la limpieza de la ventana del terminal mediante 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 proyecto está licenciado bajo los términos de la licencia de código abierto Apache 2.0. Por favor, consulta LICENSE para los términos completos.