Home
cd ../playbooks
Developer ToolsAdvanced

Adversary Emulation: MuddyWater

An intelligence-grounded, authorized purple-team emulation profile for MuddyWater (MITRE ATT&CK G0069), Iran's MOIS-linked cyber-espionage group — attribution, targeting, representative TTPs by ATT&CK tactic, emulation guidance mapped to generic red-team tooling, and paired detection/defense recommendations for every offensive technique, all under an explicit authorized-use caveat.

15 minutes
By PurpleAILAB (Decepticon)Source
#security#adversary-emulation#red-teaming#threat-intelligence#mitre-attack#purple-team

Generic red-team exercises test whether defenses catch 'an attacker' in the abstract — real purple-team value comes from emulating a specific, well-documented adversary's actual playbook, so the detections you validate are the ones that would catch the threat actor realistically targeting your sector, not a hypothetical one.

Who it's for: purple-team and red-team operators running authorized adversary emulation exercises, blue-team detection engineers validating coverage against a specific documented threat actor, security teams in government, telecom, energy, or finance sectors MuddyWater has historically targeted, SOC analysts building detections informed by real TTPs instead of generic attack patterns

Example

"Run a purple-team exercise emulating an Iranian state-linked threat actor targeting our sector" → MuddyWater's documented TTPs mapped by ATT&CK tactic (macro-document spearphishing, RMM tool abuse for initial access, PowerShell-centric execution via mshta/CMSTP proxy execution, DNS-tunneling C2), each one paired with the specific detection logic it's meant to validate, all framed under an explicit authorized-engagement caveat

CLAUDE.md Template

New here? 3-minute setup guide → | Already set up? Copy the template below.

# Adversary Emulation Profile: MuddyWater

An intelligence-grounded adversary-emulation profile for MuddyWater (MITRE ATT&CK G0069 — also tracked as Mercury, Mango Sandstorm, Static Kitten, Seedworm, TEMP.Zagros), a cyber-espionage group assessed to be a subordinate element of Iran's Ministry of Intelligence and Security (MOIS), active since at least 2017.

**Authorized-use caveat:** apply this profile only within the documented rules of engagement, target scope, and time window of an authorized purple-team or red-team engagement. Never run disruptive actions outside an explicitly sanctioned, isolated lab.

## Profile Summary

MuddyWater targets government, telecommunications, defense, oil & gas, and IT organizations primarily across the Middle East, Central/South Asia, Africa, and increasingly Europe and North America. It is characterized by heavy reliance on PowerShell-based backdoors (POWERSTATS and successors), an evolving custom C2 framework lineage (PhonyC2 → MuddyC2Go), abuse of legitimate Remote Monitoring and Management tools (Atera, ScreenConnect, SimpleHelp), spearphishing with macro-laden documents, and a pragmatic mix of custom and open-source post-exploitation tooling. A February 2022 joint U.S./UK advisory (CISA AA22-055A) formally attributed the group to MOIS with high confidence.

**Sponsor / motivation:** Iranian MOIS, primarily for strategic intelligence collection, with secondary motivations of pre-positioning for disruptive operations (the 2023 Technion "DarkBit" ransomware incident) and access brokerage to other Iranian threat actors.

**Sectors and regions:** government, telecoms, defense, energy, finance, IT/MSPs, and academia; primary focus on the Middle East, Central/South Asia, and Africa, with expansion into Europe and North America since 2023–2025 (U.S. airports, banks, and software companies).

## Representative TTPs by ATT&CK Tactic

