CryptoBandits — Windows Crypto Clipper, Tor Backdoor & USB LNK Worm
Executive Summary
CryptoBandits (Microsoft: Trojan:Win32/CryptoBandits, with JS variants Trojan:JS/CryptoBandits.A/.B) is a lightweight Windows cryptocurrency clipper blended with a backdoor and a USB worm. Microsoft Threat Intelligence and Defender Experts identified it as active since February 2026 and disclosed it on 2026-06-17. It relies on Windows Script Host (WSH) and ActiveX-driven logic — there is no traditional installer and no exposed IP-based C2 — to launch a bundled portable Tor client (ugate.exe) and poll a hidden-service (.onion) command-and-control server through a local SOCKS5 proxy on 127.0.0.1:9050.
The clipper polls the clipboard roughly every 500 ms, hunting for BIP39 seed phrases (12/24 words), Ethereum/Bitcoin WIF private keys, and recipient wallet addresses (legacy/P2SH/Taproot/Bech32 BTC, Tron, Monero). When it sees a recipient address it substitutes an attacker-controlled wallet address into the clipboard so the victim unwittingly pays the attacker, and it exfiltrates seeds/keys and screenshots over Tor. If the C2 returns an EVAL response the malware executes remote code, giving it a real backdoor. As a crude anti-analysis check it exits if Task Manager is running.
It is self-spreading: it drops a malicious Windows Shortcut (.lnk) onto USB storage devices, hides the legitimate DOC/XLSX/PDF files, and creates same-named LNK shortcuts whose arguments launch the worm component. Opening one checks whether the machine is already infected and only fetches the payload (cfile staging via /stub.php) from a remote server if absent. Persistence is two indefinite scheduled tasks — one for USB propagation, one for the stealer/clipper.
.lnk creation = worm propagation) — both are high-fidelity. (2) Block/alert on the published SHA256 worm-component hashes and .onion C2 set in §4 / §10 (Microsoft IOC table). (3) Hunt Q3 for a process connecting to the local SOCKS5 proxy 127.0.0.1:9050 and Q4 for the bundled Tor binary ugate.exe. Escalate any hit and pivot across the chain on the same host.Source Review & Web Hunter Notes
| Tier | Source | Key Finding | Carry |
|---|---|---|---|
| 1 · Vendor research | Microsoft Security Blog (2026-06-17) — "Crypto clipper uses Tor, worm-like propagation for persistence & control" | Full TTP write-up + IOC table: 16 worm SHA256 hashes, 10 .onion C2, filenames ugate.exe / cfile, endpoints /route.php /recvf.php /stub.php, SOCKS5 127.0.0.1:9050, two scheduled tasks, clipboard regex targets, detection names | yes |
| 1 · News of record | The Hacker News (2026-06) — "Microsoft Details Windows Clipper" | WSH + ActiveX launches bundled Tor; clipboard polled ~500ms; address substitution; screenshots over Tor; EVAL RCE; exits if Task Manager running; USB worm hides DOC/XLSX/PDF and drops same-named LNKs; scheduled-task persistence | yes |
| 2 · News | BleepingComputer / CoinDesk (2026-06-19) | Active since Feb 2026; financial-theft focus on crypto users; no installer / no IP-based C2 = lightweight stealthy backdoor; portable Tor + local SOCKS5 | yes |
Decisions: Unlike most fresh malware drops, Microsoft published a full atomic IOC set (hashes + .onion + filenames + endpoints) — so this pack is both IOC-keyed and behavior-keyed. We lead with the published atomics (block the 16 hashes, alert the 10 onions) and back them with durable behavioral hunts on the WSH/Tor/SOCKS5/LNK-worm chain, because the actor can trivially re-roll hashes and rotate onions. Every atomic in §4/§10 traces to the Microsoft IOC table; hunt artifacts (behaviors, paths, ports) are labelled separately.
Hunt Brief & Attack Chain
Working hypothesis: A user mounts an infected USB device (or runs an existing infection) and double-clicks a legitimate-looking shortcut. The hidden LNK argument invokes wscript/cscript/mshta against a bundled WSH/JS payload, which checks for prior infection, fetches cfile via /stub.php if needed, launches the portable Tor client (ugate.exe) bound to a local SOCKS5 proxy (127.0.0.1:9050), and registers two scheduled tasks. The clipper then polls the clipboard, substitutes wallet addresses, captures screenshots, and beacons to an .onion C2 over Tor — executing EVAL commands as a backdoor. Meanwhile the worm component re-arms any newly attached USB media with same-named LNKs.
| Step | Behavior | Telemetry | Hunt Angle |
|---|---|---|---|
| 1 · Delivery (USB) | User opens a same-named .lnk on removable media; LNK arg launches a script host | ProcessRollup2 (LNK/explorer parent), CommandLine | Q1 (WSH from removable/temp); N1 (LNK on USB root) |
| 2 · Execution (WSH/ActiveX) | wscript/cscript/mshta runs the bundled JS/VBS payload | ProcessRollup2 | Q1, Q2 (script host spawning curl/Tor) |
| 3 · Payload fetch | Only if not already infected: download cfile via /stub.php | NetworkConnectIP4, DnsRequest, PeFileWritten | Q2 (curl egress); §10 endpoint strings |
| 4 · Tor proxy launch | Bundled portable Tor (ugate.exe) listens / connects on 127.0.0.1:9050 | ProcessRollup2, NetworkConnectIP4, NetworkListenIP4 | Q3 (SOCKS5 127.0.0.1:9050), Q4 (ugate.exe) |
| 5 · Persistence | Two indefinite scheduled tasks (worm + stealer) | ProcessRollup2 (schtasks.exe), AsepValueUpdate, RegGenericValueUpdate | Q6 (schtasks/Run key from script host) |
| 6 · Theft / clipper | ~500ms clipboard polling; wallet-address substitution; screenshots | limited native EDR; correlate process + egress | Q3/Q4 (egress); §9 IOA (clipboard API) |
| 7 · Worm spread | Hide DOC/XLSX/PDF, drop same-named .lnk on each USB | PeFileWritten/file-write, ProcessRollup2 | Q5 (mass .lnk creation) |
| C2 · Backdoor | Beacon to .onion over Tor; EVAL → remote code | NetworkConnectIP4 (to 9050) | Q3; Containment §14 |
Hunt hypotheses (fidelity-ordered)
- H1 (high): A script host (
wscript/cscript/mshta) launches from a removable-drive root or a temp path → Q1. Near-zero benign baseline. - H2 (high): Mass creation of
.lnkfiles by a single process in a short window (USB re-arming) → Q5. - H3 (high): Any process connecting to a local SOCKS5 proxy at
127.0.0.1:9050(or 9150) → Q3 — strong Tor-tunneling signal. - H4 (high): Execution of the bundled Tor binary
ugate.exe, or a known worm-component SHA256 → Q4 (IOC-keyed). - H5 (medium): A WSH/script host spawning
curl.exe/certutilfor an outbound fetch → Q2 (payload staging). - H6 (medium): Scheduled-task or Run-key persistence created by a script host (the two indefinite tasks) → Q6.
Consolidated IOC Table
| Type | Value | Conf | Action | Context / Source |
|---|---|---|---|---|
| SHA256 (TI) | 7630debd35cac6b7d58c4427695579b3e3a8b1cc462f523234cd6c698882a68c | high | block | Worm component — MS IOC table (1 of 16; full set §10) |
| SHA256 (TI) | a7abf1d9d6686af1cefcd60b17a312e7eb8cfe267def1ec34aeab6128c811630 | high | block | Worm component — MS IOC table (2 of 16) |
| Filename (TI) | ugate.exe | high | detect | Bundled portable Tor binary — MS IOC table |
| Filename (TI) | cfile | medium | hunt | C2 payload download staging file — MS IOC table |
| .onion (TI) | cgky6bn6ux5wvlybtmm3z255igt52ljml2ngnc5qp3cnw5jlglamisad.onion | high | detect | Tor hidden-service C2 — MS IOC table (1 of 10; full set §10) |
| .onion (TI) | gfoqsewps57xcyxoedle2gd53o6jne6y5nq5eh25muksqwzutzq7b3ad.onion | high | detect | Tor hidden-service C2 — MS IOC table (2 of 10) |
| URI path (TI) | /route.php · /recvf.php · /stub.php | high | hunt | C2 beacon / screenshot upload / payload download — MS IOC table |
| Network (TI) | 127.0.0.1:9050 (local SOCKS5 proxy) | high | detect | Local Tor SOCKS5 routing — MS IOC table |
| Persistence (TI) | Two indefinite scheduled tasks (worm + stealer) | medium | hunt | Scheduled-task persistence — MS write-up |
| Behavior (hunt) | wscript/cscript/mshta launched from removable media or %TEMP% | high | detect | USB LNK → WSH execution (hunt artifact) |
| Behavior (hunt) | Mass creation of same-named .lnk files on USB roots | high | detect | Worm propagation (hunt artifact) |
| Behavior (hunt) | ~500ms clipboard polling + wallet-address substitution | medium | hunt | Clipper core (hunt artifact; limited EDR visibility) |
| Detection name (TI) | Trojan:Win32/CryptoBandits.A/.B · Trojan:JS/CryptoBandits.A/.B | high | enrich | Microsoft Defender signatures — MS write-up |
Affected Surface & Telemetry Matrix
| Surface | Required Telemetry | Priority | Gap Risk |
|---|---|---|---|
| Removable-media → script-host execution | Process tree + parent + CommandLine + image path (ProcessRollup2 / SyntheticProcessRollup2) | Critical | Low — standard sensor |
| LNK-worm file propagation | File-write events for .lnk with writing-process context (PeFileWritten / file-write feed) | High | Med — PeFileWritten is PE-only; .lnk may need the broader file-write feed |
| Tor SOCKS5 loopback tunneling | Outbound connect w/ process context to 127.0.0.1:9050/9150 (NetworkConnectIP4, NetworkListenIP4) | High | Med — loopback connections not always captured; verify in tenant |
| Bundled Tor binary / worm hashes | Process exec w/ SHA256HashData + FileName (ProcessRollup2) | High | Low — IOC-keyed; actor can re-roll hashes |
| Payload-staging egress | DNS + outbound IP w/ process context (DnsRequest, NetworkConnectIP4) | Medium | Med — .onion resolves inside Tor, not via host DNS; catch the curl fetch / Tor entry |
| Scheduled-task / Run-key persistence | schtasks.exe exec + ASEP registry (AsepValueUpdate, RegGenericValueUpdate) | Medium | Low — standard sensor |
| Clipboard polling / address swap | Clipboard-API access (Custom IOA) — little native EDR telemetry | Medium | GAP — clipboard reads are largely invisible; rely on process + egress + IOA |
ATT&CK Mapping
| Tactic | Technique | Observed Behavior | Query / Control |
|---|---|---|---|
| Initial Access / Lateral Movement | T1091 — Replication Through Removable Media | Malicious same-named .lnk on USB devices; worm re-arms each drive | Q1, Q5; N1 |
| Execution | T1059.005 / .007 — Visual Basic / JavaScript (WSH) | wscript/cscript/mshta runs the bundled JS/VBS payload; EVAL RCE | Q1, Q2 |
| Defense Evasion | T1027 — Obfuscated Files or Information | Obfuscated script logic; random 5-char folder/script names; ActiveX launch | Q1; §9 IOA |
| Defense Evasion / Discovery | T1057 — Process Discovery | Clipper exits if Task Manager (taskmgr.exe) is running (anti-analysis) | §9 IOA; behavioral |
| Collection | T1115 — Clipboard Data | ~500ms clipboard polling for seeds/keys; wallet-address substitution | §9 IOA; Q3/Q4 egress |
| Collection | T1113 — Screen Capture | Screenshots captured and exfiltrated over Tor | Q3; §9 IOA |
| Command & Control | T1090.003 — Multi-hop Proxy (Tor) | Portable Tor client + local SOCKS5 127.0.0.1:9050 polling .onion C2 | Q3, Q4 |
| Persistence | T1053.005 / T1547.001 — Scheduled Task / Run Key | Two indefinite scheduled tasks (worm + stealer); ASEP persistence | Q6; N4; Containment §14 |
| Exfiltration | T1048.002 — Exfil Over Asymmetric Encrypted Non-C2 | Seeds/keys/screenshots uploaded over Tor via /recvf.php | Q3 |
Native Audit-Log Hunts
| Hunt | Source | Logic | Response |
|---|---|---|---|
| N1 · LNK on USB root | Sysmon EID 11 (FileCreate), USN journal, removable-drive audit | New .lnk files appearing at the root of removable drives, especially same-named as hidden DOC/XLSX/PDF originals | Quarantine media; correlate Q1/Q5 on same host |
| N2 · Script-host launch tree | Sysmon EID 1 / Security 4688 | wscript.exe/cscript.exe/mshta.exe with a parent of explorer.exe and a command line referencing a removable-drive or %TEMP% path | Investigate; pairs with Q1 |
| N3 · Tor / SOCKS5 loopback | Windows firewall / netstat / WFP audit | A non-browser process listening on or connecting to 127.0.0.1:9050 (or 9150); presence of a portable Tor binary | Block; correlate Q3/Q4 |
| N4 · Persistence after USB | Security 4698 (task created), autoruns, Run keys | Two new indefinite scheduled tasks or Run-key values created shortly after a script-host launch from removable media | Remove tasks; pivot Q6 + N2 on same host |
| N5 · Defender detection sweep | Microsoft Defender / MDE alert feed | Hits on Trojan:Win32/CryptoBandits.A/.B, Trojan:JS/CryptoBandits.A/.B, "Suspicious JavaScript process", "Possible data exfiltration using Curl" | Triage as confirmed CryptoBandits; run full chain hunt |
CrowdStrike LogScale CQL Hunt Queries
SyntheticProcessRollup2. The clipboard read itself is largely invisible to EDR — these hunt the surrounding chain (USB→WSH execution, LNK-worm spread, Tor/SOCKS5 tunneling, the bundled Tor binary / worm hashes, payload staging, and persistence). Q4 is IOC-keyed (re-roll-prone); Q1/Q3/Q5 are durable behavioral hunts.Looks for: wscript/cscript/mshta whose image or command line references a removable-drive root or a temp path. Accomplishes: catches the USB-LNK → WSH execution that bootstraps CryptoBandits — almost no benign baseline.
// HUNT: WSH script host launched from removable media / temp (CryptoBandits USB-LNK bootstrap) // MITRE: T1091, T1059.005/.007, T1027 | CONF: high FP: low COST: low // REQUIRES: ProcessRollup2 with CommandLine + ImageFileName + ParentBaseFileName // FALSE POSITIVES: rare admin logon scripts run from a network/temp staging path // TUNING: allow-list known IT script paths; tighten ParentBaseFileName=explorer.exe for USB-open only #event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/ | FileName=/^(wscript|cscript|mshta)\.exe$/i | CommandLine=/(\\Device\\Harddisk(Volume)?[0-9]|^[D-Zd-z]:\\[^\\]+\.(lnk|js|vbs|hta)|\\Windows\\Temp\\|\\AppData\\Local\\Temp\\)/i | table([@timestamp, ComputerName, UserName, ParentBaseFileName, FileName, CommandLine, ImageFileName, SHA256HashData], limit=200) | sort(@timestamp, order=desc)
Looks for: a WSH/script host as the parent of a download LOLBin. Accomplishes: catches the "fetch cfile via /stub.php if not already infected" stage. FP: some legit installers script curl — scope by parent script host + uncommon destinations.
// HUNT: WSH script host spawning a download LOLBin (CryptoBandits payload staging via /stub.php) // MITRE: T1059.005/.007, T1105 | CONF: high FP: low-med COST: low // REQUIRES: ProcessRollup2 with ParentBaseFileName + CommandLine // FALSE POSITIVES: software-management scripts that legitimately invoke curl/bitsadmin // TUNING: pivot to NetworkConnectIP4 on same aid; flag CommandLine containing stub.php / cfile #event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/ | ParentBaseFileName=/^(wscript|cscript|mshta)\.exe$/i | FileName=/^(curl|certutil|bitsadmin|powershell|pwsh)\.exe$/i | table([@timestamp, ComputerName, UserName, ParentBaseFileName, FileName, CommandLine, SHA256HashData], limit=200) | sort(@timestamp, order=desc)
Looks for: any non-browser process making a loopback connection to the default Tor SOCKS5 ports. Accomplishes: the highest-fidelity C2 signal — CryptoBandits routes all exfil through 127.0.0.1:9050. FP: Tor Browser / sanctioned Tor tooling — allow-list those images.
// HUNT: Loopback connection to a local Tor SOCKS5 proxy (CryptoBandits Tor C2 tunnel) // MITRE: T1090.003, T1048.002 | CONF: high FP: low-med COST: low // REQUIRES: NetworkConnectIP4 with RemoteAddressIP4 + RemotePort + ContextBaseFileName // FALSE POSITIVES: Tor Browser / firefox.exe, sanctioned privacy tooling // TUNING: allow-list approved Tor clients; correlate ContextBaseFileName with Q1/Q4 on same aid #event_simpleName=NetworkConnectIP4 | RemoteAddressIP4=/^127\.0\.0\.1$/ | in(RemotePort, values=[9050, 9150]) | ContextBaseFileName!=/^(tor|firefox|torbrowser)\.exe$/i | groupBy([ComputerName, ContextBaseFileName, RemoteAddressIP4, RemotePort], function=([count(aid, as=conns), collect([UserName])])) | sort(conns, order=desc)
Looks for: execution of the named bundled Tor binary ugate.exe or any of the published worm-component SHA256 hashes. Accomplishes: direct IOC match (Microsoft IOC table). Note: hashes are trivially re-rolled — keep the behavioral hunts (Q1/Q3/Q5) as the durable backstop.
// HUNT: CryptoBandits bundled Tor binary or known worm-component hash (MS IOC table) // MITRE: T1090.003, T1091 | CONF: high FP: low COST: low // REQUIRES: ProcessRollup2 with FileName + SHA256HashData // FALSE POSITIVES: unrelated legitimate file coincidentally named ugate.exe (verify hash) // TUNING: append additional SHA256 from the MS IOC table (full set in §10) as they publish #event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/ | FileName=/^ugate\.exe$/i OR SHA256HashData=/^(7630debd35cac6b7d58c4427695579b3e3a8b1cc462f523234cd6c698882a68c|a7abf1d9d6686af1cefcd60b17a312e7eb8cfe267def1ec34aeab6128c811630|23c1e673f315dafa14b73034a90dd3d393a984451ff6601b8be8142be6487b43|cf9fc891ea5ca5ecd8113ef3e69f6f52ff538b6cccbdaa9559106fc72bc6da30)$/i | table([@timestamp, ComputerName, UserName, ParentBaseFileName, FileName, CommandLine, ImageFileName, SHA256HashData], limit=200) | sort(@timestamp, order=desc)
Looks for: a single process writing many .lnk files in a short window — the worm re-arming a USB device with same-named shortcuts. FP: Office/installer pinning or roaming-profile sync can churn shortcuts — triage by burst tightness and removable-path targeting.
// HUNT: Burst of .lnk file creation by one process (CryptoBandits USB worm re-arming) // MITRE: T1091, T1027 | CONF: high FP: medium COST: low // REQUIRES: file-write feed (FileWritten/PeFileWritten) with ContextBaseFileName + TargetFileName // FALSE POSITIVES: installers / shortcut-pinning, roaming-profile shortcut sync // TUNING: raise threshold per env; favor TargetFileName on removable roots; correlate Q1 on same aid #event_simpleName=/PeFileWritten|FileWritten|NewExecutableWritten/ | TargetFileName=/\.lnk$/i | groupBy([ComputerName, ContextBaseFileName], function=([count(TargetFileName, as=lnk_count), collect([TargetFileName], limit=25)])) | test(lnk_count >= 8) | sort(lnk_count, order=desc)
Looks for: schtasks.exe (or Run-key writes) parented by a WSH script host — the two indefinite tasks CryptoBandits installs for the worm and stealer. FP: legitimate logon-script task creation — scope to script-host parents and correlate with Q1.
// HUNT: schtasks / Run-key persistence created by a WSH script host (CryptoBandits dual tasks) // MITRE: T1053.005, T1547.001 | CONF: medium FP: medium COST: low // REQUIRES: ProcessRollup2 with ParentBaseFileName + CommandLine // FALSE POSITIVES: enterprise logon scripts that register scheduled tasks // TUNING: pair with Q1 hit on same aid; inspect /create task name and action for ugate.exe / wscript #event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/ | ParentBaseFileName=/^(wscript|cscript|mshta)\.exe$/i | FileName=/^(schtasks|reg)\.exe$/i | CommandLine=/(\/create|\\CurrentVersion\\Run)/i | table([@timestamp, ComputerName, UserName, ParentBaseFileName, FileName, CommandLine, SHA256HashData], limit=200) | sort(@timestamp, order=desc)
Looks for: hosts where a suspicious WSH script host ran on the same endpoint that also shows long-lived script-host processes — CryptoBandits exits if taskmgr.exe is running, so the clipper only persists when Task Manager is absent. Use: a triage/scoping pivot, not a standalone alert.
// HUNT: Persistent WSH script-host activity on hosts (CryptoBandits clipper anti-analysis context) // MITRE: T1057, T1059.005/.007 | CONF: medium FP: medium COST: low // REQUIRES: ProcessRollup2 with FileName + CommandLine // FALSE POSITIVES: legitimate long-running scripted automation // TUNING: scope to hosts also returning Q1/Q3/Q4 hits; review CommandLine for .js/.vbs payloads #event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/ | FileName=/^(wscript|cscript|mshta)\.exe$/i | CommandLine=/\.(js|vbs|hta|wsf)/i | groupBy([ComputerName, FileName], function=([count(aid, as=runs), collect([CommandLine], limit=10)])) | test(runs >= 3) | sort(runs, order=desc)
CrowdStrike Custom IOA Recommendations
| IOA Name | Field Patterns | Benign Exclusions | Deployment Path |
|---|---|---|---|
| WSH from removable media | Image *\(wscript|cscript|mshta).exe; CommandLine *.lnk/.js/.vbs/.hta on a removable-drive root or *\Temp\* | Allow-list sanctioned IT logon/automation script paths | Endpoint Security → Custom IOA → Process Creation (Detect+Block) |
| Loopback Tor SOCKS5 egress | Network connect to 127.0.0.1 port 9050/9150; initiating image != approved Tor client | Tor Browser / firefox.exe and any sanctioned privacy tooling excluded | Custom IOA → Network Connection (Detect, then Block after baseline) |
| Bundled Tor binary execution | Image FileName ugate.exe or matching published worm SHA256 | Verify hash before block; remove if a legit app reuses the name | Custom IOA → Process Creation + IOC Management hash block |
| Mass .lnk creation on USB | Single writing process creating many *.lnk on a removable-drive root in a short window | Installers / shortcut-pinning excluded; threshold tuned per fleet | Custom IOA → File Write (Detect / hunt) |
Machine-Readable IOC Appendix
Grouped IOC Quick-Copy
All atomics below are from the Microsoft Security Blog IOC table (2026-06-17): 16 worm-component SHA256, 10 .onion C2, filenames, and C2 URI paths. Behavioral signatures and a version/host audit follow. Every value traces to that published source.
type,value,action,severity,expiration,description,tags sha256,7630debd35cac6b7d58c4427695579b3e3a8b1cc462f523234cd6c698882a68c,prevent,critical,2027-06-19,CryptoBandits worm component (MS IOC),campaign:CryptoBandits sha256,a7abf1d9d6686af1cefcd60b17a312e7eb8cfe267def1ec34aeab6128c811630,prevent,critical,2027-06-19,CryptoBandits worm component (MS IOC),campaign:CryptoBandits sha256,23c1e673f315dafa14b73034a90dd3d393a984451ff6601b8be8142be6487b43,prevent,critical,2027-06-19,CryptoBandits worm component (MS IOC),campaign:CryptoBandits sha256,cf9fc891ea5ca5ecd8113ef3e69f6f52ff538b6cccbdaa9559106fc72bc6da30,prevent,critical,2027-06-19,CryptoBandits worm component (MS IOC),campaign:CryptoBandits sha256,100407796028bf3649752d9d2a67a0e4394d752eb8de86daa42920e814f3fae8,prevent,critical,2027-06-19,CryptoBandits worm component (MS IOC),campaign:CryptoBandits sha256,d14b80cbd1a19d4ad0473a0661297f8fdf598e81ff6c4ab24e212dcad2e54b3f,prevent,critical,2027-06-19,CryptoBandits worm component (MS IOC),campaign:CryptoBandits sha256,9d90f54ae36c6c5435d5b8bed40faf54cc91f6db28574a6310b5ffaeb0362e96,prevent,critical,2027-06-19,CryptoBandits worm component (MS IOC),campaign:CryptoBandits sha256,67fc5cf395e28294bbb91ed0e954fdf2e80ebd9119022a115a42c286dc8bacf5,prevent,critical,2027-06-19,CryptoBandits worm component (MS IOC),campaign:CryptoBandits sha256,0020d23b0f9c5e6851a7f737af73fd143175ee47054931166369edd93338538a,prevent,critical,2027-06-19,CryptoBandits worm component (MS IOC),campaign:CryptoBandits sha256,35a6bc44b176a050fd6824904b7604f0f45b0fdfa26bf9500b9e05973b387cfd,prevent,critical,2027-06-19,CryptoBandits worm component (MS IOC),campaign:CryptoBandits sha256,c824630154ac4fdfce94ded01f037c305eab51e9bef3f493c60ff3184a640502,prevent,critical,2027-06-19,CryptoBandits worm component (MS IOC),campaign:CryptoBandits sha256,d43bf94f0cb0ab97c88113b7e07d1a4024d1610617b5ad05882b1dbab89e15ba,prevent,critical,2027-06-19,CryptoBandits worm component (MS IOC),campaign:CryptoBandits sha256,b2777b73a4c33ac6a409d475057843be6b5d32262ef28a1f1ff5bb52e3834c5f,prevent,critical,2027-06-19,CryptoBandits worm component (MS IOC),campaign:CryptoBandits sha256,7787a9a7d8ae393aa32f257d083903c4dc9b97a1e5b0458c4cd480d4f3cb5b05,prevent,critical,2027-06-19,CryptoBandits worm component (MS IOC),campaign:CryptoBandits sha256,f3b54984caca95fd496bcfe5d7db1611b08d2f5b7d250b43b430e5d76393f9e0,prevent,critical,2027-06-19,CryptoBandits worm component (MS IOC),campaign:CryptoBandits sha256,20db98af3037b197c8a846dbf17b87fc6f049c3e0d9a188f9b9a74d3916dd5e1,prevent,critical,2027-06-19,CryptoBandits worm component (MS IOC),campaign:CryptoBandits
# CryptoBandits Tor hidden-service C2 (Microsoft IOC table, 2026-06-17) cgky6bn6ux5wvlybtmm3z255igt52ljml2ngnc5qp3cnw5jlglamisad.onion gfoqsewps57xcyxoedle2gd53o6jne6y5nq5eh25muksqwzutzq7b3ad.onion he5vnov645txpcv57el2theky2elesn24ebvgwfoewlpftksxp4fnxad.onion lyhizqy2js2eh6ufngkbzntouiikdek5zsdj3qwa22b4z6knpqorgiad.onion j3bv7g27oramhbxxuv6gl3dcyfmf44qnvju3offdyrap7hurfprq74qd.onion shinypogk4jjniry5qi7247tznop6mxdrdte2k6pdu5cyo43vdzmrwid.onion 7goms4byw26kkbaanz5a5u5234gusot7rp5imzc3ozh66wwcvmcudjid.onion facebookwkhpilnemxj7asaniu7vnjjbiltxjqhye3mhbshg7kx5tfyd.onion wt26llpl5k6gok3vnaxmucwgzv2wk3l7nuibbh25clghrtus3p5ctsid.onion ijzn3sicrcy7guixkzjkib4ukbiilwc3xhnmby4mcbccnsd7j2rekvqd.onion # C2 endpoints: /route.php (beacon) /recvf.php (screenshot upload) /stub.php (payload) # Local Tor SOCKS5 proxy: 127.0.0.1:9050 Bundled Tor binary: ugate.exe Staging file: cfile
wscript/cscript/mshta launched from a removable-drive root or %TEMP% with a .lnk/.js/.vbs/.hta argument WSH script host spawning curl/certutil/bitsadmin to fetch a payload (cfile via /stub.php) Non-browser process connecting to a local Tor SOCKS5 proxy at 127.0.0.1:9050 (or 9150) Execution of bundled portable Tor binary ugate.exe (verify against published SHA256) Single process creating many same-named .lnk files on a removable drive (USB worm re-arming) schtasks /create or Run-key write parented by wscript/cscript/mshta (two indefinite tasks) Clipboard polled ~every 500ms; recipient wallet address substituted with attacker address Clipper terminates when taskmgr.exe (Task Manager) is detected running (anti-analysis)
# Microsoft Defender detection names (MS write-up): # Trojan:Win32/CryptoBandits.A / .B # Trojan:JS/CryptoBandits.A / .B # "Suspicious JavaScript process" | "Possible data exfiltration using Curl" # Windows - find a listener/connection on the Tor SOCKS5 port: netstat -ano | findstr "127.0.0.1:9050" # Windows - list the two suspect scheduled tasks (review actions for wscript / ugate.exe): schtasks /query /fo LIST /v | findstr /i "wscript cscript ugate" # Windows - surface hidden originals + rogue shortcuts on a mounted USB (read-only review): dir /a:h E:\ & dir E:\*.lnk # Clipboard-targeted assets at risk: BIP39 12/24-word seeds, ETH/BTC WIF keys, # BTC legacy(1)/P2SH(3)/Taproot(bc1p)/Bech32(bc1q), Tron(T..), Monero(4../8..)
Detection Validation Gates
| Gate | Check | Pass Criteria |
|---|---|---|
| Telemetry ready | Confirm ProcessRollup2 retains CommandLine + ParentBaseFileName, the file-write feed carries .lnk writes with ContextBaseFileName, and NetworkConnectIP4 captures loopback connections | Fields populated fleet-wide; loopback connects visible in a test |
| Benign baseline | Run Q1/Q3 over a 30-day lookback in a clean environment | Zero hits after IT-script and Tor-Browser exclusions — promote to IOA |
| Positive test | Lab: launch a benign wscript from a USB root and a benign client to 127.0.0.1:9050 (a local listener) — never the live malware | Q1 and Q3 fire; lineage / port captured correctly |
| IOC freshness | Load the 16 SHA256 + 10 onion into IOC Management; confirm Q4 matches a planted test hash | Hash block active; onions in watchlist; recheck MS blog for additions |
| Promotion | Move Q1/Q3 to Custom IOA Detect+Block; Q4 to hash block; Q5 to Detect | FP rate < 1/week sustained before Block mode |
Hardening — Tiered & Deployable
CryptoBandits is delivered by removable media and executed through Windows Script Host, so the highest-leverage controls are USB access control and disabling / constraining WSH. Platforms touched: Windows endpoints, AD/Intune policy, and network egress (Tor). Mitigations reference MITRE M-codes.
- Block/curtail USB mass-storage on standard endpoints — M1042 (Disable or Remove Feature). Intune/GPO device-install restrictions or Falcon USB Device Control; deny autorun. Removable media is the worm's only spread vector.
- Disable Windows Script Host where not required — M1042. Set
HKLM\SOFTWARE\Microsoft\Windows Script Host\Settings\Enabled = 0(and the WOW6432Node mirror). Kills thewscript/cscriptexecution path. - Enable ASR rules — M1042. "Block JavaScript/VBScript from launching downloaded executable content" and "Block executable content from email/webmail/USB"; "Block process creations from PSExec/WMI" as defense-in-depth.
- Push the published IOCs — M1031 (Network Intrusion Prevention). Block the 16 SHA256 in Falcon IOC Management and the 10
.onion/ Tor egress at the proxy (§10).
- Block Tor at the perimeter — M1037 (Filter Network Traffic). Deny known Tor entry/guard nodes and reject loopback SOCKS5 from non-sanctioned apps; alert on 127.0.0.1:9050.
- Default LNK / script handlers to a viewer, not the interpreter — M1042. Constrain double-click execution of
.js/.vbs/.htavia file-association policy; consider blockingmshta.exewith WDAC. - PowerShell Constrained Language Mode + script-block logging — M1038 / M1040. Raises cost of the payload-staging stage and improves Q2 evidence.
- Set USB drives to read-only where business-justified — M1042. A read-only mount stops the worm from re-arming media even if a host is infected.
- Application allowlisting (WDAC / AppLocker enforce) — M1038. Deny script-interpreter execution from user-writable / removable paths and unsigned binaries like
ugate.exe. - Egress allow-listing for sensitive hosts — M1037. On crypto-handling / finance endpoints, default-deny outbound and permit only approved destinations — breaks Tor C2.
- User education for crypto workflows — M1017 (User Training). Always re-verify a pasted wallet address against the source before sending; never plug in untrusted USB media.
Deployable Playbooks
Playbook A · Disable WSH + block JS/VBS-from-USB ASR (Windows, PowerShell)
# 1. Disable Windows Script Host (both views) - kills wscript/cscript execution New-Item "HKLM:\SOFTWARE\Microsoft\Windows Script Host\Settings" -Force | Out-Null Set-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows Script Host\Settings" Enabled 0 -Type DWord New-Item "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows Script Host\Settings" -Force | Out-Null Set-ItemProperty "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows Script Host\Settings" Enabled 0 -Type DWord # 2. ASR: block JS/VBScript from launching downloaded executable content (GUID d3e037e1-3eb8-44c8-a917-57927947596d) Add-MpPreference -AttackSurfaceReductionRules_Ids d3e037e1-3eb8-44c8-a917-57927947596d -AttackSurfaceReductionRules_Actions Enabled # ASR: block untrusted/unsigned executables from USB (b2b3f03d-6a65-4f7b-a9c7-1c7ef74a9ba4) Add-MpPreference -AttackSurfaceReductionRules_Ids b2b3f03d-6a65-4f7b-a9c7-1c7ef74a9ba4 -AttackSurfaceReductionRules_Actions Enabled # Verify: Get-MpPreference | Select -Expand AttackSurfaceReductionRules_Ids
Playbook B · Restrict USB mass-storage & deny autorun (GPO / registry)
# Deny installation of removable storage device classes (Intune / GPO: Device Installation Restrictions) # HKLM\SOFTWARE\Policies\Microsoft\Windows\DeviceInstall\Restrictions DenyRemovableDevices = 1 # Disable Autorun/Autoplay on all drives: # HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer NoDriveTypeAutoRun = 0x000000FF # 255 = disable autorun on every drive type # Optional: force removable drives read-only (StorageDevicePolicies) # HKLM\SYSTEM\CurrentControlSet\Control\StorageDevicePolicies WriteProtect = 1 # Apply: gpupdate /force
Playbook C · Hunt & remove the two scheduled tasks + Tor binary (PowerShell)
# Find scheduled tasks whose action runs a script host or ugate.exe
Get-ScheduledTask | Where-Object {
($_.Actions.Execute -match 'wscript|cscript|mshta|ugate')
} | Select-Object TaskName, TaskPath, @{n='Run';e={$_.Actions.Execute}}
# Remove a confirmed-malicious task (replace name after review):
# Unregister-ScheduledTask -TaskName "<BadTaskName>" -Confirm:$false
# Locate the bundled Tor binary and any cfile staging artifact:
Get-ChildItem -Path C:\Users -Recurse -Include ugate.exe,cfile -EA SilentlyContinue |
Select-Object FullName, Length, LastWriteTime
# Check for a listener on the Tor SOCKS5 port:
Get-NetTCPConnection -LocalPort 9050 -EA SilentlyContinue | Select LocalAddress,State,OwningProcess
Containment Runbook
| Phase | Actions | Owner | Evidence |
|---|---|---|---|
| Isolate | Network-contain the host in Falcon on a confirmed Q1/Q3/Q4 hit; physically remove any attached USB media; do not power off (preserve volatile clipboard/Tor state) | SOC L2 | Containment timestamp; Q1/Q3/Q4 event rows |
| Triage | Pull the process tree from the script-host launch: identify the LNK parent, the WSH payload, ugate.exe, the 127.0.0.1:9050 connection, and the two scheduled tasks; collect the worm SHA256 seen | SOC L2 | Process/file/network tree; schtasks export; Q1–Q6 rows |
| Eradicate | Remove both scheduled tasks, ugate.exe, cfile, and dropped scripts/LNKs; kill the clipper + Tor processes; restore hidden DOC/XLSX/PDF originals on affected media; scan every USB used on the host | IR | Task/file removal log; media scan results |
| Recover | Treat all crypto assets touched on the host as compromised: move funds from any wallet whose seed/key may have been clipboard-handled to a freshly generated wallet from a clean device; rotate exchange creds/2FA; re-image if EVAL backdoor execution is confirmed | IR + user | Wallet migration record; cred-rotation log |
| Harden | Disable WSH and restrict USB fleet-wide (§12); block the 16 hashes + 10 onions; promote Q1/Q3 IOAs to Detect+Block | Detection Eng | Policy coverage; IOA + IOC enabled |
Detection Coverage Map
| Technique | Behavior | CQL | IOA | Coverage |
|---|---|---|---|---|
| T1091 | USB LNK delivery / worm spread | Q1, Q5 | IOA-1, IOA-4 | Good + N1 media audit |
| T1059.005/.007 | WSH/JS execution of payload | Q1, Q2, Q7 | IOA-1 | Good |
| T1105 | Payload staging (cfile via /stub.php) | Q2 | — | Partial LOLBin-dependent |
| T1090.003 | Tor SOCKS5 C2 tunnel | Q3, Q4 | IOA-2, IOA-3 | Good |
| T1053.005 / T1547.001 | Scheduled-task / Run-key persistence | Q6 | — | Partial + N4 |
| T1115 | Clipboard theft / address swap | — | — | GAP invisible to EDR; cover via process + egress + user training |
| T1113 / T1048.002 | Screenshot capture & Tor exfil | Q3 | IOA-2 | Partial egress-keyed |
| T1057 | Task Manager anti-analysis check | Q7 | — | Partial correlation pivot only |
Validation gates: (1) confirm ProcessRollup2 retains CommandLine/ParentBaseFileName and the file-write feed captures .lnk; (2) Q1/Q3 return zero hits in a 30-day benign lookback after IT-script and Tor-Browser exclusions; (3) load the 16 hashes + 10 onions into IOC Management and confirm Q4 matches a planted test hash; (4) lab-validate Q1/Q3 with benign harnesses — never the live malware; (5) promote Q1/Q3 to Custom IOA Detect+Block (target FP < 1/week). The clipboard read/address-swap step is an accepted detection gap — mitigated by WSH/USB hardening and user re-verification of pasted addresses.
Hunt Summary Ticket
TITLE: Hunt - CryptoBandits (Trojan:Win32/CryptoBandits crypto clipper / Tor backdoor / USB LNK worm)
SEVERITY: High (active ITW since Feb 2026; financial theft via wallet-address swap; self-spreading)
SCOPE: Windows endpoints, especially any mounting removable media or handling crypto assets
HYPOTHESIS: An infected USB LNK launches WSH (wscript/cscript/mshta) -> bundled Tor (ugate.exe) +
local SOCKS5 127.0.0.1:9050 -> polls .onion C2; clipper swaps wallet addresses and
exfiltrates seeds/keys/screenshots over Tor; worm re-arms USB media; two scheduled
tasks persist. EDR sees the WSH execution, LNK-worm writes, Tor egress, and hashes.
QUERIES RUN: Q1 WSH from removable/temp (IOA) | Q2 WSH -> curl staging | Q3 loopback SOCKS5 9050 (IOA) |
Q4 ugate.exe / worm SHA256 (IOC) | Q5 mass .lnk creation (IOA) | Q6 schtasks/Run persistence |
Q7 persistent WSH anti-analysis pivot
+ Native N1-N5 (LNK on USB, WSH tree, Tor/SOCKS5, persistence, Defender sweep)
DO FIRST: Block the 16 SHA256 + 10 .onion (MS IOC table); hunt Q1 and Q5 - escalate any hit
FINDINGS: <pending analyst execution>
GAPS: Clipboard read / wallet-address swap is invisible to EDR (covered via WSH/USB harden + training)
ACTIONS: Disable WSH; restrict USB + autorun; ASR JS/VBS-from-USB; block Tor egress; remove the two
scheduled tasks + ugate.exe; migrate any clipboard-handled wallets from a clean device
OWNER: HuntPack
VERSION: v0.1 - 2026-06-19
Changelog
table() calls now carry an explicit row limit: the default is 200 and truncation is silent, so a capped result was indistinguishable from a complete one. Atomic-IOC sweeps (filters over 5+ hashes or C2 IPs) use limit=max so a wide infection is never silently under-scoped; behavioural hunts use limit=200, where exceeding the cap indicates the query needs tuning. Where present, event names that do not exist in the Falcon data model were corrected (e.g. ServiceInstalled is a Sysmon concept, not a Falcon event; ElfFileWritten is ELFFileWritten) — such queries could never return a row. No detection logic, fields, or IOCs changed.References
| Tier | Source | Used For |
|---|---|---|
| 1 | Microsoft Security Blog — Crypto clipper uses Tor, worm-like propagation (2026-06-17) | Full TTP write-up + IOC table: 16 worm SHA256, 10 .onion C2, ugate.exe/cfile, /route.php /recvf.php /stub.php, 127.0.0.1:9050, scheduled tasks, clipboard targets, Defender names |
| 1 | The Hacker News — Microsoft Details Windows Clipper | WSH+ActiveX Tor launch, ~500ms clipboard polling, address substitution, EVAL RCE, Task Manager anti-analysis, USB worm hides DOC/XLSX/PDF + drops same-named LNKs |
| 2 | BleepingComputer · CoinDesk (2026-06-19) | Active since Feb 2026; crypto-user financial-theft focus; no installer / no IP-based C2; portable Tor + local SOCKS5 = lightweight stealthy backdoor |
HuntPack v0.1 · CryptoBandits (Trojan:Win32/CryptoBandits crypto clipper / Tor backdoor / USB LNK worm) · Generated 2026-06-19 · Defensive use only — no malware code. Every atomic IOC traces to the Microsoft Security Blog IOC table (2026-06-17); behavioral hunts cover the WSH/Tor/SOCKS5/LNK-worm chain and are durable against hash/onion rotation. Validate field names (especially the loopback-network and file-write feeds) in your tenant before promoting any query to alerting.