Golden Chickens / Venom Spider (TAG-195) — TinyEgg, ChonkyChicken & ChromEggscalator

ClickFix-delivered OCX implants executed via regsvr32, WinComCtl Run-key persistence, WebSocket C2, Chrome App-Bound-Encryption bypass and live CDP browser-session hijack.
Threat
TAG-195 (Golden Chickens / Venom Spider)
Severity
ACTIVE MaaS
Type
Malware-as-a-Service · Loader / Stealer / RAT
Initial Access
ClickFix clipboard execution (TAG-127)
Version
v0.1 · 2026-07-27
Author
HuntPack
Confidence
High (named vendor report + 5 corroborating)
01

Executive Summary

TAG-195 (publicly Golden Chickens / Venom Spider, historically the More_eggs developer) is a financially motivated malware-as-a-service provider whose tooling has been supplied to FIN6, Cobalt Group and Evilnum. On 2026-07-24 Recorded Future's Insikt Group disclosed four new families that replace the prior TerraStealerV2 / TerraLogger generation: TinyEgg (initial-access backdoor), ChonkyChicken (full post-exploitation implant), a modularized ChonkyChicken (controller plus at least fourteen on-demand plugin modules), and ChromEggscalator (a repackaged build of the public ChromElevator Chrome App-Bound-Encryption bypass utility).

The attacker objective is credential and session monetisation. ChonkyChicken does not merely steal saved passwords: it drives a live, authenticated browser through the Chrome DevTools Protocol, so an organisation that rotates passwords after an incident but never looks for an active CDP session remains compromised. Operator TAG-127 delivers the first stage through ClickFix fake-verification pages that talk the user into pasting a command into the Windows Run dialog.

The highest-value defensive angle is that all four families were built to one internal specification, and that specification is behaviourally loud. Every component is an OCX file executed by regsvr32.exe from a user-writable directory, every component gates on its own filename, and TinyEgg and ChonkyChicken both persist through the same Run key value — HKCU\Software\Microsoft\Windows\CurrentVersion\Run\WinComCtl. One behavioural detection on that pattern covers the entire current tool set, present and future, and does not decay when the operators rotate hashes and domains.

Defender priority: deploy Q1 (regsvr32 loading an OCX from a user-writable path) and Q2 (WinComCtl Run-key creation) first — they are high-confidence, low-FP, and durable against the modular redesign. Then run Q3/Q4 for CDP browser hijack, because credential rotation alone does not evict an attacker holding a live DevTools session.

02

Source Review & Web Hunter Notes

TierSourceKey FindingCarry Forward
T1 PRIMARYRecorded Future / Insikt Group — TAG-195 Upgrades MaaS Ecosystem with Modular ToolsOriginal research. Full technical analysis of all four families, command tables, shared architectural traits, mitigations, and a complete IOC appendix (30 SHA256, 6 domains, 4 public IPs, filenames, Run key, ports, log-file artifacts).Yes — sole source for every atomic hash
T2The Hacker News (2026-07-24)Independent write-up. Confirms family names, TAG-195/TAG-127 relationship, ClickFix + OCX delivery, WebSocket C2, the 14-module inventory and the undocumented wtrack module.Yes — narrative corroboration, no atomic IOCs
T2GBHackersReproduces the Insikt IOC appendix: all six domains plus 70.34.205.43 and 65.20.102.161. Confirms DllInstall export and modular reduction of static footprint.Yes — second source for domains + 2 IPs
T2CyberPressConfirms ClickFix delivery and the screenly[.]cam lure domain. Adds generic LOLBIN hunting advice.Partial — see caveat below
T2CybersecurityNewsConfirms regsvr32 execution, WinComCtl Run key, koki.ocx controller, chromelevator, port 3000 and the xlog.txt artifact.Yes — behavioural corroboration
T2SC Media (CyberRisk Alliance)Short brief. Confirms the four-family disclosure and MaaS framing. No technical detail beyond the primary.Partial — headline confirmation only

Analyst decisions and corrections

  • Correction to the tasking brief — the delivery LOLBIN is regsvr32.exe, not curl/certutil/mshta. The primary report is explicit and consistent across all four families: payloads are OCX files executed via regsvr32.exe. The curl / certutil / mshta trio appears only in CyberPress's own generic "monitor LOLBIN abuse (e.g. ...)" advice, not as an observed TAG-195 artifact. Those binaries are still covered in Q5 as a broad ClickFix net, but they are labelled as generic technique coverage rather than campaign-specific indicators.
  • Hash severity capped at detect / high. All 30 SHA256 values originate from the single Insikt appendix; no second independent source publishes them. House rule is that prevent / critical requires two independent sources, so the hashes ship as high-severity detects rather than blocks. The domains, which two sources publish, do ship at prevent.
  • 70.34.205.43 deliberately downgraded. Insikt describes it as a shared hosting IP carrying multiple lure domains. Blocking a shared VPS address risks collateral denial, so it ships as detect/high with a note rather than as a block.
  • No prompt-injection content found. All six fetched pages were swept for embedded instructions, authority claims and "the real IOCs are here" redirects. The only regex hit was SC Media's copyright boilerplate ("without prior authorization"), which is benign. No source was disqualified.
  • Modular ChonkyChicken C2 is a test artifact. The observed endpoint ws://localhost:3000/ws/agent is a development configuration, so the path /ws/agent and the port 3000 are the durable signals — not the loopback address.

Perishability: domains and IPs are volatile (weeks). Hashes are stable but trivially recompiled given the active development cadence. The behavioural signals (regsvr32+OCX, WinComCtl, CDP flags) are the long-lived half of this pack.

03

Hunt Brief & Attack Chain

Attack chain

#StepTelemetryHunt Angle
1Victim lands on a ClickFix fake security-verification page (CAPTCHA mimic) on an attacker lure domain.Proxy / DNS logs, DnsRequestQ9 — known lure domains; web-gateway newly-registered-domain policy
2Page copies a command to the clipboard and instructs the user to paste it into the Windows Run dialog.ProcessRollup2 with ParentBaseFileName=explorer.exe; RunMRU registryQ5 — Run-dialog LOLBIN chain; Native hunt N1 (RunMRU)
3Command downloads an OCX payload from staging infrastructure and runs it with regsvr32.exe. TinyEgg installed.ProcessRollup2, NetworkConnectIP4Q1 — regsvr32 + .ocx from user-writable path
4TinyEgg gates on its own filename appearing in both the command line and the loaded module path; terminates in sandboxes.Absence-of-detonation (analysis-side)Not endpoint-detectable — see coverage gap G1
5TinyEgg registers over WebSocket (agent_register, agentType: "tiny") and opens an interactive shell.NetworkConnectIP4 port 3000, path /ws/agentQ8 — non-standard-port WebSocket egress
6Persistence: OCX staged under %LOCALAPPDATA%\Packages\, Run key WinComCtl created pointing at it.AsepValueUpdate / RegGenericValueUpdateQ2 — WinComCtl / OCX-in-Run-key
7Operator tasks TinyEgg to fetch ChonkyChicken (or the modular controller koki.ocx).PeFileWritten, NewExecutableWrittenQ6 — named OCX filenames written to disk
8ChonkyChicken stages ChromEggscalator to %TEMP%\mscom.ocx and runs it to bypass Chrome App-Bound Encryption.PeFileWritten, ProcessRollup2Q6 + Q1; artifact C:\ProgramData\xlog.txt
9cdp_start launches Chrome/Edge off-screen with remote debugging; operator drives the live authenticated session.ProcessRollup2 CommandLine; loopback NetworkConnectIP4 :9222Q3 / Q4 / Q12
10Network recon (net_arp_scan, net_port_scan, net_share_enum) then credential/token-backed lateral movement and remote scheduled tasks.NetworkConnectIP4 fan-out, UserLogonQ11 — recon fan-out from regsvr32/rundll32
11Sustained surveillance: keylogging with window titles, clipboard capture, audio capture, live screen frames.Limited native telemetryCoverage gap G2 — module load is in-memory

Hunt hypotheses (ordered by fidelity)

IDHypothesisMITREFalcon eventsExpected FP sourcesConf
H1An adversary is executing OCX payloads through regsvr32.exe from a user-writable directory, the TAG-195 execution standard shared by all four families.T1218.010ProcessRollup2In-house installers registering OCX controls from %TEMP% during setupHIGH
H2Run-key persistence is being created under the value name WinComCtl, or pointing at an .ocx in a user-writable path.T1547.001AsepValueUpdate, RegGenericValueUpdateEssentially none for the named value; legacy OCX-based LOB apps for the generic formHIGH
H3A Chromium browser has been launched with remote debugging enabled and positioned off-screen, indicating covert CDP session hijack rather than developer use.T1185, T1528ProcessRollup2Almost none — the off-screen flag is the discriminatorHIGH
H4Files matching the TAG-195 OCX filename set are being written to disk.T1105PeFileWritten, NewExecutableWrittenmscomctl.ocx is a real legacy Microsoft control — path mattersHIGH
H5Hosts are resolving or connecting to published TAG-195 lure, staging and C2 infrastructure.T1071.001DnsRequest, NetworkConnectIP4Sinkholes, security-vendor scanners, threat-intel appliancesHIGH
H6A user was induced to paste and run a command from the Windows Run dialog (ClickFix), producing an explorer.exe parent for a scripting or download LOLBIN.T1204.004ProcessRollup2Power users and IT staff legitimately use Win+RMEDIUM
H7An implant is speaking WebSocket C2 outbound on a non-standard HTTP port (3000 observed across all three C2-capable families).T1071.001, T1571NetworkConnectIP4Node.js dev servers, Grafana, internal microservicesMEDIUM
H8A COM-registration host process is fanning out to many internal hosts/ports, consistent with net_enumerate reconnaissance.T1046, T1018NetworkConnectIP4Vulnerability scanners, asset-discovery agents, backup softwareMEDIUM
04

Consolidated IOC Table

Every atomic value below is transcribed from the Insikt Group appendix and is traceable to a saved source snapshot. Domains and IPs are shown defanged.

