Cobalt Strike
Context — Authorised red-team / lab C2 reference. Tool: Cobalt Strike (operator quick-ref).
Licensed adversary-simulation / C2 framework. This note is a high-level operator checklist for authorised engagements and lab study — not a piracy, crack, or bypass guide. Confirm every command against your licensed build’s UI help and the vendor user guide for your version.
Related notes: Mimikatz, Rubeus, NetExec, Impacket, BloodHound, NTLM & Kerberos Relay.
Summary
Cobalt Strike centres on a team server, a GUI/client, listeners, and Beacon sessions. Operators stage payloads, manage callbacks, run post-ex jobs, and coordinate lateral movement under a shared log. Treat it as a commercial C2: licensing, Malleable C2 profiles, and infrastructure OPSEC matter as much as individual Beacon commands.
Danger — authorised-use framing
- Use only with a valid licence and written authorisation.
- Do not distribute cracked clients/servers or “update” cracks — out of scope for this note.
- Align profile, redirectors, and kill dates with ROE and deconfliction.
Team Server & Client
# Typical lab pattern (paths/version-specific — verify locally)
./teamserver <teamserver_IP> <password> [malleable.profile]
# Client connects to teamserver_IP with the shared password
Infrastructure basics
- Team server should sit behind redirectors; do not expose it directly to the internet.
- Use a strong shared password; rotate per engagement.
- Load a Malleable C2 profile appropriate to the environment before phishing/staging.
- Record listener ports, domains, and kill dates in the engagement runbook.
Listeners & Payloads (concepts)
| Piece | Role |
|---|---|
| Listener | Defines how Beacon calls back (HTTP/HTTPS/DNS/SMB/TCP, etc.) |
| Payload / stageless artefact | Dropper or export generated for a listener |
| Malleable profile | Shapes network indicators to match allowed patterns |
| Staging vs stageless | Staged pulls stage0→stage; stageless embeds — trade size vs flexibility |
Operator checklist
- Create listener → generate artefact for the right arch (x86/x64).
- Prefer HTTPS + valid-looking infra over raw IP:port in hostile networks.
- SMB/TCP beacons are for egress-limited pivots inside the estate.
- Name listeners clearly (
prod-https-redir1) so multi-operator teams do not collide.
Beacon Operator Essentials
Common console verbs (names stable across many versions; confirm in your build)
- Situational:
help,sleep,ps,pwd,ls,cd,drive.- Jobs / inject:
jobs,jobkill,inject,spawnto,ppid(OPSEC-sensitive).- Creds / tokens:
getuid,steal_token,make_token,rev2self— pair with Mimikatz tradecraft only when approved.- Files:
upload,download,browserpivot(as available in your version).- Lateral: prefer documented built-ins / approved BOFs over random scripts; Impacket/nxc from a pivot host is often cleaner for labs.
# Illustrative Beacon hygiene (not a full command bible)
sleep 60 10 # jittered callback — reduce chatty C2
getuid
ps
# run approved post-ex modules only under ROE
Warning — keep this sheet intentionally thin
- Full Beacon/Aggressor encyclopaedias belong in your licensed user guide.
- Lab exams (CRTO-style) expect vendor docs + course notes — use those as source of truth.
OPSEC Checklist
- Sleep/jitter appropriate to detection risk; avoid interactive spam.
spawnto/ parent PID spoofing only with a story that matches the host.- Long-haul vs short-haul listeners separated; burn short-haul after staging.
- Log operator actions; attribute every lateral move to a ticket/finding.
- Kill date / dead-man switches set before phishing.
- Deconflict with blue team when ROE requires it.
Engagement Workflow
1. Build redirectors + teamserver + profile
2. Stand up listeners (long-haul / short-haul)
3. Generate artefacts for approved initial-access path
4. Establish Beacon → situational awareness
5. Credential / ticket work per ROE (Mimikatz/Rubeus/CS modules)
6. Lateral with least noise that still meets objectives
7. Capture evidence → clean up persistence → tear down infra
Troubleshooting & Gotchas
Common failures
- No callback: profile host/URI mismatch, broken redirector, or egress filter — verify with a controlled lab implant first.
- Team server reject: clock skew, wrong password, or version skew between client and server.
- Beacon dies after sleep change: unrealistic sleep/jitter or network middleboxes — stage carefully.
Lessons Learned
- Infrastructure and profiles win engagements before fancy post-ex.
- Name listeners and log everything — multiplayer C2 is a coordination problem.
- Use CS for C2 continuity; use Impacket/nxc/Rubeus when they are quieter or clearer for a specific task.
- Keep piracy and “cracked CS” material out entirely.
- Version drift is real — re-check help after upgrades.
References
- Cobalt Strike (Fortra) — https://www.cobaltstrike.com/
- Vendor user guide for your licensed version (Fortra documentation portal)
- MITRE ATT&CK — Command and Control (TA0011)
- SpecterOps / community OPSEC blogs — https://posts.specterops.io/