MintsLoader Multi-Stage Loader

JavaScript and hidden PowerShell delivery · behavior-led CrowdStrike hunting, response, and hardening
Threat
MintsLoader
Type
Multi-stage PowerShell loader
Severity
High
Version
v0.1 Draft · 2026-09-05
Author
cybersecurity analyst
Confidence
High behavior confidence; tenant telemetry unverified
STATIC REVIEW PASSED
01

Executive Summary

What happened: Red Canary ranked MintsLoader ninth in its 2026 Threat Detection Report, based on activity affecting about two percent of its customers during 2025, and described continued use across KongTuke paste-and-run lures, SocGholish fake updates, and invoice-themed JavaScript delivery. Recorded Future independently documented the same loader family across multiple traffic-distribution and phishing paths, while Blackpoint Cyber reported a 2026 variant that changed its PowerShell obfuscation but retained core retrieval behavior. The family is a loader, not a single intrusion actor: a detection does not by itself attribute KongTuke, SocGholish, TAG-124, or any downstream payload.

How the loader works: the user launches JavaScript or pastes a command, Windows Script Host or an interactive shell starts hidden PowerShell, and the stage retrieves content from a request shaped as /1.php?s= before immediately executing it. Later PowerShell is encoded or compressed, attempts AMSI impairment, and checks video-controller, cache-memory, computer-system, and virtualization characteristics. The environment result and host identity help a server choose between a payload and a decoy. Documented variants use generated .top infrastructure, dynamically assembled destination values, and temporary .ps1 staging under Public Documents or AppData. Downstream payloads have included stealers and remote-access malware, but the payload mix changes by delivery cluster.

Why detection belongs in process lineage: Q01 combines hidden PowerShell, remote retrieval, immediate execution, and the durable request shape, making it more resilient than a hostname, hash, or filename. Q02 follows JavaScript-to-PowerShell lineage; Q03 exposes encoded or compressed PowerShell with AMSI-related tokens; Q04 tracks environment checks; Q05 hunts process-associated generated-domain lookups; and Q06 looks for user-writable script staging. Literal infrastructure rotates, script strings change between builds, and the current sources did not support a fresh, independently corroborated atomic IOC set. DNS context can also be broken by resolver, proxy, IPv6, or field-mapping differences.

Operational consequence: this pack is strongest as a behavior-led endpoint hunt paired with PowerShell Operational logs and approved proxy or web telemetry. Process command lines cannot prove the complete HTTP path, portable Falcon deletion semantics are not assumed, and script-block content exists only where Windows logging is enabled and securely collected. Q01 has a complete design-only alert package, but no query was parsed in a Falcon tenant, no benign baseline or positive fixture was run, no schedule was created, and no prevention control was enabled.

Defender priority: run Q01 over 30 days, verify every result's parent lineage and owner, then pivot on the same host through Q03–Q06 and approved proxy or PowerShell logs before containment.
PriorityWhy nowCoverage deliveredKey limitation
Find durable loader behavior before the payload changesCurrent 2026 technical reporting corroborates the evolving loader family6 CQL designs: 1 alert candidate and 5 huntsStatic review only; HTTP path, script-block, deletion, and DNS attribution need tenant evidence
02

Source and Claim Review

Seven current-run snapshots retain sanitized plain-text evidence only. All webpage text and indicator strings were treated as untrusted data; no source-supplied command, code, payload, destination, or instruction was executed.

IDPublisherTierIndependence groupAccessedStatus
S01Red CanaryT1red-canary2026-09-05T11:03:29Zsuccessful sanitized HTML extraction
S02Recorded Future Insikt GroupT1recorded-future2026-09-05T11:03:29Zsuccessful sanitized HTML extraction
S03Blackpoint CyberT1blackpoint-cyber2026-09-05T11:03:29Zsuccessful sanitized technical summary
S04Microsoft LearnT1microsoft2026-09-05T11:03:29Zsuccessful authoritative control summary
S05Microsoft LearnT1microsoft2026-09-05T11:42:00Zsuccessful authoritative control summary
S06Microsoft LearnT1microsoft2026-09-05T11:42:00Zsuccessful authoritative control summary
S07Microsoft LearnT1microsoft2026-09-05T11:42:00Zsuccessful authoritative control summary

Claim ledger

