SocGholish (FakeUpdates) — JavaScript Loader & Access Broker

Compromised legitimate sites serve fake browser-update prompts → ZIP with an obfuscated JS loader run by wscript.exe → system profiling, WebDAV/SCF NTLM coercion, a Python backdoor, and hand-off to RansomHub affiliates. Defensive hunt & harden pack — no malicious code.
Threat
SocGholish · FakeUpdates · (Mustard Tempest / TA569)
Severity
RANSOMWARE PRECURSOR
Type
JS loader · access broker · drive-by
Leads to
RansomHub · Python backdoor · NTLM theft (WebDAV/SCF)
Delivery
Fake browser-update on compromised sites
Version
v0.4 · 2026-06-12
Author
HuntPack
01

Executive Summary

SocGholish (a.k.a. FakeUpdates, operated by TA569 / Mustard Tempest) is one of the longest-running drive-by access-broker operations. Victims browsing a compromised legitimate website are served a counterfeit browser-update prompt and download a ZIP containing a heavily-obfuscated JavaScript loader executed by wscript.exe. The loader profiles the host (whoami, net, nltest, systeminfo), and — depending on the operator's intent — deploys a Python-based backdoor, abuses WebDAV + Shell Command File (SCF) over SMB to coerce and harvest NTLM credentials, and hands off to ransomware affiliates.

In 2025 SocGholish's deployment directly facilitated RansomHub ransomware. RansomHub itself hasn't been observed on leak sites since March 2025, but the affiliates who deploy SocGholish's pre-encryption payloads remain active — left undetected these intrusions still progress toward ransomware. The durable detection target is the wscript.exe JS-loader chain and the recon/credential-coercion behaviors that follow it.

Defender priority: SocGholish is a ransomware precursor — treat any hit as a live pre-ransomware intrusion. Highest-fidelity signals: Q1 (wscript.exe running a .js from a browser-download path) and Q2 (recon binaries parented by wscript.exe). The WebDAV/SCF NTLM coercion (Q3) and Python backdoor (Q4) indicate the intrusion is escalating — escalate immediately.

02

Source Review & Web Hunter Notes

TierSourceKey FindingCarry
1 · Vendor researchTrend Micro — SocGholish facilitates RansomHubJS loader → recon → Python backdoor → RansomHub; WebDAV/SCF NTLM credential harvestyes
1 · Vendor researchRed Canary — SocGholish Threat Detectionwscript.exe JS loader chain; recon lineage; detection analyticsyes
2 · VendoreSentire / Darktrace — Socket Puppet / RansomHubPython backdoor archive; RansomHub affiliate hand-off; loader/C2 activityyes
2 · VendorLevelBlue / CyberpressFakeUpdates delivery mechanics; WebDAV/SCF over SMB credential abusepartial

Decisions: behavior-first (compromised-site infrastructure rotates constantly); detection anchored on the wscript.exe JS-loader lineage + recon + the newer WebDAV/SCF NTLM-coercion technique; framed as a ransomware precursor (RansomHub link), so hits are treated as active intrusions.

03

Hunt Brief & Attack Chain

Working hypothesis: A user on a compromised site downloads a fake-update ZIP; wscript.exe runs the obfuscated JS loader, which profiles the host, coerces NTLM via WebDAV/SCF, drops a Python backdoor, and stages affiliate hand-off toward ransomware.

StepBehaviorTelemetryHunt Angle
1 · Drive-byCompromised site → fake browser-update prompt → ZIP downloadProxy; file writeN1
2 · JS loaderwscript.exe runs an obfuscated .js from Downloads/TempProcessRollup2Q1
3 · Profilingwhoami / net / nltest / systeminfo parented by wscriptProcessRollup2Q2
4 · NTLM coercionWebDAV / SCF over SMB to harvest authenticationNetworkConnectIP4; file writeQ3
5 · BackdoorPython-based backdoor dropped/executedProcessRollup2Q4
6 · Hand-offC2 beacon; affiliate access → RansomHub deploymentNetworkConnectIP4/DnsRequestQ5 / Q6

Affected surface & telemetry

SurfaceRequired TelemetryPriorityGap Risk
Windows user endpointsProcess lineage + command line (ProcessRollup2)CriticalLow — standard sensor
NTLM / SMB egressNetworkConnectIP4 445; WebDAV (HTTP) telemetryHighMedium — external SMB/WebDAV
Drive-by deliveryProxy / SWG; browser-download path file writesMediumMedium — needs proxy logging
Ransomware follow-onProcess + service telemetry on servers/DCsHighLow — covered by ransomware detections
04

