
Un prompt dei comandi interattivo per red teaming e penetration testing. Invia automaticamente i comandi attraverso proxy SOCKS4/5 tramite proxychains. L'integrazione opzionale con Cobalt Strike recupera i proxy SOCKS4/5 del beacon dal team server. Registra automaticamente le attività in un file CSV locale e in un team server Cobalt Strike (se configurato).
Un prompt dei comandi interattivo per red teaming e pentesting. Invia automaticamente i comandi tramite proxy SOCKS4/5 via proxychains. L'integrazione opzionale con Cobalt Strike recupera i proxy SOCKS4/5 del beacon dal team server. Registra automaticamente le attività in un file CSV locale e su un team server Cobalt Strike (se configurato).
Nota: poiché RedShell utilizza proxychains internamente, solo il traffico TCP viene proxyato.
RedShell funziona su Python > 3.8.
Installa le dipendenze:
pip3 install -r requirements.txt
Installa proxychains-ng (https://github.com/rofl0r/proxychains-ng):
apt install proxychains4
RedShell non dipende più da Cobalt Strike. Tuttavia, se usi l'integrazione con Cobalt Strike, il client CS deve essere installato sullo stesso host di RedShell. Inoltre, rendi eseguibile il wrapper agscript:
chmod +x agscript.sh
Avvia RedShell:
$python3 redshell.py
____ _______ __ ____
/ __ \___ ____/ / ___// /_ ___ / / /
/ /_/ / _ \/ __ /\__ \/ __ \/ _ \/ / /
/ _, _/ __/ /_/ /___/ / / / / __/ / /
/_/ |_|\___/\__,_//____/_/ /_/\___/_/_/
Logging to: /home/user/.redshell/redshell_2022_08_22_13_00_13.csv
redshell >
Mostra aiuto:
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
Imposta opzioni:
redshell> set option VALUE
RedShell registra automaticamente le attività tramite i comandi beacon_exec, proxy_exec, exec o log. La registrazione viene inizializzata automaticamente all'avvio e i file di log vengono scritti in: ~/.redshell.
Per registrare su Cobalt Strike, connettiti a un team server, seleziona un pivot e usa il comando beacon_exec.
RedShell utilizza proxychains-ng e un file di configurazione proxychains personalizzato. Le modifiche al file di configurazione e il proxy dei comandi vengono gestiti al volo.
Per fare proxy tramite Cobalt Strike, connettiti a un team server, seleziona un pivot e usa il comando beacon_exec. Fare riferimento alla sezione Cobalt Strike per i dettagli.
I proxy socks versione 4 o 5 personalizzati possono essere impostati con il 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 automaticamente le connessioni e l'autenticazione (dove applicabile) ai proxy SOCKS al momento della selezione (usando i comandi socks o cs_use_pivot). Questo può essere disabilitato con il comando: set check_socks false
Il contesto di RedShell è un aspetto chiave della registrazione delle attività. Il contesto consente di impostare la prospettiva (nei log delle attività) dell'host sorgente che esegue attività in una rete di destinazione. I seguenti attributi del contesto possono essere inclusi nei log delle attività: Indirizzo IP, Nome DNS, Nome NetBIOS, Nome utente e ID processo. Solo l'indirizzo IP è obbligatorio.
Note sul contesto:
Dopo aver impostato un proxy socks con il comando socks, aggiungi i dettagli del contesto con il 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
Se si utilizza un pivot su un team server, i valori del contesto vengono impostati automaticamente in base al beacon.
Il prompt dei comandi viene aggiornato automaticamente con le variabili di contesto (user@host).
I seguenti comandi di RedShell vengono catturati nei log delle attività:
beacon_exec - Esegue un comando tramite il proxy socks del beacon e lo registra simultaneamente sul teamserver.proxy_exec - Esegue un comando tramite un proxy socks personalizzato e lo registra simultaneamente nel file locale.exec - Esegue un comando e lo registra nel file locale.log - Aggiunge una voce di log manuale nel file locale.
Imposta le opzioni di connessione a Cobalt Strike:
redshell > set cs_host 127.0.0.1
redshell > set cs_port 50050
redshell > set cs_user somedude
Connettiti al team server (ti verrà chiesta la password del team server):
redshell > cs_connect
Esempio:

Oppure carica da un file di configurazione. Nota: le password del team server non vengono lette dai file di configurazione. RedShell chiederà la password del team server e poi si connetterà automaticamente.
$ 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
Mostra i pivot proxy disponibili:
redshell > cs_pivots
Esempio:

Seleziona un pivot proxy (nota: può essere impostato solo dopo aver stabilito una connessione al team server):
redshell > cs_use_pivot 2
SOCKS5 pivot requires authentication.
Enter SOCKS5 user: username
Enter SOCKS5 password:
Controlla lo stato di Cobalt Strike:
redshell > cs_status
Esempio:

Esegue comandi tramite il proxy socks del beacon. Possono essere eseguiti nel contesto dell'utente corrente o tramite sudo. Specificare 'proxychains' nel comando è opzionale. I comandi vengono forzati attraverso proxychains. Gli ID delle tattiche MITRE ATT&CK sono opzionali.
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
Esempio:

Nota sulle opzioni della directory di installazione di Redshell e CS: lo script deve sapere dove si trova, così come Cobalt Strike. Se le cose vanno male, assicurati di impostare le directory di conseguenza:
redshell > set redshell_directory /opt/redshell
redshell > set cs_directory /opt/cobaltstrike
Nota sulle password utilizzate nei comandi *exec: i caratteri speciali nelle password potrebbero essere interpretati come metacaratteri della shell, causando il fallimento dei comandi. Per ovviare a questo, imposta l'opzione password e poi invoca con '$password'. Esempio:
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 include comandi per navigare il filesystem:
redshell > cd /opt/redshell/
redshell > pwd
/opt/redshell
Comandi aggiuntivi possono essere eseguiti tramite il comando shell o tramite la scorciatoia '!':
redshell > shell date
Mon 29 Jul 2019 05:33:02 PM MDT
redshell > !date
Mon 29 Jul 2019 05:33:03 PM MDT
I comandi sono tracciati e accessibili tramite il comando history:
redshell > history
1 load_config config.txt
2 status
3 help
RedShell include anche il completamento tramite tab e la pulizia della finestra del terminale tramite 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,
Note:
Questo progetto è concesso in licenza secondo i termini della licenza open source Apache 2.0. Fare riferimento a LICENSE per i termini completi.