TypeValueConfActionContextExpiry
domainaurekh[.]comHIGHpreventClickFix lure domain2027-01-27
domainahdaratlegalservices[.]comHIGHpreventClickFix lure domain2027-01-27
domainscreenly[.]camHIGHpreventClickFix lure page shown in Insikt Figure 3; corroborated by three sources2027-01-27
domainpaysolutions[.]inkHIGHpreventClickFix lure domain2027-01-27
domainxtrafftrck[.]netHIGHpreventOCX payload staging and WebSocket C22027-01-27
domainthessa[.]trackgrid[.]netHIGHpreventOCX payload staging and WebSocket C22027-01-27
ipv470[.]34[.]205[.]43HIGHdetectShared hosting IP for multiple lure domains — do not block outright2027-01-27
ipv465[.]20[.]102[.]161HIGHdetectOCX staging and WebSocket C22027-01-27
ipv465[.]20[.]105[.]177MEDIUMdetectOCX staging and WebSocket C2 (single source)2027-01-27
ipv4108[.]61[.]209[.]100MEDIUMdetectOCX staging and WebSocket C2 (single source)2027-01-27
sha256 x30see §10 quick-copy CSVHIGHdetect4 ChromEggscalator · 10 TinyEgg · 14 ChonkyChicken · 2 Modular ChonkyChicken2027-01-27
filenameupdater.ocxHIGHhuntTinyEgg filename-gating token2026-10-27
filenamemscomctl.ocxMEDIUMhuntChonkyChicken masquerade — collides with the genuine legacy Microsoft control, so path is the discriminator2026-10-27
filenamemscom.ocxHIGHhuntChromEggscalator staged by ChonkyChicken into %TEMP%2026-10-27
filenamechromelevator.ocxHIGHhuntChromEggscalator gating token2026-10-27
filenamekoki.ocx / agent.ocxHIGHhuntModular ChonkyChicken controller2026-10-27
filenamewpad_capture.ocxMEDIUMhuntWPAD hash-capture helper — sample never recovered2026-10-27
registryHKCU\Software\Microsoft\Windows\CurrentVersion\Run\WinComCtlHIGHdetectIdentical persistence across TinyEgg and ChonkyChicken2027-01-27
path%LOCALAPPDATA%\Packages\HIGHhuntConsistent OCX staging location2026-10-27
artifact%TEMP%\lg.txtHIGHhuntChonkyChicken gating-failure log — present whether or not execution succeeded2026-10-27
artifactC:\ProgramData\xlog.txtHIGHhuntChromEggscalator operational log2026-10-27
port3000HIGHhuntWebSocket listener across all three C2-capable families2026-10-27
uri-path/ws/agentHIGHhuntCommon agent C2 endpoint path2026-10-27
port9222MEDIUMhuntChrome DevTools endpoint used for session hijack (default CDP port)2026-10-27
cmdline--remote-debugging-port · --window-position=-32000,-32000HIGHdetectOff-screen remotely-controllable browser launch2027-01-27
05

Affected Surface & Telemetry Matrix

SurfaceRequired telemetryPriorityGap risk
Windows workstations (all four families are Windows-only OCX/DLL)Falcon ProcessRollup2 / SyntheticProcessRollup2CRITICALLow — default sensor coverage
Registry autostart (HKCU Run)AsepValueUpdate, RegGenericValueUpdateCRITICALLow
Chromium browsers (Chrome, Edge) — stored credentials and live sessionsProcessRollup2 CommandLine; loopback NetworkConnectIP4HIGHMedium — loopback connections are not always retained
Outbound web egress (payload staging + WebSocket C2)DnsRequest, NetworkConnectIP4, proxy logsHIGHMedium — direct-to-IP egress bypasses DNS-only visibility
File writes of staged OCX payloadsPeFileWritten, NewExecutableWrittenHIGHMedium — an OCX is a PE, but non-PE artifacts (lg.txt, xlog.txt) are not covered
Internal east-west (ARP/TCP/SMB recon, lateral movement)NetworkConnectIP4, UserLogon, remote scheduled tasksMEDIUMHigh — ARP scanning is link-layer and largely invisible to EDR
In-memory plugin modules (modular ChonkyChicken)None reliable — LoadLibraryA on a randomly-named temp fileMEDIUMHigh — documented gap G2
Windows Run dialog usage (ClickFix)ProcessRollup2 parentage; RunMRU registry hive (forensic)HIGHMedium — RunMRU requires host triage, not streamed
06

ATT&CK Mapping

TacticTechniqueNameObserved behaviourQuery / Control
Initial AccessT1189Drive-by CompromiseFake security-verification (ClickFix) pages on attacker lure domainsQ9 · web gateway
ExecutionT1204.004User Execution: Malicious Copy and PasteVictim pastes an attacker command into the Windows Run dialogQ5 · N1 · M-Immediate-1
ExecutionT1059.003Command and Scripting Interpreter: Windows Command ShellPasted command spawns cmd/PowerShell to fetch the OCXQ5
Defense EvasionT1218.010System Binary Proxy Execution: Regsvr32All four families packaged as OCX and run by regsvr32.exeQ1 · IOA-1 · WDAC/AppLocker
Defense EvasionT1027Obfuscated Files or InformationTinyEgg XOR (static 32-byte key); ChonkyChicken AES string obfuscationNo direct query — see G1
Defense EvasionT1497Virtualization / Sandbox EvasionFilename gating: implant exits unless its name is in both the command line and module pathGap G1 (analysis-side)
PersistenceT1547.001Registry Run Keys / Startup FolderHKCU\...\Run\WinComCtl pointing at a staged OCXQ2 · IOA-2
Command and ControlT1071.001Application Layer Protocol: Web ProtocolsJSON-over-WebSocket tasking; /ws/agent endpoint pathQ8 · Q10 · N3
Command and ControlT1571Non-Standard PortWebSocket listener on port 3000 across all three C2-capable familiesQ8 · M-Near-3
Command and ControlT1090Proxyproxy_request module makes WinHTTP requests via the victim host; WPAD helperN3 · Q6
Credential AccessT1555.003Credentials from Web BrowsersChromEggscalator bypasses Chrome App-Bound Encryption to extract stored credentialsQ6 · Q7 · M-Near-2
Credential AccessT1528Steal Application Access TokenLive authenticated browser session driven over CDPQ3 · Q4 · Q12
CollectionT1185Browser Session Hijackingcdp_start / cdp_send control an off-screen authenticated browserQ4 · IOA-3
CollectionT1056.001Input Capture: Keyloggingkeylog module records keystrokes plus active window titlesGap G2
CollectionT1115Clipboard Dataclipboard module exfiltrates ASCII clipboard textGap G2
CollectionT1113Screen Capturescreen module streams raw binary frames over the WebSocketGap G2
CollectionT1123Audio Captureaudio module returns Base64 WAV recordingsGap G2
DiscoveryT1046Network Service Discoverynet_port_scan fingerprints SMB, RDP, WinRM, SQL, HTTP/S, SSHQ11
DiscoveryT1018Remote System Discoverynet_arp_scan / net_enumerate multi-phase host discoveryQ11 · partial
DiscoveryT1135Network Share Discoverynet_share_enum via NetShareEnumN4
DiscoveryT1087.002Account Discovery: Domain Accountdomain module: NetUserEnum, NetGroupEnum, DsEnumerateDomainTrustWN4
DiscoveryT1049System Network Connections Discoveryremote_logon passively enumerates sessions and generates no auth eventsGap G3
Lateral MovementT1021Remote Servicescred_exec, token_run, remote scheduled task creationN4 · M-Near-4
IngressT1105Ingress Tool TransferOn-demand Base64 module delivery; ChromEggscalator stagingQ6
07

Native Audit-Log Hunts (non-CQL)

These close gaps the Falcon event stream does not cover — chiefly the non-PE forensic artifacts and the ClickFix paste evidence.

N1 · RunMRU — direct evidence a user pasted a ClickFix command

The Run dialog records everything typed or pasted into it. This is the single best confirmation that a ClickFix lure worked on a specific user, and it survives the process exiting.

reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU"

