SharkLoader / StrikeShark — Multi-Stage Cobalt Strike Loader

Espionage-oriented intrusion set exploiting internet-facing apps to side-load a stealthy loader that deploys Cobalt Strike Beacon · tracked by Kaspersky (Securelist), June 2026
Threat
SharkLoader (StrikeShark)
Severity
ACTIVE C2
Type
Loader → Cobalt Strike / espionage
Access
Exploit public-facing app / dropper
Version
v0.1 · 2026-06-29
Author
HuntPack
Confidence
High (vendor-attributed)
01

Executive Summary

SharkLoader is a previously undocumented, multi-stage loader whose only job is to stand up a Cobalt Strike Beacon on a compromised host. Kaspersky tracks the campaign as StrikeShark and assesses the operator as a Chinese-speaking actor with low confidence (no code/infra overlap with known groups). Targeting is broad — a diplomatic organization in Indonesia, government bodies in Taiwan, and software-development firms plus other entities across Hong Kong, Lebanon, Syria, Colombia, North Macedonia, Nepal, and Serbia — consistent with espionage/information-gathering.

Initial access is primarily exploitation of internet-facing applications (ProxyLogon Exchange, SharePoint, Openfire, GeoServer, F5 BIG-IP, FortiOS, Zimbra, Apache Shiro) dropping a webshell, plus malicious droppers masquerading as installers (GoogleUpdateStepup.exe, AnyConnect…predeploy, AutoUpdate.exe). The loader uses DLL side-loading — a legitimate SystemSettings.exe loads a malicious SystemSettings.dll — then "perfect DLL hijacking" against loader internals, Blowfish/AES decryption of staged modules (DscCoreR.mui, SyncRes.dat), reflective in-memory PE loading, Microsoft Detours/MinHook API hooking (PPID spoofing to svchost.exe, ETW patching, direct NT syscall stubs), and a zlib-compressed Beacon executed in memory.

Persistence is multi-pronged: COM-created scheduled tasks masquerading as OneDrive Standalone Update Task / MicrosoftUpdateTask… / Edgeupdate, and a CurrentVersion\Run value named MFUpdate pointing at a copied SystemSettings.exe. Hands-on-keyboard follows: AD/privileged-group enumeration and credential theft via procdump on LSASS and ntdsutil "ifm".

Defender priority: The cleanest catches are SystemSettings.exe running anywhere other than System32\ImmersiveControlPanel (side-load tell), web-server processes (w3wp/java/tomcat) spawning shells/recon (T1190), the MFUpdate Run-key and masqueraded SYSTEM scheduled tasks, and the LSASS/NTDS dumping commands. Virtual-patch the exposed edge apps first — that closes the front door the whole chain depends on.

02

Source Review & Web Hunter Notes

TierSourceKey FindingCarry Fwd
1 · VendorKaspersky / Securelist — "StrikeShark: a new campaign involving a custom SharkLoader and Cobalt Strike Beacon"Primary analysis: full loader chain, DLL side-load, API hooking, persistence, exploited CVEs, IOCs (MD5, C2), recon/cred-dump commands, ATT&CKyes
2 · PressThe Hacker News — "New SharkLoader Malware Deploys Cobalt Strike in StrikeShark"Victimology, delivery via internet-facing apps + droppers, low-confidence Chinese-speaking attributionpartial
2 · PressHelp Net Security — "Mystery hackers use novel SharkLoader dropper…"Targeting of governments / software developers; espionage assessmentpartial

Atomic IOCs below (MD5 hashes, four C2 domains) are from the Securelist indicator set. The exploited CVEs are the actor's known entry vectors — confirm patch state on any matching internet-facing service. Behavioral tells (SystemSettings side-load, scheduled-task masquerade, MFUpdate Run-key) are the durable detections; hashes/domains will rotate.

03

Hunt Brief & Attack Chain