Consolidated IOC Table

SocGholish injects into thousands of compromised sites — domain/IP IOCs rotate constantly and age out fast. Behavior (the wscript JS-loader chain) is the durable signal. Copy-ready blocks in §9.
TypeValueConfActionContext
Behaviorwscript.exe runs *.js from Downloads/Temp (fake-update ZIP)highdetectJS loader execution — flagship signal
Behaviorwhoami/net/nltest/systeminfo parented by wscript.exehighdetectSocGholish host profiling
BehaviorWebDAV/SCF over SMB → NTLM coercion (outbound 445)mediumhuntCredential-harvest stage
Behaviorpython.exe backdoor dropped by wscriptmediumhuntRansomHub-affiliate backdoor
File*.zip → *.js named like Update/Chrome/EdgemediumhuntFake-update delivery artifact
05

ATT&CK Mapping

TacticTechniqueObserved BehaviorQuery / Control
Initial AccessT1189 — Drive-by CompromiseFake browser-update on a compromised siteN1; web filtering (§10)
ExecutionT1059.007 — JavaScript (wscript)Obfuscated JS loader run by wscript.exeQ1
DiscoveryT1087 / T1016 / T1082 — Account / network / system discoverywhoami, net, nltest, systeminfoQ2
Credential AccessT1187 — Forced Authentication (WebDAV/SCF)NTLM coercion over SMBQ3
Command & ControlT1071.001 — Web protocolsJS loader / Python backdoor C2 beaconQ4, Q5
Impact (downstream)T1486 — Data Encrypted (RansomHub)Affiliate hand-off to ransomwareQ6; ransomware detections
06

Native Audit-Log Hunts

HuntSourceLogicResponse
N1 · Fake-update ZIP downloadProxy / browser download historyZIP from a non-vendor site immediately after a "browser update" page; extracted .jsBlock domain; sweep host
N2 · wscript JS executionEID 4688 / Sysmon EID 1wscript.exe with a .js arg from \Downloads\ or \Temp\Isolate; pull the script (pairs with Q1)
N3 · NTLM coercionSecurity 4624/4625 (NTLM); proxy WebDAVOutbound NTLM auth to external hosts; WebDAV GET of an .scf/icon pathReset coerced creds; block egress
N4 · RansomHub precursorsEndpoint / DC process logsPost-SocGholish recon, RMM install, or pre-encryption staging on serversTreat as active ransomware intrusion
07

CrowdStrike LogScale CQL Hunt Queries

Pick your tenant's cloud first — every "Open in Falcon" button below uses this selection.
Field names validated against the Falcon event reference; process hunts include SyntheticProcessRollup2. Q1/Q2 are the strong keepers; the WebDAV/SCF and Python stages (Q3/Q4) vary per intrusion — correlate with a same-host Q1 hit.
Q1 · wscript.exe executing a .js from a browser-download path
CONF HIGHFP LOWCOST LOW

Looks for: wscript.exe/cscript.exe running a .js from Downloads/Temp. Accomplishes: catches the SocGholish loader at execution — the flagship signal.

