Pular para o conteúdo

Starkiller

Starkiller is a modern web-based interface for the Empire C2 framework, streamlining agent management, listener configuration, and post-exploitation workflows through an intuitive GUI instead of CLI-only operations.

Installation

MethodCommandNotes
AppImageDownload from releases, chmod +x Starkiller*.AppImage && ./Starkiller*.AppImageStandalone, no dependencies
Dockerdocker run -p 3001:3001 bc1sdc/starkiller:latestIsolated environment, easy deployment
Sourcegit clone https://github.com/BC-SECURITY/Starkiller && npm install && npm startRequires Node.js 14+, full control
BinaryDownload pre-built binaries from GitHub releasesPlatform-specific (Linux, macOS, Windows)

Server Connection

# Connect to Empire Server
# Default: localhost:1337 (Empire API)
# Alternative remote: https://empire-server.local:1337

# Connection Settings
- Username: empire (or custom admin)
- Password: empire (default, change on first login)
- API Token: Auto-generated after successful auth
- SSL/TLS: Configurable (required for production)

Listener Management

Listener TypeUse CaseConfiguration
HTTPStandard web-based comms, lab/testingPort 80, callback URL, user agent strings
HTTPSProduction, encrypted channelPort 443, certificate/key, domain fronting
SMBLateral movement, internal networksPipe name, named pipes, SMB beacon
DNSCovert tunnel, firewall evasionDomain registration, DNS records, timing
CustomPlugins, specialized protocolsListener modules, Python-based

Creating a Listener

1. Listeners → New Listener
2. Select type (HTTP/HTTPS/SMB/DNS)
3. Configure host (0.0.0.0 or specific IP)
4. Set port (80/443 for HTTP/HTTPS)
5. Optional: Domain fronting (CloudFlare, akamai)
6. Set callback headers, user agent
7. Test → Launch

Stager Generation

Stager TypeDeliveryOutput Format
LauncherPowerShell one-liner, macro, scriptBase64 encoded or PowerShell direct
Multi-StageDownload agent, compile in-memoryReduced initial footprint
MacroOffice documents (Word, Excel)VBA payload embedded
BatchCMD batch files, scheduled tasksWindows native execution
HTAHTML Application, mshta executionBrowser-based delivery
EmbeddedCompiled binary, shellcode injection.exe, .dll formats

Generate Stager

1. Stagers → New Stager
2. Select listener (pre-configured)
3. Choose stager type and language
4. Set encode, obfuscation options
5. Generate payload
6. Copy/download for delivery
7. Track generated stagers in list

Agent Management

Agent Dashboard

Dashboard → Agents
- List all active/inactive agents
- Filter by listener, user, hostname, OS
- Last seen timestamp
- Stored credentials per agent
- Kill or interact with agent

Agent Interaction

FunctionPurposeNotes
Shell CommandExecute system commandcmd.exe or powershell.exe
Load ModuleRun exploitation moduleMimikatz, Sherlock, etc.
Upload FileTransfer file to agentBinary/text, obfuscated
Download FileExfiltrate dataProgress tracking, chunked
Rename AgentChange display nameInternal tracking only
Kill AgentTerminate sessionClean shutdown or force
1. Agents → Click agent name
2. Interactive shell opens
3. Type commands (PowerShell syntax)
4. Output streams in real-time
5. Upload/download via buttons
6. Module execution from dropdown

Module Execution

Common Modules

ModuleFunctionExample
MimikatzCredential dumpingcredentials/mimikatz
SherlockVulnerability detectionexploitation/sherlock
BloodhoundAD mapping, pathfindingrecon/bloodhound
PowerUpPrivilege escalation checksexploitation/powerup
Empire LauncherSecondary payloadcode_execution
WMILateral movementlateral_movement/wmi

Execute Module

1. Agent → Interact
2. Select Module dropdown
3. Configure options (listener, target, etc.)
4. Set payload encoding/obfuscation
5. Execute module
6. Monitor output in shell
7. Download results or parse inline

Credential Management

Credential Types

TypeSourceData
PlaintextDumped passwords, manual entryUsername:password
HashMimikatz, SAM dumpNTLM, LM hashes
TicketKerberos ticket extraction.kirbi, base64 encoded
TokenToken impersonationOAuth, API tokens
CertificateCertificate extraction.pfx, .pem keys

Credential Harvesting Workflow

1. Load Mimikatz module on agent
2. Execute: `privilege::debug` → `sekurlsa::logonpasswords`
3. Credentials appear in Credentials tab
4. Filter/search by username, hash type
5. Export CSV for offline cracking
6. Use credentials for pivot/lateral movement
7. Notes field for tracking source agent