Hunt hypotheses (fidelity-ordered)

  1. H1 (high): SystemSettings.exe is running from a path other than ...\ImmersiveControlPanel\ → DLL side-load. T1574.002.
  2. H2 (high): A web-server / app process (w3wp, java, tomcat, openfire) spawned a shell or recon binary → public-facing-app exploitation. T1190.
  3. H3 (high): A CurrentVersion\Run value named MFUpdate exists → StrikeShark persistence. T1547.001.
  4. H4 (high): A file matching a Securelist hash executed/was written. Atomic.
  5. H5 (high): A host resolved a known StrikeShark C2 domain. T1071.001.
  6. H6 (medium): A SYSTEM scheduled task was created masquerading as Edge/OneDrive/Update and runs SystemSettings.exe. T1053.005 + T1036.004.
  7. H7 (medium): LSASS or NTDS credential theft via procdump/comsvcs/ntdsutil ifm. T1003.
  8. H8 (medium): Privileged-group / AD enumeration burst. T1087.002 + T1069.002.
  9. H9 (medium): SharkLoader encrypted-module artifacts (DscCoreR.mui, SyncRes.dat) written to disk. T1027.

Attack chain

StepBehaviorTelemetryHunt Angle
1 · Initial AccessExploit internet-facing app (ProxyLogon/Openfire/etc.) → webshell, or dropper masq. installerProcessRollup2 (web-svc children)Q2
2 · DeployCopy SystemSettings.exe out of ImmersiveControlPanel; stage encrypted modulesProcessRollup2, FileCreateInfoQ3, Q10
3 · Side-loadSystemSettings.exe loads malicious SystemSettings.dll; reflective Beacon in memoryProcessRollup2 (anomalous path)Q1
4 · PersistenceMFUpdate Run-key + masqueraded SYSTEM scheduled tasksAsepValueUpdate, ProcessRollup2 (schtasks)Q9, Q8
5 · C2Cobalt Strike Beacon → C2 domains (ETW patched, PPID spoof)DnsRequest, NetworkConnectIP4Q5
6 · ActionsAD recon, LSASS/NTDS credential theft, lateral movementProcessRollup2Q6, Q7
04

Consolidated IOC Table

All values published by Kaspersky/Securelist. Hashes are MD5 as published; C2 domains rotate — treat as perishable. Behavioral tells are the durable layer.

TypeValueConfActionContext
domainconnect-microsoft.comhighdetectBeacon C2
domainms-record.comhighdetectBeacon C2
domainms-record.tophighdetectBeacon C2
domainms-tray.tophighdetectBeacon C2
md59c872a0d5d5a38950e8b9ac9b488be3fhighdetectSharkLoader DLL
md5aa3086be652c8b20b0b29b2730d57119highdetectSharkLoader DLL
md5a514d1bb62d7916475946fe7c07ac0aahighhuntEncrypted DscCoreR.mui (Beacon)
md59cbd560f820c95d7c38342cd558cb5c6highhuntEncrypted SyncRes.dat (hooking)
md5c559cc68986933200fd5d9e4388e2f58highdetectInstaller
md5b3352b42432dedc4a519f011dc8b5d5ahighdetectDropper
md524fcebdeecba65004fdb0923763d74fdhighdetectDropper
md51f65544978b8ea0e745e573b8ee9684bhighdetectLebanon dropper
filenameSystemSettings.dll / DscCoreR.mui / SyncRes.dathighhuntside-load + encrypted modules
regkey...\CurrentVersion\Run → "MFUpdate"highhuntpersistence value name
taskEdge\Edgeupdate / OneDrive Standalone Update Task / MicrosoftUpdateTaskUser…highhuntmasqueraded SYSTEM tasks
05

Affected Surface & Telemetry Matrix

SurfaceRequired TelemetryPriorityGap Risk
Internet-facing servers (Exchange/SharePoint/Openfire/GeoServer/F5/FortiOS/Zimbra)ProcessRollup2 on the host; appliance logs for non-Windows edgeCriticalHigh — appliances (F5/FortiOS) have no Falcon sensor
Windows servers / workstationsProcessRollup2 / SyntheticProcessRollup2CriticalLow
Registry autorunAsepValueUpdate / RegGenericValueUpdateHighLow
Domain Controllers (NTDS theft)ProcessRollup2 (ntdsutil)HighLow
DNS / egressDnsRequest, NetworkConnectIP4MedMed — Beacon may use IP-only / DoH
In-memory Beacon (reflective PE, ETW patched)EDR memory/behavioral detectionsMedHigh — ETW patching defeats some sensors; rely on side-load/persistence tells
06

ATT&CK Mapping

