Edgecution — Malicious Microsoft Edge Extension Backdoor

A ClickFix/Teams social-engineering chain sideloads an Edge extension ("Edge Monitoring Agent") that abuses the Chrome Native Messaging protocol to break the browser sandbox and drive an embedded-Python backdoor. Deployed by an initial-access broker linked to the Payouts King ransomware operation.
Threat
Edgecution
Severity
IAB → RANSOMWARE
Type
Browser-Extension Backdoor / Loader
Access
Social Eng · Teams ClickFix
Version
v0.2 · 2026-07-05
Author
HuntPack
Confidence
High
01

Executive Summary

What it is. Edgecution (named by Zscaler ThreatLabz) is a malicious Microsoft Edge extension used as an initial-access foothold. The attacker poses as IT support on Microsoft Teams and steers the user to a fake "Outlook Updates Management Console" page — a ClickFix lure — which drops an obfuscated AutoHotKey script and an encrypted ZIP (PK magic bytes stripped). The payload installs an Edge extension ("Edge Monitoring Agent") that abuses the Chrome Native Messaging protocol as a bridge out of the browser sandbox to a batch launcher (native_host.bat) which starts an embedded Python 3.13.3 backdoor.

Why it matters. The extension component beacons to C2 over WebSocket (WSS) fronted by AWS CloudFront — blending with legitimate CDN traffic — while the Python backdoor delivers full host control: shell and PowerShell execution, arbitrary Python, file write, and process enumeration. To stay invisible, the extension is loaded into a headless Edge instance via a scheduled task, so there is no visible browser window. The operator is assessed to be an initial-access broker tied to the Payouts King ransomware operation — Edgecution is the front door; ransomware is the likely follow-on.

The hunt is favorable. Unlike an appliance exploit, Edgecution runs entirely on the endpoint and leaves crisp, high-fidelity artifacts: a headless msedge.exe launched with --load-extension + --headless=new against a non-default --user-data-dir; msedge.exe spawning cmd.exe/python.exe via native messaging; files under %LOCALAPPDATA%\Microsoft\Edge\User Data\test1; an AppKey value under HKCU\SOFTWARE\Microsoft\Edge; and WSS beacons to four specific CloudFront hosts. Published SHA256 hashes exist for both components.

Defender priority: A browser is not supposed to spawn a shell. Hunt msedge.exe loading an unpacked extension into a headless, non-default profile and any Edge → cmd/python/powershell parent-child chain — that single behavioral pair is the highest-value, lowest-FP catch, independent of the (perishable) C2 domains and hashes.

02

Source Review & Web Hunter Notes

TierSourceKey findingCarry fwd
1 VendorZscaler ThreatLabz — "Payouts King ransomware IAB deploys new Edgecution"Full technical teardown: extension + native messaging + Python backdoor, install paths, registry AppKey, headless-Edge scheduled task, WSS/CloudFront C2, two SHA256 hashes, command IDs.yes
2 PressBleepingComputer — "Malicious Edge extension abuses Native Messaging as bridge to malware"Corroborates native-messaging sandbox-escape mechanism and ransomware initial-access context.yes
2 PressSC Media — "New 'Edgecution' malware uses browser extension to deploy ransomware"Confirms IAB→ransomware linkage and Teams-impersonation delivery.yes
3 AnalyticHivePro / SecurityOnline threat advisoriesIndependent restatement of the chain (ClickFix lure → extension → host compromise); no new atomics.partial

Intel gaps / perishability: C2 lives on AWS CloudFront, so the four *.cloudfront.net hosts are rotatable and will expire quickly — hunt them but do not rely on them long-term. The randomized native-messaging host name (com.[rand].api) varies per campaign, so match on the path/behavior rather than the exact host name. The two SHA256 hashes are point-in-time; the behavioral hunts (§8) are the durable coverage.

03

Hunt Brief & Attack Chain

Hunt hypotheses (fidelity-ordered)

