Skip to navigation

Threat reportMalwareTL-2026-5645

Formbook (XLoader) Campaign Targets European Manufacturing and Technology Businesses with Localized Order Lures

highACTIVE

ANY.RUN documented a Formbook (aka XLoader) campaign that delivers a ZIP-attached obfuscated JavaScript dropper, a Base64 PowerShell chain, an AES-256-CBC in-memory loader and a ConfuserEx-protected .NET injector (GHOST.dll) that hollows aspnet_compiler.exe. The final Formbook payload runs in rekeywiz.exe and steals browser-stored credentials from manufacturing, technology and finance/administration organizations in Europe and neighbouring regions.

Key facts

IdentifiersTL-2026-5645
Also known asXLoader, GHOST.dll injector, cloked_data.exe
SeverityHIGH
First disclosed
Affected productsMicrosoft Windows (workstations and servers)
MalwareFormbook, MoqHao
ToolsConfuserEx
MITRE ATT&CK techniquesT1005 Data from Local System, T1027 Obfuscated Files or Information, T1036 Masquerading, T1047 Windows Management Instrumentation, T1055.012 Process Hollowing, T1059.001 PowerShell, T1059.007 JavaScript, T1071.001 Web Protocols, T1140 Deobfuscate/Decode Files or Information, T1204.002 Malicious File, T1547.001 Registry Run Keys / Startup Folder, T1547.009 Shortcut Modification and 4 more in the attack flow
MotivationFINANCIAL
Target sectorsmanufacturing, technology, finance, government administration
Target regionsEurope, united kingdom, italy, Balkans, South Caucasus
Detection rules9 (1 shown free)
Sources8 cited sources

Detection coverage

As of 2026-11-10, Threadlinqs Intelligence publishes 9 detection rule(s) for TL-2026-5645 across Splunk SPL, Microsoft KQL and Sigma, covering 24 indicator(s) of compromise. The whole corpus is readable without an account. Every threat comes with one complete detection in Splunk SPL, Microsoft KQL and Sigma, free for everyone; a free account adds daily TL Creds to unlock the rest. Paid plans add a larger daily allowance, correlation and the MCP server. Threadlinqs MCP server · View plans.

Free detection: Formbook/XLoader JS Dropper: wscript.exe Launching Hidden PowerShell ps_*.ps1 Stage

Detects the first execution stage of the Formbook (XLoader) campaign TL-2026-5645: a ZIP-delivered obfuscated JavaScript file run by wscript.exe/cscript.exe that drops C:\Temp\ps_<random>_<timestamp>.ps1 and launches PowerShell with -ExecutionPolicy Bypass -NoProfile -WindowStyle Hidden -NonInteractive -NoLogo. Behaviour-first: fires on a script host spawning a hidden, policy-bypassing PowerShell child or running a ps_*.ps1 stage. ANY.RUN notes the ps_*.ps1 pattern recurs across commodity loaders (AgentTesla, Remcos, XWorm, AsyncRAT), so a hit indicates this shared loader chain, not necessarily only Formbook.

  • Languages: Splunk SPL, Microsoft KQL, Sigma
  • ATT&CK: T1204.002, T1059.007, T1059.001, T1564.003
  • Data sources: sysmon, splunk:XmlWinEventLog:Microsoft-Windows-Sysmon/Operational, DeviceProcessEvents, windows_process_creation
  • Severity: high
  • Confidence: high

Splunk SPL

index=sysmon sourcetype="XmlWinEventLog:Microsoft-Windows-Sysmon/Operational" EventCode=1 earliest=-24h
  (ParentImage="*\\wscript.exe" OR ParentImage="*\\cscript.exe")
  (Image="*\\powershell.exe" OR Image="*\\pwsh.exe")
  (CommandLine="*ps_*.ps1*" OR (CommandLine="*Bypass*" AND CommandLine="*Hidden*" AND CommandLine="*NonInteractive*"))