TacticTechniqueObserved BehaviorCoverage
Initial AccessT1190 Exploit Public-Facing ApplicationProxyLogon / Openfire / GeoServer / F5 / FortiOS / Zimbra / ShiroQ2
Initial AccessT1566 Phishing (dropper w/ decoy PDF)Masq. installersQ4
Defense EvasionT1574.002 DLL Side-LoadingSystemSettings.exe loads malicious SystemSettings.dllQ1
Defense EvasionT1036.005 / T1036.004 MasqueradingLegit names + masqueraded task namesQ1, Q8
Defense EvasionT1027 / T1140 Obfusc. / Deobfusc.Blowfish/AES modules, MZ header removalQ10
Defense EvasionT1562.006 Indicator Blocking (ETW)EtwEventWrite stubbedGap (memory)
Defense EvasionT1055.001 / T1134 Injection / PPID SpoofReflective PE, PPID → svchostGap (memory)
PersistenceT1547.001 Run Keys (MFUpdate)HKCU\...\RunQ9
PersistenceT1053.005 Scheduled TaskEdge/OneDrive/Update masquerade tasksQ8
Credential AccessT1003.001 / T1003.003 LSASS / NTDSprocdump lsass, ntdsutil ifmQ6
DiscoveryT1087.002 / T1069.002 Account / Group Enumnet group, dsquery, Get-ADGroupMemberQ7
Command & ControlT1071.001 Web Protocols (Beacon)Cobalt Strike → C2 domainsQ5
07

Native Audit-Log Hunts (non-CQL)

  • Edge-app patch state: Inventory internet-facing Exchange/SharePoint/Openfire/GeoServer/F5/FortiOS/Zimbra/Shiro for the CVEs in §1; any unpatched, internet-exposed instance is an open door. (Playbook P1.)
  • IIS / web logs: Hunt for webshell access patterns and POSTs to anomalous .aspx/.jsp under wwwroot/custerr; correlate with w3wp.exe spawning cmd.
  • Windows Security 4698 (task created): Review scheduled tasks named like Edge/OneDrive/MicrosoftUpdate that execute a binary outside System32.
  • Windows Security 4688 / Sysmon 1: SystemSettings.exe with a parent that is not the shell, or running from ProgramData/AppData.
  • DC event 4662 / NTDS: Watch for ntdsutil "ifm" outside sanctioned backup windows.
  • Proxy/NGFW: Beacon callbacks to the four C2 domains and look-alike ms-* / connect-microsoft domains.
08

CrowdStrike LogScale CQL Hunt Queries

Pick your tenant's cloud first — every "Open in Falcon" button below uses this selection.
Q1 · SystemSettings.exe side-load (wrong directory)
CONF HIGHFP LOWCOST LOW

Looks for: the legitimate SystemSettings.exe running from anywhere other than its real home (...\ImmersiveControlPanel\) — the SharkLoader DLL side-load signature.

// HUNT: SystemSettings.exe executing outside ImmersiveControlPanel (SharkLoader side-load)
// MITRE: T1574.002, T1036.005
// CONF: high  FP: low  COST: low | REQUIRES: ProcessRollup2
// FALSE POSITIVES: none expected — legit SystemSettings runs only from ImmersiveControlPanel
#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/
| FileName=/^SystemSettings\.exe$/i
| FilePath!=/\\ImmersiveControlPanel\\/i
| table([@timestamp, aid, ComputerName, UserName, FileName, FilePath, CommandLine, ParentBaseFileName, SHA256HashData], limit=200)
Q2 · Web-server process spawning shell / recon (T1190)
CONF MEDFP MEDCOST MED

Looks for: an internet-facing app process (IIS/Java/Tomcat/Openfire) spawning a shell or recon tool — classic post-exploitation of a public-facing app. FP: legit deployment/monitoring scripts run by app-pool identities — exclude sanctioned service accounts and maintenance windows.

// HUNT: Web-server process spawning recon/shell (public-facing-app exploitation)
// MITRE: T1190, T1059
// CONF: medium  FP: medium  COST: medium | REQUIRES: ProcessRollup2
// FALSE POSITIVES: legit admin scripts run by app pools / monitoring agents
// TUNING: exclude sanctioned deployment/monitoring accounts and known maintenance jobs
#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/
| ParentBaseFileName=/^(w3wp|httpd|java|javaw|tomcat\d*|openfire-service|sharepoint)\.exe$/i
| FileName=/^(cmd|powershell|whoami|systeminfo|ipconfig|net|net1|tasklist|nltest|quser|query|schtasks)\.exe$/i
| table([@timestamp, aid, ComputerName, UserName, ParentBaseFileName, FileName, CommandLine], limit=200)
Q3 · SystemSettings.exe copied out of ImmersiveControlPanel
CONF HIGHFP LOWCOST LOW