#HypothesisMITRETelemetryConf
H1msedge.exe is launched with --load-extension + --headless=new against a non-default --user-data-dir (e.g. ...\User Data\Recovery) — the covert extension load.T1547.013ProcessRollup2HIGH
H2msedge.exe (or its native-host .bat) spawns cmd.exe, python.exe, or powershell.exe — the native-messaging sandbox escape driving the backdoor.T1059 / T1547.013ProcessRollup2HIGH
H3Files named native_host.bat / extension.log or any write under ...\Edge\User Data\test1 appear on disk.T1105 / T1036.005FileCreateInfo / PeFileWrittenHIGH
H4Registry value AppKey is set under HKCU\SOFTWARE\Microsoft\Edge (holds the hex key for backdoor string decryption).T1112 / T1140RegGenericValueUpdateMED
H5Host resolves / connects to one of the four Edgecution CloudFront C2 hosts over WSS.T1071.001 / T1102DnsRequest / NetworkConnectIP4HIGH
H6A scheduled task is registered whose action launches headless Edge with an unpacked extension (persistence for the beacon).T1053.005ScheduledTaskRegisteredHIGH
H7ClickFix precursor: AutoHotKey executes, or a clipboard-pasted cmd/powershell one-liner runs from a browser-driven session.T1204.001 / T1059ProcessRollup2MED
H8Either published SHA256 (extension background.js or Python backdoor) is seen on any host.ProcessRollup2 / PeFileWrittenHIGH

Attack chain

StepActionTelemetry / hunt angle
1 · Lure (T1566.002)Attacker impersonates IT on Teams; directs user to fake "Outlook Updates Management Console".Teams logs, proxy to lure domain. H7.
2 · User execution (T1204.001)Victim clicks a "download" button → obfuscated AutoHotKey / clipboard cmd / PowerShell / encrypted ZIP.AHK run, clipboard-paste one-liner. H7.
3 · Deobfuscate (T1140)Encrypted ZIP (PK bytes removed) is reassembled; AppKey written for string decryption.File writes, registry AppKey. H3/H4.
4 · Install extension (T1547.013)Extension + native host dropped to ...\Edge\User Data\test1\{extension,native}.native_host.bat, test1 path. H3.
5 · Sandbox escape (T1559/T1059)Native messaging bridges the extension to native_host.bat → embedded Python backdoor.msedge → cmd/python parent-child. H2.
6 · Persist (T1053.005)Scheduled task launches headless Edge with the unpacked extension each session.Task with --headless=new + --load-extension. H1/H6.
7 · C2 (T1071.001)Extension beacons WSS to CloudFront; Python backdoor executes shell/PS/Python, writes files, enumerates processes.DNS/net to 4 CloudFront hosts. H5.
8 · Hand-offAccess brokered to Payouts King ransomware operators for follow-on encryption.Downstream ransomware TTPs (out of scope here).
04

Consolidated IOC Table

TypeValueConfActionContext
Domain (C2)d3nh8sl98s2554.cloudfront[.]nethighdetectWSS C2 /ws. CloudFront-fronted — perishable.
Domain (C2)d2g6dl71gua1qa.cloudfront[.]nethighdetectWSS C2 /ws.
Domain (C2)d1jp293q9tvi92.cloudfront[.]nethighdetectWSS C2 /ws.
Domain (C2)d23l50n6ubud7p.cloudfront[.]nethighdetectWSS C2 /ws.
SHA256a08d8e63b0cd3638fb40b8e6da546e26da69439597565827f9cec87915f78568highdetectExtension background.js.
SHA2563d1158884fb339b3328bd330fcc27598e1f1c94bcac39e75d1a272afa4deee1ahighdetectPython backdoor.
Filenamenative_host.bathighhuntNative-messaging launcher (embedded Python).
Filenameextension.logmediumhuntBackdoor log artifact.
Filepath%LOCALAPPDATA%\Microsoft\Edge\User Data\test1highhuntInstall dir (extension/ + native/).
RegistryHKCU\SOFTWARE\Microsoft\Edge\AppKeymediumhuntHex string-decryption key. AppKey is not a legitimate Edge value.
Behavioralmsedge.exe with --load-extension + --headless=new + non-default --user-data-dirhighdetectCovert extension load / persistence.
05

Affected Surface & Telemetry Matrix

SurfaceRequired telemetryPriorityGap risk
Windows endpoints (Edge users)ProcessRollup2, command line visibilityCriticalLow — core Falcon coverage
Windows endpoints (disk)FileCreateInfo / PeFileWritten, RegGenericValueUpdateHighLow
Network egressDnsRequest, NetworkConnectIP4HighMedium — CloudFront blends with legit CDN; needs exact-host match
Collaboration (Teams)Teams audit / message logs, proxyMediumHigh — outside EDR; needs M365/proxy logs
06

ATT&CK Mapping

