Skip to main content

mythic-profiles

Develop Mythic C2 profiles/listeners and transport containers. Use when designing, implementing, modifying, or validating Mythic C2 profile repositories like MythicC2Profiles, including HTTP/DNS/WebSocket/TCP/SMB-style egress or P2P profiles, C2Profile parameters, server binaries, redirector material, OPSEC checks, and payload-type integration.

Jump to install

Source facts

Repository
SpecterOps/skills
Last source activity
May 29, 2026 at 15:51
Detected SKILL.md language
English
Stars
657
Forks
72

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
8 files

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
mythic-profiles
description
Develop Mythic C2 profiles/listeners and transport containers. Use when designing, implementing, modifying, or validating Mythic C2 profile repositories like MythicC2Profiles, including HTTP/DNS/WebSocket/TCP/SMB-style egress or P2P profiles, C2Profile parameters, server binaries, redirector material, OPSEC checks, and payload-type integration.
metadata
{"author":"GhostWorks"}
# Mythic Profiles ## Scope Use this skill for Mythic C2 profile development: profile container layout, `C2Profile` definitions, parameter modeling, listener/server implementation, P2P versus egress profile decisions, and integration with Mythic payload types. Use `$mythic-implant-development` instead when the primary task is implementing an agent/payload type or agent commands. Use this skill when the primary artifact is a C2 profile/listener/transport. ## Workflow 1. **Classify the profile** - Egress profile: server-side code receives agent traffic and forwards to Mythic `/agent_message`. - P2P profile: no listening server; parameters define agent-to-agent connection details. - Translation-aware profile: coordinate with a translation container if wire format or crypto differs from Mythic messages. 2. **Set up the development loop** - Read `references/remote-development.md` when the task involves local/remote Mythic development, container iteration, or installed-service workflow. - Confirm profile folder name, C2Profile `name`, and Mythic installed service name align. - Use focused container restarts and payload-build smoke tests during iteration. 3. **Inspect the repository shape** - Identify profile language, Docker/container entrypoint, profile definition file, server binary/script, config templates, and any profile-specific utilities. - For MythicC2Profiles-style work, treat each top-level profile as a standalone container package. - Preserve existing profile naming, parameter names, and build/deploy conventions unless the user asks for a migration. 4. **Define or update profile metadata** - `name`: stable profile identifier used by payload types. - `description`, `author`, `semver`. - `is_p2p`: `False` for listener/egress profiles, `True` for P2P profiles. - `server_binary_path`: executable/script that handles traffic for egress profiles. - `server_folder_path`: folder exposed in Mythic UI for server-side files/config. 5. **Model C2 parameters** - Include operator-facing parameters such as callback host/port, interval, jitter, headers, bind address, URI paths, proxy settings, or peer connection fields. - Use `verifier_regex` for format-sensitive values. - Use `crypto_type=True` for Mythic-managed crypto parameters such as AES/HMAC profile keys. - Prefer parameter names the payload build function can consume directly through `get_parameters_dict()`. 6. **Implement listener/server behavior** - Accept or receive the profile transport format. - Extract the Mythic agent message. - Forward to Mythic’s `/agent_message` endpoint. - Return Mythic’s response in the profile’s transport format. - Add bounded config validation, useful logs, and no secret-bearing debug output. 7. **Integrate with payload types** - Ensure payload types list the profile name in `c2_profiles` / supported C2 profiles. - Confirm the build function embeds or serializes selected profile parameters into agent configuration. - Keep agent wire format and profile server expectations synchronized. 8. **Validate** - Confirm container starts and syncs with Mythic. - Confirm profile appears in payload build UI. - Build a test payload with the profile selected. - Confirm checkin, get-tasking, post-response, file transfer, and error paths as applicable. - Document exact commands, config values changed, and validation evidence. ## Reference loading Read only what is needed: - `references/developer-series.md` for routing based on the Mythic for Developers playlist topics. - `references/profile-development.md` for implementation patterns, profile file anatomy, and validation checklist. - `references/remote-development.md` for local/remote container iteration and installed-service workflow. - `references/third-party-service-profiles.md` for profiles that broker traffic through external services such as chat/storage/webhook APIs. - `../mythic-implant-development/references/c2-profile-definition.md` for detailed `C2Profile` class and parameter examples. - `../mythic-implant-development/references/agent-message-format.md` when the transport wraps Mythic agent messages. - `$mythic-translation-containers` when profile behavior depends on custom message formats or crypto. - `../mythic-implant-development/references/p2p-connections.md` for SMB/TCP-style P2P routing. ## Output requirements For design/review tasks, return: - profile type: egress, P2P, or translation-aware - files changed or files to create - parameter schema and operator-visible defaults - server/listener data flow - payload-type integration points - validation commands/checks - risks, assumptions, and unresolved profile-specific questions
View on GitHub