Looks for: a shell copying SystemSettings.exe into ProgramData/Identities/ADriveLogs — the observed deploy step.

// HUNT: SystemSettings.exe copied/staged via shell to a non-default dir
// MITRE: T1036.005, T1574.002
// CONF: high  FP: low  COST: low | REQUIRES: ProcessRollup2
#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/
| FileName=/^(cmd|powershell)\.exe$/i
| CommandLine=/(copy.{0,60}SystemSettings\.exe|SystemSettings\.exe.{0,60}(ProgramData|Identities|ADriveLogs))/i
| table([@timestamp, aid, ComputerName, UserName, CommandLine, ParentBaseFileName], limit=200)
Q4 · Securelist known-bad hashes
CONF HIGHFP LOWCOST LOW

Looks for: execution or write of any Kaspersky-published SharkLoader/dropper MD5. Atomic — promote to Custom IOC (see §10).

// HUNT: SharkLoader / StrikeShark known-bad hashes (Securelist MD5)
// MITRE: T1574.002
// CONF: high  FP: low  COST: low | REQUIRES: ProcessRollup2 / PeFileWritten
#event_simpleName=/ProcessRollup2|PeFileWritten|NewExecutableWritten/
| in(MD5HashData, values=["9c872a0d5d5a38950e8b9ac9b488be3f", "aa3086be652c8b20b0b29b2730d57119", "c559cc68986933200fd5d9e4388e2f58", "b3352b42432dedc4a519f011dc8b5d5a", "24fcebdeecba65004fdb0923763d74fd", "d98f568496512e4f98670c61c97cb07a", "1f65544978b8ea0e745e573b8ee9684b", "a514d1bb62d7916475946fe7c07ac0aa", "9cbd560f820c95d7c38342cd558cb5c6"])
| table([@timestamp, aid, ComputerName, FileName, FilePath, MD5HashData, SHA256HashData], limit=max)
Q5 · StrikeShark C2 DNS resolution
CONF HIGHFP LOWCOST LOW

Looks for: a host resolving one of the four published Beacon C2 domains. High-fidelity while infrastructure is live.

// HUNT: StrikeShark Cobalt Strike C2 domains
// MITRE: T1071.001
// CONF: high  FP: low  COST: low | REQUIRES: DnsRequest
#event_simpleName=DnsRequest
| DomainName=/^(connect-microsoft\.com|ms-record\.com|ms-record\.top|ms-tray\.top)$/i
| table([@timestamp, aid, ComputerName, DomainName, ContextBaseFileName], limit=200)
Q6 · LSASS / NTDS credential theft
CONF MEDFP MEDCOST LOW

Looks for: procdump/comsvcs against LSASS, or ntdsutil "ifm" NTDS extraction. FP: legit DC backups (ntdsutil) and admin crash-dump collection — exclude sanctioned backup hosts/windows and review the parent process.

// HUNT: LSASS/NTDS credential theft (procdump / comsvcs / ntdsutil ifm)
// MITRE: T1003.001, T1003.003
// CONF: medium  FP: medium  COST: low | REQUIRES: ProcessRollup2
// FALSE POSITIVES: legit DC backups (ntdsutil), admin procdump for debugging
// TUNING: exclude sanctioned backup windows / known admin hosts
#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/
| CommandLine=/(procdump.{0,40}lsass|comsvcs\.dll.{0,20}MiniDump|ntdsutil.{0,30}ifm|ntds.{0,12}create full)/i
| table([@timestamp, aid, ComputerName, UserName, FileName, CommandLine, ParentBaseFileName], limit=200)
Q7 · Privileged-group / AD enumeration burst
CONF MEDFP MEDCOST MED

Looks for: enumeration of Domain/Enterprise Admins and AD groups via net group, dsquery, or Get-ADGroupMember. FP: IT/AD admins and security tooling — scope to non-IT users or a webshell/Beacon parent; exclude admin jump hosts.