ClaimStatementSourcesConfidenceCaveat
C01Red Canary ranked MintsLoader ninth in its 2026 Threat Detection Report and observed it at about two percent of customers in the 2025 dataset.S01highnone
C02MintsLoader uses JavaScript and PowerShell in a multi-stage loader chain that can deliver credential stealers and remote-access payloads.S01, S02highnone
C03Observed initial access includes paste-and-run lures, fake browser updates, and invoice-themed JavaScript files.S01, S02, S03highnone
C04A durable retrieval pattern combines hidden PowerShell, remote content retrieval, immediate execution, and an HTTP path shaped as /1.php?s=<campaign>.S01, S02, S03highnone
C05Later PowerShell stages use encoding or obfuscation and attempt to bypass AMSI before executing additional logic.S01, S02highnone
C06The loader checks virtual-machine and system characteristics and passes host and environment values to command infrastructure.S01, S02highnone
C07MintsLoader infrastructure uses generated .top domains, so literal domain indicators are volatile.S01mediumnone
C08One documented variant staged a PowerShell file in a public documents directory and removed staged scripts after use.S02mediumvariant-specific
C09A 2026 variant changed PowerShell obfuscation while preserving the /1.php retrieval family pattern.S03mediumsingle incident dataset
C10Microsoft recommends application-control deployment through inventory, audit, tested pilots, and prepared recovery rather than immediate broad enforcement.S04highnone
C11Microsoft publishes ASR rules for potentially obfuscated scripts and for JavaScript or VBScript launching downloaded executable content, with stated Defender and AMSI prerequisites.S05highnone
C12Microsoft documents PowerShell script-block, module, and transcription logging and warns that captured content can contain sensitive data.S06highnone
C13Microsoft Defender Network Protection supports audit and enforcement modes for web-reputation-based controls but does not guarantee classification of every malicious destination.S07highnone
Contradictions and gaps: no current atomic IOC set was independently corroborated; URL-path visibility, script-block content, deletion semantics, and actor attribution remain outside the portable endpoint evidence.
03

Hunt Brief and Attack Chain

The chain follows initial user execution into staged PowerShell, defense evasion, environment checks, rotating infrastructure, and temporary script staging. Each hypothesis remains traceable to claims and a validation plan.

StepClaimsBehaviorPlatformDetection goal
1C03user launches a JavaScript lure or pastes a commandwindowsfind script-host or interactive-shell entry
2C04hidden PowerShell retrieves and immediately executes a remote stagewindowsidentify the durable loader command shape
3C05encoded PowerShell attempts AMSI impairmentwindowsfind defense-evasion staging
4C06loader performs virtual-machine and system discoverywindowscorrelate environment checks on the same host
5C07PowerShell resolves rotating .top infrastructurewindowsfind process-scoped generated-domain access
6C08temporary PowerShell staging is placed in a public user-writable pathwindowsfind variant-specific staging artifacts

Hypotheses

IDBehaviorTelemetryUseLookbackValidation
H01hidden PowerShell remote retrieval and immediate executionProcessRollup2, SyntheticProcessRollup2alert-candidate30d because loader executions may be single-shotrun an inert local command fixture that uses documentation-only URLs, then baseline approved PowerShell download-and-execute activity
H02Windows Script Host launching PowerShell retrievalProcessRollup2, SyntheticProcessRollup2hunt30d to capture intermittent lure executionexecute an inert signed test JavaScript that launches PowerShell to print a marker; baseline approved script-host lineages
H03obfuscated PowerShell with AMSI impairment indicatorsProcessRollup2, SyntheticProcessRollup2hunt14d to limit broad obfuscation volumeuse a harmless encoded marker without AMSI modification; separately baseline legitimate encoded PowerShell
H04environment and virtualization discoveryProcessRollup2, SyntheticProcessRollup2hunt14d for same-host correlation with loader queriesrun read-only WMI inventory commands on an isolated test host and baseline management tooling
H05PowerShell-associated generated .top domain lookupDnsRequesthunt7d because DNS volume and infrastructure volatility are highperform a DNS-only lookup to an analyst-controlled documentation domain and verify process attribution; baseline .top activity
H06user-writable PowerShell staging and cleanupProcessRollup2, SyntheticProcessRollup2hunt30d for low-frequency stagingexecute a benign marker script from an isolated test directory and baseline approved user-writable scripts

Affected surface and telemetry

Relevant surfaces are Windows endpoints where users can launch JavaScript, PowerShell, or pasted commands and where outbound web access is available. Portable coverage assumes Falcon process and DNS events with the named fields. Full URL paths need proxy or EDR web telemetry; deobfuscated script content needs protected PowerShell logging; file cleanup needs tenant-specific event semantics; DNS process attribution needs local verification.

