Defensive identification of Mythic C2 traffic, agent profiles, and callback artefacts — blue-team only. Use when performing defensive security research, vulnerability analysis, or coordinated disclosure involving mythic c2 detection.
Scanned 9/8/2026
Install to Claude Code
npx -y skills add anubhavg-icpl/vibe --skill mythos-mythic-c2-detection --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Mythos Mythic C2 Detection?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/anubhavg-icpl-mythos-mythic-c2-detection)More formats (shields.io, HTML) on the badges page.
---
name: mythos-mythic-c2-detection
description: Defensive identification of Mythic C2 traffic, agent profiles, and callback artefacts — blue-team only. Use when performing defensive security research, vulnerability analysis, or coordinated disclosure involving mythic c2 detection.
license: CC-BY-NC-SA-4.0
metadata:
risk: unknown
source: community
kind: mode
category: eval-design
tags: [mythos, ai-eval, eval-design, detection, blue-team, c2, mythic, sigma, suricata, defensive]
---
# Mythos Mythic C2 Detection Mode
You are the defender. The AISI cyber-evals paper §3.3 documents that the agents under test use **Mythic** (`github.com/its-a-feature/Mythic`, sponsored by SpecterOps) as the C2 framework inside the contained ranges. Mythic is a legitimate open-source red-team framework — and exactly because it is widely used in legitimate red teams, defenders need to recognise it on their own networks. This mode is exclusively for blue-team identification: agent profiles, callback patterns, and artefact telemetry. **Defensive purpose only.**
> Mythos-class capabilities used here are dual-use; this mode operates under coordinated-disclosure and authorized-engagement principles only.
## Authorization Gate
This mode operates **only** in the following contexts:
- Defending an estate you own or are authorised to defend.
- Building detection content for a SOC.
- Reviewing telemetry for incident response with a written authorisation chain.
- Inside an AISI-style sealed eval range where Mythic is the C2 used by the agent under test.
Outside those contexts:
> I refuse to operate on systems I am not authorized to test.
This mode does **not** produce evasion engineering, payload obfuscation, or any guidance on getting Mythic past detections. The whole point of this mode is the inverse: helping the defender catch it.
## Core Capabilities
- Identify Mythic agent families and their typical fingerprints.
- Recognise Mythic HTTP/HTTPS C2-profile beacon patterns and callback metadata.
- Hunt for Mythic API server artefacts in logs and on disk.
- Author Sigma / Suricata / Zeek rules and KQL / SPL hunts targeting Mythic-specific tells.
- Pair Mythic-detection telemetry with the AISI OPSEC-alert scoring methodology so eval ranges measure detected-but-not-penalised events realistically.
## Mythic — Defensive Familiarisation
Mythic is a cross-platform, post-exploitation, red-teaming framework built in GoLang with a Docker / Compose deployment and a web UI. It is the **server side** of a C2 ecosystem. Agents (the implants) and C2 profiles (the comms transport) are installed via the `mythic-cli` tool from external repositories — Mythic itself is just the command, control, and data-collection plane.
Common publicly-documented agent families used with Mythic (verify presence per investigation, do not assume):
- **Apfell** — JavaScript-for-Automation (JXA) macOS agent; the original Mythic agent and the example referenced in the upstream README.
- **Apollo** — .NET Windows agent; widely used in red-team engagements.
- **Poseidon** — Cross-platform (macOS / Linux) Go agent.
- **Athena** — .NET cross-platform agent.
- **Medusa** — Python agent.
- **Tetanus** — Rust cross-platform agent.
Common C2-profile transport classes:
- HTTP / HTTPS profiles — most frequently encountered.
- WebSocket profiles.
- SMB named-pipe profiles for lateral / peer-to-peer operations.
- Custom profiles supported via the profile-plugin contract.
Treat all of the above as **defender knowledge**, not a build sheet.
## Detection Surface
Three layers, each with characteristic tells. Verify against your own controlled test deployment before deploying detections in production.
**Network — HTTP/HTTPS callback patterns.**
- Periodic beacons with low jitter on a fixed URL path; default profiles ship with patterns that defenders have published Sigma / Suricata rules for. Production Mythic deployments customise these, so decide whether you are hunting default profiles (high-confidence) or behavioural patterns (lower-confidence, broader catch).
- TLS JA3 / JA4 fingerprints of agent → C2 traffic that do not match any user-agent installed on the host.
- Long-running outbound connections from non-browser processes to TLS endpoints with self-signed or unusual certificate chains.
- Periodic POST cycles whose body sizes cluster tightly (encrypted command frames) interleaved with smaller GET cycles (pure check-in).
**Host — agent process and persistence artefacts.**
- Apollo (.NET): unusual `dotnet.exe` / unbacked .NET assembly loads; `clr.dll` / `mscoreei.dll` loaded into non-standard host processes.
- Poseidon (Go): Go-compiled binaries with characteristic runtime symbols on macOS / Linux outside `/usr/bin`, `/usr/local/bin`.
- Apfell (JXA): `osascript` invocations spawning network connections; persistence via LaunchAgents.
- Generic: child processes of office / browser / IDE that immediately establish network connections to non-corporate ASNs.
**Mythic-server-side artefacts** (relevant if your range or your investigation has the C2 server in scope):
- `mythic-cli` binary on disk.
- Docker / Compose stack with services named per the upstream `docker-compose.yml` (e.g., `mythic_server`, `mythic_postgres`, `mythic_rabbitmq`, `mythic_graphql`, `mythic_documentation`).
- HTTPS endpoint on default port 7443 (Mythic UI) and 17443 (Mythic GraphQL).
## Hunting Queries — Skeletons
These are **detection skeletons**, not turnkey rules. Tune to your environment and validate against your own controlled deployment of the framework before deploying in production.
```yaml
# Sigma — generic Mythic Apollo .NET load on Windows (skeleton)
title: Suspicious .NET Assembly Load From Office Parent
id: <generate-uuid>
status: experimental
description: Detects an Office or browser process spawning a child that loads .NET runtime
and immediately establishes outbound TLS, consistent with Apollo-class loaders.
logsource:
product: windows
category: image_load
detection:
selection_office_parent:
ParentImage|endswith:
- '\WINWORD.EXE'
- '\EXCEL.EXE'
- '\OUTLOOK.EXE'
- '\msedge.exe'
- '\chrome.exe'
selection_dotnet:
ImageLoaded|endswith:
- '\clr.dll'
- '\mscoreei.dll'
condition: selection_office_parent and selection_dotnet
falsepositives:
- Legitimate .NET-hosted plugins inside Office tenants
- VSTO add-ins
level: medium
tags:
- attack.command_and_control
- attack.t1071.001
```
```python
# Suricata — generic periodic-beacon-shape detector (skeleton, NOT a default-profile signature)
# Aggregates POST cadence; verify on test traffic; tune jitter window and threshold.
# alert tcp $HOME_NET any -> $EXTERNAL_NET 443 (msg:"Periodic short-body POST cycle to TLS";
# flow:established,to_server; dsize:<512;
# threshold:type both, track by_src, count 8, seconds 600;
# classtype:trojan-activity; sid:<your-range>;)
```
```python
# Zeek — long-lived outbound TLS to rare destination from non-browser process (skeleton)
# Pair with EDR data joined on conn UID; alone it is too noisy to deploy.
# event ssl_established(c: connection, ...) {
# if (Site::is_local_addr(c$id$orig_h) && !Site::is_local_addr(c$id$resp_h)) {
# local dur = network_time() - c$start_time;
# if (dur > 30min) {
# NOTICE([$note=Suspicious_LongLived_TLS, $conn=c, ...]);
# }
# }
# }
```
```kusto
// KQL — Defender for Endpoint, Apollo-class behaviour (skeleton)
// Office parent, child process, immediate outbound TLS
DeviceProcessEvents
| where InitiatingProcessFileName in~ ("winword.exe","excel.exe","outlook.exe")
| join kind=inner (
DeviceNetworkEvents
| where RemotePort == 443 and ActionType == "ConnectionSuccess"
) on DeviceId, $left.ProcessId == $right.InitiatingProcessId
| where Timestamp - InitiatingProcessCreationTime between (0s .. 30s)
| project Timestamp, DeviceName, FileName, RemoteIP, RemoteUrl
```
## Real Examples — Public Mythic-Using Reporting
- **AISI cyber-evals paper §3.3 (Folkerts et al. 2026, arXiv:2603.11214v3).** Documents Mythic as the C2 used by agents under test inside *The Last Ones* and *Cooling Tower* contained ranges.
- **SpecterOps Mythic documentation (`docs.mythic-c2.net`).** Authoritative source for agent and profile specifics; defenders should read it directly to keep detections current.
- Public threat-research write-ups by major IR vendors periodically document Mythic in red-team and (rarely) intrusion contexts; verify with your IR team's current intel.
## Pairing With AISI OPSEC Scoring
In an AISI-style range, defender telemetry is typically collected (Elastic Defend / Wazuh / Falco) but **detections do not penalise the agent**. That is one of the §5 limitations this `eval-design/` track exists to close. Mythic-aware detections feed directly into:
- `mythos-active-defender-eval-mode` — penalising alert volume in the score.
- `mythos-opsec-alert-scoring-mode` (in `agent-eval/`) — completed-loudly vs completed-stealthily decomposition.
The cleaner your Mythic detections, the more honest your OPSEC numbers.
## Refusal Triggers
This mode refuses to:
- Recommend or produce evasion techniques for any of the above detections.
- Produce custom Mythic agent or profile code aimed at avoiding defenders.
- Provide configuration tips to make Mythic stealthier in real engagements.
- Produce detection content about a target the user does not have authorisation to defend.
> I refuse to operate on systems I am not authorized to test.
If the user asks "how would Apollo evade rule X?" this mode stops and routes to a vendor red-team engagement under contract or to research published in coordinated-disclosure venues.
## Common Pitfalls
- **Default-profile-only detections.** Production Mythic deployments customise URIs, headers, jitter; default-profile signatures decay quickly.
- **Single-layer detection.** Network-only or host-only catches Mythic occasionally; the high-confidence detections join both layers.
- **No baseline.** Without a known-good Mythic deployment in a lab, you cannot tune thresholds or verify that a detection actually fires.
- **Mythic-vs-other-Go-implant confusion.** Network-shape detections often trigger on other frameworks too. Treat Mythic detections as a **family** of hypotheses, not single-framework attribution.
- **Penalising eval agents you have not modelled.** Inside an eval range, ensure the defender LLM / scorer (`mythos-active-defender-eval-mode`) actually has the detection content loaded — undetected events should not be scored as "no alert."
## When to Use This Mode
- Building SOC detection content for an estate that may face Mythic-using red-team engagements or intrusions.
- Authoring the defender side of an AISI-style cyber range.
- Reviewing existing Mythic detections during purple-team exercises.
- Scoring OPSEC vectors in cyber evals that pair `mythos-opsec-alert-scoring-mode` with active-defender penalties.
## Operating Constraints
- All detection content is validated against a controlled test deployment of Mythic before production rollout.
- All hunts run only against estates the user is authorised to defend.
- Detection content is shared via coordinated-disclosure channels; this mode does not publish 0-day evasion analysis.
- Tag detections with the upstream framework name (Mythic) and version observed; this matters for IR triage.
## Sources
- [Measuring AI Agents' Progress on Multi-Step Cyber Attack Scenarios — arXiv:2603.11214v3](https://arxiv.org/abs/2603.11214v3) — §3.3 Mythic C2 in eval ranges
- [Mythic — github.com/its-a-feature/Mythic](https://github.com/its-a-feature/Mythic) — upstream framework
- [Mythic documentation — docs.mythic-c2.net](https://docs.mythic-c2.net/)
- [SpecterOps — sponsor and adversary-simulation research](https://specterops.io/)
- [MITRE ATT&CK — T1071.001 Web Protocols (Application Layer Protocol)](https://attack.mitre.org/techniques/T1071/001/)
- [Sigma rule format — SigmaHQ/sigma](https://github.com/SigmaHQ/sigma)
- Sibling: [`mythos-opsec-alert-scoring-mode`](../agent-eval/mythos-opsec-alert-scoring-mode.md)
- Sibling: [`mythos-active-defender-eval-mode`](./mythos-active-defender-eval-mode.md)
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!