- **Initial Access** — Spearphishing with macro-laden Word/Excel documents and malicious PDFs (T1566.001); links to lure documents hosted on file-sharing services (T1566.002); internal spearphishing from compromised mailboxes (T1534); ClickFix-style social engineering enticing victims to paste malicious PowerShell (T1204.004).
- **Execution** — PowerShell as the core mechanism for custom backdoors, with Invoke-Obfuscation for evasion (T1059.001); VBScript/VBA macros to stage payloads (T1059.005); COM/DCOM and Outlook automation (T1559.001).
- **Persistence** — Registry Run keys with a recognizable naming pattern (`SystemTextEncoding`) (T1547.001); DLL side-loading (T1574.001); scheduled tasks and Office template (`Normal.dotm`) modification.
- **Defense Evasion** — Heavy obfuscation across custom tooling (T1027); steganography (obfuscated JS in image files) (T1027.003); proxy-execution via `mshta.exe`, `CMSTP.exe`, `regsvr32.exe`, `rundll32.exe` (T1218.*); hidden PowerShell windows.
- **Credential Access** — Mimikatz and `procdump64.exe` for LSASS dumping (T1003.001); LaZagne for broad credential recovery from browsers, email clients, and Windows Credential Manager; CrackMapExec for SAM/NTDS extraction and password spraying.
- **Command and Control** — Custom frameworks evolving from PhonyC2 (Python) to MuddyC2Go (Go); DNS tunneling (Mori malware) (T1071.004); multi-stage channels separating enumeration traffic from exfiltration.
- **Exfiltration** — Data compressed with `makecab.exe` or archive utilities; staged in `%temp%`; the more recent Dindoor/Seedworm pattern uses Rclone to sync to Wasabi/S3-compatible cloud storage.

## Emulation Guidance

Apply these authorized-only within a sanctioned engagement, mapped to whatever C2, phishing, and post-exploitation tooling your team is cleared to use — none of the following requires MuddyWater's specific malware, only equivalent technique coverage:

- **Spearphishing with macro documents** — craft macro-laden Office documents with region-appropriate decoy content; on macro-enable, decode and execute a PowerShell stager via VBA, mirroring the POWERSTATS delivery chain.
- **RMM tool abuse** — deliver an authorized RMM agent installer (Atera, ScreenConnect, or equivalent) via a spearphishing PDF with an embedded link; once installed, use the tool's own remote-access capability rather than a traditional C2 channel, since RMM traffic often evades detection tuned for custom malware.
- **PowerShell-centric post-exploitation** — run operations through heavily obfuscated PowerShell; use `mshta.exe` and `CMSTP.exe` as proxy-execution vectors to launch stagers, matching MuddyWater's defining execution pattern.
- **Persistence** — set a Registry Run key for a PowerShell callback, side-load a DLL via a legitimate application, and create an innocuously named scheduled task.
- **Credential access** — drive an LSASS dump and a broad credential-store sweep (browsers, email clients, credential manager), then attempt password spraying against discovered accounts — mirroring MuddyWater's systematic credential-harvesting approach.
- **C2** — use an HTTPS-based C2 channel as the primary vector to emulate MuddyC2Go/PhonyC2; add a DNS-tunneling channel to emulate the Mori pattern; separate enumeration traffic from exfiltration traffic across channels.
- **Exfiltration** — compress staged data before exfiltrating over C2; for the more recent pattern, sync staged data to authorized cloud storage via a sync tool.

## Detection and Defense Guidance

Pair every offensive technique above with the detection coverage it's meant to validate:

- **Spearphishing/macros** — block macros from internet-originated documents (Mark-of-the-Web enforcement); deploy attachment detonation; alert on Office processes spawning PowerShell, `cmd.exe`, `mshta.exe`, or `CMSTP.exe`.
- **RMM abuse** — maintain an allowlist of authorized RMM software; alert on unexpected RMM agent installations or RMM binaries executing from non-standard directories.
- **PowerShell backdoors** — enable PowerShell Script Block and Module Logging; apply constrained language mode on sensitive hosts; detect Invoke-Obfuscation patterns and PowerShell spawned from proxy-execution binaries.
- **DLL side-loading** — monitor for DLL loads from non-standard directories alongside legitimate executables; alert on unsigned DLLs loaded by signed binaries.
- **DNS tunneling** — monitor for high-volume DNS queries with long subdomain strings to unusual domains.
- **Credential dumping** — enable LSA protection and Credential Guard; alert on LSASS handle access and DCSync replication from non-domain-controller machines.
- **Persistence** — monitor Registry Run key modifications (especially suspicious or Defender-themed key names) and scheduled task creation.
- **Exfiltration** — monitor for sync-tool execution and cloud-storage API traffic to unusual endpoints; apply DLP rules to `makecab.exe`-generated archives.