Coverage boundaries

  • HTTP request-path matching for /1.php?s= requires proxy, web, or EDR URL telemetry with known fields; process command lines are only a partial view.
  • PowerShell script-block and deobfuscated-content fields are not assumed without tenant-specific ingestion.
  • Portable Falcon deletion-event semantics are not documented for this build, so rapid cleanup remains a forensic correlation step.
  • IPv6, proxy, and DNS resolver indirection can break endpoint-to-domain attribution.
  • Loader detection does not attribute activity to KongTuke, SocGholish, TAG-124, or any payload family.
04

Consolidated IOC Table

No atomic IP addresses, domains, URLs, or hashes were published by the accessible current sources with sufficient freshness and independent corroboration for inclusion as of 2026-09-05. Historical infrastructure was deliberately excluded.

Behavior over atomics: use the documented request shape, interpreter lineage, environment checks, generated-domain pattern, and user-writable staging only in the contextual hunts below.
05

ATT&CK Mapping

Every ATT&CK row is an analyst inference from source-backed behavior; it is not a vendor attribution statement.

TacticTechniqueNameBehaviorBasisSourcesClaims
ExecutionT1059.001PowerShellhidden PowerShell retrieves and executes staged contentanalyst inferenceS01, S02, S03C02, C04
ExecutionT1059.007JavaScript/JScriptJavaScript lure or stage launches PowerShellanalyst inferenceS01, S02C03
Defense EvasionT1027Obfuscated Files or Informationencoded and dynamically assembled PowerShell stagesanalyst inferenceS01, S02, S03C05, C09
Defense EvasionT1562.001Impair DefensesPowerShell attempts to set AMSI initialization failureanalyst inferenceS01, S02C05
DiscoveryT1497.001System Checksvideo, cache, and virtualization properties are checked before payload deliveryanalyst inferenceS01, S02C06
Command and ControlT1105Ingress Tool TransferPowerShell retrieves additional stages from rotating web infrastructureanalyst inferenceS01, S02, S03C04, C07
06

Native / Non-CQL Hunts

HuntLog sourceLogicResponse
PowerShell content reviewMicrosoft-Windows-PowerShell/Operational Event ID 4104Search protected script-block logs for the same time, host, and user as Q01 or Q03; review decoded content, AMSI-related logic, destination construction, and child execution.Preserve the original event and access trail; correlate with process and proxy evidence before containment.
Web request reconstructionApproved proxy, secure web gateway, or endpoint web telemetryFind PowerShell or script-host requests around a Q01 timestamp and inspect the full URI for the documented request shape, redirects, response size, and downloaded content.Preserve raw request/response metadata and block only independently confirmed malicious destinations under change control.
Script staging reviewWindows Security Event ID 4688, PowerShell 4104, and approved file-integrity or EDR file telemetryReview Public Documents and AppData for transient PowerShell scripts near Q06; bind file hashes and deletion evidence to the process tree.Acquire the script safely, preserve timestamps and hash, and isolate only after malicious execution is corroborated.
07

CrowdStrike LogScale CQL Hunt Queries

Pick your tenant's cloud first — every "Open in Falcon" button below uses this selection.
Query strategy: Q01 is the strongest keeper because it combines hidden execution, retrieval, immediate execution, and the documented request shape. Q02 through Q06 are behavior-led supporting hunts; Q05 requires tenant confirmation of DNS process attribution.

All six queries are STATIC-ONLY. Confirm repository, event population, fields, semantics, and result volume in a safe manual window before operational use.

Q01 · Hidden PowerShell staged retrieval and execution
CONF highFP mediumCOST low

Looks for: hidden PowerShell that retrieves remote content, immediately executes it, and retains the documented /1.php?s= request shape in the command line. Accomplishes: combines four loader invariants into the pack's highest-fidelity process hunt without relying on rotating infrastructure.

Trace: H01 · A01

// HUNT: Hidden PowerShell staged retrieval and execution
// HYPOTHESIS: H01
// USE: alert-candidate
// MITRE: T1059.001, T1105
// CONF: high
// FP: medium
// COST: low
// TIMEFRAME: 30d — capture low-frequency loader execution
// REQUIRES: #event_simpleName=ProcessRollup2 or SyntheticProcessRollup2; ImageFileName, CommandLine, ParentBaseFileName
// FALSE POSITIVES: software bootstrap scripts, configuration management, and developer tooling
// TUNING: exclude approved management parents only after confirming signer, path, and owner
// VALIDATION: STATIC-ONLY
#event_simpleName = /^(ProcessRollup2|SyntheticProcessRollup2)$/
| test(@timestamp >= now() - 2592000000)
| ImageFileName = /(?:powershell|pwsh)\.exe$/i
| CommandLine = /(?:-w(?:indowstyle)?\s+h(?:idden)?|windowstyle\s+hidden)/i
| CommandLine = /(?:curl|invoke-webrequest|iwr|invoke-restmethod|irm)/i
| CommandLine = /(?:\|\s*(?:iex|invoke-expression)|;\s*(?:iex|invoke-expression)|\.(?:content|exportedcommands))/i
| CommandLine = /\/1\.php\?s=/i
| table([@timestamp, ComputerName, UserName, ParentBaseFileName, ImageFileName, CommandLine, TargetProcessId, aid])
| sort(@timestamp, order=desc, limit=1000)
Q02 · Windows Script Host spawning PowerShell retrieval
CONF mediumFP mediumCOST low