TacticTechniqueObserved behaviorQuery / control
Initial AccessT1566.002 Spearphishing LinkTeams-impersonation → fake Outlook update pageNative §7; H7
ExecutionT1204.001 User Execution (link)Victim runs AHK / clipboard cmd / PowerShellQ7
ExecutionT1059.001 / T1059.003PowerShell / cmd driven by the Python backdoorQ2, Q7
PersistenceT1547.013 Browser ExtensionsUnpacked Edge extension loaded via native messagingQ1, Q2
PersistenceT1053.005 Scheduled TaskTask launches headless Edge with the extensionQ6
Defense EvasionT1140 Deobfuscate / T1112 Modify RegistryEncrypted ZIP + AppKey decryption keyQ4
Defense EvasionT1036.005 Masquerading"Edge Monitoring Agent" in an Edge-like pathQ3
Command & ControlT1071.001 / T1102 Web ServiceWSS beacon fronted by CloudFrontQ5
07

Native Audit-Log Hunts (non-CQL)

Microsoft Edge / browser management

  • Unpacked extensions: via Edge management (or on-host) enumerate extensions loaded with --load-extension / developer mode. Any extension outside the managed allowlist — especially "Edge Monitoring Agent" — is suspect.
  • Native messaging hosts: inspect %LOCALAPPDATA%\Microsoft\Edge\User Data\**\native\ and the NativeMessagingHosts manifests for a host that points at a .bat (legit hosts point at signed executables). Edgecution's manifest points at native_host.bat.
  • Rogue profile dirs: look for non-standard Edge User Data profile folders (test1, Recovery) created outside normal profile setup.

Microsoft 365 / Teams

  • Hunt Teams for external/guest senders impersonating "IT Support"/"Help Desk" that message multiple internal users, and for chats containing links to non-corporate "update/console" domains.
  • Proxy/secure-web-gateway: alert on downloads of .ahk / AutoHotKey binaries and on fetches to newly-registered "Outlook/Office update" lookalike domains.