// HUNT: Privileged-group / AD enumeration burst (StrikeShark recon)
// MITRE: T1087.002, T1069.002
// CONF: medium  FP: medium  COST: medium | REQUIRES: ProcessRollup2
// FALSE POSITIVES: admin / IT discovery, security tooling
// TUNING: scope to non-IT users or webshell/Beacon parent; exclude admin jump hosts
#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/
| CommandLine=/(net\s+group\s+.{0,30}(domain admins|enterprise admins|domain controllers|organization management)|dsquery\s+group|Get-ADGroupMember)/i
| table([@timestamp, aid, ComputerName, UserName, CommandLine, ParentBaseFileName], limit=200)
Q8 · Masqueraded SYSTEM scheduled task
CONF MEDFP LOWCOST LOW

Looks for: schtasks /create registering an Edge/OneDrive/MicrosoftUpdate-named task that runs SystemSettings.exe. FP: genuine Microsoft updater tasks — those are created by TrustedInstaller/SYSTEM installers, not interactive shells; review the parent.

// HUNT: SYSTEM scheduled task masquerading as Edge/OneDrive/Update (StrikeShark persistence)
// MITRE: T1053.005, T1036.004
// CONF: medium  FP: low  COST: low | REQUIRES: ProcessRollup2
// TUNING: exclude genuine updater-task creation by TrustedInstaller/SYSTEM installers
#event_simpleName=/ProcessRollup2|SyntheticProcessRollup2/
| FileName=/^schtasks\.exe$/i
| CommandLine=/(Edgeupdate|OneDrive Standalone Update|MicrosoftUpdateTask|SystemSettings\.exe)/i
| table([@timestamp, aid, ComputerName, UserName, CommandLine, ParentBaseFileName], limit=200)
Q9 · Run-key "MFUpdate" persistence
CONF HIGHFP LOWCOST LOW

Looks for: a CurrentVersion\Run value named MFUpdate — the StrikeShark autorun.

// HUNT: Run-key "MFUpdate" persistence (-> SystemSettings.exe)
// MITRE: T1547.001
// CONF: high  FP: low  COST: low | REQUIRES: AsepValueUpdate / RegGenericValueUpdate
#event_simpleName=/AsepValueUpdate|RegGenericValueUpdate/
| RegObjectName=/\\CurrentVersion\\Run$/i
| RegValueName=/^MFUpdate$/i
| table([@timestamp, aid, ComputerName, UserName, RegObjectName, RegValueName, RegStringValue], limit=200)
Q10 · SharkLoader encrypted-module artifacts written
CONF MEDFP LOWCOST LOW

Looks for: the distinctive encrypted-module / side-load DLL filenames being written to disk.

// HUNT: SharkLoader encrypted-module / side-load artifacts written
// MITRE: T1027, T1574.002
// CONF: medium  FP: low  COST: low | REQUIRES: FileCreateInfo / PeFileWritten
// TUNING: pair with a SystemSettings.exe in the same directory
#event_simpleName=/PeFileWritten/
| TargetFileName=/\\(DscCoreR\.mui|SyncRes\.dat|GameInputInboxs32\.mui|SystemSettings\.dll)$/i
| table([@timestamp, aid, ComputerName, TargetFileName, ContextBaseFileName], limit=200)
09

CrowdStrike Custom IOA Recommendations

IOA NamePatternActionExclusions
SharkLoader — SystemSettings Side-LoadSystemSettings.exe image path not under \ImmersiveControlPanel\ (Q1)Detect → BlockNone — legit binary only runs from System32
StrikeShark — MFUpdate Run-KeyRun-key value name = MFUpdate (Q9)DetectNone expected
Web-Server Shell Spawnw3wp/java/tomcat/openfire spawning cmd/powershell/recon (Q2)Detect (high)Sanctioned deploy/monitoring accounts
LSASS/NTDS Dumpprocdump-lsass / ntdsutil ifm cmdline (Q6)Detect (high)Approved DC backup jobs / admin hosts

Promotion path: Q1 and Q9 are low-FP and structural — validate over 7–14 days, then promote to detect, escalate Q1 to block. Q4 hashes → Custom IOC Management (block). Q2/Q6/Q7 stay investigate-led until tuned against your baseline.

10

Machine-Readable IOC Appendix