Listener-Agent Binding

# Agent communicates with configured listener
# Listener type determines covert channel
# Multiple agents → Single listener (fan-in)
# Single agent → Multiple listeners (backup channels)

# Check agent beacon interval
# Modify in listener → Jitter (randomization)
# Detection: Beaconing patterns, metadata, DNS records

Team Collaboration Features

FeatureUse CaseDetails
User AccountsMulti-operator accessRole-based (admin, operator, read-only)
API TokensAutomation, CI/CDToken auth for scripts
Audit LogOperational trackingLogin, agent commands, downloads
Notes/TagsTeam communicationAttach to agents, operations
Operation WorkspaceCampaign organizationSeparate projects, isolated agents

Create Operator Account

Settings → Users → New User
- Username: operator1
- Password: (auto-generate or set)
- Role: operator (can execute) or viewer (read-only)
- Save API token for scripting

Reporting & Export

Generate Report

1. Reports → New Report
2. Select date range (operations period)
3. Include: Agents, listeners, modules executed
4. Filter by operator, listener type
5. Format: PDF (formatted) or CSV (data analysis)
6. Export credentials (with/without hashes)
7. Share with stakeholders (redacted PII as needed)

Data Exports

- Agent list: CSV/JSON (for correlation)
- Module output: Plain text or JSON (parsing)
- Credentials: CSV (Excel, password managers)
- Network log: DNS, HTTP beacon analysis
- Timeline: Sorted by event timestamp

Plugin System

Custom Extensions

Plugins directory structure:
plugins/
├── listener_custom.py      # Custom listener protocol
├── module_custom.py        # Exploitation module
├── obfuscator_custom.py    # Encoding/evasion
└── stager_custom.py        # Delivery method

Load plugin: Settings → Plugins → Upload .zip
Enable/disable without restart

Starkiller vs Empire CLI

FeatureStarkiller GUIEmpire CLI
Learning curveLow (visual, intuitive)Steep (command memorization)
Agent interactionReal-time web shellCommand feedback loop
Listener setupForm-based, validationManual config, error-prone
ReportingOne-click PDF exportManual log parsing
CollaborationMulti-user, audit logSingle-user, manual logging
AutomationREST API, limitedPython scripts, full control
Workflow speedFast (clicking)Fast (scripting)
Advanced controlLimited (GUI constraints)Full (direct Python)

Common Workflows

Initial Access & Beaconing

1. Create HTTP/HTTPS listener (callback domain)
2. Generate PowerShell launcher stager
3. Deliver via phishing email or web compromise
4. Wait for first beacon (check Dashboard)
5. Interact with agent shell
6. Execute initial reconnaissance

Credential Dumping

1. Gain agent on domain-joined machine
2. Load/execute Mimikatz module
3. Extract NTLM hashes and plaintext
4. Credentials tab auto-populates
5. Use hashes for pass-the-hash attacks
6. Pivot to other systems (lateral movement)

Privilege Escalation

1. Run Sherlock module (vulnerability scan)
2. Execute PowerUp (privesc checks)
3. Review output for exploitable gaps
4. Load token impersonation module
5. Escalate to SYSTEM or admin token
6. Execute privileged commands
7. Dump SAM hive or LSASS process

Persistence & Cleanup

# Persistence
1. Load empire launcher module
2. Create scheduled task or registry run key
3. Generate base64 launcher
4. Execute on agent (maintains access)

# Cleanup
1. Kill scheduled task/registry entry
2. Clear Event Logs (via agent)
3. Remove temporary files
4. Disconnect agent gracefully
5. Delete listener (archive first)

Security Best Practices

PracticeImplementation
SSL/TLSUse HTTPS listeners, valid certificates
FirewallLimit Empire API access to operator IPs
CredentialsChange default empire/empire on first login
LogsArchive audit logs, review for anomalies
NetworkSegment C2 from production networks
ObfuscationEnable encoding, vary user agents, domain front
MonitoringSIEM alerts on beacon patterns, failed auth
EncryptionUse encrypted channels (SMB pipes, DNS tunnels)

Troubleshooting

IssueSolution
Agent not beaconingCheck listener IP/port accessible, agent can reach callback
Module execution timeoutIncrease timeout in settings, retry with smaller scope
Connection refusedVerify Empire server running, API port open, credentials correct
SSL certificate errorDisable cert verification (labs only) or install valid cert
Memory errors on large exportsExport in date ranges, filter agents before export
Slow UI responseClear browser cache, reduce agent count in view, restart Starkiller

Resources