// HUNT: SocGholish JS loader (wscript runs .js from a browser-download path)
// MITRE: T1189, T1059.007 | CONF: high  FP: low  COST: low
// FP NOTES: legit .js automation rarely runs from Downloads/Temp via wscript
#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/
| FileName=/^(wscript|cscript)\.exe$/i
| CommandLine=/\.js("|\s|$)/i
| CommandLine=/\\(Downloads|Temp|AppData\\Local\\Temp)\\/i
| table([@timestamp, ComputerName, UserName, ParentBaseFileName, CommandLine], limit=200)
Q2 · Recon binaries parented by wscript.exe
CONF HIGHFP LOWCOST LOW

Looks for: host-profiling binaries whose parent is wscript.exe. Accomplishes: catches SocGholish's recon stage — a script host has no business spawning nltest/systeminfo.

// HUNT: SocGholish host profiling (recon parented by wscript)
// MITRE: T1087, T1016, T1082 | CONF: high  FP: low  COST: low
// FP NOTES: script hosts rarely spawn nltest/systeminfo/whoami in normal use
#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/
| ParentBaseFileName=/^(wscript|cscript)\.exe$/i
| FileName=/^(whoami|nltest|systeminfo|net|net1|ipconfig|hostname|qwinsta|wmic)\.exe$/i
| table([@timestamp, ComputerName, UserName, ParentBaseFileName, FileName, CommandLine], limit=200)
Q3 · Outbound SMB / NTLM coercion (WebDAV + SCF)
CONF MEDFP MEDCOST MED

Looks for: outbound SMB (445) to an external host shortly after a Q1/Q2 hit (WebDAV/SCF NTLM coercion). FP: cloud SMB — exclude sanctioned CIDRs; correlate to same host.

// HUNT: SocGholish WebDAV/SCF NTLM coercion (outbound SMB to external host)
// MITRE: T1187 | CONF: medium  FP: medium  COST: medium
// TUNING: exclude RFC1918 + sanctioned cloud-SMB; correlate to a same-host Q1/Q2 hit
#event_simpleName=NetworkConnectIP4
| RemotePort=445
| RemoteAddressIP4!=/^(10\.|192\.168\.|172\.(1[6-9]|2[0-9]|3[01])\.|169\.254\.|127\.)/
| table([@timestamp, ComputerName, ContextBaseFileName, RemoteAddressIP4, RemotePort], limit=200)
Q4 · Python backdoor dropped by a script host
CONF MED-HIGHFP LOW-MEDCOST LOW

Looks for: python.exe parented by wscript/cscript/mshta, or running a script from a user-temp path. Accomplishes: catches the RansomHub-affiliate Python backdoor.

// HUNT: SocGholish Python backdoor
// MITRE: T1059.006, T1071.001 | CONF: med-high  FP: low-med  COST: low
// TUNING: legit python is common; require a script-host parent or temp-path script
#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/
| FileName=/^python[0-9.]*\.exe$/i
| (ParentBaseFileName=/^(wscript|cscript|mshta)\.exe$/i or CommandLine=/\\(Temp|AppData\\Local\\Temp)\\.+\.py/i)
| table([@timestamp, ComputerName, UserName, ParentBaseFileName, CommandLine], limit=200)
Q5 · Script host making outbound web connections (loader C2)
CONF MEDFP MEDCOST MED

Looks for: wscript/cscript initiating outbound web connections. Accomplishes: surfaces loader C2 beaconing. FP: some logon/admin scripts — correlate with Q1 + external destination.

// HUNT: SocGholish loader C2 beacon (script host outbound web)
// MITRE: T1071.001 | CONF: medium  FP: medium  COST: medium
// TUNING: exclude internal/admin-script destinations; correlate to Q1 on same aid
#event_simpleName=NetworkConnectIP4
| ContextBaseFileName=/^(wscript|cscript)\.exe$/i
| RemoteAddressIP4!=/^(10\.|192\.168\.|172\.(1[6-9]|2[0-9]|3[01])\.|169\.254\.|127\.)/
| table([@timestamp, ComputerName, ContextBaseFileName, RemoteAddressIP4, RemotePort], limit=200)
Q6 · RansomHub pre-encryption precursors (post-SocGholish)
CONF MEDFP MEDCOST LOW

Looks for: shadow-copy deletion / RMM install / mass file activity on a host with a recent SocGholish hit. Accomplishes: catches the escalation toward ransomware. FP: correlate strictly with a same-host Q1/Q2.

// HUNT: Ransomware precursor after SocGholish (recovery inhibition / RMM)
// MITRE: T1490, T1219 | CONF: medium  FP: medium  COST: low
// TUNING: scope to hosts with a recent Q1/Q2 hit; allow-list sanctioned RMM/backup admin
#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/
| CommandLine=/vssadmin(\.exe)?\s+delete\s+shadows|wmic\s+shadowcopy\s+delete|(screenconnect|anydesk|atera|splashtop|tightvnc)/i
| table([@timestamp, ComputerName, UserName, FileName, CommandLine], limit=200)
08

CrowdStrike Custom IOA Recommendations

IOA NameField PatternsBenign ExclusionsDeployment Path
SocGholish — wscript .js from Downloads/TempImage *\wscript.exe; CmdLine *.js + \Downloads\/\Temp\Rare legit JS automation from temp (allow-list)Endpoint Security → Custom IOA → Process Creation
SocGholish — recon parented by wscriptParent *\wscript.exe; Child nltest/systeminfo/whoami/net.exeNone expectedCustom IOA → Process Creation, Detect+Block
Q1 and Q2 are strong promotions (no benign baseline). Q3–Q6 stay hunt/investigate, correlated to a same-host loader hit.
09

Machine-Readable IOC Appendix

Grouped IOC Quick-Copy

One-click blocks for detection, proxy rules, and IOC import. Compromised-site infrastructure rotates constantly — behavior is the durable signal.

Falcon IOC Management CSVbulk import (seed)
type,value,action,severity,expiration,description,tags
domain,REPLACE_WITH_C2_DOMAIN,detect,high,2026-08-12,SocGholish loader/C2 (rotates fast),campaign:SocGholish
sha256,REPLACE_WITH_JS_LOADER_SHA256,detect,high,2026-09-12,SocGholish JS loader,campaign:SocGholish
sha256,REPLACE_WITH_PYBACKDOOR_SHA256,prevent,critical,2027-06-12,SocGholish Python backdoor,campaign:SocGholish
Behavioral Signaturesdetection logic
wscript.exe runs *.js from \Downloads\ or \Temp\ (fake-update ZIP loader)
whoami / nltest / systeminfo / net.exe parented by wscript.exe (host profiling)
Outbound SMB (445) to a public IP shortly after the loader (WebDAV/SCF NTLM coercion)
python.exe parented by wscript/cscript/mshta, or running a .py from %TEMP% (backdoor)
Recovery inhibition / RMM install on a host with a recent SocGholish loader hit (RansomHub precursor)
Fake browser-update ZIP named Update*/Chrome*/Edge* downloaded from a compromised site
Names / Linked Threatsattribution
SocGholish = FakeUpdates           # the JS loader / access-broker operation
Operator: TA569 / Mustard Tempest  # injects fake-update JS into compromised sites
Downstream: RansomHub (ransomware affiliate hand-off; quiet on leak sites since Mar-2025)
Adjacent fake-update clusters: Scarlet Goldfinch, Amber Albatross (see sibling packs)
Credential coercion: WebDAV + SCF (Shell Command File) over SMB -> NTLM theft
Hardening / Blockbreak the chain
# Cut the JS-loader chain at the endpoint:
Change default .js/.jse handler from WScript to Notepad (disable double-click execution)
ASR D3E037E1-3EB8-44C8-A917-57927947596D   # Block JS/VBScript launching downloaded executables
WDAC/AppLocker: block wscript/cscript for standard users
Block outbound SMB (445) from workstations to the internet (kills WebDAV/SCF NTLM coercion)
Web filtering + browser update via managed channels only (kills the fake-update lure)
10

Hardening — Tiered & Deployable

SocGholish needs wscript to run the .js and outbound SMB for NTLM coercion — removing those breaks the chain.

Immediate — Neuter the JS loader
  • Change the default .js/.jse handler from WScript to NotepadM1042. Double-clicking a fake-update .js opens it harmlessly instead of executing.
  • ASR: Block JS/VBScript from launching downloaded executablesM1042 (ID D3E037E1-3EB8-44C8-A917-57927947596D).
  • Block outbound SMB (445/139) from workstationsM1037. Kills WebDAV/SCF NTLM coercion (Q3).
  • Web filtering; browser updates via managed channels onlyM1021. Cuts the fake-update lure at delivery.
Near term — Constrain script hosts (pilot first)
  • WDAC/AppLocker: block wscript/cscript for standard usersM1038.
  • PowerShell + WSH script-block / AMSI loggingM1040 / M1049. Feeds Q1/N2.
  • SMB signing + disable NTLM to external; LDAP channel bindingM1037 / M1027. Blunts coerced-NTLM relay.
Strategic — Default-deny & ransomware readiness
  • Application allowlisting enterprise-wideM1038. Blocks unsigned loaders & Python backdoors.
  • Restrict/monitor RMM toolingM1038. Disrupts the RansomHub affiliate hand-off.
  • Immutable backups + ransomware IR runbookM1053. SocGholish is a ransomware precursor — be ready for the follow-on.
11

Containment Runbook

PhaseActionsOwnerEvidence
IsolateNetwork-contain the host; preserve the fake-update ZIP + .js loaderSOC L2Containment timestamp; Q1/Q2 events
TriagePull the wscript tree, recon output, any WebDAV/SCF egress + Python backdoor; assess how far toward ransomwareSOC L2Process tree; staging artifacts
EradicateRemove loader/backdoor + persistence; block C2; reset any NTLM-coerced credentialsIRRemoval log; cred reset
RecoverRebuild if a backdoor ran; rotate creds; verify no RMM/ransomware foothold spread to servers/DCsIR + ITRebuild ticket; lateral-movement review
HardenChange .js handler; ASR + block outbound SMB; promote Q1/Q2 IOAsDetection EngControl status; IOA enabled
12

Detection Coverage Map & Validation

TechniqueBehaviorCQLIOACoverage
T1189Fake-update drive-byGAP proxy/web filtering (N1)
T1059.007JS loader executionQ1IOA-1Good
T1087 / T1016 / T1082Host profilingQ2IOA-2Good
T1187WebDAV/SCF NTLM coercionQ3Partial correlate; needs egress visibility
T1059.006 / T1071.001Python backdoor / loader C2Q4, Q5Partial correlate to Q1
T1490 / T1219RansomHub precursorQ6Partial + ransomware detections

Validation gates: (1) confirm ProcessRollup2 w/ command line fleet-wide + SMB/proxy visibility for Q3/Q5; (2) baseline legit wscript automation; (3) lab-test a benign wscript benign.js from \Downloads\ (Q1) and a benign wscript→whoami (Q2); (4) promote Q1/Q2 to Custom IOA Detect+Block; keep Q3–Q6 as correlated hunts.

13

Hunt Summary Ticket

TITLE:        Hunt — SocGholish (FakeUpdates) JS loader / RansomHub precursor
SEVERITY:     High (ransomware precursor; access broker)
SCOPE:        Windows user endpoints browsing compromised sites
HYPOTHESIS:   Fake-update ZIP -> wscript runs obfuscated .js -> host profiling ->
              WebDAV/SCF NTLM coercion -> Python backdoor -> RansomHub affiliate hand-off.
QUERIES RUN:  Q1 wscript .js from Downloads (IOA) | Q2 recon parented by wscript (IOA) |
              Q3 outbound SMB/NTLM coercion | Q4 Python backdoor | Q5 script-host C2 |
              Q6 RansomHub precursor
              + Native N1-N4 (ZIP download, 4688 wscript, NTLM 4624/4625, ransomware precursors)
DO FIRST:     Q1, Q2 — treat any hit as an active pre-ransomware intrusion
FINDINGS:     <pending analyst execution>
GAPS:         Drive-by delivery + NTLM coercion need proxy/SMB telemetry
ACTIONS:      Change .js handler; ASR; block outbound SMB; promote Q1/Q2; ransomware readiness
OWNER:        HuntPack
VERSION:      v0.4 - 2026-06-12
14

Changelog

v0.42026-07-24CQL correctness pass. All table() calls now carry an explicit row limit: the default is 200 and truncation is silent, so a capped result was indistinguishable from a complete one. Atomic-IOC sweeps (filters over 5+ hashes or C2 IPs) use limit=max so a wide infection is never silently under-scoped; behavioural hunts use limit=200, where exceeding the cap indicates the query needs tuning. Where present, event names that do not exist in the Falcon data model were corrected (e.g. ServiceInstalled is a Sysmon concept, not a Falcon event; ElfFileWritten is ELFFileWritten) — such queries could never return a row. No detection logic, fields, or IOCs changed.
v0.32026-06-12Re-hunt + reformatted to the review-v2 gold layout (fixed left-sidebar scrollspy TOC, collapsible, cloud selector inside the CQL section, per-card Copy/Open-in-Falcon, Grouped IOC Quick-Copy grid, coverage+validation, .ticket). Refreshed from Trend Micro/Red Canary/eSentire: WebDAV+SCF NTLM coercion, Python backdoor, RansomHub affiliate hand-off (quiet since Mar-2025), wscript JS-loader + recon analytics. 6 CQL + 4 native hunts, 2 IOA candidates.
v0.12026-05-26Initial pack: SocGholish FakeUpdates JS loader overview + hunts. Pre-gold top-bar layout.
15

References

TierSourceUsed For
1Trend Micro — SocGholish facilitates RansomHubFull chain, WebDAV/SCF NTLM, Python backdoor, RansomHub
1Red Canary — SocGholish Threat Detectionwscript JS-loader lineage, recon analytics
2eSentire — Socket Puppet (RansomHub affiliates) · Darktrace — SocGholish to RansomHubPython backdoor archive; affiliate hand-off
2Cyberpress — WebDAV & SCF abuseNTLM credential-coercion technique

HuntPack v0.3 · SocGholish (FakeUpdates) · Generated 2026-06-12 · Defensive use only. Compromised-site infrastructure rotates constantly — these behavioral detections (wscript JS loader + recon + NTLM coercion) are the durable signal. Validate field names in your tenant before promoting any query.