Looks for: wscript.exe or cscript.exe launching PowerShell with download or immediate-execution semantics. Accomplishes: surfaces a common JavaScript-lure handoff while preserving enough lineage and command context to distinguish approved automation.

Trace: H02 · Decision Q02

// HUNT: Windows Script Host spawning PowerShell retrieval
// HYPOTHESIS: H02
// USE: hunt
// MITRE: T1059.007, T1059.001
// CONF: medium
// FP: medium
// COST: low
// TIMEFRAME: 30d — catch intermittent lure execution
// REQUIRES: #event_simpleName=ProcessRollup2 or SyntheticProcessRollup2; ParentBaseFileName, ImageFileName, CommandLine
// FALSE POSITIVES: legacy login scripts and enterprise software deployment
// TUNING: exclude signed, owner-approved script packages and known deployment parents
// VALIDATION: STATIC-ONLY
#event_simpleName = /^(ProcessRollup2|SyntheticProcessRollup2)$/
| test(@timestamp >= now() - 2592000000)
| ParentBaseFileName = /^(wscript|cscript)\.exe$/i
| ImageFileName = /(?:powershell|pwsh)\.exe$/i
| CommandLine = /(?:curl|invoke-webrequest|iwr|invoke-restmethod|irm|downloadstring|downloadfile|iex|invoke-expression)/i
| table([@timestamp, ComputerName, UserName, ParentBaseFileName, ImageFileName, CommandLine, TargetProcessId, aid])
| sort(@timestamp, order=desc, limit=1000)
Q03 · Obfuscated PowerShell with AMSI-related tokens
CONF mediumFP mediumCOST low

Looks for: encoded or compressed PowerShell combined with AMSI-related or immediate-execution tokens. Accomplishes: narrows generic encoded-command volume toward the defense-evasion behavior documented across MintsLoader analyses.

Trace: H03 · Decision Q03

// HUNT: Obfuscated PowerShell with AMSI-related tokens
// HYPOTHESIS: H03
// USE: hunt
// MITRE: T1027, T1562.001
// CONF: medium
// FP: medium
// COST: low
// TIMEFRAME: 14d — bound a broad obfuscation search
// REQUIRES: #event_simpleName=ProcessRollup2 or SyntheticProcessRollup2; ImageFileName, CommandLine, ParentBaseFileName
// FALSE POSITIVES: security testing and administrative packaging scripts
// TUNING: exclude approved red-team windows and signed packaging workflows after review
// VALIDATION: STATIC-ONLY
#event_simpleName = /^(ProcessRollup2|SyntheticProcessRollup2)$/
| test(@timestamp >= now() - 1209600000)
| ImageFileName = /(?:powershell|pwsh)\.exe$/i
| CommandLine = /(?:-e(?:nc|ncodedcommand)?\s+|frombase64string|gzipstream|deflatestream)/i
| CommandLine = /(?:amsi|amsiutils|amsiinitfailed|invoke-expression|\biex\b)/i
| table([@timestamp, ComputerName, UserName, ParentBaseFileName, ImageFileName, CommandLine, TargetProcessId, aid])
| sort(@timestamp, order=desc, limit=1000)
Q04 · PowerShell and WMI virtualization discovery
CONF mediumFP mediumCOST low

Looks for: PowerShell or WMIC querying video-controller, cache-memory, computer-system, or common hypervisor attributes. Accomplishes: exposes the environment-check behavior that MintsLoader uses before advancing while acknowledging inventory-tool overlap.

Trace: H04 · Decision Q04