## Sources

MITRE ATT&CK G0069; CISA Advisory AA22-055A; UK NCSC malware analysis reports; and public threat-intelligence reporting from Unit 42, Mandiant, Symantec, ClearSky, Cisco Talos, Deep Instinct, Proofpoint, and ESET.

Get new playbooks like this one

One email a week with new Claude Code workflows. Free, like everything here.

No spam. Unsubscribe anytime.

README.md

What This Does

A structured, citation-backed adversary-emulation profile for MuddyWater (MITRE ATT&CK G0069, also tracked as Mercury, Mango Sandstorm, and Static Kitten), an Iranian MOIS-linked cyber-espionage group active since at least 2017 — built for authorized purple-team and red-team exercises rather than casual reading. It opens with attribution and targeting grounded in named sources (CISA's joint advisory AA22-055A, UK NCSC malware analysis, and reporting from Unit 42, Mandiant, Symantec, and others), then walks representative TTPs by ATT&CK tactic: the group's defining reliance on PowerShell-based backdoors launched via proxy-execution binaries like mshta.exe and CMSTP.exe, its evolution from the PhonyC2 to MuddyC2Go command-and-control framework, its systematic pivot to abusing legitimate RMM tools (Atera, ScreenConnect) for initial access, and its more recent adoption of ClickFix-style social engineering and cloud-storage-based exfiltration.

Every offensive technique carries two things most emulation write-ups skip: an emulation instruction generalized to whatever C2 and phishing tooling your team is actually cleared to use (never requiring MuddyWater's specific malware), and a paired detection recommendation stating exactly what a blue team should be watching for to catch it — Script Block Logging for the PowerShell obfuscation, an RMM software allowlist for the tool abuse, DNS-query-pattern monitoring for the Mori-style tunneling. An explicit authorized-use caveat opens the emulation section: apply this only within a sanctioned engagement's documented scope, and never run disruptive actions outside an isolated, explicitly authorized lab.


Quick Start

Step 1: Create a Project Folder

mkdir adversary-emulation && cd adversary-emulation

Step 2: Download the Template

Click Download above, then:

mv ~/Downloads/CLAUDE.md ./

Step 3: Run an Authorized Exercise

claude

Within an authorized purple-team engagement, ask Claude to plan an exercise emulating MuddyWater's TTPs against your environment, or to build detection logic for a specific technique in the profile. It will map the documented TTPs to your actual authorized tooling and pair every offensive step with the detection coverage it's meant to validate.


Tips & Best Practices

  • Confirm rules of engagement and scope before applying any offensive technique from this profile — the authorized-use caveat isn't boilerplate; MuddyWater's real playbook includes destructive capability (the 2023 DarkBit ransomware incident) that must never run outside a sanctioned, isolated environment.
  • Use the paired detection guidance to validate coverage before running the offensive side of the exercise — knowing what "should" alert makes it obvious when a gap in logging or detection logic is the actual finding, not just whether the emulated technique succeeded.
  • Treat the RMM tool abuse pattern as a priority technique to test — legitimate RMM software abuse is specifically effective at evading detection tuned for custom malware, which is exactly why MuddyWater pivoted heavily toward it.

Limitations

  • Intelligence-grounded but still a synthesis of public reporting — treat it as a strong starting profile for an exercise, not a guarantee of complete coverage of the actor's full, non-public capability.
  • Emulation guidance intentionally stays tool-agnostic (mapped to "your C2/phishing tooling") rather than naming a specific commercial or open-source platform — teams will need to translate each technique into their own cleared toolset.
  • A profile for one specific, named threat actor — pair it with profiles of other actors relevant to your sector and with a broader detection-engineering program for coverage beyond this one group's documented TTPs.

$Related Playbooks

Developer Tools

Adversary Emulation: Turla

An intelligence-grounded, authorized purple-team emulation profile for Turla (MITRE ATT&CK G0010), Russia's FSB-linked espionage group — attribution, distinctive TTPs (satellite C2 hijacking, steganographic email backdoors, parasitizing rival APT infrastructure), emulation guidance mapped to generic red-team tooling, and paired detection recommendations, under an explicit authorized-use and lab-only caveat for rootkit techniques.

15 minutes
Advanced
Developer Tools

AI Agent Red Team Methodology

A first-principles methodology for authorized red-team exercises against AI products, agents, MCP servers, skills, and repositories — capability and trust-boundary modeling, AI-specific attack hypothesis families (prompt injection, tool misuse, data leakage, SSRF), harmless-proof testing with canaries, one-variable-at-a-time adaptive iteration, and business-language evidence-based reporting.

10 minutes
Advanced
Developer Tools

Contribution PR Review

Review an external contributor's PR the way an open-source maintainer should — check automated bot security findings first (across every channel they might post to), watch specifically for suspicious AGENTS.md or workflow-permission changes, scale size and test-coverage expectations by contributor experience, and separate intent/scope alignment from code quality that bots already covered.

10 minutes
Intermediate
Developer Tools

Datadog Error Triage to PR

Take Datadog Error Tracking issues from raw occurrence counts to a reviewable, tested PR — a five-class bug taxonomy that filters out infra noise and deploy-skew before ranking, a recency premium that catches fresh regressions early, a mandatory approval gate before any fix is written, and a test-first fix workflow that generalizes past the one reported occurrence.

10 minutes
Advanced
Developer Tools

React Native Video (v6 & v7)

Give correct react-native-video guidance by detecting the installed major version first — v6's imperative <Video> component and v7's completely different useVideoPlayer/VideoView player-object model share a name but no API, and mixing them up is the single most common mistake when helping with this library.

5 minutes
Intermediate
Developer Tools

React Three Fiber Animation Reference

Animate React Three Fiber scenes correctly — useFrame fundamentals with render priority, full GLTF animation control via useAnimations (playback, crossfade, event listeners, speed-based blending between Idle/Walk/Run), @react-spring/three physics animations with gesture and chain integration, and the five performance rules that keep per-frame updates from triggering React re-renders.

10 minutes
Intermediate
Developer Tools

Reshape PR Commits

Turn a branch's messy WIP/fixup commit history into a clean, logically-grouped set of commits before review — proposed regrouping with explicit approval, git reset --soft plus staged re-commits instead of interactive rebase, and hard guardrails (feature branches only, force-with-lease only, never touch another author's commits).

5 minutes
Intermediate
Developer Tools

Planning with Files

Persistent, file-based planning for multi-step AI-agent work — task_plan.md, findings.md, and progress.md on disk, a 2-action rule for capturing multimodal findings before they're lost, a 3-strike error protocol, and a 5-question reboot test to verify state survives a compaction.

5 minutes
Intermediate
Developer Tools

PR Queue Triage

Clear a backlog of open pull requests before a release by classifying every PR into an evidence-based disposition — never by title — with a real git merge-tree test against the actual release branch, not the platform's often-wrong mergeable flag.

10 minutes
Intermediate
Developer Tools

Reproducible Database Lookup

A methodology for querying public database APIs — scientific, regulatory, financial, or otherwise — so another agent or human can repeat exactly what you did: bounded calls, count reconciliation, identifier-conversion tracking, and untrusted-data handling for every response.

10 minutes
Advanced
Developer Tools

Project Graveyard: Autopsy Your Abandoned Side Projects

Scan local repos for dead side projects, autopsy each one from its git history, surface your personal death patterns, and pick the one corpse most worth resurrecting — then help ship it.

10 minutes
Intermediate
Developer Tools

PR Review Toolkit

Six specialist reviewers — comments, tests, error handling, type design, general quality, and simplification — each triggered by name or automatically based on what changed in the diff.

5 minutes
Intermediate

Browse all Developer Tools playbooks →