One-click blocks for SOC tooling. Hashes (MD5) and C2 domains are Securelist-published; swap expirations to fit your policy.

Falcon IOC Management CSVbulk import
type,value,action,severity,expiration,description,tags
md5,9c872a0d5d5a38950e8b9ac9b488be3f,prevent,critical,2026-12-29,SharkLoader DLL,campaign:StrikeShark
md5,aa3086be652c8b20b0b29b2730d57119,prevent,critical,2026-12-29,SharkLoader DLL,campaign:StrikeShark
md5,c559cc68986933200fd5d9e4388e2f58,prevent,high,2026-12-29,StrikeShark installer,campaign:StrikeShark
md5,b3352b42432dedc4a519f011dc8b5d5a,prevent,high,2026-12-29,StrikeShark dropper,campaign:StrikeShark
md5,24fcebdeecba65004fdb0923763d74fd,prevent,high,2026-12-29,StrikeShark dropper,campaign:StrikeShark
md5,1f65544978b8ea0e745e573b8ee9684b,prevent,high,2026-12-29,StrikeShark dropper,campaign:StrikeShark
domain,connect-microsoft.com,detect,high,2026-09-29,StrikeShark Beacon C2,campaign:StrikeShark
domain,ms-record.com,detect,high,2026-09-29,StrikeShark Beacon C2,campaign:StrikeShark
domain,ms-record.top,detect,high,2026-09-29,StrikeShark Beacon C2,campaign:StrikeShark
domain,ms-tray.top,detect,high,2026-09-29,StrikeShark Beacon C2,campaign:StrikeShark
Behavioral Signatureshunt logic
[ SharkLoader / StrikeShark behaviors ]
- SystemSettings.exe running outside ...\ImmersiveControlPanel\
- SystemSettings.dll side-loaded next to a copied SystemSettings.exe
- w3wp/java/tomcat/openfire spawning cmd/powershell/recon (T1190)
- CurrentVersion\Run value named "MFUpdate"
- schtasks /create: Edgeupdate / OneDrive Standalone Update /
  MicrosoftUpdateTaskUser... running SystemSettings.exe as SYSTEM
- Encrypted modules on disk: DscCoreR.mui, SyncRes.dat,
  GameInputInboxs32.mui
- procdump -ma lsass / ntdsutil "ac i ntds" "ifm"
- Beacon: ETW patched (EtwEventWrite stub), PPID spoof to svchost
Named Malware / Toolingattribution
Campaign: StrikeShark (Kaspersky)
Actor:    Chinese-speaking (LOW confidence; no known overlap)
Loader:   SharkLoader (DLL side-load via SystemSettings.exe)
Payload:  Cobalt Strike Beacon (zlib shellcode, reflective PE)
Modules:  DscCoreR.mui (Beacon+MinHook), SyncRes.dat (API hooks)
Evasion:  Microsoft Detours + MinHook, ETW patch, NT syscall stubs,
          PPID spoof -> svchost.exe
Droppers: GoogleUpdateStepup.exe, AnyConnect...predeploy, AutoUpdate.exe
Edge-App Patch / Egress Auditprevent checklist
[ ] Exchange patched (CVE-2021-26855 ProxyLogon) & not EOL
[ ] SharePoint patched (CVE-2021-27076)
[ ] Openfire >= 4.7.5 (CVE-2023-32315)
[ ] GeoServer patched (CVE-2024-36401)
[ ] F5 BIG-IP patched (CVE-2023-46747)
[ ] FortiOS patched (CVE-2024-21762, CVE-2022-40684)
[ ] Zimbra patched (CVE-2022-27925); Shiro patched (CVE-2016-4437)
[ ] LSASS RunAsPPL / Credential Guard enabled
[ ] ASR "Block credential stealing from lsass.exe" enforced
[ ] Egress: block/alert C2 domains + look-alike ms-* / connect-microsoft
11

Detection Validation Gates

  • Telemetry ready: Confirm ProcessRollup2, AsepValueUpdate/RegGenericValueUpdate, DnsRequest, and FileCreateInfo/PeFileWritten flow from servers (incl. internet-facing) and DCs.
  • Benign baseline: Run Q2 (web-server children), Q6 (cred dump), and Q7 (AD recon) over 7–14 days; record sanctioned admin/backup/monitoring activity for exclusions before alerting.
  • Positive test: In a lab, copy SystemSettings.exe to C:\ProgramData and run it — confirm Q1 fires; add an MFUpdate Run value — confirm Q9 fires.
  • Promotion: Promote Q1/Q9 to detect (Q1 → block) only after a clean baseline. Hashes (Q4) → IOC Management block immediately.