Network

  • On the SWG/firewall, log WSS (wss://) upgrades to *.cloudfront.net from user endpoints and match against the four known hosts; more broadly, flag long-lived WebSocket sessions to CloudFront from processes other than a normal foreground browser.
08

CrowdStrike LogScale CQL Hunt Queries

Pick your tenant's cloud first — every "Open in Falcon" button below uses this selection.
Q1 · Headless Edge loading an unpacked extension
CONF HIGHFP LOWCOST LOW

Looks for: msedge.exe started with both --headless=new and --load-extension — a headless browser silently sideloading an unpacked extension. This is Edgecution's signature persistence launch and is almost never legitimate on a user endpoint.

// HUNT: Headless Edge sideloading an unpacked extension (Edgecution)
// MITRE: T1547.013 | CONF: high  FP: low  COST: low | REQUIRES: ProcessRollup2
#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/
| FileName=/^msedge(\.exe)?$/i
| CommandLine=/--headless(=new)?/i
| CommandLine=/--load-extension/i
| table([ComputerName, aid, UserName, FileName, CommandLine, ParentBaseFileName], limit=200)
Q2 · Edge / native-host spawning a shell or Python
CONF HIGHFP MEDCOST LOW

Looks for: msedge.exe as the parent of cmd.exe, python.exe, pythonw.exe, or powershell.exe — the native-messaging sandbox escape. FP: some managed browser policies or extensions legitimately invoke helpers; exclude your sanctioned native-messaging hosts and enterprise browser-management agents.

// HUNT: Edge spawning shell/Python via native messaging (Edgecution)
// MITRE: T1547.013 / T1059 | CONF: high  FP: medium  COST: low | REQUIRES: ProcessRollup2
// TUNING: exclude sanctioned native-messaging hosts and enterprise browser-mgmt agents
#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/
| ParentBaseFileName=/^msedge\.exe$/i
| FileName=/^(cmd|python|pythonw|powershell)(\.exe)?$/i
| table([ComputerName, aid, UserName, ParentBaseFileName, FileName, CommandLine], limit=200)
Q3 · Edgecution install artifacts on disk
CONF HIGHFP LOWCOST LOW

Looks for: creation of native_host.bat / extension.log, or any file written under an Edge User Data\test1 path — the drop location for the extension and native host.

// HUNT: Edgecution install artifacts written to disk
// MITRE: T1105 / T1036.005 | CONF: high  FP: low  COST: low | REQUIRES: FileCreateInfo / PeFileWritten
#event_simpleName=/FileCreateInfo|PeFileWritten|NewExecutableWritten/
| TargetFileName=/(native_host\.bat|extension\.log|\\Edge\\User Data\\test1\\)/i
| table([ComputerName, aid, UserName, TargetFileName], limit=200)
Q4 · Rogue AppKey registry value under Edge
CONF MEDFP MEDCOST LOW

Looks for: a registry value named AppKey set under HKCU\SOFTWARE\Microsoft\Edge — Edgecution stores its hex string-decryption key there. FP: AppKey is a generic name; confirm the value is a long hex blob under the Edge key rather than a legitimate app setting elsewhere.

// HUNT: Edgecution AppKey decryption key in registry
// MITRE: T1112 / T1140 | CONF: medium  FP: medium  COST: low | REQUIRES: RegGenericValueUpdate
// TUNING: require the value sit under \Microsoft\Edge and hold a long hex string
#event_simpleName=/RegGenericValueUpdate|RegSystemConfigValueUpdate/
| RegObjectName=/\\Microsoft\\Edge$/i
| RegValueName=/^AppKey$/i
| table([ComputerName, aid, UserName, RegObjectName, RegValueName, RegStringValue], limit=200)
Q5 · Beacon to Edgecution CloudFront C2
CONF HIGHFP LOWCOST LOW

Looks for: DNS resolution of any of the four known Edgecution CloudFront C2 hosts. Exact-host match keeps FP low despite CloudFront being shared infrastructure.

// HUNT: DNS to known Edgecution CloudFront C2 hosts
// MITRE: T1071.001 / T1102 | CONF: high  FP: low  COST: low | REQUIRES: DnsRequest
#event_simpleName=/DnsRequest/
| DomainName=/^(d3nh8sl98s2554|d2g6dl71gua1qa|d1jp293q9tvi92|d23l50n6ubud7p)\.cloudfront\.net$/i
| table([ComputerName, aid, DomainName, ContextBaseFileName], limit=200)
Q6 · Scheduled task launching headless Edge
CONF HIGHFP LOWCOST LOW

Looks for: scheduled-task registration whose action launches Edge with --headless and --load-extension against a Recovery/non-default profile — the persistence mechanism for the beacon.

// HUNT: Scheduled task launching headless Edge with an extension
// MITRE: T1053.005 | CONF: high  FP: low  COST: low | REQUIRES: ScheduledTaskRegistered
#event_simpleName=/ScheduledTaskRegistered/
| CommandLine=/msedge/i
| CommandLine=/--headless/i
| CommandLine=/--load-extension/i
| table([ComputerName, aid, UserName, TaskName, CommandLine], limit=200)
Q7 · ClickFix precursor — AutoHotKey / clipboard one-liner
CONF MEDFP MEDCOST LOW

Looks for: AutoHotKey execution or a cmd/powershell one-liner spawned from a browser process — the ClickFix delivery step. FP: AHK is used by legitimate automation and PowerShell runs from many parents; scope to browser parents and unusual command content, and exclude sanctioned AHK deployments.

// HUNT: ClickFix delivery — AHK or browser-spawned shell one-liner
// MITRE: T1204.001 / T1059 | CONF: medium  FP: medium  COST: low | REQUIRES: ProcessRollup2
// TUNING: exclude sanctioned AutoHotKey automation; scope to browser parents
#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/
| ParentBaseFileName=/^(msedge|chrome|brave)\.exe$/i
| FileName=/^(autohotkey|autohotkeyu?64|cmd|powershell|mshta|wscript|cscript)(\.exe)?$/i
| table([ComputerName, aid, UserName, ParentBaseFileName, FileName, CommandLine], limit=200)
Q8 · Known Edgecution SHA256 on any host
CONF HIGHFP LOWCOST LOW

Looks for: execution or write of either published Edgecution component hash. Point-in-time, but a certain match where it fires.

// HUNT: Known Edgecution component hashes
// MITRE: — | CONF: high  FP: low  COST: low | REQUIRES: ProcessRollup2 / PeFileWritten
#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2|PeFileWritten/
| SHA256HashData=/^(a08d8e63b0cd3638fb40b8e6da546e26da69439597565827f9cec87915f78568|3d1158884fb339b3328bd330fcc27598e1f1c94bcac39e75d1a272afa4deee1a)$/i
| table([ComputerName, aid, FileName, SHA256HashData], limit=200)
09

Custom IOA Recommendations

IOA namePatternExclusionsPath
Headless Edge + Unpacked Extensionmsedge.exe with --headless=new AND --load-extensionSanctioned automated-browser/testing hostsInvestigate → Detect/Block after baseline (Q1)
Browser Spawns Shell/PythonParentImage msedge.exe → cmd/python/pythonw/powershellApproved native-messaging hosts, browser-mgmt agentsInvestigate → Detect (Q2)
Rogue Edge Native Host (.bat)Write of native_host.bat or file under ...\Edge\User Data\test1None expectedDetect (Q3)
Edgecution C2DNS/connect to the four CloudFront C2 hostsNoneDetect/Block (Q5) — refresh as infra rotates
10

Machine-Readable IOC Appendix

Falcon IOC Management CSVbulk import
type,value,action,severity,expiration,description,tags
domain,d3nh8sl98s2554.cloudfront.net,detect,high,2026-10-05,Edgecution WSS C2,campaign:Edgecution
domain,d2g6dl71gua1qa.cloudfront.net,detect,high,2026-10-05,Edgecution WSS C2,campaign:Edgecution
domain,d1jp293q9tvi92.cloudfront.net,detect,high,2026-10-05,Edgecution WSS C2,campaign:Edgecution
domain,d23l50n6ubud7p.cloudfront.net,detect,high,2026-10-05,Edgecution WSS C2,campaign:Edgecution
sha256,a08d8e63b0cd3638fb40b8e6da546e26da69439597565827f9cec87915f78568,prevent,critical,2027-01-05,Edgecution extension background.js,campaign:Edgecution
sha256,3d1158884fb339b3328bd330fcc27598e1f1c94bcac39e75d1a272afa4deee1a,prevent,critical,2027-01-05,Edgecution Python backdoor,campaign:Edgecution
Host Artifactsdisk / registry
# Files:
native_host.bat
extension.log
%LOCALAPPDATA%\Microsoft\Edge\User Data\test1\           # extension\ + native\
%LOCALAPPDATA%\Microsoft\Edge\User Data\Recovery\        # headless-launch profile
# Registry:
HKCU\SOFTWARE\Microsoft\Edge  ->  value "AppKey" (hex string-decryption key)
# Native-messaging manifest host name (randomized per campaign):
com.[rand_chars].api   -> points at native_host.bat (legit hosts point at signed .exe)
Behavioral SignaturesEDR / IOA
# Persistence launch:
msedge.exe --user-data-dir="%LOCALAPPDATA%\Microsoft\Edge\User Data\Recovery"
           --load-extension=<dir> --no-first-run --disable-sync --headless=new
# Sandbox escape:
msedge.exe  ->  native_host.bat  ->  python.exe (embedded Python 3.13.3)
# C2:  WSS upgrade to wss://<host>.cloudfront.net/ws  ; 20s ping heartbeat
# Backdoor caps: shell(3) / file-write(4) / python(5) / proc-enum(6) / powershell(7)
Prevent / Policy Audithardening
# Edge policy (block sideloading + control native messaging):
#   ExtensionInstallBlocklist = ["*"]
#   ExtensionInstallAllowlist = [<approved IDs>]
#   BlockExternalExtensions   = true
#   NativeMessagingBlocklist  = ["*"]
#   NativeMessagingAllowlist  = [<approved hosts>]
#   DeveloperToolsAvailability = 2   # disallow / restrict
# Audit for the rogue load flags:
#   Get-CimInstance Win32_Process -Filter "Name='msedge.exe'" |
#     ? { $_.CommandLine -match '--load-extension|--headless' }
11

Detection Validation Gates

GateCheckPass criterion
Telemetry readyProcessRollup2 with command lines, FileCreateInfo, RegGenericValueUpdate, DnsRequest all flowingEvents queryable in SIEM within last 24h
Benign baselineConfirm no legitimate app on your estate launches Edge with --load-extension/--headlessQ1/Q6 return zero in a clean window
Positive testIn a lab, launch msedge --headless=new --load-extension=<benign>; confirm Q1 firesQ1 matches
C2 freshnessRe-check the four CloudFront hosts against current threat intelIOC list refreshed; expired hosts pruned
PromotionQ2/Q7 reviewed for native-messaging FP before Detect/Block<1 FP/host/week after tuning
12

Hardening — Tiered & Deployable

Immediate (this week)
  • Lock down Edge extensions by policy — set ExtensionInstallBlocklist=* + an explicit allowlist, and BlockExternalExtensions=true, so unpacked/sideloaded extensions cannot load. MITRE M1042 (Disable or Remove Feature); authority: Microsoft Edge browser policy docs / CIS Microsoft Edge Benchmark.
  • Restrict Native MessagingNativeMessagingBlocklist=* + allowlist only sanctioned hosts, killing the sandbox-escape bridge. MITRE M1042; Microsoft Edge policy.
  • Block the four CloudFront C2 hosts and push the two SHA256 hashes to Falcon prevention. MITRE M1037 (Filter Network Traffic) / M1040.
Near term (1–4 weeks)
  • Neutralize the ClickFix lure — disable/limit external Teams chat and label external senders; user-education on "IT support" DMs. MITRE M1017 (User Training) / M1042 (restrict external federation).
  • ASR + script controls — enable "Block executable content from email/webmail" and constrain AutoHotKey/HTA/WSH via WDAC or AppLocker. MITRE M1038 (Execution Prevention); MS Security Baseline / ASR.
  • Disable Edge developer-mode extension loading for standard users (DeveloperToolsAvailability=2). MITRE M1042.
Strategic (1–3 months)
  • Application control (WDAC/AppLocker) so only signed, approved interpreters run, blocking embedded-Python launched from a browser path. MITRE M1038; MS WDAC guidance.
  • Egress control for WebSocket/CDN — inspect and constrain long-lived WSS to CDN from non-browser processes. MITRE M1037.
  • Phishing-resistant MFA + identity hardening to blunt the ransomware follow-on if a foothold is achieved. MITRE M1032.
13

Deployable Playbooks

Playbook A — Edge extension & native-messaging lockdown (GPO / Intune ADMX)

# Microsoft Edge policies (HKLM\SOFTWARE\Policies\Microsoft\Edge):
ExtensionInstallBlocklist        = ["*"]
ExtensionInstallAllowlist        = ["<approved_ext_id_1>","<approved_ext_id_2>"]
BlockExternalExtensions          = 1
NativeMessagingBlocklist         = ["*"]
NativeMessagingAllowlist         = ["com.google.chrome.example","<approved_host>"]
DeveloperToolsAvailability       = 2      # 2 = disallowed
# Deploy via GPO (Administrative Templates > Microsoft Edge) or Intune Settings Catalog.

Playbook B — Hunt & clean an infected host (PowerShell)

# 1. Detect the rogue load / install
Get-CimInstance Win32_Process -Filter "Name='msedge.exe'" |
  Where-Object { $_.CommandLine -match '--load-extension|--headless' } |
  Select-Object ProcessId, CommandLine

Test-Path "$env:LOCALAPPDATA\Microsoft\Edge\User Data\test1"
Get-ItemProperty "HKCU:\SOFTWARE\Microsoft\Edge" -Name AppKey -ErrorAction SilentlyContinue

# 2. Remove persistence + artifacts (after evidence capture)
Get-ScheduledTask | Where-Object { $_.Actions.Arguments -match '--load-extension|--headless' } |
  Unregister-ScheduledTask -Confirm:$false
Remove-Item "$env:LOCALAPPDATA\Microsoft\Edge\User Data\test1" -Recurse -Force -ErrorAction SilentlyContinue
Remove-ItemProperty "HKCU:\SOFTWARE\Microsoft\Edge" -Name AppKey -ErrorAction SilentlyContinue

Playbook C — Block C2 & hashes (Falcon IOC import)

# Import the §10 CSV via Falcon > Endpoint Security > IOC Management,
# or the API:  POST /iocs/entities/indicators/v1
#   domains  -> detect   (4 CloudFront hosts)
#   sha256   -> prevent  (background.js + Python backdoor)
# Refresh the domain set as CloudFront infrastructure rotates.
14

Containment Runbook

PhaseActionsOwnerEvidence
IsolateFalcon network-contain hosts flagged by Q1–Q3/Q5/Q8; block the four CloudFront C2 hosts at the SWG.SOCContainment IDs, blocked-domain log
EradicateKill headless msedge + Python; remove the scheduled task, test1 dir, and AppKey value (Playbook B); push the two hashes to prevent.IRTask-removal log, deleted-artifact hashes
RecoverReset credentials for the user (backdoor could keylog/PowerShell); deploy Edge extension/native-messaging policy (Playbook A); re-image if backdoor ran arbitrary code.IR + IAMReset log, policy IDs, re-image ticket
Post-incidentRestrict external Teams chat; user-education on the "IT support" lure; deploy ASR/WDAC; add the behavioral IOAs.SecEngPolicy IDs, IOA IDs
15

Detection Coverage Map

TechniqueBehaviorCQLIOACoverage
T1566.002Teams-impersonation lureGAP (M365/proxy only)
T1204.001 / T1059ClickFix AHK / shell one-linerQ7Partial
T1547.013Headless Edge + unpacked extensionQ1Headless Edge IOAGood
T1547.013 / T1059Native-messaging sandbox escapeQ2Browser→Shell IOAGood
T1105 / T1036.005Install artifacts on diskQ3Rogue Native Host IOAGood
T1112 / T1140AppKey decryption keyQ4Partial
T1053.005Headless-Edge scheduled taskQ6Good
T1071.001 / T1102WSS/CloudFront C2Q5, Q8Edgecution C2 IOAGood

Known gaps: the Teams lure (T1566.002) is off-EDR — close it with M365/Teams audit + proxy hunts (§7). C2 domains are CloudFront-fronted and will rotate; the behavioral queries (Q1/Q2/Q3/Q6) are the durable coverage.

Validation: the telemetry-ready and benign-baseline gates (§11) must pass before Q2/Q7 are promoted from Investigate to Detect/Block.

16

Hunt Summary Ticket

TITLE:      Edgecution — Malicious Edge Extension Backdoor (Payouts King IAB)
SEVERITY:   High (initial-access broker foothold; ransomware follow-on likely)
SCOPE:      Windows endpoints running Microsoft Edge
HYPOTHESIS: ClickFix/Teams lure -> sideloaded Edge extension -> native-messaging
            sandbox escape -> embedded-Python backdoor -> WSS/CloudFront C2
QUERIES:    Q1 headless-edge+extension · Q2 edge->shell/python · Q3 install artifacts ·
            Q4 AppKey reg · Q5 CloudFront C2 · Q6 sched-task · Q7 ClickFix · Q8 hashes
DO FIRST:   1) Run Q1+Q2 (highest fidelity)  2) Block 4 CloudFront hosts + 2 SHA256
            3) Push Edge extension + native-messaging policy lockdown (Playbook A)
