Formbook XLoader: A Fake Order That Hides Inside a Windows Process
A localized order lure in a ZIP ends with Formbook XLoader hiding inside the Windows process aspnet_compiler.exe to steal saved browser logins.

AegisAI Threat Watch · Process hollowing
Formbook XLoader: A Fake Order That Hides Inside a Windows Process
An order-themed ZIP attachment starts a script chain that hollows Formbook XLoader into aspnet_compiler.exe and steals saved browser logins.
- What
- A ZIP of order documents carries a script that ends with Formbook XLoader running inside aspnet_compiler.exe, a signed Windows utility, and stealing saved browser logins.
- Who it hits
- Procurement and finance staff, mainly at manufacturing and technology firms, in sandbox data from the UK, Italy, the Balkans and the South Caucasus.
- Why scanners miss it
- Every stage runs as a trusted Windows tool or in memory, so a check on process names sees nothing unusual.
- Do today
- Hunt for hidden PowerShell started by wscript.exe, and for aspnet_compiler.exe or rekeywiz.exe launching with an unusual parent.
Reported by ANY.RUN, 10 November 2026.
A Formbook XLoader campaign hides inside a signed Windows process: an order-themed ZIP starts a script chain that hollows the malware into aspnet_compiler.exe, so the thief runs under a trusted name while it reads saved browser logins.
Process hollowing means starting a legitimate program in a suspended state, emptying its memory and loading attacker code in its place. The process still carries the legitimate name, which is why a defence that trusts process names has nothing to flag. Formbook, also sold as XLoader, is an infostealer that has been sold as a service since 2016.
Analysis based on ANY.RUN research published on 10 November 2026. The same malware family has hit the same part of Europe before: Infosecurity Magazine reported earlier Formbook campaigns against Greece, Spain, Slovenia, Bosnia and Croatia in April 2026. Threat Watch has also covered order emails that pass DMARC.
Source: ANY.RUN, 10 November 2026. The 15 launches and the 5 second check are from one analysed sandbox session.
Key judgments
- Every stage borrows trust. The script runs through wscript.exe, the next stage runs in memory through PowerShell, the malware sits inside aspnet_compiler.exe and later moves into rekeywiz.exe, so a rule that keys on a suspicious file or process name has little to match.
- The ZIP is mostly noise. The JavaScript is about 2 MB of obfuscator.io output with encrypted strings, built to defeat static analysis rather than to hide a short script.
- Killing the process does not end the infection. A watchdog named Operate-Beacon checks every five seconds whether the hollowed process is running and reloads the injector if it is not.
- The lure follows the recipient's language and routine. The related samples use Croatian, Bosnian, Turkish and Azerbaijani themes, so a defence tuned to one language of lure misses the rest, as the researchers note.
- Persistence is named to blend in. The Run key values and the Startup shortcut both use the pattern SystemUpdate_ps_*, and the shortcut is described as "System Update Service".
Evaluating email security tools? The 2026 Buyer's Guide to Email Security has nine evaluation areas and the questions to ask vendors. Get the guide.
How does Formbook XLoader hide inside aspnet_compiler.exe?
ANY.RUN describes one chain from the ZIP to the stolen data. Steps 1 to 3 are the delivery and the loader; steps 4 to 6 are the injection, the watchdog and the theft.
- An employee in procurement or finance receives a message with a ZIP attachment named like a routine business document. The analysed archive, Nova narudžba 0148-712.zip, carries a Croatian name for "new order" and holds a JavaScript file of the same name.
- Opening the script runs about 2 MB of obfuscated JavaScript. It decodes an embedded PowerShell payload, writes it to a randomly named file under C:\Temp\ (or %TEMP% as a fallback) and starts it with hidden, non-interactive flags. A WMI check kills the process if it runs longer than 50 seconds.
- The PowerShell stage, headed "PowerShell Modular AES Pipeline Loader", decrypts the next stage and runs it in memory. It then clears its resource map and forces garbage collection to leave less for disk-based analysis.
- The decrypted stage holds a .NET injector named GHOST.dll, protected with ConfuserEx, and the Formbook payload. The injector hollows Formbook into aspnet_compiler.exe, a legitimate Windows utility.
- The watchdog, Operate-Beacon, checks every five seconds that the hollowed process is still running and reloads GHOST.dll if it is not. Analysts saw 15 launches of aspnet_compiler.exe in one session.
- Formbook then moves into rekeywiz.exe, a legitimate Windows EFS utility, launches Firefox and creates a randomly named file in %TEMP%, which the researchers say is consistent with collecting browser databases before reading them. It contacts two command domains.
Source: ANY.RUN, 10 November 2026. The Croatian meaning of the file name is AegisAI's translation; ANY.RUN reports the name only.
What a defender sees at each stage
The table lists the process name at each step and why a name check alone does not help. It is AegisAI's reading of the reported chain.
| Stage | What runs | What looks normal about it |
|---|---|---|
| Delivery | ZIP attachment holding a .js file | An order document in the recipient's own language |
| Script | wscript.exe runs the obfuscated JavaScript | A built-in Windows script host |
| Loader | Hidden PowerShell runs a randomly named .ps1 from C:\Temp\ or %TEMP% | PowerShell is in daily use by administrators |
| Injection | GHOST.dll hollows Formbook into aspnet_compiler.exe | A signed Microsoft .NET utility |
| Theft | Formbook inside rekeywiz.exe launches Firefox and reads browser data | A signed Windows EFS utility |
The reported timeline
| When | What was reported |
|---|---|
| April 2026 | Infosecurity Magazine reports earlier Formbook campaigns using business-themed phishing emails with archive attachments against Greece, Spain, Slovenia, Bosnia and Croatia |
| 7 October 2026 | The archive is first submitted to ANY.RUN's sandbox, and is submitted several times after that |
| 23 October 2026 | The archive is seen arriving as an email attachment |
| 10 November 2026 | ANY.RUN publishes its analysis |
Source: ANY.RUN for the 2026 October and November dates; Infosecurity Magazine, 20 April 2026, for the earlier campaigns.
How do I detect Formbook process hollowing in aspnet_compiler.exe?
Detect the chain, not the file name. ANY.RUN's guidance is to examine parent processes, command-line arguments, execution context and memory behaviour instead of relying on process names, and to correlate several indicators, for example hidden PowerShell launched by wscript.exe, rather than a single filename.
Four signals from the report make workable hunting rules:
- wscript.exe starting a hidden PowerShell instance that runs a randomly named script from C:\Temp\, with the flags -ExecutionPolicy Bypass -NoProfile -WindowStyle Hidden -NonInteractive -NoLogo.
- Repeated launches of aspnet_compiler.exe, which the researchers saw 15 times in one session, with a parent that is not a build tool.
- rekeywiz.exe starting a browser. AegisAI's reading is that a utility for encrypting files has no reason to do so.
- Run key values or Startup shortcuts that match SystemUpdate_ps_*.
On the network side, the command domains are the better indicator. One of the three associated IP addresses sits on shared hosting, so the researchers prefer domain-based detection to blocking the IP address alone. The traffic also carries a user-agent string that claims to be an Android 4.1.1 tablet while the host runs Windows, which makes an outbound proxy rule possible.
| Control | What it sees in this campaign | Result |
|---|---|---|
| Process-name allow list or reputation | wscript.exe, powershell.exe, aspnet_compiler.exe, rekeywiz.exe | Passes |
| Static scan of the attachment | 2 MB of obfuscator.io output and an encrypted payload | Little to match |
| IP address blocking | One of three addresses is shared hosting | Weak and risky |
| Parent process and command-line rules | wscript.exe starting hidden PowerShell with bypass flags | Can be flagged |
| Domain-based network detection | The two command domains and an Android user-agent from a Windows host | Can be flagged |
| Reading the message that carries the ZIP | An order or payment document in the recipient's language, with a script inside the archive | Can be flagged when it arrives by email |
AegisAI's reading of the reported chain. The parent-process, domain and IP rows follow the researchers' reported guidance.
No new executable, no unusual process name. The attacker wrote an order and let Windows do the rest.
AegisAI Threat IntelligenceWhat this means for a security team
This section is AegisAI's analysis. The researchers name manufacturing and technology companies as especially exposed, because employees there handle purchase orders, supplier documents and payment requests every day. Any organization with a procurement or finance desk has the same exposure, and Formbook's reach is wider than one campaign: the same family appeared in the April reporting with different loaders and different archives.
Three questions settle the exposure: whether script files such as .js open with the Windows script host on staff machines, whether endpoint detection covers parent and child process relationships rather than names, and whether credentials saved in browsers can be reset quickly for a user who opened the archive.
Why standard controls miss it
This section is AegisAI's analysis. Controls that key on process names have nothing to object to, because wscript.exe, PowerShell, aspnet_compiler.exe and rekeywiz.exe all belong to Windows. Controls that scan files meet obfuscation built for exactly that, and an encrypted second stage that never reaches disk in readable form. The remaining signals are context: who started the process, with which arguments, and what it then did. Before any of that, the attack is a message. A business document in the recipient's language that holds a script file is a request to open it, and that request is visible when the email arrives.
How AegisAI protects against it
AegisAI has not observed this campaign. ANY.RUN reports that the archive arrived as an email attachment, so the approach below is how AegisAI treats a lure of this shape when it arrives by email. It does not cover what happens on an endpoint after the script runs.
AegisAI's agents evaluate the message and the destination it points to together, and pull a malicious message out of mailboxes before users see or click it. More on how that works: inbound email security.
When a lure or a compromised session is caught, the response compounds: the message is withheld at classification, copies already delivered are retracted, rewritten links refuse a late visit, the account's outbound and internal mail gets rescanned, and lateral phishing attempts to colleagues are blocked at the same bar rather than treated as a fresh, unrelated message.
Recommendations for defenders
- Block script attachments such as .js inside ZIP files at the mail layer where there is no business need, and set the default handler for .js on staff machines to a text editor rather than the Windows script host.
- Add detections for wscript.exe starting hidden PowerShell with execution-policy bypass, and for aspnet_compiler.exe or rekeywiz.exe launched by an unexpected parent, started repeatedly or opening network connections.
- Hunt for Run key values and Startup shortcuts matching SystemUpdate_ps_*, and detect the two command domains in proxy and DNS logs instead of blocking the shared IP address.
- Brief procurement and finance staff that order, price-list and bank-transfer documents arrive in many languages, and that a script file inside an archive is never an order.
- Where a user opened the archive, isolate the host, then treat browser-saved credentials as exposed: reset them and review the accounts they unlock.
FAQ
What is the Formbook XLoader campaign that hides inside aspnet_compiler.exe?
It is an infostealer campaign reported by ANY.RUN on 10 November 2026. A ZIP of localized order documents holds a JavaScript file that starts a PowerShell loader, which injects Formbook XLoader into the legitimate Windows process aspnet_compiler.exe through process hollowing. The malware then reads stored browser credentials.
Is Formbook the same malware as XLoader?
Yes, for practical purposes. ANY.RUN says XLoader is an evolution of Formbook and that both names are used for the same family. Infosecurity Magazine reports that Formbook has been sold as malware-as-a-service since 2016.
How do I detect Formbook process hollowing in Sysmon or EDR logs?
Correlate several signals instead of matching one process name. Look for wscript.exe launching hidden PowerShell that runs a randomly named script from C:\Temp\, repeated launches of aspnet_compiler.exe, and rekeywiz.exe starting a browser. Also look for Run keys or Startup shortcuts named SystemUpdate_ps_*.
Why does Formbook traffic show an Android user-agent on a Windows machine?
ANY.RUN observed that the campaign's command traffic used a user-agent string impersonating an Android 4.1.1 tablet even though it came from Windows hosts. That mismatch is a detection clue: a proxy rule that flags an Android user-agent from a Windows endpoint can surface the traffic.
For researchers
What the reporting does not tell us 4 gaps
Attribution. ANY.RUN names no threat actor and gives no victim counts. Its user-community figures describe its own platform, not infections.
Delivery. The archive is reported as an email attachment on 23 October. Senders, wording, volume and which organizations received it are not published, and the countries come from sandbox submissions, not from victim data.
Theft. Firefox launching and a random temporary file are described as consistent with collecting browser databases. What was read and what was sent to the command servers is not shown.
Link to earlier campaigns. The April 2026 reporting concerns the same malware family and region with different archives and loaders. Neither report ties the two to one operator.
Reported indicators 16 items
Indicators from ANY.RUN's report, defanged. Treat the file names as lure examples; the hashes are specific to this sample set.
| Type | Indicator | Role |
|---|---|---|
| Domain | www[.]hlushkova[.]top | Command server |
| Domain | www[.]stanbicfinanceug[.]com | Command server |
| IP address | 91[.]234[.]194[.]113 | Associated with the campaign |
| IP address | 2[.]58[.]67[.]83 | Associated with the campaign |
| IP address | 5[.]9[.]115[.]199 | Shared hosting; do not block alone |
| SHA-256 | 58eb890b612938867237c3fa1715b8742d9b25a8fe136cd75ea659882b7b7a10 | Nova narudžba 0148-712.zip |
| SHA-256 | a970e997093fcd10d108354423c8fa420a6887ed97cbf7c7dbe3551faa4d9b95 | Nova narudžba 0148-712.js |
| SHA-256 | b0ee22dee7a8a9710992294f73069f047d31506b50dc1150ef6013fcd6225ed1 | AES PowerShell loader |
| SHA-256 | 45e598a8dddd7e9cc7b7e7a2f319c0e9f3f090ad4a089e50c3c9e4d75ee9d718 | PowerShell injector |
| SHA-256 | 2974a808e24e76c1a9fecdaaecebefe27e841204bc1aa20536c32c1f0b309f47 | GHOST.dll |
| SHA-256 | f5c9a28325ed2eab5c7d029bfed410f05ae858b6b436e3b14891f29a6ec96d73 | Formbook payload |
| SHA-256 | 4fd6430a61e5d42a452c3a7de94d03173b9eb02d06aa33357fe5ee9776524aec | Persistence shortcut |
| Name | Operate-Beacon | Watchdog component |
| Name | SystemUpdate_ps_* | Run key values and Startup shortcut (.lnk, "System Update Service") |
| Path | C:\Temp\ps_<random>_<timestamp>.ps1 | Randomly named PowerShell stage (%TEMP% as fallback) |
| User-agent | Android 4.1.1 tablet | Sent from Windows hosts in command traffic |
MITRE ATT&CK mapping 8 techniques
This mapping is AegisAI's own reading of the reported behaviour; ANY.RUN's report lists no technique IDs. IDs and names were checked against attack.mitre.org on 11 November 2026.
| ID | Name | Use in this campaign |
|---|---|---|
T1566.001 | Phishing: Spearphishing Attachment | The ZIP arrives as an email attachment disguised as an order document. |
T1204.002 | User Execution: Malicious File | The recipient opens the JavaScript file inside the archive. |
T1059.007 | Command and Scripting Interpreter: JavaScript | The obfuscated JavaScript starts the chain. |
T1059.001 | Command and Scripting Interpreter: PowerShell | A hidden PowerShell stage decrypts and runs the next stage in memory. |
T1027 | Obfuscated Files or Information | obfuscator.io output, an encrypted PowerShell payload and a ConfuserEx-protected injector. |
T1055.012 | Process Injection: Process Hollowing | GHOST.dll hollows Formbook into aspnet_compiler.exe. |
T1547.001 | Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder | SystemUpdate_ps_* Run key values and a Startup shortcut. |
T1555.003 | Credentials from Password Stores: Credentials from Web Browsers | Reported as consistent with collecting browser databases before reading them; theft itself is not confirmed. |
References 3 sources
- ANY.RUN (10 Nov 2026). Formbook malware analysis, November 2026. any.run
- Infosecurity Magazine (20 Apr 2026). Formbook malware campaigns. infosecurity-magazine.com
- MITRE ATT&CK. Enterprise techniques T1566.001, T1204.002, T1059.007, T1059.001, T1027, T1055.012, T1547.001 and T1555.003. attack.mitre.org
Every email, investigated.
When an order-themed message with a script inside an archive reaches a work inbox, see how AegisAI reads the request and where it leads.
Phishing that reaches the inbox, stopped before anyone clicks.
Book a demoRelated posts
More from the AegisAI blog.

