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
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.
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.
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.
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.
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().
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.
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.
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
1---2name: mythic-profiles3description: 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.4---56# Mythic Profiles78## Scope910Use 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.1112Use `$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.1314## Workflow15161. **Classify the profile**17 - Egress profile: server-side code receives agent traffic and forwards to Mythic `/agent_message`.18 - P2P profile: no listening server; parameters define agent-to-agent connection details.19 - Translation-aware profile: coordinate with a translation container if wire format or crypto differs from Mythic messages.20212. **Set up the development loop**22 - Read `references/remote-development.md` when the task involves local/remote Mythic development, container iteration, or installed-service workflow.23 - Confirm profile folder name, C2Profile `name`, and Mythic installed service name align.24 - Use focused container restarts and payload-build smoke tests during iteration.25263. **Inspect the repository shape**27 - Identify profile language, Docker/container entrypoint, profile definition file, server binary/script, config templates, and any profile-specific utilities.28 - For MythicC2Profiles-style work, treat each top-level profile as a standalone container package.29 - Preserve existing profile naming, parameter names, and build/deploy conventions unless the user asks for a migration.30314. **Define or update profile metadata**32 - `name`: stable profile identifier used by payload types.33 - `description`, `author`, `semver`.34 - `is_p2p`: `False` for listener/egress profiles, `True` for P2P profiles.35 - `server_binary_path`: executable/script that handles traffic for egress profiles.36 - `server_folder_path`: folder exposed in Mythic UI for server-side files/config.37385. **Model C2 parameters**39 - Include operator-facing parameters such as callback host/port, interval, jitter, headers, bind address, URI paths, proxy settings, or peer connection fields.40 - Use `verifier_regex` for format-sensitive values.41 - Use `crypto_type=True` for Mythic-managed crypto parameters such as AES/HMAC profile keys.42 - Prefer parameter names the payload build function can consume directly through `get_parameters_dict()`.43446. **Implement listener/server behavior**45 - Accept or receive the profile transport format.46 - Extract the Mythic agent message.47 - Forward to Mythic’s `/agent_message` endpoint.48 - Return Mythic’s response in the profile’s transport format.49 - Add bounded config validation, useful logs, and no secret-bearing debug output.50517. **Integrate with payload types**52 - Ensure payload types list the profile name in `c2_profiles` / supported C2 profiles.53 - Confirm the build function embeds or serializes selected profile parameters into agent configuration.54 - Keep agent wire format and profile server expectations synchronized.55568. **Validate**57 - Confirm container starts and syncs with Mythic.58 - Confirm profile appears in payload build UI.59 - Build a test payload with the profile selected.60 - Confirm checkin, get-tasking, post-response, file transfer, and error paths as applicable.61 - Document exact commands, config values changed, and validation evidence.6263## Reference loading6465Read only what is needed:6667- `references/developer-series.md` for routing based on the Mythic for Developers playlist topics.68- `references/profile-development.md` for implementation patterns, profile file anatomy, and validation checklist.69- `references/remote-development.md` for local/remote container iteration and installed-service workflow.70- `references/third-party-service-profiles.md` for profiles that broker traffic through external services such as chat/storage/webhook APIs.71- `../mythic-implant-development/references/c2-profile-definition.md` for detailed `C2Profile` class and parameter examples.72- `../mythic-implant-development/references/agent-message-format.md` when the transport wraps Mythic agent messages.73- `$mythic-translation-containers` when profile behavior depends on custom message formats or crypto.74- `../mythic-implant-development/references/p2p-connections.md` for SMB/TCP-style P2P routing.7576## Output requirements7778For design/review tasks, return:7980- profile type: egress, P2P, or translation-aware81- files changed or files to create82- parameter schema and operator-visible defaults83- server/listener data flow84- payload-type integration points85- validation commands/checks86- risks, assumptions, and unresolved profile-specific questions