12

Hardening — Tiered & Deployable

Immediate (this week — low risk)
  • Patch / virtual-patch the exposed edge apps for the CVEs in §1 (ProxyLogon, Openfire, GeoServer, F5, FortiOS, Zimbra, Shiro, SharePoint) — this closes the actor's primary entry. (MITRE M1051 Update Software / M1050 Exploit Protection.)
  • Enable LSASS protection — RunAsPPL and/or Credential Guard. (M1043 Credential Access Protection.)
  • ASR rule "Block credential stealing from lsass.exe" in enforce mode. (M1040 Behavior Prevention on Endpoint.)
Near term (1–4 weeks — pilot first)
  • WDAC/AppLocker: block SystemSettings.exe from running outside System32\ImmersiveControlPanel, and unsigned DLLs loading beside it. (M1038 Execution Prevention.)
  • Audit/alert scheduled-task creation (event 4698) for Edge/OneDrive/Update-named tasks; restrict who can create SYSTEM tasks. (M1028 / M1047 Audit.)
  • Egress filtering from the server tier; block/alert the C2 domains and look-alike ms-* domains. (M1037 Filter Network Traffic.)
  • Tiered admin model + LAPS to limit credential-theft blast radius. (M1026 Privileged Account Management.)
Strategic (1–3 months — architectural)
  • DMZ segmentation + WAF / reverse-proxy in front of all internet-facing apps; minimize direct exposure. (M1030 Network Segmentation / M1050.)
  • Reduce attack surface: retire EOL/legacy edge services (Shiro, old Zimbra/Openfire) and consolidate remote access behind phishing-resistant MFA. (M1042 / M1032.)
  • Disable/limit NTLM and enforce SMB signing to blunt post-dump lateral movement. (M1037 / M1027.)
13

Deployable Playbooks

P1 · Enable LSASS protection (RunAsPPL)

# Requires reboot. Validate on a pilot ring first.
New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa' `
  -Name 'RunAsPPL' -Value 1 -PropertyType DWord -Force
# Verify after reboot (expect event 12 in System log, WPP / LSASS protected):
Get-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa' -Name RunAsPPL

P2 · ASR — block credential stealing from LSASS (enforce)