// HUNT: PowerShell and WMI virtualization discovery
// HYPOTHESIS: H04
// USE: hunt
// MITRE: T1497.001
// CONF: medium
// FP: medium
// COST: low
// TIMEFRAME: 14d — correlate recent system checks with loader signals
// REQUIRES: #event_simpleName=ProcessRollup2 or SyntheticProcessRollup2; ImageFileName, CommandLine, ParentBaseFileName
// FALSE POSITIVES: asset inventory, support diagnostics, and virtualization management
// TUNING: exclude known management agents and documented inventory scripts
// VALIDATION: STATIC-ONLY
#event_simpleName = /^(ProcessRollup2|SyntheticProcessRollup2)$/
| test(@timestamp >= now() - 1209600000)
| ImageFileName = /(?:powershell|pwsh|wmic)\.exe$/i
| CommandLine = /(?:Win32_VideoController|Win32_CacheMemory|Win32_ComputerSystem|hypervisor|virtualbox|vmware)/i
| table([@timestamp, ComputerName, UserName, ParentBaseFileName, ImageFileName, CommandLine, TargetProcessId, aid])
| sort(@timestamp, order=desc, limit=1000)
Q05 · PowerShell-associated generated .top lookups
CONF mediumFP mediumCOST low

Looks for: PowerShell-attributed DNS requests to long alphanumeric .top domains. Accomplishes: replaces brittle historical hostnames with a documented infrastructure shape, but requires tenant confirmation of DNS process attribution.

Trace: H05 · Decision Q05

// HUNT: PowerShell-associated generated .top lookups
// HYPOTHESIS: H05
// USE: hunt
// MITRE: T1105
// CONF: medium
// FP: medium
// COST: low
// TIMEFRAME: 7d — bound high-volume DNS and volatile infrastructure
// REQUIRES: #event_simpleName=DnsRequest; DomainName, ContextBaseFileName, ContextProcessId_decimal
// FALSE POSITIVES: security research, advertising redirects, and software update services
// TUNING: baseline .top domains and verify process attribution before excluding any resolver path
// VALIDATION: STATIC-ONLY
#event_simpleName = DnsRequest
| test(@timestamp >= now() - 604800000)
| ContextBaseFileName = /^(powershell|pwsh)\.exe$/i
| DomainName = /^[a-z0-9]{12,24}\.top$/i
| table([@timestamp, ComputerName, UserName, ContextBaseFileName, ContextProcessId_decimal, DomainName, aid])
| sort(@timestamp, order=desc, limit=1000)
Q06 · User-writable PowerShell script staging
CONF mediumFP mediumCOST low

Looks for: PowerShell launching .ps1 content from Public Documents or AppData with hidden, bypass, or no-profile arguments. Accomplishes: captures the documented temporary staging pattern without pretending portable deletion telemetry is available.

Trace: H06 · Decision Q06