# Sweep a collected hive set for the tell-tale strings (PowerShell, read-only):
Get-ChildItem 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU' |
  Select-Object -ExpandProperty Property |
  ForEach-Object { (Get-ItemProperty 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU').$_ } |
  Where-Object { $_ -match 'regsvr32|\.ocx|curl |certutil|mshta|powershell' }

N2 · Forensic log artifacts left by the implants themselves

Both files are written even when execution-gating fails, so they prove an attempt regardless of outcome. Neither is a PE, so Falcon's PE-write events will not surface them.

# ChonkyChicken gating-failure log
Test-Path (Join-Path $env:TEMP 'lg.txt')

# ChromEggscalator operational log
Test-Path 'C:\ProgramData\xlog.txt'

# Staged OCX payloads under the consistent staging root
Get-ChildItem "$env:LOCALAPPDATA\Packages" -Recurse -Filter *.ocx -ErrorAction SilentlyContinue |
  Select-Object FullName, Length, CreationTime

# ChromEggscalator credential-extraction output directory
Get-ChildItem (Join-Path $env:TEMP 'output') -ErrorAction SilentlyContinue

N3 · Proxy / network-inspection hunts

  • Search proxy logs for HTTP Upgrade: websocket requests whose URI path ends /ws/agent, on any port.
  • Search for outbound TCP/3000 to external addresses. Insikt observed this port across TinyEgg, ChonkyChicken and Modular ChonkyChicken.
  • Search for direct-to-IP HTTP/HTTPS (no Host header resolution) — the staging IPs were reachable without domain lookup.
  • Look for the proxy_request module's outbound requests: WinHTTP traffic presenting a bare Mozilla/5.0 User-Agent from a workstation process that is not a browser.
  • WebSocket payloads are XOR-masked per RFC 6455, so content signatures will not work without frame decoding. Detect on metadata: port, path, Upgrade header, and long-lived connections.

N4 · Windows Security / Directory audit

  • Event ID 4698 (scheduled task created) on remote hosts, correlated to a workstation source — ChonkyChicken retains remote scheduled-task strings for lateral movement.
  • Event ID 5140 / 5145 (network share accessed) bursts from a single workstation, matching net_share_enum.
  • Event ID 4624 Type 3 / Type 9 from workstation-to-workstation, matching cred_exec and token_run.
  • Note that remote_logon deliberately enumerates sessions without submitting credentials, so it produces no 4625/4624 at all. Do not treat a quiet auth log as evidence of absence.
08

CrowdStrike LogScale CQL Hunt Queries

Pick your tenant's cloud first — every "Open in Falcon" button below uses this selection.

Time windows are set in the Falcon console, not in-query. Start with 7 days for the behavioural queries (Q1–Q6, Q11–Q12) and 30 days for the atomic-indicator queries (Q7, Q9, Q10).

Q1 · regsvr32 loading an OCX from a user-writable directory
CONF HIGHFP LOWCOST LOW

Looks for: the single execution behaviour shared by TinyEgg, ChonkyChicken, Modular ChonkyChicken and ChromEggscalator. Deploy this first — it is durable against hash and infrastructure rotation.

// HUNT: regsvr32 loading an OCX from a user-writable directory (TAG-195 execution standard)
// MITRE: T1218.010 | CONF: high  FP: low  COST: low
// REQUIRES: ProcessRollup2 (Windows process telemetry)
// FALSE POSITIVES: in-house or vendor installers registering an OCX control from %TEMP% during setup
// TUNING: exclude your software-deployment agents by ParentBaseFileName (ccmexec.exe, msiexec.exe, setup.exe)
#event_simpleName=/^(ProcessRollup2|SyntheticProcessRollup2)$/
| FileName=/^regsvr32\.exe$/i
| CommandLine=/\.ocx/i
| CommandLine=/\\(AppData\\Local|AppData\\Roaming|Temp|Downloads|ProgramData|Packages)\\/i
| ParentBaseFileName!=/^(ccmexec\.exe|msiexec\.exe|setup\.exe)$/i
| table([@timestamp, ComputerName, UserName, ParentBaseFileName, FileName, CommandLine, SHA256HashData])
Q2 · WinComCtl Run-key persistence / OCX autostart
CONF HIGHFP LOWCOST LOW

Looks for: the identical persistence model used by both TinyEgg and ChonkyChicken. The named value WinComCtl is effectively zero-FP; the generic OCX-in-Run-key arm is the future-proof half.

// HUNT: HKCU Run key named WinComCtl, or any Run value pointing at an OCX
// MITRE: T1547.001 | CONF: high  FP: low  COST: low
// REQUIRES: AsepValueUpdate / RegGenericValueUpdate registry telemetry
// FALSE POSITIVES: legacy line-of-business apps that autostart a genuine OCX control
// TUNING: the WinComCtl arm needs no tuning; for the generic OCX arm, allowlist known-good RegStringValue paths under Program Files
#event_simpleName=/^(AsepValueUpdate|RegGenericValueUpdate)$/
| RegObjectName=/\\Software\\Microsoft\\Windows\\CurrentVersion\\Run$/i
| RegValueName=/^WinComCtl$/i or RegStringValue=/\.ocx/i
| RegStringValue!=/^"?C:\\Program Files/i
| table([@timestamp, ComputerName, UserName, RegObjectName, RegValueName, RegStringValue])
Q3 · Chromium browser launched with remote debugging enabled
CONF HIGHFP MEDCOST LOW

Looks for: any Chrome/Edge/Brave process started with a CDP listener. FP: genuine developer and QA automation (Selenium, Playwright, Puppeteer) does this constantly — exclude by user, host group or the parent automation binary rather than by dropping the query.

// HUNT: Chromium browser launched with --remote-debugging-port (CDP listener)
// MITRE: T1185, T1528 | CONF: high  FP: medium  COST: low
// REQUIRES: ProcessRollup2 with CommandLine capture
// FALSE POSITIVES: Selenium / Playwright / Puppeteer test rigs and developer workstations
// TUNING: exclude developer and QA host groups, and exclude ParentBaseFileName of your test runners (node.exe, chromedriver.exe, pwsh.exe on build agents)
#event_simpleName=/^(ProcessRollup2|SyntheticProcessRollup2)$/
| FileName=/^(chrome\.exe|msedge\.exe|brave\.exe)$/i
| CommandLine=/--remote-debugging-(port|pipe)/i
| ParentBaseFileName!=/^(node\.exe|chromedriver\.exe|msedgedriver\.exe)$/i
| table([@timestamp, ComputerName, UserName, ParentBaseFileName, FileName, CommandLine])
Q4 · Off-screen browser + remote debugging (covert CDP session hijack)
CONF HIGHFP LOWCOST LOW

Looks for: ChonkyChicken's cdp_start signature — a debuggable browser deliberately positioned off the visible desktop with large negative window coordinates. Legitimate automation has no reason to hide the window this way, which is what makes this the high-fidelity twin of Q3.

// HUNT: browser launched off-screen AND with remote debugging (ChonkyChicken cdp_start)
// MITRE: T1185, T1528 | CONF: high  FP: low  COST: low
// REQUIRES: ProcessRollup2 with CommandLine capture
// FALSE POSITIVES: none observed -- the off-screen flag is the discriminator
#event_simpleName=/^(ProcessRollup2|SyntheticProcessRollup2)$/
| FileName=/^(chrome\.exe|msedge\.exe|brave\.exe)$/i
| CommandLine=/--window-position=-\d{4,6}/i
| CommandLine=/--(remote-debugging-port|remote-debugging-pipe|user-data-dir)/i
| table([@timestamp, ComputerName, UserName, ParentBaseFileName, FileName, CommandLine])
Q5 · ClickFix — Run-dialog paste spawning a download or script LOLBIN
CONF MEDFP MEDCOST MED

Looks for: the ClickFix hallmark — explorer.exe as the parent of a scripting or download utility, which is what the Windows Run dialog produces. FP: IT staff and power users legitimately use Win+R; the command-line content filter is what separates signal from habit. Note this is generic ClickFix technique coverage, not a TAG-195-specific indicator.

// HUNT: ClickFix -- explorer.exe parenting a download/script LOLBIN with remote-content arguments
// MITRE: T1204.004, T1059.003 | CONF: medium  FP: medium  COST: medium
// REQUIRES: ProcessRollup2 with CommandLine and ParentBaseFileName
// FALSE POSITIVES: helpdesk and power users running admin one-liners from Win+R
// TUNING: exclude your IT-admin user group and jump hosts; then baseline the remaining CommandLine values weekly and allowlist recurring internal URLs
#event_simpleName=/^(ProcessRollup2|SyntheticProcessRollup2)$/
| ParentBaseFileName=/^explorer\.exe$/i
| FileName=/^(cmd\.exe|powershell\.exe|pwsh\.exe|mshta\.exe|wscript\.exe|cscript\.exe|curl\.exe|certutil\.exe|regsvr32\.exe|bitsadmin\.exe)$/i
| CommandLine=/(http|\.ocx|iwr |invoke-webrequest|-urlcache|-encodedcommand|-w hidden|downloadstring)/i
| table([@timestamp, ComputerName, UserName, ParentBaseFileName, FileName, CommandLine])
Q6 · TAG-195 OCX payload filenames written to disk
CONF HIGHFP LOWCOST LOW

Looks for: the named OCX payloads being staged. mscomctl.ocx is also a genuine legacy Microsoft control, so the query anchors on user-writable paths rather than the name alone.

// HUNT: TinyEgg / ChonkyChicken / ChromEggscalator / modular-controller OCX staged to disk
// MITRE: T1105 | CONF: high  FP: low  COST: low
// REQUIRES: PeFileWritten / NewExecutableWritten file telemetry
// FALSE POSITIVES: genuine mscomctl.ocx shipped by legacy VB6-era installers -- excluded by the path filter below
// TUNING: if a legacy LOB installer trips this, allowlist its exact TargetFileName rather than removing the filename arm
#event_simpleName=/^(PeFileWritten|NewExecutableWritten)$/
| TargetFileName=/\\(updater|mscomctl|mscom|chromelevator|koki|agent|wpad_capture)\.ocx$/i
| TargetFileName=/\\(AppData|Temp|Downloads|ProgramData|Packages)\\/i
| table([@timestamp, ComputerName, UserName, ContextBaseFileName, TargetFileName, SHA256HashData])
Q7 · Known TAG-195 SHA256 payload hashes
CONF HIGHFP LOWCOST LOW

Looks for: all 30 published sample hashes across the four families. Any hit is a confirmed incident, not a hunt lead. Perishable — TAG-195 is in active development and will recompile.

// HUNT: known TAG-195 sample hashes (Insikt Group appendix, 2026-07-24)
// MITRE: T1218.010, T1105 | CONF: high  FP: low  COST: low
// REQUIRES: process or PE-write telemetry carrying SHA256HashData
// FALSE POSITIVES: none -- any match is confirmed TAG-195 tooling
#event_simpleName=/^(ProcessRollup2|SyntheticProcessRollup2|PeFileWritten|NewExecutableWritten)$/
| in(SHA256HashData, values=[
    "b7b322f4638ead5c39031ffc7ca8c791c8d47211b09449f7ceb49f0c32a19b45",
    "33a12c2328db22429c4a515400a57ffeaf7aec48a2a3c299ab6f1ce2d2b0e87d",
    "7ee371ff1a13a3bbd26c925a9beedb1aa0d0c03fe6f63d3803a3a55aaccd0a5b",
    "6922b319dc96d020738bcf466c4d6d9233e4767b68592e1fd9258a232f166ce1",
    "086273cd91f3d6556ed2af915df310e4b184b3db84c3903aa09830d49d1fbb62",
    "652346c05123b4c9556c27f5c5efc4bcd941dd66957e3797c6751246a2bff9c6",
    "f3f4de7eb30c01044ad3c7f2c22376d0ab6f6dc60ef6aee3cde75fd33fbddacc",
    "6c23b7723a9f69ea48f02c8fe13fd60ecbfc2fb28e32e481c46ec968a66c66cd",
    "c455c02ca6b3844027e05d941830de97753c3966dd57c5fa9f1938d8cd1cca3b",
    "d2e1ab10d5a0c16a724aeda8acb46b38f551ade58137969c3bc3c9cdc0a12425",
    "3250adbca0a0bfeab8bd88ee93b603be31fc86b341fd77a152b4843416560d53",
    "5cae5202ddcc29f19f954d81ba138f11b8a4080d05fef63c05a00b9242c06967",
    "ccb6be9211b3946d290e8b23497b8f0e6ac045d1dcde4aaae424680e9029e4eb",
    "200fbc76bd9fab3b4adcecfe44233cf47146f5709a9735a0232cb4aa7284eadb",
    "5d585f2b24503a96011bbe928f42b1b663946e822b309f8496573c66b5ee834c",
    "9a2d714ddd5c48722c35df8a70e97f12d46bcde05dc79b7242a7e692bd346826",
    "d5dea9a51b984be9d7fa76e3e8ff89cfb97c335927331e8e348b9ee269070c1b",
    "c4e2af286ee2ed12375bb66a5bff1a9d3bb5a6579842bc3a28ac00dfae195adc",
    "a3a0aced0f3c13b0b9890ec74802a1cb4936bccfaf5e8a6a52f555c82e09d92f",
    "f3d2ad7440a6f985846710d2dcf0dd2db268dc690837bdf19e4e4e6684483527",
    "6c7619c34497f430c4f7618cfefe07d1defacfae48f6730c20f52e7a7344faa9",
    "41aa04782e436345ef45dc159321d5c0e0e5cba300e55a4d1d3194e5c7c5fd97",
    "337e92c233edc38842c6122fa38e0e84a478f5aa5af2a95ca6be3ca056d925b8",
    "c4e55e9e6837de01f0dadc7db299abd48630bf115a442f09ea0c6a593c559e6f",
    "6adf68448b8541e3cbe4a471845cb6c2ac07613f08698567e5ed76dc2a921834",
    "be7b80f42b0d859b7afaeefca04e46dc10fb5c0a532692bbbfef2924254d1175",
    "45c8cbaeb5c7708e7b8030e701747c65203958e82eddc41f39e0ca93bd36c114",
    "e481d16e51f90c4cc0e7096284b53eef06f7ee8b37a03d92734521d8bca24409",
    "e3153ced59bb0376186b0eee0ec68f0b5aa9ae5820ef8508ae4e67625e1a3581",
    "16735cb80d796865b2430aa11d21a539fcb00b027932f2c63e4b5c098d26585b"])
| table([@timestamp, ComputerName, UserName, FileName, CommandLine, SHA256HashData])
Q8 · Outbound WebSocket C2 on TCP/3000
CONF MEDFP MEDCOST LOW

Looks for: the WebSocket listener port Insikt observed across all three C2-capable families. FP: port 3000 is the Node.js/Grafana default, so internal destinations are noise — the query keeps only externally-routed connections and prioritises COM-host initiators.

// HUNT: workstation egress to TCP/3000 (TAG-195 WebSocket C2 listener port)
// MITRE: T1071.001, T1571 | CONF: medium  FP: medium  COST: low
// REQUIRES: NetworkConnectIP4 telemetry
// FALSE POSITIVES: Node.js dev servers, Grafana, internal microservices on the default 3000 port
// TUNING: this query already drops RFC1918 destinations; additionally exclude your developer host group and any SaaS vendor ranges you legitimately reach on 3000
#event_simpleName=/^NetworkConnectIP4$/
| RemotePort=3000
| RemoteAddressIP4!=/^(10\.|127\.|169\.254\.|192\.168\.|172\.(1[6-9]|2\d|3[01])\.)/
| table([@timestamp, ComputerName, UserName, ContextBaseFileName, RemoteAddressIP4, RemotePort])
Q9 · DNS resolution of TAG-195 lure, staging and C2 domains
CONF HIGHFP LOWCOST LOW

Looks for: the four ClickFix lure domains plus the two payload-staging / C2 domains. A hit on a lure domain means a user reached the social-engineering page; a hit on a staging domain means the payload chain progressed.

// HUNT: TAG-195 / TAG-127 lure and C2 domain resolution
// MITRE: T1189, T1071.001 | CONF: high  FP: low  COST: low
// REQUIRES: DnsRequest telemetry
// FALSE POSITIVES: internal threat-intel scanners and sandbox detonation hosts resolving IOCs on purpose
#event_simpleName=/^(DnsRequest|SuspiciousDnsRequest)$/
| DomainName=/(^|\.)(aurekh\.com|ahdaratlegalservices\.com|screenly\.cam|paysolutions\.ink|xtrafftrck\.net|trackgrid\.net)$/i
| table([@timestamp, ComputerName, UserName, ContextBaseFileName, DomainName])
Q10 · Connections to TAG-195 staging / C2 IP addresses
CONF HIGHFP LOWCOST LOW

Looks for: direct-to-IP contact with published infrastructure, which catches the chain even when DNS visibility is missing. Treat 70.34.205.43 hits with care — Insikt describes it as shared hosting, so validate the destination domain before acting.

// HUNT: outbound connections to published TAG-195 staging / C2 addresses
// MITRE: T1071.001 | CONF: high  FP: low  COST: low
// REQUIRES: NetworkConnectIP4 telemetry
// FALSE POSITIVES: 70.34.205.43 is SHARED hosting -- a hit is not proof of TAG-195 contact on its own
#event_simpleName=/^NetworkConnectIP4$/
| in(RemoteAddressIP4, values=["70.34.205.43", "65.20.102.161", "65.20.105.177", "108.61.209.100"])
| table([@timestamp, ComputerName, UserName, ContextBaseFileName, RemoteAddressIP4, RemotePort])
Q11 · COM-host process fanning out across the internal network (net_enumerate)
CONF MEDFP MEDCOST MED

Looks for: ChonkyChicken's net_port_scan / net_enumerate reconnaissance, seen as a COM registration host touching an implausible number of internal hosts. FP: vulnerability scanners, asset-discovery and backup agents produce the same shape — but they should not be running inside regsvr32.exe.

// HUNT: regsvr32/rundll32 making wide internal connection fan-out (network reconnaissance)
// MITRE: T1046, T1018 | CONF: medium  FP: medium  COST: medium
// REQUIRES: NetworkConnectIP4 telemetry with ContextBaseFileName populated
// FALSE POSITIVES: scanners and asset-discovery agents that inject into or masquerade as COM hosts
// TUNING: exclude the aid values of your authorised vulnerability scanners and asset-discovery servers, then raise the DistinctHosts floor until only outliers remain
#event_simpleName=/^NetworkConnectIP4$/
| ContextBaseFileName=/^(regsvr32\.exe|rundll32\.exe)$/i
| groupBy([aid, ComputerName, ContextBaseFileName], function=[count(field=RemoteAddressIP4, distinct=true, as=DistinctHosts), count(field=RemotePort, distinct=true, as=DistinctPorts)])
| DistinctHosts > 25
| sort(DistinctHosts, order=desc, limit=100)
Q12 · Non-browser process connecting to the local Chrome DevTools endpoint
CONF MEDFP MEDCOST LOW

Looks for: the other half of the CDP hijack — something attaching to the browser's debug port rather than the browser opening it. FP: developer tooling attaches to 9222 legitimately; the value here is the initiating process name, so triage on ContextBaseFileName first. Loopback connection retention is tenant-dependent, so confirm this event class is present before relying on it.

// HUNT: local CDP endpoint (9222) contacted by a process that is not a browser
// MITRE: T1185, T1528 | CONF: medium  FP: medium  COST: low
// REQUIRES: NetworkConnectIP4 including loopback -- verify loopback retention in tenant
// FALSE POSITIVES: chromedriver, node, VS Code and other developer tooling attaching to a debug port
// TUNING: exclude ContextBaseFileName of your sanctioned dev tooling (node.exe, chromedriver.exe, code.exe) and your developer host group
#event_simpleName=/^NetworkConnectIP4$/
| RemotePort=9222
| ContextBaseFileName!=/^(chrome\.exe|msedge\.exe|brave\.exe|node\.exe|chromedriver\.exe|msedgedriver\.exe|code\.exe)$/i
| table([@timestamp, ComputerName, UserName, ContextBaseFileName, RemoteAddressIP4, RemotePort])
09

CrowdStrike Custom IOA Recommendations

Three queries are strong enough to promote from Investigate-only to a blocking Custom IOA. The rest stay as scheduled hunt searches.

IOA-1 · Block regsvr32 registering an OCX from a user-writable path

FieldValue
Rule groupWindows — Process Creation
ActionStart in Detect for 7–14 days, then promote to Prevent once the baseline is clean
SeverityHigh
Image filename pattern.*\\regsvr32\.exe
Command line pattern.*\\(AppData|Temp|Downloads|ProgramData|Packages)\\.*\.ocx.*
ExclusionsSoftware-deployment parents (ccmexec.exe, msiexec.exe) and any packaging server host group
CoversAll four families, both current and future builds — this is the durable control

IOA-2 · Alert on WinComCtl Run-key creation

FieldValue
Rule groupWindows — Registry Operation (ASEP)
ActionDetect (the value name is specific enough that Prevent is defensible after one clean week)
SeverityCritical
Registry key pattern.*\\CurrentVersion\\Run
Value name patternWinComCtl
ExclusionsNone expected. Investigate any hit as a live intrusion.
CoversTinyEgg and ChonkyChicken persistence identically

IOA-3 · Alert on off-screen debuggable browser launch

FieldValue
Rule groupWindows — Process Creation
ActionDetect
SeverityHigh
Image filename pattern.*\\(chrome|msedge|brave)\.exe
Command line pattern.*--window-position=-\d{4,6}.*--remote-debugging.*
ExclusionsDeveloper and QA host groups only if a hit is confirmed benign
CoversChonkyChicken cdp_start browser session hijack

Investigate-only (do not promote): Q5, Q8, Q11 and Q12 carry medium FP risk and are environment-sensitive. Run them as scheduled searches with the tuning applied, review for two weeks, and only then consider promotion. Q7/Q9/Q10 belong in Falcon IOC Management rather than a Custom IOA.

10

Machine-Readable IOC Appendix

Every atomic value below is traceable to a saved source snapshot. Behavioural signatures are deliberately kept separate from importable indicators.

Falcon IOC Management CSVbulk import
type,value,action,severity,expiration,description,tags
domain,aurekh.com,prevent,high,2027-01-27,TAG-195 ClickFix lure domain,campaign:TAG-195
domain,ahdaratlegalservices.com,prevent,high,2027-01-27,TAG-195 ClickFix lure domain,campaign:TAG-195
domain,screenly.cam,prevent,high,2027-01-27,TAG-195 ClickFix lure domain,campaign:TAG-195
domain,paysolutions.ink,prevent,high,2027-01-27,TAG-195 ClickFix lure domain,campaign:TAG-195
domain,xtrafftrck.net,prevent,high,2027-01-27,TAG-195 OCX staging and WebSocket C2,campaign:TAG-195
domain,thessa.trackgrid.net,prevent,high,2027-01-27,TAG-195 OCX staging and WebSocket C2,campaign:TAG-195
ipv4,70.34.205.43,detect,high,2027-01-27,SHARED hosting IP for lure domains - do not block,campaign:TAG-195
ipv4,65.20.102.161,detect,high,2027-01-27,TAG-195 OCX staging and WebSocket C2,campaign:TAG-195
ipv4,65.20.105.177,detect,high,2027-01-27,TAG-195 OCX staging and WebSocket C2,campaign:TAG-195
ipv4,108.61.209.100,detect,high,2027-01-27,TAG-195 OCX staging and WebSocket C2,campaign:TAG-195
sha256,b7b322f4638ead5c39031ffc7ca8c791c8d47211b09449f7ceb49f0c32a19b45,detect,high,2027-01-27,ChromEggscalator,campaign:TAG-195
sha256,33a12c2328db22429c4a515400a57ffeaf7aec48a2a3c299ab6f1ce2d2b0e87d,detect,high,2027-01-27,ChromEggscalator,campaign:TAG-195
sha256,7ee371ff1a13a3bbd26c925a9beedb1aa0d0c03fe6f63d3803a3a55aaccd0a5b,detect,high,2027-01-27,ChromEggscalator,campaign:TAG-195
sha256,6922b319dc96d020738bcf466c4d6d9233e4767b68592e1fd9258a232f166ce1,detect,high,2027-01-27,ChromEggscalator,campaign:TAG-195
sha256,086273cd91f3d6556ed2af915df310e4b184b3db84c3903aa09830d49d1fbb62,detect,high,2027-01-27,TinyEgg,campaign:TAG-195
sha256,652346c05123b4c9556c27f5c5efc4bcd941dd66957e3797c6751246a2bff9c6,detect,high,2027-01-27,TinyEgg,campaign:TAG-195
sha256,f3f4de7eb30c01044ad3c7f2c22376d0ab6f6dc60ef6aee3cde75fd33fbddacc,detect,high,2027-01-27,TinyEgg,campaign:TAG-195
sha256,6c23b7723a9f69ea48f02c8fe13fd60ecbfc2fb28e32e481c46ec968a66c66cd,detect,high,2027-01-27,TinyEgg,campaign:TAG-195
sha256,c455c02ca6b3844027e05d941830de97753c3966dd57c5fa9f1938d8cd1cca3b,detect,high,2027-01-27,TinyEgg,campaign:TAG-195
sha256,d2e1ab10d5a0c16a724aeda8acb46b38f551ade58137969c3bc3c9cdc0a12425,detect,high,2027-01-27,TinyEgg,campaign:TAG-195
sha256,3250adbca0a0bfeab8bd88ee93b603be31fc86b341fd77a152b4843416560d53,detect,high,2027-01-27,TinyEgg,campaign:TAG-195
sha256,5cae5202ddcc29f19f954d81ba138f11b8a4080d05fef63c05a00b9242c06967,detect,high,2027-01-27,TinyEgg,campaign:TAG-195
sha256,ccb6be9211b3946d290e8b23497b8f0e6ac045d1dcde4aaae424680e9029e4eb,detect,high,2027-01-27,TinyEgg,campaign:TAG-195
sha256,200fbc76bd9fab3b4adcecfe44233cf47146f5709a9735a0232cb4aa7284eadb,detect,high,2027-01-27,ChonkyChicken (Insikt Sigma reference sample),campaign:TAG-195
sha256,5d585f2b24503a96011bbe928f42b1b663946e822b309f8496573c66b5ee834c,detect,high,2027-01-27,ChonkyChicken,campaign:TAG-195
sha256,9a2d714ddd5c48722c35df8a70e97f12d46bcde05dc79b7242a7e692bd346826,detect,high,2027-01-27,ChonkyChicken,campaign:TAG-195
sha256,d5dea9a51b984be9d7fa76e3e8ff89cfb97c335927331e8e348b9ee269070c1b,detect,high,2027-01-27,ChonkyChicken,campaign:TAG-195
sha256,c4e2af286ee2ed12375bb66a5bff1a9d3bb5a6579842bc3a28ac00dfae195adc,detect,high,2027-01-27,ChonkyChicken,campaign:TAG-195
sha256,a3a0aced0f3c13b0b9890ec74802a1cb4936bccfaf5e8a6a52f555c82e09d92f,detect,high,2027-01-27,ChonkyChicken,campaign:TAG-195
sha256,f3d2ad7440a6f985846710d2dcf0dd2db268dc690837bdf19e4e4e6684483527,detect,high,2027-01-27,ChonkyChicken,campaign:TAG-195
sha256,6c7619c34497f430c4f7618cfefe07d1defacfae48f6730c20f52e7a7344faa9,detect,high,2027-01-27,ChonkyChicken,campaign:TAG-195
sha256,41aa04782e436345ef45dc159321d5c0e0e5cba300e55a4d1d3194e5c7c5fd97,detect,high,2027-01-27,ChonkyChicken,campaign:TAG-195
sha256,337e92c233edc38842c6122fa38e0e84a478f5aa5af2a95ca6be3ca056d925b8,detect,high,2027-01-27,ChonkyChicken,campaign:TAG-195
sha256,c4e55e9e6837de01f0dadc7db299abd48630bf115a442f09ea0c6a593c559e6f,detect,high,2027-01-27,ChonkyChicken,campaign:TAG-195
sha256,6adf68448b8541e3cbe4a471845cb6c2ac07613f08698567e5ed76dc2a921834,detect,high,2027-01-27,ChonkyChicken,campaign:TAG-195
sha256,be7b80f42b0d859b7afaeefca04e46dc10fb5c0a532692bbbfef2924254d1175,detect,high,2027-01-27,ChonkyChicken,campaign:TAG-195
sha256,45c8cbaeb5c7708e7b8030e701747c65203958e82eddc41f39e0ca93bd36c114,detect,high,2027-01-27,ChonkyChicken,campaign:TAG-195
sha256,e481d16e51f90c4cc0e7096284b53eef06f7ee8b37a03d92734521d8bca24409,detect,high,2027-01-27,ChonkyChicken,campaign:TAG-195
sha256,e3153ced59bb0376186b0eee0ec68f0b5aa9ae5820ef8508ae4e67625e1a3581,detect,high,2027-01-27,Modular ChonkyChicken controller,campaign:TAG-195
sha256,16735cb80d796865b2430aa11d21a539fcb00b027932f2c63e4b5c098d26585b,detect,high,2027-01-27,Modular ChonkyChicken controller,campaign:TAG-195
# Hashes ship as detect/high rather than prevent/critical: all 30 come from one
# vendor appendix, and house rule requires two independent sources for prevent.
# Domains carry two sources and therefore ship at prevent.
Behavioural Signaturesdurable, survives rotation
TAG-195 behavioural signatures (no atomic value required)

BEH-1  regsvr32.exe command line contains ".ocx" AND a user-writable path
       (%TEMP% | %APPDATA% | %LOCALAPPDATA% | %LOCALAPPDATA%\Packages\ | Downloads | %ProgramData%)
BEH-2  HKCU\Software\Microsoft\Windows\CurrentVersion\Run value named "WinComCtl"
BEH-3  HKCU ...\CurrentVersion\Run value data referencing any .ocx outside Program Files
BEH-4  chrome.exe|msedge.exe launched with --remote-debugging-port
       AND --window-position=-32000,-32000   (off-screen CDP session)
BEH-5  explorer.exe parenting cmd|powershell|mshta|curl|certutil|regsvr32
       with remote-content arguments   (ClickFix Run-dialog paste)
BEH-6  Outbound TCP/3000 to a non-RFC1918 address from a workstation
BEH-7  HTTP Upgrade: websocket with URI path ending /ws/agent  (any port)
BEH-8  Non-browser process connecting to 127.0.0.1:9222
BEH-9  File present: %TEMP%\lg.txt          (ChonkyChicken gating log)
BEH-10 File present: C:\ProgramData\xlog.txt  (ChromEggscalator log)
BEH-11 Directory present: %TEMP%\output\      (ChromEggscalator extraction output)
BEH-12 WinHTTP request with a bare "Mozilla/5.0" User-Agent from a non-browser process
BEH-13 regsvr32.exe or rundll32.exe opening connections to many distinct internal hosts
Named Malware & Toolingfilenames · paths · artifacts
Families      TinyEgg | ChonkyChicken | Modular ChonkyChicken | ChromEggscalator
Predecessors  More_eggs | RevC2 | TerraStealerV2 | TerraLogger | VenomLNK
Actors        TAG-195 (Golden Chickens / Venom Spider) = developer
              TAG-127 = operator/customer using ClickFix and VenomLNK
Customers     FIN6 | Cobalt Group | Evilnum   (per prior eSentire reporting)

OCX filenames        updater.ocx        TinyEgg gating token
                     mscomctl.ocx       ChonkyChicken masquerade (collides with a real MS control)
                     mscom.ocx          ChromEggscalator staged into %TEMP%
                     chromelevator.ocx  ChromEggscalator gating token
                     koki.ocx           Modular ChonkyChicken controller
                     agent.ocx          Modular ChonkyChicken controller (alt)
                     wpad_capture.ocx   WPAD hash-capture helper (never recovered)

Staging path         %LOCALAPPDATA%\Packages\
Run key              HKCU\Software\Microsoft\Windows\CurrentVersion\Run\WinComCtl
Persistence cmd      regsvr32 /s /i "<staged_path>"
Exports used         DllInstall (TinyEgg, ChonkyChicken, modular controller)
                     DllRegisterServer (ChromEggscalator, WPAD helper)
Debug strings        Koki=[YES/NO]  Blat=[YES/NO]   (gating result markers)
C2 protocol          JSON over WebSocket; register = request_register / agent_register
                     agentType "tiny" = TinyEgg
Modules (14)         procmgr screen files shell network domain clipboard keylog
                     wtrack audio idle proxy chrome persist
                     (wtrack purpose is undetermined -- capability under development)
Hardening / ASR Audit Checklistverify before you hunt
# 1. Is regsvr32 already blocked from user-writable paths? (WDAC/AppLocker)
Get-AppLockerPolicy -Effective -Xml | Select-String -Pattern 'regsvr32|\.ocx'

# 2. ASR rule: block Office/script-created executable content
#    (BlockExecutableContent) - report current state
Get-MpPreference | Select-Object -ExpandProperty AttackSurfaceReductionRules_Ids
Get-MpPreference | Select-Object -ExpandProperty AttackSurfaceReductionRules_Actions

# 3. Is the Run dialog restricted for standard users?
reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v NoRun

# 4. Is browser password saving disabled by policy?
reg query "HKLM\Software\Policies\Google\Chrome" /v PasswordManagerEnabled
reg query "HKLM\Software\Policies\Microsoft\Edge" /v PasswordManagerEnabled

# 5. Is remote debugging blocked by browser policy?
reg query "HKLM\Software\Policies\Google\Chrome" /v RemoteDebuggingAllowed
reg query "HKLM\Software\Policies\Microsoft\Edge" /v RemoteDebuggingAllowed

# 6. PowerShell language mode for standard users
$ExecutionContext.SessionState.LanguageMode

# 7. Is outbound TCP/3000 permitted from workstation VLANs?
#    (check at the egress firewall, not on the host)
11

Detection Validation Gates

GateCheckPass criterion
G-1 Telemetry readyConfirm ProcessRollup2, AsepValueUpdate, RegGenericValueUpdate, PeFileWritten, NetworkConnectIP4 and DnsRequest are all present for the target host group over the last 24h.All six event types return rows. If AsepValueUpdate is empty, Q2 is blind and must be treated as unimplemented.
G-2 Loopback retentionQ12 depends on loopback NetworkConnectIP4 events, which some tenants do not retain.Query RemoteAddressIP4=127.0.0.1 over 24h and confirm rows exist. If not, mark Q12 as a gap rather than as coverage.
G-3 Benign baselineRun Q1, Q3, Q5, Q8, Q11, Q12 over 30 days before alerting and record every distinct hit.Each recurring hit is either explained and excluded, or investigated. Zero unexplained residue before promotion.
G-4 Positive test — executionCopy a benign signed OCX (for example a genuine mscomctl.ocx) to %TEMP% on a lab host and register it with regsvr32 /s.Q1 returns the event. This is the Insikt-recommended purple-team step and involves no malicious code.
G-5 Positive test — persistenceOn the same lab host, create HKCU\...\Run\WinComCtl pointing at that benign OCX, then delete it.Q2 returns the event within the expected latency.
G-6 Positive test — CDPLaunch Edge on a lab host with --remote-debugging-port=9222 --window-position=-32000,-32000.Q3 and Q4 both return the event; Q4 returns strictly fewer rows than Q3 across the estate.
G-7 Positive test — egressFrom a lab host, open a TCP connection to an external listener on port 3000.Q8 returns the event and the RFC1918 exclusion did not suppress it.
G-8 PromotionIOA-1 and IOA-2 run in Detect mode for a full business cycle including patch week and month-end.Zero false positives across the window before switching IOA-1 to Prevent.
12

Hardening — Tiered

Immediate — deploy this week

M-Immediate-1 · Block regsvr32.exe from loading DLL/OCX out of user-writable directories. This one control breaks the execution path of all four families at once. Authority: MITRE M1038 (Execution Prevention) and M1042 (Disable or Remove Feature); CIS Microsoft Windows Benchmark application-control section; Microsoft WDAC recommended block rules. Cover %TEMP%, %APPDATA%, %LOCALAPPDATA%, %LOCALAPPDATA%\Packages\, Downloads, %ProgramData% and browser cache paths. See Playbook 1.

M-Immediate-2 · Import the §10 IOC CSV into Falcon IOC Management. Domains at prevent, IPs and hashes at detect. Authority: MITRE M1031 (Network Intrusion Prevention). Ten minutes of work, and it closes the currently-published infrastructure immediately.

M-Immediate-3 · Block outbound TCP/3000 from workstation VLANs at the egress firewall. Insikt observed port 3000 as the WebSocket listener across all three C2-capable families. Authority: MITRE M1037 (Filter Network Traffic); NIST SP 800-41 egress-filtering guidance. Exempt only named business applications, by destination, not by allowing the port wholesale.

M-Immediate-4 · Disable browser password storage by policy and block remote debugging. PasswordManagerEnabled=0 and RemoteDebuggingAllowed=0 for Chrome and Edge removes the prize ChromEggscalator exists to take, and disables the CDP hijack primitive. Authority: MITRE M1027 (Password Policies) and M1042; CIS Google Chrome and CIS Microsoft Edge Benchmarks. See Playbook 2.

Near term — 1 to 4 weeks, pilot on a ring first

M-Near-1 · Restrict the Windows Run dialog for standard users (NoRun). ClickFix depends on the victim having somewhere to paste. Recorded Future recommends this explicitly. Authority: MITRE M1038; Microsoft Security Baseline Explorer policies. Pilot carefully — some helpdesk workflows depend on Win+R, so this is a near-term control rather than an immediate one. See Playbook 3.

M-Near-2 · Enforce PowerShell Constrained Language Mode for standard users and block unsigned scripts. Limits what a pasted ClickFix command can achieve even when it runs. Authority: MITRE M1038, M1045 (Code Signing); Microsoft PowerShell security baseline. Requires an application-control policy to be meaningful — CLM is enforced by WDAC/AppLocker, not by a standalone setting.

M-Near-3 · Route all workstation web traffic through an authenticated proxy and deny direct-to-IP HTTP/S. Insikt's staging IPs were reachable without DNS, so DNS-only blocking is insufficient. Authority: MITRE M1037; NIST SP 800-41.

M-Near-4 · Restrict workstation-to-workstation SMB, RDP, WinRM and remote scheduled-task creation. This is what removes the value of ChonkyChicken's entire reconnaissance and lateral-movement suite. Authority: MITRE M1030 (Network Segmentation), M1035 (Limit Access to Resource Over Network); CIS Benchmark host-firewall section.

M-Near-5 · Deploy Windows LAPS and rotate local administrator credentials. Reduces the value of anything harvested by browser theft or keylogging. Authority: MITRE M1026 (Privileged Account Management), M1027; Microsoft Security Baseline.

Strategic — 1 to 3 months

M-Strat-1 · Enforce FIDO2 / phishing-resistant MFA on all high-value applications. The only control that meaningfully survives both ABE bypass and a live CDP session, because it binds authentication to hardware the operator does not have. Authority: MITRE M1032 (Multi-factor Authentication); NIST SP 800-63B AAL3; CISA phishing-resistant MFA guidance.

M-Strat-2 · Remove local administrator rights from standard users. Authority: MITRE M1026; CIS Controls v8 safeguard 5.4. Long-running because of application compatibility work, but it degrades every post-exploitation capability in this pack.

M-Strat-3 · Full WDAC application-control rollout in enforcement mode. The generalisation of M-Immediate-1: an allowlist makes the entire "legitimate binary proxies an attacker payload" class unavailable. Authority: MITRE M1038; Microsoft WDAC deployment guidance; DISA Windows STIG application-whitelisting requirements.

M-Strat-4 · Privileged access workstations for all administrative activity, and no BYOD into privileged or developer workflows. Authority: MITRE M1026; Microsoft privileged-access strategy. note This also shrinks the legitimate population that trips Q3 and Q12, which makes those two queries materially quieter.

M-Strat-5 · Add WebSocket frame decoding to network inspection where legally and technically permissible. RFC 6455 masking defeats content signatures outright, so without decoding, WebSocket C2 inspection is metadata-only. Authority: MITRE M1031. ⚠ best-practice, no formal benchmark

13

Deployable Playbooks

Playbook 1 — AppLocker DLL rule blocking OCX/DLL execution from user-writable paths

Prerequisites: AppLocker requires the Application Identity service (AppIDSvc) running and set to automatic. Windows Enterprise/Education, or Windows Pro with WDAC instead. An existing AppLocker DLL rule collection, or acceptance that creating one enables DLL rule enforcement estate-wide. Test in Audit mode on a pilot ring first — DLL rules are the highest-compatibility-risk AppLocker collection.
Reboot required: No. A Group Policy refresh (gpupdate /force) plus a user logoff/logon is sufficient.
Rollback: Delete the DLL rule collection from the GPO and run gpupdate /force, or set -RuleType DLL enforcement back to NotConfigured. Local fallback is shown in step 5. No file or registry state is left behind.

# --- Step 1: confirm the Application Identity service is running -------------
Get-Service AppIDSvc | Select-Object Name, Status, StartType
Set-Service AppIDSvc -StartupType Automatic
Start-Service AppIDSvc

# --- Step 2: start in AUDIT mode. Do not skip this. -------------------------
Set-AppLockerPolicy -XmlPolicy .\tag195-dll-audit.xml -Merge

# tag195-dll-audit.xml -- DLL collection, AuditOnly:
#   <RuleCollection Type="Dll" EnforcementMode="AuditOnly">
#     <FilePathRule Id="..." Name="Allow DLL/OCX from Program Files"
#                   UserOrGroupSid="S-1-1-0" Action="Allow">
#       <Conditions><FilePathCondition Path="%PROGRAMFILES%\*"/></Conditions>
#     </FilePathRule>
#     <FilePathRule Id="..." Name="Allow DLL/OCX from Windows"
#                   UserOrGroupSid="S-1-1-0" Action="Allow">
#       <Conditions><FilePathCondition Path="%WINDIR%\*"/></Conditions>
#     </FilePathRule>
#   </RuleCollection>
# Everything outside those two roots is implicitly denied, which covers
# %TEMP%, %APPDATA%, %LOCALAPPDATA%\Packages\, Downloads and %ProgramData%.

# --- Step 3: harvest audit events for 7-14 days -----------------------------
Get-WinEvent -LogName 'Microsoft-Windows-AppLocker/EXE and DLL' -MaxEvents 2000 |
  Where-Object { $_.Id -eq 8003 } |
  Select-Object TimeCreated, Message | Format-List

# --- Step 4: promote to Enforce only after the audit log is clean -----------
# Change EnforcementMode="AuditOnly" to EnforcementMode="Enabled", re-import:
Set-AppLockerPolicy -XmlPolicy .\tag195-dll-enforce.xml -Merge

# --- Step 5: ROLLBACK (local) -----------------------------------------------
# Clears the local AppLocker policy entirely and returns to no DLL enforcement.
Set-AppLockerPolicy -XmlPolicy .\empty-policy.xml
gpupdate /force
# Domain rollback: remove the DLL RuleCollection from the GPO, then gpupdate.

# --- Step 6: verify ---------------------------------------------------------
Get-AppLockerPolicy -Effective -Xml | Select-String -Pattern 'Dll|EnforcementMode'

Playbook 2 — Browser policy: kill password storage and remote debugging

Prerequisites: Chrome and/or Edge ADMX templates imported into the Central Store, or direct registry deployment via GPO Preferences / Intune. Users must be warned that saved passwords will become unavailable — pair this with an enterprise password manager rollout or you will generate a helpdesk surge.
Reboot required: No. Browser restart required for the policy to take effect.
Rollback: Delete the four registry values shown in step 4 (or set the GPO settings to Not Configured) and restart the browser. Previously saved passwords are not deleted by this policy, only prevented from being added, so rollback restores prior behaviour without data loss.

# --- Step 1: Chrome -- disable password manager and remote debugging --------
New-Item -Path 'HKLM:\Software\Policies\Google\Chrome' -Force | Out-Null
Set-ItemProperty -Path 'HKLM:\Software\Policies\Google\Chrome' `
  -Name 'PasswordManagerEnabled' -Value 0 -Type DWord
Set-ItemProperty -Path 'HKLM:\Software\Policies\Google\Chrome' `
  -Name 'RemoteDebuggingAllowed' -Value 0 -Type DWord

# --- Step 2: Edge -- same two controls --------------------------------------
New-Item -Path 'HKLM:\Software\Policies\Microsoft\Edge' -Force | Out-Null
Set-ItemProperty -Path 'HKLM:\Software\Policies\Microsoft\Edge' `
  -Name 'PasswordManagerEnabled' -Value 0 -Type DWord
Set-ItemProperty -Path 'HKLM:\Software\Policies\Microsoft\Edge' `
  -Name 'RemoteDebuggingAllowed' -Value 0 -Type DWord

# --- Step 3: verify ---------------------------------------------------------
Get-ItemProperty 'HKLM:\Software\Policies\Google\Chrome'   |
  Select-Object PasswordManagerEnabled, RemoteDebuggingAllowed
Get-ItemProperty 'HKLM:\Software\Policies\Microsoft\Edge'  |
  Select-Object PasswordManagerEnabled, RemoteDebuggingAllowed
# Also confirm in-browser at chrome://policy and edge://policy

# --- Step 4: ROLLBACK -------------------------------------------------------
Remove-ItemProperty -Path 'HKLM:\Software\Policies\Google\Chrome' `
  -Name 'PasswordManagerEnabled','RemoteDebuggingAllowed' -ErrorAction SilentlyContinue
Remove-ItemProperty -Path 'HKLM:\Software\Policies\Microsoft\Edge' `
  -Name 'PasswordManagerEnabled','RemoteDebuggingAllowed' -ErrorAction SilentlyContinue
# Restart the browser. Saved credentials are untouched by this policy.

Playbook 3 — Restrict the Run dialog for standard users (ClickFix mitigation)

Prerequisites: Identify and exempt every group that legitimately uses Win+R — helpdesk, desktop engineering, developers. This is a user-visible change and will generate tickets if deployed estate-wide without notice. Deploy via a GPO scoped to standard users only, never to an OU containing admin accounts.
Reboot required: No. Logoff/logon or gpupdate /force plus an Explorer restart.
Rollback: Set NoRun to 0 or delete the value, then restart Explorer (step 3). Immediate and complete — the Run dialog returns with no residual state.

# --- Step 1: apply (per-user; deploy via GPO scoped to standard users) ------
$k = 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer'
New-Item -Path $k -Force | Out-Null
Set-ItemProperty -Path $k -Name 'NoRun' -Value 1 -Type DWord

# --- Step 2: verify ---------------------------------------------------------
Get-ItemProperty -Path $k -Name NoRun

# --- Step 3: ROLLBACK -------------------------------------------------------
Remove-ItemProperty -Path $k -Name 'NoRun' -ErrorAction SilentlyContinue
Stop-Process -Name explorer -Force   # Explorer restarts automatically

# --- Step 4: compensating hunt while this is still being piloted ------------
# Until NoRun is deployed, Q5 plus the RunMRU sweep (N1) are the coverage.
# Note that NoRun does NOT block PowerShell/Terminal paste-and-run, so
# ClickFix variants targeting a terminal window remain in scope for Q5.

Playbook 4 — Egress control for WebSocket C2

Prerequisites: A change window at the egress firewall and an inventory of any business application legitimately reached on TCP/3000. Confirm with Q8 (run in report mode over 30 days) before writing the deny rule, or you will break something you did not know existed.
Reboot required: No. Firewall policy commit only.
Rollback: Remove the deny rule and re-commit. Keep the previous policy version tagged so the rollback is a single revert rather than a hand-rebuild. Because this is a deny rule with no state change on endpoints, rollback is immediate and has no side effects.

# --- Step 1: evidence-gather BEFORE writing the rule ------------------------
# Run Q8 with the RFC1918 exclusion removed, over 30 days, and list every
# distinct RemoteAddressIP4 + ContextBaseFileName pair. That is your exemption
# candidate list. Do not guess it.

# --- Step 2: firewall policy (vendor-neutral intent) ------------------------
#   deny  src: workstation-VLANs   dst: any   port: tcp/3000   log: yes
#   allow src: workstation-VLANs   dst: <named business hosts>  port: tcp/3000
#   (place the allow ABOVE the deny; scope it by destination, never "any")

# --- Step 3: also deny direct-to-IP HTTP/S from workstation VLANs -----------
#   Force all workstation web egress through the authenticated proxy.
#   This is what closes the DNS-less staging path (M-Near-3).

# --- Step 4: verify ---------------------------------------------------------
# From a pilot workstation, attempt an outbound TCP/3000 connection to an
# external test listener and confirm it is denied AND logged.
Test-NetConnection -ComputerName <external-test-host> -Port 3000

# --- Step 5: ROLLBACK -------------------------------------------------------
# Revert to the tagged previous policy version and re-commit. No endpoint
# state was changed, so nothing else needs undoing.
14

Containment Runbook

PhaseActionsOwnerEvidence to capture
0 · Triage
(0–30 min)
Confirm the hit is real. Pull the full process tree around the regsvr32.exe execution. Identify the OCX path and hash. Check for %TEMP%\lg.txt and C:\ProgramData\xlog.txt — either file proves an execution attempt even if the payload exited on its gating check. SOC L1 Process tree export, OCX SHA256, both log-file paths, RunMRU contents
1 · Isolate
(30–60 min)
Network-contain the host in Falcon. Do not power it off — an active CDP session and the in-memory modules live only in RAM and are the highest-value evidence in this intrusion. Capture memory before anything else if the maturity exists to do so. SOC L2 Memory image, Falcon containment timestamp, list of active network connections at containment
2 · Scope
(1–4 h)
Run Q7, Q9 and Q10 estate-wide over 30 days. Run Q1 and Q2 over 30 days. TinyEgg is stage one, so a single confirmed host means asking which other hosts got the ClickFix lure, not just which ran the payload. Check the proxy for the lure domains across all users, not just the affected one. Threat hunting Affected-host list, lure-domain hit list by user, first-seen timestamp per host
3 · Eradicate
(4–24 h)
Delete the WinComCtl Run key value and the staged OCX under %LOCALAPPDATA%\Packages\. Then check for the second implant: Insikt notes an operator who removes one family's persistence often leaves the other's behind. Remove %TEMP%\mscom.ocx, %TEMP%\wpad_capture.ocx, %TEMP%\output\ and both log files after imaging. IR / Desktop Registry export before deletion, file hashes before deletion, confirmation both Run key AND payload are gone
4 · Credential response
(4–24 h)
Treat every credential in every browser profile on the host as compromised. Rotate them. Then, separately, terminate all active browser and application sessions — force a global sign-out and revoke refresh tokens. Password rotation alone does not evict an operator holding a live CDP session; this is the single most-missed step in this intrusion type. IAM / IR Rotation list, session-revocation confirmation per SaaS platform, MFA re-enrolment records
5 · Lateral review
(24–72 h)
Review 4624 Type 3/9, 4698 (remote scheduled tasks) and 5140/5145 from the affected host for the full dwell window. Remember remote_logon enumerates sessions without authenticating, so a clean auth log does not mean no reconnaissance happened. IR Lateral-movement timeline, any remote scheduled tasks created, share-access log
6 · Recover
(72 h+)
Rebuild rather than clean where the modular controller was present — the module inventory delivered to that host is not recoverable from the controller alone, so you cannot enumerate what the operator actually ran. Restore the user, re-enrol MFA, then monitor the host under Q1/Q2/Q4 for 30 days. Desktop / SOC Rebuild record, 30-day monitoring outcome, closure note
7 · Harden
(ongoing)
Deploy M-Immediate-1 through M-Immediate-4 across the estate, not just the affected host. Feed the lure domains into the web gateway. Brief users on ClickFix specifically — the pattern is "a website asked me to paste something into the Run box". Security engineering Deployment coverage report, user-awareness campaign record
15

Detection Coverage Map

TechniqueBehaviourCQLIOACoverage
T1189 Drive-by CompromiseClickFix lure page deliveryQ9PARTIAL — only known domains
T1204.004 Malicious Copy and PasteRun-dialog paste chainQ5 · N1PARTIAL — FP-sensitive
T1218.010 Regsvr32OCX from user-writable pathQ1IOA-1GOOD
T1547.001 Registry Run KeysWinComCtl / OCX autostartQ2IOA-2GOOD
T1105 Ingress Tool TransferNamed OCX staged to diskQ6GOOD
T1185 Browser Session HijackingOff-screen CDP browserQ4 · Q3 · Q12IOA-3GOOD
T1528 Steal Application Access TokenLive authenticated session controlQ3 · Q4 · Q12IOA-3GOOD
T1555.003 Credentials from Web BrowsersChromEggscalator ABE bypassQ6 · Q7PARTIAL — filename/hash-bound
T1071.001 Web ProtocolsWebSocket C2 to known infraQ8 · Q9 · Q10 · N3PARTIAL — see G4
T1571 Non-Standard PortTCP/3000 egressQ8GOOD
T1046 Network Service Discoverynet_port_scan fan-outQ11PARTIAL
T1018 Remote System Discoverynet_arp_scanQ11 (partial)GAP — G5
T1497 Sandbox EvasionFilename gatingGAP — G1
T1056.001 / T1115 / T1113 / T1123Keylog · clipboard · screen · audio modulesGAP — G2
T1049 System Network Connections Discoveryremote_logon session enumerationGAP — G3
T1090 Proxyproxy_request / WPAD interceptionN3 · Q6PARTIAL
T1027 Obfuscated FilesXOR / AES string obfuscationGAP — G1

Documented gaps

  • G1 · Filename gating and string obfuscation are not endpoint-detectable. These are anti-analysis properties, not runtime behaviours. Their practical effect is that dynamic sandboxing of a captured sample will silently produce a clean verdict. Compensate by treating the presence of %TEMP%\lg.txt (N2) as evidence of an attempt, and never clear a sample as benign purely because it did not detonate.
  • G2 · Modular plugin capabilities have no reliable telemetry. Modules arrive Base64-encoded over the WebSocket, are written to a randomly named temp file and loaded via LoadLibraryA. There is no stable filename, hash or path to hunt. This is the single largest gap in the pack and it is by design — Insikt notes a defender who captures the controller captures no capabilities at all. Detection must be pushed upstream to the controller (Q1, Q2, Q6, Q8), which is why those four queries carry the weight of this pack.
  • G3 · remote_logon generates no authentication events. It enumerates logged-on sessions without submitting credentials, so there is nothing in the Security log to find. Accept as uncovered; compensate with M-Near-4 (east-west restriction) so the reconnaissance has less to feed.
  • G4 · WebSocket content is opaque. RFC 6455 mandates XOR frame masking, so content signatures do not work without frame decoding (M-Strat-5). Coverage is metadata-only: port, path, Upgrade header, connection duration.
  • G5 · ARP-based host discovery is link-layer. net_arp_scan is largely invisible to EDR and to L3 network monitoring. Q11 catches the TCP half of net_enumerate only. Switch-level ARP monitoring would be required for full coverage.
  • G6 · Non-PE forensic artifacts. lg.txt, xlog.txt and the %TEMP%\output\ directory are not PE files, so Falcon's PE-write events do not surface them. Covered by native hunt N2 as a host-triage step rather than by streamed telemetry.

Validation gates: the eight gates in §11 must be cleared before any of this coverage counts as deployed. In particular, gate G-1 determines whether Q2 is live at all (it is blind without AsepValueUpdate), and gate G-2 determines whether Q12 is coverage or a seventh gap. Run gates G-4 through G-7 as the purple-team exercise Recorded Future recommends — every one of them uses benign components and no malicious code.

16

Hunt Summary Ticket

TITLE:      Golden Chickens / TAG-195 -- TinyEgg, ChonkyChicken, Modular ChonkyChicken, ChromEggscalator
SEVERITY:   High (active MaaS, in-the-wild ClickFix delivery by TAG-127)
SCOPE:      All Windows endpoints. Priority: any host with Chrome or Edge and stored credentials.

HYPOTHESIS: TAG-195 tooling executes OCX payloads via regsvr32.exe from user-writable
            directories, persists through HKCU Run value "WinComCtl", speaks JSON-over-
            WebSocket C2 on TCP/3000, and hijacks live browser sessions via the Chrome
            DevTools Protocol after bypassing Chrome App-Bound Encryption.

QUERIES:    Q1  regsvr32 + .ocx from user-writable path        CONF high  FP low   <-- START HERE
            Q2  WinComCtl Run key / OCX autostart              CONF high  FP low   <-- START HERE
            Q3  browser with --remote-debugging-port           CONF high  FP med
            Q4  off-screen browser + remote debugging          CONF high  FP low
            Q5  ClickFix Run-dialog LOLBIN chain               CONF med   FP med
            Q6  TAG-195 OCX filenames written to disk          CONF high  FP low
            Q7  30 known SHA256 payload hashes                 CONF high  FP low
            Q8  outbound TCP/3000 WebSocket C2                 CONF med   FP med
            Q9  lure / staging / C2 domain resolution          CONF high  FP low
            Q10 connections to 4 published C2 IPs              CONF high  FP low
            Q11 regsvr32/rundll32 internal fan-out             CONF med   FP med
            Q12 non-browser process hitting local CDP :9222    CONF med   FP med

DO FIRST:   1. Import the section 10 IOC CSV into Falcon IOC Management.
            2. Run Q1 and Q2 over 30 days. These two cover all four families and
               survive hash/infrastructure rotation.
            3. Run Q7, Q9, Q10 over 30 days for confirmed-incident hits.
            4. Clear validation gate G-1 before trusting any coverage claim.
            5. Deploy IOA-1 in Detect mode.

FINDINGS:   [ ] Q1 hits: ____   [ ] Q2 hits: ____   [ ] Q4 hits: ____
            [ ] Q7 hits: ____   [ ] Q9 hits: ____   [ ] Q10 hits: ____
            [ ] %TEMP%\lg.txt found on: ____
            [ ] C:\ProgramData\xlog.txt found on: ____

GAPS:       G1 filename gating / obfuscation not endpoint-detectable
            G2 modular plugin capabilities have no reliable telemetry  <-- largest gap
            G3 remote_logon produces no authentication events
            G4 WebSocket content opaque (RFC 6455 masking)
            G5 ARP host discovery invisible to EDR
            G6 non-PE artifacts (lg.txt, xlog.txt) need host triage

ACTIONS:    [ ] M-Immediate-1  block regsvr32 loading OCX from user-writable paths
            [ ] M-Immediate-2  import IOC CSV
            [ ] M-Immediate-3  block outbound TCP/3000 from workstation VLANs
            [ ] M-Immediate-4  disable browser password storage + remote debugging
            [ ] On any confirmed hit: rotate credentials AND revoke all sessions.
                Rotation alone does not evict an active CDP session.

OWNER:      ____________________
VERSION:    v0.1 -- 2026-07-27
17

Changelog

v0.12026-07-27Initial pack. Built from the Recorded Future / Insikt Group primary report (2026-07-24) plus five corroborating sources. 12 CQL queries, 3 Custom IOA recommendations, 40 atomic IOCs (6 domains, 4 IPv4, 30 SHA256), 13 behavioural signatures, 4 deployable playbooks with rollback, 8 validation gates, 6 documented coverage gaps. Corrected the tasking brief's claim that delivery uses curl/certutil/mshta: the primary source is explicit that all four families execute as OCX via regsvr32.exe.
18

References

TierSourceUsed ForAccessed
T1Recorded Future / Insikt Group — TAG-195 Upgrades MaaS Ecosystem with Modular ToolsPrimary research. All technical analysis, command tables, module inventory, mitigations and the complete IOC appendix. Sole source of every SHA256.2026-07-27
T2The Hacker News — Golden Chickens Resurfaces With Four New Malware Families and Modular ImplantsIndependent corroboration of family names, actor relationships, module list and delivery model.2026-07-27
T2GBHackers — Golden Chickens Launches Four Modular Malware FamiliesSecond independent source for the six domains and two of the four IPs; DllInstall export detail.2026-07-27
T2CyberPress — Golden Chickens TAG-195 Launches TinyEgg and ChonkyChicken Modular MalwareCorroborates ClickFix delivery and the screenly lure domain. Its curl/certutil/mshta line is generic LOLBIN advice, not a TAG-195 observation.2026-07-27
T2CybersecurityNews — ChonkyChicken Malware Steals Chrome Credentials, Moves Laterally and Spies on VictimsCorroborates regsvr32 execution, WinComCtl Run key, koki.ocx controller, port 3000 and the xlog artifact.2026-07-27
T2SC Media — Golden Chickens malware-as-a-service resurfaces with four new familiesHeadline-level confirmation of the disclosure and MaaS framing.2026-07-27
FRAMEWORKMITRE ATT&CK — T1189, T1204.004, T1059.003, T1218.010, T1547.001, T1071.001, T1571, T1090, T1555.003, T1528, T1185, T1056.001, T1115, T1113, T1123, T1046, T1018, T1135, T1087.002, T1049, T1021, T1105, T1027, T1497Technique mapping and M-number mitigation routing (M1026, M1027, M1030, M1031, M1032, M1035, M1037, M1038, M1042, M1045).2026-07-27

Source snapshots for every reference above are archived alongside this pack in GoldenChickens-TAG195-TinyEgg-Hunt-sources/. Every atomic indicator shipped in §10 is mechanically traceable to one of those snapshots.