Add-MpPreference -AttackSurfaceReductionRules_Ids `
  9e6c4e1f-7d60-472f-ba1a-a39ef669e4b2 -AttackSurfaceReductionRules_Actions Enabled
Get-MpPreference | Select-Object -ExpandProperty AttackSurfaceReductionRules_Ids

P3 · Audit MFUpdate Run-key and masqueraded tasks fleet-wide

# Run-key check
$rk = 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run'
if (Test-Path $rk) {
  (Get-ItemProperty $rk).PSObject.Properties |
    Where-Object { $_.Name -eq 'MFUpdate' -or $_.Value -match 'SystemSettings\.exe' } |
    Select-Object Name, Value
}
# Suspicious tasks running SystemSettings.exe outside System32
Get-ScheduledTask | ForEach-Object {
  $act = $_.Actions.Execute -join ';'
  if ($act -match 'SystemSettings\.exe' -and $act -notmatch 'System32') {
    [pscustomobject]@{ Task=$_.TaskName; Path=$_.TaskPath; Exec=$act }
  }
}

P4 · AppLocker — constrain SystemSettings.exe location

# Concept rule (deploy via GPO, pilot in Audit first):
# ALLOW SystemSettings.exe ONLY from %SYSTEM32%\ImmersiveControlPanel\
# DENY  SystemSettings.exe from any other path
# Review AppLocker 8003/8004 events for 14 days before switching to Enforce.
14

Containment Runbook

PhaseActionsOwnerEvidence
IsolateNetwork-contain the host in Falcon; for internet-facing servers, pull from the load balancer and preserve the webshell + SystemSettings directory. Do not reboot (in-memory Beacon).SOCRTR capture, process tree, loaded modules
EradicateRemove MFUpdate Run-key and masqueraded tasks; delete side-load dir + encrypted modules; block Securelist hashes (Q4) and C2 domains; remove webshells; patch the exploited app.IRRegistry/task diff, deleted-file hashes
Credential resetAssume LSASS/NTDS theft if Q6 fired or a DC was touched: force enterprise-wide password reset incl. krbtgt (twice), reset affected service accounts.IAM + IRkrbtgt reset log, account audit
Hunt-backSweep fleet with Q1–Q10; pivot on any host that resolved a C2 domain or ran SystemSettings outside System32; review web logs for the initial webshell + other exploited services.Threat HuntFleet query results, web logs
15

Detection Coverage Map

TechniqueBehaviorCQLIOACoverage
T1574.002SystemSettings side-loadQ1, Q10YesGood
T1190Public-facing-app exploitationQ2YesPartial (Windows hosts only)
T1036.005SystemSettings staged/copiedQ3Good
Atomic hashesKnown-bad filesQ4IOCGood
T1071.001Beacon C2 DNSQ5Good (while live)
T1003.001/.003LSASS / NTDS theftQ6YesPartial (FP-tuned)
T1087.002AD / group enumerationQ7Partial
T1053.005 / T1036.004Masqueraded SYSTEM taskQ8Good
T1547.001MFUpdate Run-keyQ9YesGood
T1055.001 / T1134Reflective PE, PPID spoofGap — in-memory; rely on side-load/persistence tells + EDR behavioral
T1562.006ETW patchingGap — defeats some log-based detection; catch upstream at side-load
Edge appliances (F5/FortiOS)Exploitation on non-Windows edgeGap — no Falcon sensor; use appliance logs + patch (§7, §12)

Coverage is strongest at the side-load, staging, persistence, and atomic-hash layers (low-FP, structural). Post-exploitation recon/cred-theft need environment tuning. The in-memory Beacon (reflective PE, ETW patch, PPID spoof) and non-Windows edge appliances are genuine gaps — defended by catching the side-load/persistence upstream, EDR memory detections, and patching/segmenting the edge.

16

Hunt Summary Ticket

TITLE:      SharkLoader / StrikeShark Cobalt Strike loader hunt
SEVERITY:   Critical — active espionage C2 (edge-app exploitation)
SCOPE:      Internet-facing servers, Windows servers/workstations, DCs
HYPOTHESIS: Actor exploits a public-facing app, side-loads SharkLoader
            via SystemSettings.exe, persists (MFUpdate Run-key +
            masquerade tasks), runs Cobalt Strike, dumps creds.
QUERIES:    Q1 side-load | Q2 web-svc shell | Q3 staging | Q4 hashes
            Q5 C2 DNS | Q6 LSASS/NTDS | Q7 AD recon | Q8 sched-task
            Q9 MFUpdate | Q10 modules
DO FIRST:   Q1, Q9, Q4 (lowest FP, structural/atomic) then Q5, Q8.
FINDINGS:   <record hosts / hashes / C2 hits / dumped creds here>
GAPS:       In-memory Beacon, ETW patch, non-Windows edge appliances.
ACTIONS:    Patch/virtual-patch edge apps; enable RunAsPPL + LSASS ASR;
            block Q4 hashes + C2; reset creds incl. krbtgt if DC touched.
OWNER:      HuntPack
VERSION:    v0.1 · 2026-06-29
17

Changelog

v0.32026-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.22026-06-29CQL syntax review (crowdstrike-logscale-v3): removed invalid FileCreateInfo event (Q10).
v0.12026-06-29Initial HuntPack from Kaspersky/Securelist StrikeShark analysis — 10 CQL queries, 4 Custom IOA recs, IOC appendix (Securelist MD5 + 4 C2 domains), tiered hardening, playbooks, containment runbook.
18

References

TierSourceUsed ForAccess Date
1 · VendorKaspersky Securelist — StrikeShark / SharkLoaderLoader chain, IOCs, exploited CVEs, persistence, recon/cred-dump TTPs, ATT&CK2026-06-29
2 · PressThe Hacker News — SharkLoader deploys Cobalt StrikeVictimology, delivery, attribution2026-06-29
2 · PressHelp Net Security — SharkLoader dropper vs governments / devsTargeting, espionage assessment2026-06-29
RefMITRE ATT&CK — T1574.002 DLL Side-LoadingTechnique mapping, mitigations2026-06-29