```tag the two dropper markers: random ps_ script name and hidden window flag```
| eval ps1_stage=if(match(CommandLine,"(?i)ps_[0-9A-Za-z_-]+[.]ps1"),"ps_random_ps1","none")
| eval hidden_window=if(match(CommandLine,"(?i)-w(indowstyle)?[ ]+hidden"),1,0)
| stats count min(_time) as first_seen max(_time) as last_seen values(CommandLine) as powershell_cmdline values(ParentCommandLine) as dropper_cmdline values(ps1_stage) as ps1_stage max(hidden_window) as hidden_window by host User ParentImage Image
| convert ctime(first_seen) ctime(last_seen)

Microsoft KQL

let lookback = 24h;
DeviceProcessEvents
| where Timestamp > ago(lookback)
| where InitiatingProcessFileName in~ ("wscript.exe", "cscript.exe")
| where FileName in~ ("powershell.exe", "pwsh.exe")
| where ProcessCommandLine matches regex @"(?i)ps_[0-9a-z_-]+\.ps1"
    or (ProcessCommandLine has "Bypass" and ProcessCommandLine has "Hidden" and ProcessCommandLine has "NonInteractive")
| project Timestamp, DeviceName, AccountName, FileName, ProcessCommandLine, InitiatingProcessFileName, InitiatingProcessCommandLine, InitiatingProcessParentFileName, SHA256
| order by Timestamp desc

Sigma

title: Formbook XLoader JS Dropper Launching Hidden PowerShell Stage
id: 3f1c2a7e-8b4d-4e21-9a5c-6d0e7b1f2a01
status: experimental
description: 'Detects wscript.exe or cscript.exe launching PowerShell with a ps_ random ps1 script or with Bypass Hidden NonInteractive flags, as used by the Formbook XLoader JS dropper chain (TL-2026-5645).'
references:
    - https://any.run/cybersecurity-blog/formbook-malware-analysis-november-2026/
    - https://socprime.com/active-threats/inside-the-xloader-infection-chain/
author: Threadlinqs Team
date: 2026-11-10
tags:
    - attack.execution
    - attack.t1059.007
    - attack.t1059.001
    - attack.t1204.002
    - attack.defense-evasion
    - attack.t1564.003
logsource:
    category: process_creation
    product: windows
detection:
    selection_parent:
        ParentImage|endswith:
            - '\wscript.exe'
            - '\cscript.exe'
    selection_img:
        Image|endswith:
            - '\powershell.exe'
            - '\pwsh.exe'
    selection_ps1:
        CommandLine|contains|all:
            - 'ps_'
            - '.ps1'
    selection_flags:
        CommandLine|contains|all:
            - 'Bypass'
            - 'Hidden'
            - 'NonInteractive'
    condition: selection_parent and selection_img and (selection_ps1 or selection_flags)
falsepositives:
    - Legitimate admin logon scripts using wscript to start hidden PowerShell
    - Software deployment tooling that stages ps_*.ps1 files
level: high

Known false positives:

  • Legitimate admin logon scripts using wscript.exe to start hidden PowerShell
  • Software deployment or packaging tools that stage ps_*.ps1 files and run them hidden

Tuning notes: Adjust index/sourcetype to your Sysmon ingestion. Exclude known deployment parent command lines and signed admin script paths. Because the ps_*.ps1 pattern is shared across commodity loaders, pivot on the follow-on aspnet_compiler.exe/rekeywiz.exe activity (KQL-002, SIG-002) to confirm Formbook.

