
Eine interaktive Eingabeaufforderung für Red Teaming und Penetrationstests. Sendet Befehle automatisch über SOCKS4/5-Proxys via proxychains. Optionale Cobalt Strike-Integration ruft Beacon-SOCKS4/5-Proxys vom Team-Server ab. Protokolliert Aktivitäten automatisch in einer lokalen CSV-Datei und auf einem Cobalt Strike-Team-Server (falls konfiguriert).
Ein interaktives Kommandozeilen-Tool für Red Teaming und Penetrationstests. Befehle werden automatisch über SOCKS4/5-Proxies via proxychains ausgeführt. Optionale Cobalt Strike-Integration bezieht Beacon-SOCKS4/5-Proxies vom Team-Server. Aktivitäten werden automatisch in einer lokalen CSV-Datei und (falls konfiguriert) auf einem Cobalt Strike-Team-Server protokolliert.
Beachten Sie, dass da RedShell unter der Haube proxychains verwendet, nur TCP-Verkehr über den Proxy geleitet wird.
RedShell läuft mit Python > 3.8.
Abhängigkeiten installieren:
pip3 install -r requirements.txt
Proxychains-ng installieren (https://github.com/rofl0r/proxychains-ng):
apt install proxychains4
RedShell ist nicht länger von Cobalt Strike abhängig. Wenn Sie jedoch die Cobalt Strike-Integration verwenden, muss der CS-Client auf demselben Host wie RedShell installiert sein. Machen Sie das agscript-Wrapper-Skript außerdem ausführbar:
chmod +x agscript.sh
RedShell starten:
$python3 redshell.py
____ _______ __ ____
/ __ \___ ____/ / ___// /_ ___ / / /
/ /_/ / _ \/ __ /\__ \/ __ \/ _ \/ / /
/ _, _/ __/ /_/ /___/ / / / / __/ / /
/_/ |_|\___/\__,_//____/_/ /_/\___/_/_/
Protokollierung nach: /home/user/.redshell/redshell_2022_08_22_13_00_13.csv
redshell >
Hilfe anzeigen:
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
Optionen setzen:
redshell> set option VALUE
RedShell protokolliert Aktivitäten automatisch über die Befehle beacon_exec, proxy_exec, exec oder log. Die Protokollierung wird beim Start automatisch initialisiert, und Log-Dateien werden nach ~/.redshell geschrieben.
Um auf Cobalt Strike zu protokollieren, verbinden Sie sich mit einem Team-Server, wählen Sie einen Pivot und verwenden Sie den Befehl beacon_exec.
RedShell verwendet proxychains-ng und eine benutzerdefinierte proxychains-Konfigurationsdatei. Änderungen an der Konfigurationsdatei und die Proxy-Umleitung von Befehlen werden dynamisch vorgenommen.
Um über Cobalt Strike zu proxieren, verbinden Sie sich mit einem Team-Server, wählen Sie einen Pivot und verwenden Sie den Befehl beacon_exec. Details finden Sie im Abschnitt zu Cobalt Strike.
Benutzerdefinierte SOCKS-Version-4- oder -5-Proxies können mit dem Befehl socks gesetzt werden.
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 überprüft automatisch Verbindungen und Authentifizierung (wo zutreffend) zu SOCKS-Proxies bei der Auswahl (entweder über die Befehle socks oder cs_use_pivot). Dies kann mit folgendem Befehl deaktiviert werden: set check_socks false
Der Kontext von RedShell ist ein wesentlicher Aspekt der Aktivitätsprotokollierung. Der Kontext ermöglicht es Ihnen, die Perspektive (in Aktivitätsprotokollen) des Quell-Hosts festzulegen, der Aktivitäten in einem Zielnetzwerk ausführt. Die folgenden Kontextattribute können in Aktivitätsprotokollen enthalten sein: IP-Adresse, DNS-Name, NetBIOS-Name, Benutzername und Prozess-ID. Nur die IP-Adresse ist erforderlich.
Hinweise zum Kontext:
Nachdem Sie einen SOCKS-Proxy mit dem Befehl socks gesetzt haben, fügen Sie Kontextdetails mit dem Befehl context hinzu.
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
Wenn Sie einen Pivot auf einem Team-Server verwenden, werden die Kontextwerte automatisch basierend auf dem Beacon gesetzt.
Die Eingabeaufforderung wird automatisch mit Kontextvariablen (Benutzer@Host) aktualisiert.
Die folgenden RedShell-Befehle werden in Aktivitätsprotokollen erfasst:
beacon_exec – Führt einen Befehl durch den Beacon-SOCKS-Proxy aus und protokolliert ihn gleichzeitig auf dem Team-Server.proxy_exec – Führt einen Befehl durch einen benutzerdefinierten SOCKS-Proxy aus und protokolliert ihn gleichzeitig in der lokalen Datei.exec – Führt einen Befehl aus und protokolliert ihn in der lokalen Datei.log – Fügt einen manuellen Protokolleintrag zur lokalen Datei hinzu.
Cobalt Strike-Verbindungsoptionen setzen:
redshell > set cs_host 127.0.0.1
redshell > set cs_port 50050
redshell > set cs_user somedude
Mit dem Team-Server verbinden (Sie werden nach dem Team-Server-Passwort gefragt):
redshell > cs_connect
Beispiel:

Oder aus einer Konfigurationsdatei laden. Hinweis: Team-Server-Passwörter werden nicht aus Konfigurationsdateien gelesen. RedShell fragt nach dem Team-Server-Passwort und verbindet sich dann automatisch.
$ 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
Verfügbare Proxy-Pivots anzeigen:
redshell > cs_pivots
Beispiel:

Einen Proxy-Pivot auswählen (Hinweis: Dies kann nur nach erfolgreicher Verbindung zum Team-Server gesetzt werden):
redshell > cs_use_pivot 2
SOCKS5 pivot requires authentication.
Enter SOCKS5 user: username
Enter SOCKS5 password:
Cobalt Strike-Status prüfen:
redshell > cs_status
Beispiel:

Befehle durch den Beacon-SOCKS-Proxy ausführen. Diese können im Kontext des aktuellen Benutzers oder über sudo ausgeführt werden. Die Angabe von 'proxychains' im Befehl ist optional. Befehle werden zwangsweise durch proxychains geleitet. MITRE ATT&CK-Taktik-IDs sind optional.
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
Beispiel:

Hinweis zu den Redshell- und CS-Installationsverzeichnisoptionen – das Skript muss wissen, wo es sich selbst und Cobalt Strike befindet. Wenn etwas schiefgeht, stellen Sie sicher, dass die Verzeichnisse entsprechend gesetzt sind:
redshell > set redshell_directory /opt/redshell
redshell > set cs_directory /opt/cobaltstrike
Hinweis zu Passwörtern, die in *exec-Befehlen verwendet werden: Sonderzeichen in Passwörtern können als Shell-Metazeichen interpretiert werden, was zum Fehlschlagen von Befehlen führen kann. Um dies zu umgehen, setzen Sie die Passwort-Option und rufen Sie es dann mit '$password' auf. Beispiel:
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 enthält Befehle zur Navigation im Dateisystem:
redshell > cd /opt/redshell/
redshell > pwd
/opt/redshell
Zusätzliche Befehle können über den Shell-Befehl oder über die Abkürzung '!' ausgeführt werden:
redshell > shell date
Mon 29 Jul 2019 05:33:02 PM MDT
redshell > !date
Mon 29 Jul 2019 05:33:03 PM MDT
Befehle werden verfolgt und sind über den history-Befehl zugänglich:
redshell > history
1 load_config config.txt
2 status
3 help
RedShell unterstützt auch die Tab-Vervollständigung und das Löschen des Terminalfensters per Strg + 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,
Hinweise:
Dieses Projekt ist unter den Bedingungen der Apache 2.0 Open-Source-Lizenz lizenziert. Bitte lesen Sie die vollständigen Bedingungen in LICENSE nach.