FINDINGS:   <record headless-edge launches, edge->python chains, test1 dir, AppKey hits>
GAPS:       Teams lure off-EDR (M365/proxy); CloudFront C2 rotates — refresh IOCs
ACTIONS:    Falcon-contain flagged hosts; remove task+test1+AppKey (Playbook B);
            reset creds for affected users; consider re-image (arbitrary code ran)
OWNER:      <assign>          VERSION: v0.2 · 2026-07-05
17

Changelog

v0.22026-07-24CQL correctness pass. All table() calls now carry an explicit row limit: the default is 200 and truncation is silent, so a capped result was indistinguishable from a complete one. Atomic-IOC sweeps (filters over 5+ hashes or C2 IPs) use limit=max so a wide infection is never silently under-scoped; behavioural hunts use limit=200, where exceeding the cap indicates the query needs tuning. Where present, event names that do not exist in the Falcon data model were corrected (e.g. ServiceInstalled is a Sysmon concept, not a Falcon event; ElfFileWritten is ELFFileWritten) — such queries could never return a row. No detection logic, fields, or IOCs changed.
v0.12026-07-05Initial HuntPack — Edgecution malicious Edge extension backdoor. 8 CQL queries (headless-edge load, native-messaging sandbox escape, install artifacts, AppKey registry, CloudFront C2, scheduled task, ClickFix precursor, hashes), Edge policy + ASR/WDAC hardening, host-clean playbook, containment runbook. Atomic IOCs sourced from Zscaler ThreatLabz.
18

References

TierSourceUsed forAccessed
1 VendorZscaler ThreatLabz — Payouts King ransomware IAB deploys new EdgecutionFull technical teardown, IOCs, hashes, command IDs, install paths2026-07-05
2 PressBleepingComputer — Malicious Edge extension abuses Native Messaging as bridge to malwareNative-messaging sandbox-escape corroboration2026-07-05
2 PressSC Media — New 'Edgecution' malware uses browser extension to deploy ransomwareIAB → ransomware linkage, Teams delivery2026-07-05
3 AnalyticHivePro — Edgecution threat advisoryIndependent chain corroboration2026-07-05