8 more detection rules (Splunk SPL, Microsoft KQL, Sigma) · unlock with TL Creds. Sign up free to unlock the detection rules or query them with the Threadlinqs MCP server (Purple)
  • Formbook/XLoader Lure: wscript.exe Running JavaScript From ZIP Extraction or Mail Cache Path · unlock with TL Creds
  • Formbook/XLoader [indicator] Hollowing of aspnet_compiler.exe and Operate-Beacon Respawn · unlock with TL Creds
  • Formbook/XLoader C2 Network Connections: Known Domains/IPs and HTTP From Hollowed Processes · unlock with TL Creds
  • Formbook/XLoader PowerShell Modular AES Pipeline Loader (Script Block Logging) · unlock with TL Creds
  • Formbook/XLoader rekeywiz.exe Abuse: Suspicious Parent or Browser Child Process · unlock with TL Creds
  • Formbook/XLoader C2 DNS Resolution: hlushkova.top, stanbicfinanceug.com and Community-Observed rush360.net · unlock with TL Creds
  • Formbook/XLoader Persistence: SystemUpdate_ps_* Run Key, Startup LNK and Dropped ps_*.ps1 · unlock with TL Creds
  • Formbook/XLoader C2: Android 4.1.1 Tablet User-Agent in Web Proxy Traffic · unlock with TL Creds

Indicators of compromise

As of 2026-11-10, Threadlinqs Intelligence tracks 24 indicators of compromise for TL-2026-5645.

Sample indicators (3 of 24)

  • IP address: 91.234.194[.]113
  • Domain: www[.]hlushkova[.]top
  • File hash: 58eb890b612938867237c3fa1715b8742d9b25a8fe136cd75ea659882b7b7a10

Defanged, TLP:CLEAR. Full set of 24 indicators: unlock with TL Creds.

24 indicators of compromise · unlock with TL Creds. Compare plans

Technical analysis

The campaign starts with an email attachment, a ZIP archive named 'Nova narudzba 0148-712.zip' (Croatian/Bosnian for 'New Order'). It contains a roughly 2 MB JavaScript file obfuscated with obfuscator.io techniques (string encryption, shuffled control flow) that holds a Base64-encoded PowerShell payload. When wscript.exe runs the script, it decodes the payload, creates a working directory in C:\Temp\ (falling back to %TEMP%) and writes ps_<random>_<timestamp>.ps1. It then sets up persistence and launches PowerShell with -ExecutionPolicy Bypass -NoProfile -WindowStyle Hidden -NonInteractive -NoLogo. A WMI-based monitor terminates the PowerShell process if it runs longer than 50 seconds.

The second stage is headed 'PowerShell Modular AES Pipeline Loader'. Three Base64 resources hold the encrypted payload, the key and the IV. The loader decrypts the next stage with AES-256-CBC and runs it in memory through ScriptBlock::Create(). It then clears its resource map and forces garbage collection to reduce disk artifacts. The third stage is a .NET injector, GHOST.dll, protected with ConfuserEx. It uses process hollowing to inject into the legitimate aspnet_compiler.exe. A watchdog routine named 'Operate-Beacon' checks every 5 seconds whether the hollowed process is still alive and reloads GHOST.dll and reinjects if it is not; analysts saw 15 aspnet_compiler.exe instances in one sandbox session. The final Formbook payload runs inside rekeywiz.exe (a legitimate Windows EFS utility) and launches Firefox. It also creates a randomly named file in %TEMP% that the report links to collection of browser databases and credentials.

Persistence uses the naming pattern SystemUpdate_ps_*. This covers an HKCU Run value, an attempted HKLM Run value (which fails without admin rights) and a Startup-folder shortcut SystemUpdate_ps_*.lnk described as 'System Update Service' that launches hidden PowerShell. C2 uses plain HTTP on port 80, with one GET check-in followed by several POST requests carrying stolen data. The User-Agent impersonates an Android 4.1.1 tablet even though the traffic comes from Windows hosts. The C2 domain hlushkova.top was seen resolving to different IPs, and one IP is on shared hosting, so domain-based blocking is preferable to IP blocking.