// HUNT: User-writable PowerShell script staging
// HYPOTHESIS: H06
// USE: hunt
// MITRE: T1105
// CONF: medium
// FP: medium
// COST: low
// TIMEFRAME: 30d — retain low-frequency user-path staging
// REQUIRES: #event_simpleName=ProcessRollup2 or SyntheticProcessRollup2; ImageFileName, CommandLine, ParentBaseFileName
// FALSE POSITIVES: user automation, software installers, and IT support scripts
// TUNING: exclude owner-approved scripts by full path and signer only after review
// VALIDATION: STATIC-ONLY
#event_simpleName = /^(ProcessRollup2|SyntheticProcessRollup2)$/
| test(@timestamp >= now() - 2592000000)
| ImageFileName = /(?:powershell|pwsh)\.exe$/i
| CommandLine = /(?:\\Users\\Public\\Documents|\\Users\\[^\\]+\\AppData\\)[^"']*\.ps1/i
| CommandLine = /(?:-w(?:indowstyle)?\s+h(?:idden)?|-executionpolicy\s+bypass|-noprofile)/i
| table([@timestamp, ComputerName, UserName, ParentBaseFileName, ImageFileName, CommandLine, TargetProcessId, aid])
| sort(@timestamp, order=desc, limit=1000)
08

Operationalization and IOA Candidates

Q01 has a complete design-only scheduled-search package. Q02–Q06 remain hunt-only. No Falcon schedule, notification route, IOA, prevention policy, or deployment was created.

QueryUseDecisionAlertReadinessRationale
Q01alert-candidatealert-packageA01design-onlyThe combined loader shape is specific enough to design an alert, but tenant parsing, a benign baseline, and an inert positive test remain mandatory before scheduling.
Q02hunthunt-onlydesign-onlyScript-host lineage is useful but can overlap with approved enterprise automation; baseline and ownership data are absent.
Q03hunthunt-onlydesign-onlyEncoded and AMSI-related tokens are analytically valuable but too broad for alerting without tenant prevalence and red-team exclusions.
Q04hunthunt-onlydesign-onlyVirtualization and inventory commands have common administrative uses and require same-host correlation.
Q05hunthunt-onlydesign-onlyDNS process attribution and .top prevalence must be confirmed in the target tenant before operational use.
Q06hunthunt-onlydesign-onlyUser-writable PowerShell scripts overlap with support and installer workflows and portable deletion evidence is unavailable.

Design-only scheduled search

IDQueryNameWindow / cadenceThresholdSuppressionOwner / SLA
A01Q01Hidden PowerShell staged retrieval and execution30m / 15mat least one matching process event60m for an identical aid, TargetProcessId, and CommandLine; never suppress a new host or command lineendpoint detection engineering / 15 minutes for initial process-tree and user-context review
Readiness gate: observed baseline is unknown; positive and benign tests are planned-not-run. A01 remains DESIGN ONLY until both are recorded with a tenant parse result.
09

Machine-Readable IOC Appendix

No atomic IP addresses, domains, URLs, or hashes were published by the accessible current sources with sufficient freshness and independent corroboration for inclusion as of 2026-09-05. Historical infrastructure was deliberately excluded.

Atomic IOC status0 values
type,value,source,action
# No eligible atomic IOCs as of 2026-09-05
Behavior pivotscontext only
hidden PowerShell + remote retrieval + immediate execution
Windows Script Host → PowerShell lineage
encoded/compressed PowerShell + AMSI-related tokens
PowerShell-associated generated .top lookup
user-writable .ps1 staging
Excluded atomicshistorical only
Historical domains and addresses were excluded because infrastructure rotates and current independent corroboration was absent. Do not manufacture, contact, or block values from stale reporting.
10

Hardening — Tiered and Deployable

Immediate — expose and interrupt script execution
  • Audit potentially obfuscated scripts (M1040; CTRL01) — Set ASR rule 5BEB7EFE-FD9A-4556-801D-275E5FFC04CC to Audit mode for the pilot; move to Block only after reviewed evidence meets expansion criteria. deployable-design Verify: Read Get-MpPreference AttackSurfaceReductionRules_Ids and Actions; retain matching ASR audit events. Expected: the GUID is present with AuditMode on every pilot endpoint and events reach the review workflow Rollback: Return the rule to Disabled for the pilot through the same policy channel and verify the GUID/action state. Authority: S05 · Microsoft Learn accessed 2026-09-05.
  • Audit script-launched downloaded content (M1038; CTRL02) — Set ASR rule D3E037E1-3EB8-44C8-A917-57927947596D to Audit mode; promote to Block for tested user cohorts when no critical workflow remains unresolved. deployable-design Verify: Read the configured rule action and review AsrScriptExecutableDownloadAudited or blocked evidence. Expected: the rule is in Audit mode across the pilot and each exception has an owner and full-path justification Rollback: Restore the prior action through the management policy and verify endpoint convergence. Authority: S05 · Microsoft Learn accessed 2026-09-05.
  • Enable protected PowerShell script-block logging (M1047; CTRL03) — Enable the Turn on PowerShell Script Block Logging policy for a pilot and forward Microsoft-Windows-PowerShell/Operational Event ID 4104 to restricted storage. deployable-design Verify: Run an inert marker script on a pilot endpoint and confirm a 4104 event and protected forwarding path. Expected: the marker is captured once with correct host and user context and only authorized roles can read it Rollback: Disable the pilot policy, stop forwarding from the pilot, and verify that no new 4104 marker is collected while preserving prior evidence per policy. Authority: S06 · PowerShell 7.6 documentation accessed 2026-09-05.
Near-term — constrain script-host and web paths
  • Pilot Network Protection for script-host egress (M1021; CTRL04) — Enable Network Protection in Audit mode for the pilot, review application impact, then use Block mode only for cohorts meeting the documented acceptance criteria. deployable-design Verify: Read the managed Network Protection state and perform an organization-approved benign test against a documented test URL. Expected: the pilot reports the expected audit action without breaking business applications Rollback: Return the pilot to Audit or Disabled through the same channel and verify restored application connectivity. Authority: S07 · Microsoft Learn accessed 2026-09-05.
  • Constrain unapproved script hosts with App Control (M1038; CTRL05) — Create an App Control policy that audits unapproved wscript.exe, cscript.exe, and PowerShell script use outside approved signer and managed paths; enforce only after audit and pilot review. deployable-design Verify: Export the effective App Control policy and confirm audit events for an inert unsigned test script while approved signed scripts continue. Expected: unapproved test execution is audited or blocked according to mode and approved workflows remain functional Rollback: Deploy the prepared signed rollback policy, verify effective-policy removal or audit mode, and rerun approved application health checks. Authority: S04 · Microsoft Learn accessed 2026-09-05.
Strategic — retire unowned script exceptions
  • Maintain an owned script and exception lifecycle (M1033; CTRL06) — Require signed or centrally managed production scripts, quarterly owner recertification, expiration dates for every exception, and removal of unowned allow entries. deployable-design Verify: Sample ten active exceptions and verify signer or managed path, owner, business purpose, approval, and expiration. Expected: every sampled exception has complete evidence and no expired unowned entry remains active Rollback: Extend a specific exception through emergency change control while ownership and replacement are resolved; do not restore unbounded exceptions. Authority: S04 · Microsoft Learn accessed 2026-09-05.

Deployable playbook · PB01 · Pilot MintsLoader-focused ASR rules

  1. Confirm Defender, AMSI, and cloud-protection prerequisites; export the current policy and endpoint membership.
  2. Capture pre-change Get-MpPreference rule IDs/actions and the last 14 days of relevant ASR events.
  3. Apply both rule GUIDs in Audit mode to the limited pilot through the approved management channel.
  4. Verify policy convergence and collect audit evidence from an inert approved script fixture.
  5. Run application-owner and help-desk health checks for installers, packaging, and signed business scripts.
  6. Expand only when every event family is owned, critical workflows pass, and exclusions are narrow and approved.
  7. If a stop condition fires, restore the exported policy or set the affected rule Disabled; verify convergence and application recovery.
  8. Retain policy exports, event samples, exception decisions, owner approvals, and the rollback result under endpoint security ownership.

Deployable playbook · PB02 · Deploy protected PowerShell script-block logging

  1. Approve sensitive-data handling, restricted reader roles, retention, and storage capacity.
  2. Export the current PowerShell logging GPO or MDM state and forwarding configuration.
  3. Enable Script Block Logging for the pilot and route Event ID 4104 to restricted storage.
  4. Execute an inert local marker and verify one complete 4104 record with host and user context.
  5. Review endpoint performance, ingestion volume, secret exposure risk, and analyst access.
  6. Expand only when volume and access controls meet the approved thresholds.
  7. Rollback by disabling the pilot policy and forwarding rule; verify no new marker collection while preserving prior evidence.
  8. Retain configuration exports, marker event, access review, storage metrics, and rollback evidence under Windows platform ownership.
Design state: no control is canary-tested or deployed. Complete platform, dependency, sensitive-data, continuity, and approval checks before execution.
11

Containment Runbook

PhaseTriggerAuthorityOwnerEvidenceRecovery
1. Validate and preserveQ01 result or corroborated MintsLoader-style process lineageincident commander or on-call SOC leadSOC analystraw query rows, event semantics, process tree, command line, user and host contextnone; preservation is read-only
2. Scope executionunapproved retrieval/execution or related H02-H06 evidenceincident commanderendpoint incident responderPowerShell and script-host timeline, files and hashes, DNS/proxy rows, script-block logs when availablerecord approved administrative explanation or advance to isolation
3. Isolate affected endpointsremote execution corroborated, payload evidence, or ongoing beaconingincident commander with business service owner for critical endpointsendpoint operationsisolation timestamp, network exceptions, business impact, preserved volatile datarestore connectivity only after eradication and closure gates pass
4. Contain access and destinationscredential theft payload, suspicious session, or active malicious destination confirmedincident commander plus identity/network ownersidentity and network securitysession and token actions, account audit, destination blocks, proxy/DNS recordsrestore access through approved reset and business-continuity checks; remove temporary blocks after re-hunt
5. Eradicate, recover, and re-huntscope stabilized and evidence preservedincident commander and system ownerendpoint engineeringreimage or cleanup record, configuration verification, fresh Q01-Q06 results, owner sign-offreturn to service after no new hits for the approved re-hunt window and all security controls are healthy

Preservation order: raw query and alert rows; process tree and command lines; PowerShell logs; files and hashes; proxy, DNS, and network records; user and session state; relevant policy configurations; analyst notes and tool logs.

Closure gates: malicious scripts and payloads removed or endpoint rebuilt; credentials or sessions addressed when exposure is evidenced; temporary containment changes reviewed; Q01-Q06 re-run after recovery with no unexplained hits; business owner and incident commander approve closure. Re-hunt: Run Q01-Q06 immediately after recovery, again after 24 hours, and at seven days; retain raw results and explain every hit.

12

Detection Coverage and Validation Evidence

Validation state: STATIC REVIEW PASSED after local structural/safety, maintained-field, CQL heuristic, provenance, and duplicate gates. Provenance is N/A because the report deliberately ships no atomic IOCs. This is not Falcon parsing, canary success, schedule creation, or deployment evidence.

TechniqueCoverageQuery / handoffEvidenceLimitation
T1059.001StaticQ01, Q02Local structure, field, syntax, and safety reviewTenant parsing, result semantics, positive tests, and benign baseline absent
T1059.007StaticQ02Local structure, field, syntax, and safety reviewTenant parsing, result semantics, positive tests, and benign baseline absent
T1027StaticQ03Local structure, field, syntax, and safety reviewTenant parsing, result semantics, positive tests, and benign baseline absent
T1562.001StaticQ03Local structure, field, syntax, and safety reviewTenant parsing, result semantics, positive tests, and benign baseline absent
T1497.001StaticQ04Local structure, field, syntax, and safety reviewTenant parsing, result semantics, positive tests, and benign baseline absent
T1105StaticQ01, Q05, Q06Local structure, field, syntax, and safety reviewTenant parsing, result semantics, positive tests, and benign baseline absent

Recorded evidence and next tests

  • All six CQL cards retain VALIDATION: STATIC-ONLY; no Falcon tenant was contacted.
  • The offline tenant-validation dry run checks extraction and profile readiness only.
  • Q05 depends on tenant-confirmed DNS process attribution; URL-path and deletion evidence require separate repositories.
  • A01 remains design-only with unknown baseline and planned-not-run positive and benign tests.
  • Next step: manually parse Q01 in the intended repository over one hour, confirm every returned field, then run the approved inert fixture and 30-day benign baseline before scheduling.
13

Hunt Summary Ticket

TITLE:        MintsLoader hunt — v0.1 Draft
SEVERITY:     high — staged loader execution can precede credential theft or remote access
SCOPE:        Windows Falcon process and DNS telemetry; PowerShell and approved web-log pivots
HYPOTHESIS:   H01 alert-candidate — hidden PowerShell remote retrieval and immediate execution; H02 hunt — Windows Script Host launching PowerShell retrieval; H03 hunt — obfuscated PowerShell with AMSI impairment indicators; H04 hunt — environment and virtualization discovery; H05 hunt — PowerShell-associated generated .top domain lookup; H06 hunt — user-writable PowerShell staging and cleanup
QUERIES RUN:  inventory: none; hunt: Q02/Q03/Q04/Q05/Q06; alert-candidate: Q01
DO FIRST:     Q01 over 30 days; verify parent lineage, user intent, and web evidence
FINDINGS:
GAPS:         HTTP path, script-block, deletion, IPv6/proxy/DNS attribution, and tenant parsing
ACTIONS:      SOC validates Q01; endpoint engineering baselines benign activity; Windows owners pilot logging and ASR
OWNER:        Security Operations / Endpoint Detection Engineering / Windows Platform
VERSION:      v0.1 Draft · 2026-09-05 · STATIC REVIEW PASSED
14

Changelog

v0.1 Draft2026-09-05Initial behavior-led MintsLoader pack with six conservative CQL queries, one design-only alert package, seven sanitized sources, no eligible atomic IOCs, six reversible controls, two playbooks, and a five-phase containment workflow. Tenant execution is not claimed.
15

References

IDPublisherVersion / statusAccessedUseURL
S01Red Canarysuccessful sanitized HTML extraction2026-09-05T11:03:29Z2026 prevalence, delivery paths, durable behaviors, and defensive guidancehttps://redcanary.com/threat-detection-report/threats/mintsloader/
S02Recorded Future Insikt Groupsuccessful sanitized HTML extraction2026-09-05T11:03:29ZIndependent multi-stage technical analysis and variant behaviorhttps://www.recordedfuture.com/research/uncovering-mintsloader-with-recorded-future-malware-intelligence-hunting
S03Blackpoint Cybersuccessful sanitized technical summary2026-09-05T11:03:29Z2026 variant corroboration and obfuscation/infrastructure volatilityhttps://blackpointcyber.com/blog/mintsloader-finger-protocol-hashtable-obfuscation/
S04Microsoft Learnsuccessful authoritative control summary2026-09-05T11:03:29ZApp Control audit, pilot, enforcement, and recovery authorityhttps://learn.microsoft.com/windows/security/application-security/application-control/windows-defender-application-control/wdac
S05Microsoft Learnsuccessful authoritative control summary2026-09-05T11:42:00ZASR rule IDs, prerequisites, audit evidence, and enforcement designhttps://learn.microsoft.com/en-us/defender-endpoint/attack-surface-reduction-rules-reference
S06Microsoft Learnsuccessful authoritative control summary2026-09-05T11:42:00ZPowerShell logging behavior, Event ID 4104, and sensitive-data caveathttps://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_logging_windows
S07Microsoft Learnsuccessful authoritative control summary2026-09-05T11:42:00ZNetwork Protection audit/enforcement modes and limitationhttps://learn.microsoft.com/en-us/defender-endpoint/network-protection