Phexia Stealer — macOS ClickFix Infostealer + RAT
Executive Summary
Phexia Stealer is a macOS infostealer-plus-RAT distributed through ClickFix social engineering: a fraudulent bot-verification / fake-CAPTCHA page silently places a downloader command on the victim's clipboard and instructs them to paste and run it in Terminal. Reporting on the broader June 2026 ClickFix wave pairs Phexia with HellsUchecker, an EtherHiding-delivered backdoor that executes files retrieved from C2 and reports results back.
Signature chain: the pasted command runs a bash one-liner that uses dig to fetch a DNS TXT record (a dead-drop resolver) from a public resolver, pipes the result to curl, and executes it as JavaScript via osascript (JXA). This fileless bootstrap lets the operator change behavior by editing a DNS record — nothing on disk changes. The implant then installs a LaunchAgent (e.g. ~/Library/LaunchAgents/com.components.<rand>.plist with a matching script under ~/Library/), loads it with launchctl load (RunAtLoad), and polls C2 every 60 seconds for new osascript tasks.
Capabilities: host fingerprinting (ioreg … IOPlatformExpertDevice, whoami/id -un), local password harvesting via a spoofed "System Preferences" dialog validated with dscl . authonly and stored to ~/.passphrase, tccutil reset All to coax privacy prompts, and theft of browser data, extensions, cookies/history, crypto wallets, password managers, Keychain, and Telegram session data. C2 domains are rotated and discovered via a Telegram bot; infrastructure is hosted on vdsina VPS.
Defender priority: The strongest, version-independent detection is the ClickFix bootstrap shape — Terminal/bash spawning dig (TXT lookup) and curl piped into osascript — and the LaunchAgent + 60-second osascript polling that follows. Pair behavioral hunts (Q1–Q4) with an atomic sweep for the published C2 domains/IP (Q5). Falcon for macOS gives full process/network/DNS visibility here, so coverage is good.
Source Review & Web Hunter Notes
| Source | Tier | Pulled | Note |
|---|---|---|---|
| The Hacker News — ClickFix expands (June 2026) | Reporting | Phexia + HellsUchecker named; ClickFix delivery, EtherHiding | Campaign context |
| Cookie Engineer — macOS Phexia campaign deep-dive | Research | Full chain + atomic IOCs (domains, IP, LaunchAgent, osascript) | Primary technical + indicator source |
| Netskope — macOS ClickFix AppleScript stealer + RAT | Research | ClickFix clipboard lure, AppleScript stealer, persistent RAT | Corroborating chain detail |
| Microsoft Security — macOS ClickFix utilities lure | Vendor | Fake macOS-utility CAPTCHA lures deliver infostealers | Delivery corroboration |
| Objective-See — Mac malware roundup | Secondary | macOS infostealer landscape context | Background |
Provenance note: every atomic IOC in §4/§10 (C2 domains x2db.cx, a5db.ch, a6b6.biz, kfcnevkusno.one, goldenticketsshop.com; IP 146.103.98.59; Telegram bot t.me/neverfakebot; LaunchAgent path pattern) is taken from the cited Cookie Engineer / Netskope research — none are fabricated. The LaunchAgent label string is sample-specific (random per campaign) — match on the com.components.* / ~/Library/ pattern, not the exact characters.
Hunt Brief & Attack Chain
Hunt hypotheses
- H1: A macOS host runs the ClickFix bootstrap —
bash/Terminalspawningdig(TXT lookup) and/orcurlpiped intoosascript/osacompile. - H2: A new LaunchAgent plist appears under
~/Library/LaunchAgents/(patterncom.components.*/com.launch.*) and is loaded vialaunchctl loadwith a script body under~/Library/. - H3: Credential-access tradecraft fires —
dscl . authonly,osascriptdialog spoofing "System Preferences",tccutil reset All, writes to~/.passphrase. - H4: An
osascript/curlprocess beacons on a ~60-second cadence to rotating domains (dead-drop / Telegram-sourced C2). - H5: Any host resolves or connects to the published Phexia C2 domains or IP
146.103.98.59.
Attack chain
| # | Step | Observable | ATT&CK |
|---|---|---|---|
| 1 | ClickFix fake-CAPTCHA places command on clipboard; user pastes into Terminal | Terminal → bash -c with copied one-liner | T1204.004 / T1059.004 |
| 2 | dig TXT dead-drop resolver → curl → osascript (fileless bootstrap) | dig … TXT, curl piped to osascript | T1071.004 / T1059.002 |
| 3 | LaunchAgent persistence + launchctl load (RunAtLoad) | New ~/Library/LaunchAgents/com.components.*.plist | T1543.001 |
| 4 | Host profiling | ioreg … IOPlatformExpertDevice, whoami, id -un | T1082 / T1033 |
| 5 | Password harvest via spoofed dialog + dscl validation | osascript dialog, dscl . authonly, ~/.passphrase | T1056.002 / T1555 |
| 6 | 60s C2 polling, task download & execute | curl to /api.php//get.php; recurring osascript | T1071.001 / T1041 |
| 7 | Steal browser/wallet/Keychain/Telegram data; exfil | Access to browser profiles, wallets, Keychain | T1555 / T1539 / T1217 |
Consolidated IOC Table
Atomic indicators below are from cited research (Cookie Engineer / Netskope). C2 domains rotate — treat the list as a seed and pivot on the dead-drop / Telegram-sourced infrastructure. Validate before blocking shared hosting.
| Type | Value | Confidence | Action | Context |
|---|---|---|---|---|
| Domain | goldenticketsshop.com | high | block | Dead-drop / C2 (Q5) |
| Domain | x2db.cx, a5db.ch, a6b6.biz, kfcnevkusno.one | high | block | Rotating C2 (Q5) |
| IPv4 | 146.103.98.59 | medium | block | vdsina VPS C2 host (validate — shared) |
| Telegram | t.me/neverfakebot | high | enrich | Domain-distribution bot (operator) |
| File path | ~/Library/LaunchAgents/com.components.*.plist | high | detect | Persistence (pattern; Q2) |
| File path | ~/.passphrase | high | detect | Harvested password store (Q3, §7) |
| Behavior | dig … TXT → curl → osascript chain | high | detect | ClickFix bootstrap (Q1) |
| Behavior | dscl . authonly + spoofed "System Preferences" dialog | high | detect | Credential access (Q3) |
| URI | /api.php?connect&username=, /get.php?txid=, /api.php?check | medium | hunt | C2 endpoints (proxy logs) |
Affected Surface & Telemetry Matrix
Affected: macOS endpoints (Intel & Apple Silicon) where a user can be socially engineered into pasting a command into Terminal. No vulnerability is exploited — delivery is 100% social engineering, so any current macOS version is in scope. Falcon for macOS provides process, file, network, and DNS telemetry for the full chain.
| Surface | Telemetry | Priority | Gap |
|---|---|---|---|
| macOS process tree | Falcon ProcessRollup2 / SyntheticProcessRollup2 (macOS) | Critical | Requires Falcon sensor on Macs |
| LaunchAgent / file writes | Falcon file-write telemetry (TargetFileName under ~/Library/LaunchAgents) | Critical | Confirm macOS file-write events enabled in policy |
| DNS resolution | Falcon DnsRequest (DomainName, TXT lookups to dead-drop) | Critical | TXT-record content not captured — match domain |
| Network egress | Falcon NetworkConnectIP4 (60s C2 beacon, vdsina IP) | High | HTTPS payload opaque; rely on dest + cadence |
| Keychain / browser stores | File access to browser profiles, Keychain, wallet paths | High | Read access can be noisy; correlate with chain |
ATT&CK Mapping
| Tactic | Technique | Behavior | Query / Control |
|---|---|---|---|
| Execution | T1204.004 — User Execution: Malicious Copy & Paste | ClickFix clipboard → Terminal paste | Q1, §12 awareness |
| Execution | T1059.002 / T1059.004 — AppleScript / Unix Shell | osascript JXA + bash one-liner | Q1, Q4 |
| Command & Control | T1071.004 — DNS (dead-drop resolver) | dig TXT lookup drives behavior | Q1, Q5 |
| Persistence | T1543.001 — Launch Agent | ~/Library/LaunchAgents/com.components.* + launchctl | Q2 |
| Discovery | T1082 / T1033 — System / Owner discovery | ioreg, whoami, id -un | Q3 |
| Credential Access | T1056.002 / T1555 — GUI input capture / credential stores | Spoofed dialog + dscl authonly; Keychain theft | Q3, §7 |
| Collection / Exfil | T1539 / T1217 / T1041 — Cookies / Browser data / C2 exfil | Browser, wallet, Telegram data over C2 | Q4, Q5 |
Native Audit-Log Hunts
macOS-native checks that complement the Falcon CQL in §8 — useful for live triage on a suspect Mac (run with care, read-only first).
Persistence & artifacts (macOS shell)
# Suspicious LaunchAgents (Phexia pattern: com.components.* / random label) ls -la ~/Library/LaunchAgents/ /Library/LaunchAgents/ grep -rEl "osascript|curl|base64|dig .*TXT" ~/Library/LaunchAgents/ 2>/dev/null # Harvested password store written by the implant ls -la ~/.passphrase 2>/dev/null # Loaded agents referencing the home dir launchctl list | grep -Ei "components|launch\."
Unified log — bootstrap & beacon (macOS)
# dig TXT dead-drop + osascript execution in the last day log show --last 1d --predicate 'process == "dig" OR process == "osascript" OR process == "curl"' 2>/dev/null \ | grep -Ei "TXT|api.php|get.php|osascript" # tccutil reset abuse (privacy-prompt coaxing) log show --last 1d --predicate 'process == "tccutil"' 2>/dev/null
Treat a LaunchAgent that shells out to osascript/curl, plus the presence of ~/.passphrase, as confirmed Phexia infection — proceed to §14 containment and capture the plist + script before removal.
CrowdStrike LogScale CQL Hunt Queries
Looks for: the fileless bootstrap — a shell/Terminal-descended process running dig for a TXT record and/or curl output executed by osascript. FP: very low; curl|osascript and ad-hoc TXT lookups are rare on user endpoints. Review every hit.
// HUNT: Phexia ClickFix bootstrap — dig TXT dead-drop + curl-to-osascript (macOS) // MITRE: T1059.002, T1071.004, T1204.004 | CONF: high FP: low COST: low | REQUIRES: ProcessRollup2 (macOS) // FALSE POSITIVES: rare; some admin tooling pipes curl output — review CommandLine // TUNING: keep ParentBaseFileName scoped to shells/Terminal; widen if launched by an app bundle #event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/ | event_platform=Mac | CommandLine=/(dig\s+.*\s+txt|dig\s+@?[\d.]+.*txt|curl\s.{0,160}(osascript|osacompile)|osascript\s.{0,120}(do shell script|IOPlatformExpertDevice))/i | groupBy([ComputerName, ParentBaseFileName, ImageFileName, CommandLine], function=([count(aid, as=hits), collect([UserName])])) | sort(hits, order=desc)
Looks for: a new LaunchAgent plist (Phexia pattern com.components.*) written to ~/Library/LaunchAgents/, especially by a shell/osascript process. FP: legitimate apps install LaunchAgents; exclude known vendor labels and signed installers, and prioritize plists written by bash/osascript/curl.
// HUNT: Phexia LaunchAgent persistence write (macOS) // MITRE: T1543.001 | CONF: high FP: medium COST: low | REQUIRES: file-write telemetry (macOS) // FALSE POSITIVES: legit app LaunchAgents; allowlist signed vendor bundle IDs // TUNING: prioritize ContextBaseFileName in (bash, sh, osascript, curl); exclude known good labels #event_simpleName=/NewExecutableWritten|NewScriptWritten|MachOFileWritten/ | event_platform=Mac | TargetFileName=/\/Library\/LaunchAgents\/.*\.plist$/i | TargetFileName=/(com\.components\.|com\.launch\.)/i | groupBy([ComputerName, ContextBaseFileName, TargetFileName], function=([count(aid, as=writes), collect([UserName])])) | sort(writes, order=desc)
Looks for: the credential-harvest stage — dscl . authonly (local password validation), osascript displaying a "System Preferences"/password dialog, or tccutil reset All. FP: low under a shell/osascript parent; dscl authonly is rarely used by normal users.
// HUNT: Phexia credential access — dscl authonly / spoofed password dialog / tccutil reset (macOS) // MITRE: T1056.002, T1555, T1548 | CONF: high FP: low COST: low | REQUIRES: ProcessRollup2 (macOS) // FALSE POSITIVES: rare; some MDM tooling uses dscl — allowlist by ImageFileName/parent // TUNING: combine with Q1/Q2 host hits to confirm full chain #event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/ | event_platform=Mac | CommandLine=/(dscl\s+\.\s+(-)?authonly|tccutil\s+reset\s+All|osascript.{0,120}(System Preferences|password|passphrase)|ioreg\s+-rd1\s+-c\s+IOPlatformExpertDevice)/i | groupBy([ComputerName, ParentBaseFileName, ImageFileName, CommandLine], function=([count(aid, as=hits), collect([UserName])])) | sort(hits, order=desc)
Looks for: repeated curl/osascript executions consistent with the 60-second task-polling loop. FP: automation/polling tools also recur; raise the execs threshold and correlate with Q1/Q2/Q3 on the same host.
// HUNT: Phexia 60s C2 polling loop — recurring curl/osascript (macOS) // MITRE: T1071.001, T1041 | CONF: medium FP: medium COST: medium | REQUIRES: ProcessRollup2 (macOS) // FALSE POSITIVES: legit polling daemons; correlate with persistence + bootstrap hits // TUNING: adjust the execs threshold (default >= 10/host/hour) to your baseline #event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/ | event_platform=Mac | ImageFileName=/\/(curl|osascript)$/i | CommandLine=/(api\.php|get\.php|txid=|connect&username=|--connect-timeout\s+5)/i | groupBy([ComputerName, ImageFileName], function=([count(aid, as=execs), collect([CommandLine])])) | execs>=10 | sort(execs, order=desc)
Looks for: any host resolving or connecting to the published Phexia C2 domains or the vdsina IP. FP: low for the domains; validate the IP (shared hosting) before blocking estate-wide.
// HUNT: Phexia atomic C2 sweep — domains + vdsina IP (macOS/all) // MITRE: T1071 | CONF: high FP: low COST: low | REQUIRES: DnsRequest / NetworkConnectIP4 // FALSE POSITIVES: low; IP is shared VPS — confirm before broad block // TUNING: extend the domain list as new dead-drop / Telegram-sourced domains surface #event_simpleName=/DnsRequest|NetworkConnectIP4/ | DomainName=/(goldenticketsshop\.com|x2db\.cx|a5db\.ch|a6b6\.biz|kfcnevkusno\.one)$/i OR RemoteAddressIP4=/^146\.103\.98\.59$/ | groupBy([ComputerName, DomainName, RemoteAddressIP4], function=([count(aid, as=hits), collect([ContextBaseFileName])])) | sort(hits, order=desc)
Field-name note: queries use standard Falcon fields (#event_simpleName, event_platform, ParentBaseFileName, ImageFileName, CommandLine, TargetFileName, ContextBaseFileName, DomainName, RemoteAddressIP4, ComputerName, aid, UserName). Confirm the macOS file-write #event_simpleName values available in your tenant for Q2 (the path/label filters carry the precision).
Custom IOA Recommendations
| IOA name | Pattern | Exclusions | Deployment |
|---|---|---|---|
| macOS-ClickFix-Curl-Osascript | Shell/Terminal → curl output piped to osascript, or dig … TXT bootstrap (process-create IOA, macOS) | Sanctioned admin scripts that pipe curl | Host group: all Macs; Action: Detect → Prevent |
| macOS-Phexia-LaunchAgent | LaunchAgent plist written under ~/Library/LaunchAgents by bash/osascript/curl | Signed vendor installers / MDM | Host group: Macs; Action: Detect |
| macOS-Cred-Dialog-Dscl | osascript password dialog + dscl . authonly within the same process tree | MDM enrollment flows | Host group: Macs; Action: Prevent (high fidelity) |
Phexia uses only built-in macOS binaries (living-off-the-land), so scope IOAs by behavioral chaining (parent shell → curl/osascript → persistence/credential step) rather than by file hash. Start in Detect; promote the credential-dialog IOA to Prevent first.
Machine-Readable IOC Appendix
Atomic indicators are from cited research and ready to import; the IP is shared VPS infrastructure — set it to detect/validate rather than hard block. Domains rotate; keep the list updated from the dead-drop / Telegram source.
type,value,action,severity,expiration,description,tags domain,goldenticketsshop.com,block,high,2026-09-26,Phexia macOS C2 / dead-drop,campaign:phexia-clickfix domain,x2db.cx,block,high,2026-09-26,Phexia macOS rotating C2,campaign:phexia-clickfix domain,a5db.ch,block,high,2026-09-26,Phexia macOS rotating C2,campaign:phexia-clickfix domain,a6b6.biz,block,high,2026-09-26,Phexia macOS rotating C2,campaign:phexia-clickfix domain,kfcnevkusno.one,block,high,2026-09-26,Phexia macOS rotating C2,campaign:phexia-clickfix ipv4,146.103.98.59,detect,medium,2026-09-26,Phexia vdsina VPS C2 (validate-shared),campaign:phexia-clickfix
PERSIST ~/Library/LaunchAgents/com.components.*.plist -> LaunchAgent (label com.launch.*) SCRIPT ~/Library/<campaign-id> -> second-stage osascript body CREDS ~/.passphrase -> harvested local password C2URI /api.php?check /get.php?txid= /api.php?connect&username= TG t.me/neverfakebot -> operator domain-distribution bot
BEHAVIOR: shell -> dig TXT dead-drop -> curl piped to osascript -> detect (Q1) BEHAVIOR: LaunchAgent com.components.* written under ~/Library -> detect (Q2) BEHAVIOR: dscl . authonly + spoofed System Preferences dialog -> detect (Q3) BEHAVIOR: tccutil reset All by a shell/osascript descendant -> detect (Q3) BEHAVIOR: recurring curl/osascript to /api.php /get.php (~60s) -> hunt (Q4) BEHAVIOR: resolve/connect to published Phexia domains or 146.103.98.59 -> block (Q5)
CHECK ls -la ~/Library/LaunchAgents/ | grep -Ei "components|launch\." CHECK test -f ~/.passphrase && echo "PHEXIA passphrase store present" CHECK launchctl list | grep -Ei "components|launch\." LOG log show --last 1d --predicate 'process == "osascript"' | grep -Ei "api.php|txid" KILL (after capture) launchctl unload ~/Library/LaunchAgents/com.components.*.plist
Detection Validation Gates
| Gate | Check | Pass criteria |
|---|---|---|
| Telemetry ready | Falcon for macOS reporting ProcessRollup2, file-write, DnsRequest, NetworkConnect on all Macs | All Macs visible in last 24h with macOS events |
| Benign baseline | Run Q2/Q4 over 7–14 days; catalog legitimate LaunchAgents and recurring curl/osascript daemons | Documented allowlist before alerting |
| Positive test | In a lab Mac, run a benign dig example.com TXT then echo 'log "x"' | osascript; write a dummy ~/Library/LaunchAgents/com.components.test.plist | Q1 and Q2 fire |
| Atomic sweep | Run Q5 across the estate for the published domains/IP | Zero hits in a clean estate; any hit = investigate |
| Promotion | Credential-dialog IOA (Q3 pattern) → Prevent; ClickFix bootstrap IOA → Detect then Prevent | Signed off by detection owner |
Hardening — Tiered
- Block the published C2 domains/IP at DNS/proxy and import the §10 IOCs (domains block, IP detect-and-validate).
- Hunt now with Q1–Q5 over the last 14 days; for any host with a LaunchAgent +
~/.passphrasehit, isolate and run §14. - User awareness flash: warn that "paste this command into Terminal to verify you're human" is an attack — never paste commands from a web page (MITRE M1017 User Training; counters T1204.004).
- Deploy the §9 IOAs (ClickFix bootstrap, LaunchAgent, credential-dialog) in Detect across all Macs; promote the credential-dialog IOA to Prevent.
- Restrict / monitor Terminal and osascript for non-developer user populations; alert on
osascriptspawned by browsers or from clipboard-paste workflows. - Enforce that browser password managers / Keychain require re-auth; rotate credentials for any user who ran the lure (M1027).
- Deploy macOS configuration profiles that limit LaunchAgent creation to managed/MDM scopes and flag user-writable LaunchAgents (M1028).
- Egress controls / DNS filtering so dead-drop TXT lookups to attacker domains and beacon traffic are blocked and logged (M1037 Filter Network Traffic).
- Roll out phishing-resistant MFA so harvested local/web passwords have limited reuse value (M1032).
Deployable Playbooks
1 · Sweep Macs for Phexia persistence (Falcon RTR / MDM script, read-only)
#!/bin/bash # Run per-user context. Read-only enumeration — capture before remediation. for ua in /Users/*; do la="$ua/Library/LaunchAgents" [ -d "$la" ] && grep -rEl "osascript|curl|base64|dig .*[Tt][Xx][Tt]" "$la" 2>/dev/null [ -f "$ua/.passphrase" ] && echo "PHEXIA passphrase store: $ua/.passphrase" done
2 · Remove persistence after evidence capture
# Capture first (copy plist + script to evidence), THEN unload & remove: plist=~/Library/LaunchAgents/com.components.<rand>.plist launchctl unload "$plist" 2>/dev/null # move (do not delete) to quarantine for analysis: mkdir -p ~/phexia-quarantine && mv "$plist" ~/phexia-quarantine/ 2>/dev/null rm -f ~/.passphrase 2>/dev/null
3 · Block C2 at the network edge
# DNS/proxy denylist (import via your control plane): goldenticketsshop.com x2db.cx a5db.ch a6b6.biz kfcnevkusno.one # Detect-and-validate (shared VPS): 146.103.98.59
Because Phexia rotates domains via a Telegram bot, treat the domain list as a moving target — block what's known, but rely on the §8 behavioral queries to catch new infrastructure.
Containment Runbook
| Phase | Actions | Owner | Evidence |
|---|---|---|---|
| Isolate | Network-contain the Mac via Falcon RTR; block the §10 C2 at DNS/proxy | SOC | Containment timestamp, host ID |
| Capture | Preserve the LaunchAgent plist, the ~/Library/<id> script, and ~/.passphrase before removal; pull the osascript/curl process tree | IR | Plist + script + process tree |
| Eradicate | Unload + quarantine the LaunchAgent; remove dropped scripts and ~/.passphrase; confirm no second persistence | IR + Endpoint | Removed artifact list |
| Credentials | Rotate the user's local password + every credential the stealer could reach: browser-saved, Keychain, crypto wallets, Telegram session, password-manager vault | IAM + user | Rotation records, wallet review |
| Recover & monitor | Re-image if RAT tasking ran hands-on; keep Q1–Q5 + IOAs enabled; watch for re-infection from new domains | SOC + Endpoint | Post-recovery hunt results |
Detection Coverage Map
| Technique | Behavior | CQL | IOA | Coverage |
|---|---|---|---|---|
| T1204.004 / T1059 | ClickFix paste → bash/osascript bootstrap | Q1 | macOS-ClickFix-Curl-Osascript | Good |
| T1071.004 | dig TXT dead-drop resolver | Q1, Q5 | macOS-ClickFix-Curl-Osascript | Good |
| T1543.001 | LaunchAgent persistence | Q2 | macOS-Phexia-LaunchAgent | Good |
| T1056.002 / T1555 | Spoofed dialog + dscl + Keychain theft | Q3 | macOS-Cred-Dialog-Dscl | Good |
| T1071.001 / T1041 | 60s C2 polling + exfil | Q4, Q5 | IOC import | Partial |
| T1539 / T1217 | Browser/cookie/wallet collection | Q3 (chain) · §7 | — | Partial |
Coverage note: collection of specific browser/wallet/Keychain files is read-activity that is noisy in isolation — this pack catches it via the surrounding chain (bootstrap → persistence → credential dialog → beacon) rather than alerting on every file read. C2 exfil over HTTPS is opaque, so detection leans on destination + cadence (Q4/Q5). Falcon-for-macOS coverage of process/file/DNS makes the early chain high-fidelity.
Hunt Summary Ticket
TITLE : Phexia Stealer — macOS ClickFix Infostealer + RAT SEVERITY : High — active campaign (June 2026), credential + wallet theft, persistent RAT SCOPE : macOS endpoints (any version) — social-engineering delivery, no CVE HYPOTHESIS : ClickFix paste -> dig TXT dead-drop -> curl|osascript -> LaunchAgent -> 60s C2 -> creds/exfil QUERIES : Q1 bootstrap | Q2 LaunchAgent | Q3 cred access | Q4 C2 beacon | Q5 atomic domain/IP sweep DO FIRST : Block C2 domains; import IOCs; hunt Q1-Q5 14d; isolate hosts with LaunchAgent + ~/.passphrase FINDINGS : <fill from hunt> GAPS : HTTPS exfil opaque; browser/wallet reads caught via chain, not standalone ACTIONS : Block C2, deploy IOAs (sect 9), rotate creds/wallets/Keychain, user-awareness on ClickFix OWNER : HuntPack VERSION : v0.1 · 2026-06-26
Changelog
~/.passphrase artifacts) — all traced to the Cookie Engineer / Netskope research; none fabricated.References
| Tier | Source | Used for | Access date |
|---|---|---|---|
| Reporting | The Hacker News — ClickFix campaigns expand (June 2026) | Phexia + HellsUchecker naming, ClickFix/EtherHiding | 2026-06-26 |
| Research | Cookie Engineer — macOS Phexia campaign | Full chain + atomic IOCs (domains, IP, LaunchAgent, osascript) | 2026-06-26 |
| Research | Netskope — macOS ClickFix AppleScript stealer + RAT | ClickFix lure, AppleScript stealer, persistent RAT | 2026-06-26 |
| Vendor | Microsoft Security — macOS ClickFix utilities lure | Delivery corroboration | 2026-06-26 |
| Secondary | Objective-See — Mac malware roundup | macOS infostealer landscape context | 2026-06-26 |
| Framework | MITRE ATT&CK — T1543.001 Launch Agent | Persistence technique + mitigations | 2026-06-26 |