Submissions came from the UK, Italy, the Balkans and the South Caucasus, and lures were localized to match: Croatian/Bosnian new-order notices and price lists, Turkish/Azerbaijani purchase orders, SWIFT-themed bank transfers and commercial quotation requests. The same GHOST.dll hash appeared as cloked_data.exe in a separate analysis on 2026-10-09, which indicates tooling reuse. ANY.RUN also found that the C:\Temp\ps_*.ps1 and Startup\SystemUpdate_ps_*.lnk artifact patterns recur across other commodity families (AgentTesla, DarkCloud, Remcos, XWorm, Snake Keylogger, AsyncRAT), so they indicate a shared loader pattern and are not specific to Formbook. The source does not state attribution or a Formbook/XLoader version. Severity is analyst-assigned and no CVSS applies.

MITRE ATT&CK techniques by tactic:

Collection

T1005 Data from Local System

Defense Evasion

T1027 Obfuscated Files or Information; T1036 Masquerading; T1055.012 Process Hollowing; T1140 Deobfuscate/Decode Files or Information; T1564.003 Hidden Window; T1620 Reflective Code Loading

Execution

T1047 Windows Management Instrumentation; T1059.001 PowerShell; T1059.007 JavaScript; T1204.002 Malicious File

Privilege Escalation

T1055.012 Process Hollowing

Command and Control

T1071.001 Web Protocols

Persistence

T1547.001 Registry Run Keys / Startup Folder; T1547.009 Shortcut Modification

Credential Access

T1555.003 Credentials from Web Browsers

Initial Access

T1566.001 Spearphishing Attachment

Remediation

Immediate actions

  • Block www.hlushkova.top and www.stanbicfinanceug.com at DNS and web proxy; prefer domain blocking over IP blocking because 5.9.115.199 is shared hosting
  • Hunt for wscript.exe spawning hidden powershell.exe that runs ps_*.ps1 from C:\Temp\, followed by repeated aspnet_compiler.exe and rekeywiz.exe launches
  • Search endpoints for SystemUpdate_ps_* Run values and Startup\SystemUpdate_ps_*.lnk shortcuts
  • Alert on Android User-Agent strings in outbound HTTP from Windows hosts
  • Reset credentials stored in browsers on any confirmed-infected host

Workarounds

  • Use AppLocker/WDAC to prevent wscript.exe/cscript.exe from running scripts from user-writable paths and archive extraction folders

Longer-term hardening

  • Block or open in a non-executing viewer .js/.zip email attachments, and change the default handler for .js files from wscript.exe to Notepad
  • Enable PowerShell Script Block and Module logging and AMSI; enforce Constrained Language Mode where feasible
  • Restrict outbound HTTP from servers and workstations to proxied, categorized destinations
  • Deploy EDR with process-injection and hollowing detection for aspnet_compiler.exe and rekeywiz.exe
  • Discourage storing credentials in browsers; use an enterprise password manager with MFA

Affected and fixed versions

  • Microsoft — Windows (workstations and servers)
    Vulnerable versions: Hosts where wscript.exe, PowerShell and .NET aspnet_compiler.exe are available and unrestricted

Timeline

  • Earliest C&C domain registration in Check Point's XLoader (Formbook successor) infrastructure table, showing the lineage this campaign's payload belongs to.
  • Check Point Research publishes its analysis of XLoader C&C infrastructure: 64 configured domains (mostly decoys), delayed real C&C contact and 404-style responses.
  • hlushkova.top C2 domain first appears in ANY.RUN analyses (history goes back to August 2026; exact day not stated, 14 analyses in total).
  • The ZIP archive 'Nova narudzba 0148-712.zip' is first submitted to the ANY.RUN sandbox.
  • The locked-ioc-20 injector hash is seen under the name locked-ioc-16 in a separate ANY.RUN analysis, which indicates tooling reuse.
  • The archive is observed delivered as an email attachment in a sandbox submission.
  • ANY.RUN publishes its analysis of the Formbook/XLoader campaign, including the full infection chain, IOCs and hunting queries.

Sources cited

Drafted by the Threadlinqs research pipeline from 8 sources; published ; last updated —.

Threadlinqs Intelligence — Real-Time Threat Detection Platform

// threat_feed
$ sort --newest
Showing all threats

Live intelligence console

Threat level

Latest Threats