Vidar Stealer Unmasked: Code Signing Abuse, Go Loaders and File Inflation
Executive SummaryIn April 2026, Unit 42 researchers identified a financially motiv
2026-7-7 22:0:21
Author: unit42.paloaltonetworks.com(查看原文)
阅读量:17
收藏
Executive Summary
In April 2026, Unit 42 researchers identified a financially motivated campaign delivering Vidar stealer and the XMRig cryptocurrency miner to consumer and small- and medium-sized business victims worldwide.
Attackers lure victims via malvertising to pages for downloading files that impersonate cracked versions of copyright-protected software. Upon execution, the loader drops and runs both Vidar stealer and XMRig. Vidar stealer targets information like browser credentials, cookies and crypto wallets. XMRig mines Monero cryptocurrency.
We assess the operator of the campaign to be a Vidar stealer malware-as-a-service (MaaS) affiliate involved in operations targeting victims in the U.S. and European Union. This article provides a technical analysis of the campaign.
Palo Alto Networks customers are better protected from the threats discussed above through the following products and services:
Since its emergence, attackers have used Vidar stealer in multiple large-scale campaigns. We identified a notable spike in activity from mid-late April 2026, primarily targeting organizations in the U.S. and the EU.
Figure 1 illustrates the timeline of the April 2026 campaign, which shows the number of Vidar stealer samples discovered each day.
Figure 1. April 2026 campaign.
Our investigation of this activity led to the discovery of loader binaries distributing both Vidar stealer and XMRig.
Initial Access: Malvertising via Fake Software Cracks
This group behind this campaign distributes loader binaries through malvertising, targeting victims who search for pirated or cracked versions of copyright-protected software. The filenames used in this campaign mimic cracked versions of popular copyright-protected programs as well as generic installers.
The campaign delivers the malware in password-protected archives with a .bin extension in the filenames. This appears to be a deliberate choice to bypass email gateway scanning and to prevent automated sandbox detonation without the password.
We initially discovered 43 of these loader binaries that deliver Vidar stealer and XMRig. Upon extraction and execution, the loader binary is signed with a certificate (subject CN=justwatch[.]com), creating a false sense of legitimacy before any malicious activity begins.
Our analysis of these loader samples indicates they use the Factory-v3 framework.
Factory-v3/UpdateFactory Builder
Factory-v3 has been described as a MaaS builder used for different families of stealer malware. All 43 samples we discovered from this campaign contain embedded Go build metadata identifying the Factory-v3 framework.
The Factory-v3 builder's internal name of UpdateFactor is revealed in a developer/build machine path shown in the programming database (PDB) strings of the loader DLL files:
Figure 2 shows a diagram of information from the build machine metadata.
Figure 2. Information from the build machine path.
The builder generates a unique binary per build. For example, we observed 27 unique build UUIDs across 43 samples, defeating hash-based detection. The builder uses Go version 1.25.9, a custom pre-release of tools for the Go programming language.
Anti-forensic measures are consistent across all samples:
The PE TimeDateStamp is zeroed
No PE version info is present
DLL imports are reduced to kernel32.dll only
User-defined type names are obfuscated to a V###### pattern
The same builder, toolchain and Authenticode certificate infrastructure underpin a concurrent Lumma stealer campaign. This indicates Factory-v3 is used as a service for multiple stealer affiliates.
Rogue Authenticode Certificate
All 43 loader samples carry an Authenticode signature fabricated to impersonate JustWatch GmbH, a legitimate German streaming guide service. JustWatch has not been compromised. The certificate is entirely fabricated using a self-signed root certificate authority (CA) that is not present in any public trust store, as shown below in Figure 3.
Figure 3. Rogue certificate information.
Because the certificate is not chained to a Microsoft-trusted root, Windows SmartScreen and Authenticode validation will flag the binary as untrusted. However, the visual presence of a recognizable brand name in the signature dialog is sufficient to deceive many victims into proceeding.
Sample Clusters
The 43 loader samples fall into four clusters, as Table 1 below shows.
Cluster
CPU Architecture
File Type
Frequency Count
Role
A
x64
EXE
26
Go loader (file-inflated EXE)
B
x64
DLL
13
Fake MpClient.dll sideload
C
x86
EXE
3
Go loader 32-bit (shared with Lumma Stealer campaign)
D
x64
EXE
1
Vidar core payload
Table 1. Sample clusters with filetype.
Cluster B DLL variants export Windows Defender MpClient.dll API functions to enable DLL search-order hijacking (MITRE ATT&CK® T1574.002). When a legitimate Windows Defender binary attempts to load MpClient.dll, the operating system locates the malicious copy first if it is placed in a higher-priority search path. The exported function names mimicked include MpAllocMemory, MpClientUtilExportFunctions, MpConfigOpen, MpFreeMemory and nine others.
File-Size Inflation
Loaders in Clusters A and C append hundreds of megabytes of null bytes after the last PE section, pushing the total file size to as high as 491 MB. Most automated sandbox environments enforce an upper file-size limit of 50-100 MB and silently skip oversized submissions, meaning the malware never executes in the analysis environment.
The real malicious content in the largest observed sample is only 2.3 MB, and the remaining 489 MB is null byte padding. Defenders should ensure security tooling removes null byte padding before applying size limits, since the same sample compresses to approximately 2.4 MB.
AMSI Bypass
Static disassembly of the Vidar core payload sample (SHA256 hash: 7ed4a256e1d281cb4f194d13ff554fb280dafde0a67a18115ea038ea6c87d) reveals an in-memory Antimalware Scan Interface (AMSI) bypass that executes before any stealer logic runs. The routine loads amsi.dll, resolves the AmsiScanBuffer variable and overwrites its first six bytes with a patch. This patch forces the function to return E_INVALIDARG, which might disable Windows AMSI for all subsequent script and code execution on the victim machine.
Both the DLL name and function name are XOR-obfuscated with single-byte key 0x05 to evade static string scanning. Table 2 shows the encoded and decoded strings for these names.
Encoded String
XOR Key
Decoded String
dhvl+aii
0x05
amsi.dll
DhvlVfdkGpcc\`w
0x05
AmsiScanBuffer
Table 2. Encoded and decoded strings from the sample.
Figure 4 below shows patched bytes written to the AmsiScanBuffer location (0x80070057).
Figure 4. AMSI buffer bytes.
The binary uses a second, longer obfuscation layer for larger data blobs. This layer is obfuscated by a 32-byte rotating XOR with the key 69946018ddda1058ce5c2a556c78a747838865c47074dcb165effb0840cb1cf5 applied to the Telegram bot token, Monero wallet address and mining pool hostname for the XMRig payload.
Attack Chain
Figure 5 shows that the attack chain begins with malvertising, luring victims into downloading a password-protected .bin archive disguised as a cracked version of a legitimate program.
Figure 5. Execution chain X3D MINER/Vidar Stealer via Factory-v3.
The loader extracted from the .bin archive exhibits the following features:
It leverages the Factory-v3 Go framework
It is signed with a fake JustWatch certificate
It is padded with null bytes to reach a large file size of hundreds of MB to evade detection
The malware employs anti-analysis techniques such as process enumeration, alongside an AMSI bypass where the AmsiScanBuffer function is patched to prevent detection by some types of security software.
Subsequently, the malware drops multiple payloads including Vidar stealer and the XMRig cryptocurrency miner, while establishing persistence mechanisms through registry modifications and scheduled tasks.
The next stage involves reconnaissance, as the malware gathers information about files, hardware IDs (HWID) and bypasses proxies. Vidar stealer then exfiltrates sensitive data such as credentials and cryptocurrency wallets, communicating with a command-and-control (C2) server at 136.243.203[.]109.
Simultaneously, XMRig begins mining Monero using the mining pool at pool.supportxmr[.]com. Finally, the attacker is notified of new activity via Telegram, with messages labeled "X3D MINER • NEW LOG," ensuring the operator stays informed about successful infections and stolen data. This means the threat actor behind Vidar is deploying the X3D MINER XMRig package.
Dynamic analysis of the Vidar core payload confirmed the following execution sequence:
Geolocation beacon: GET request to ip-api[.]com/json resolves the victim's public IP address and country, which are embedded in the subsequent Telegram alert
Payload drop: It drops MicrosoftUpdate.exe in the %TEMP% directory as part of the Vidar stealer component and it places the following files in %AppData%\Temp%AppData%\Temp
MicrosoftEdgeUpdate.exe (the XMRig launcher)
libuv-1.dll (an XMRig dependency)
WinRing0x64.sys (an XMRig kernel driver)
mgwthmc2.dat (an XMRig Monero configuration file)
It copies itself to this folder as NisSrv.exe for persistence
Vidar stealer: MicrosoftUpdate.exe is written to %TEMP% and executed. It targets browser credential stores, cookies and crypto wallet data, packaging everything into a ZIP for exfiltration to 136.243.203[.]109:443.
XMRig miner: MicrosoftEdgeUpdate.exe is launched with --config=mgwthmc2.dat. The configuration is built entirely in memory before being written to disk, with the Monero wallet address and pool details decrypted from encrypted blobs. Each victim's C:\ volume serial number is hashed into an 8-character HWID that is appended to the auth_token field, allowing the operator to track per-victim mining output in the Monero pool dashboard.
Persistence Mechanisms
The payload establishes persistence through three parallel mechanisms:
Registry Run key:
HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run value name SystemAgentService, data "...\AppData\Roaming\Microsoft\Windows\Temp\NisSrv.exe" -s
All three mechanisms point to the malware file named NisSrv.exe. Attackers chose this filename to blend in with legitimate Windows Defender components, since the real NisSrv.exe is the Network Inspection Service binary.
X3D MINER
The tag X3D MINER appears in Telegram operator notifications sent for every new victim infection. This moniker is used by a group associated with XMRig and binding XMRig with other programs.
The operator behind this campaign runs a dual-monetization scheme. Criminals sell credentials and session cookies stolen by Vidar stealer on criminal log markets, while XMRig provides passive income from hijacked victim CPU cycles. The Factory-v3 builder is assessed to be a separate upstream service used by at least two distinct stealer affiliates.
Variant B
Pivoting on information from the initial 43 loader samples, we identified 56 additional samples of a subsequent variant on April 24, 2026. This variant retains the same builder, delivery and C2 infrastructure.
The operating characteristics, Go loader, Factory-v3 builder, Telegram dead-drop and payload delivery are identical to the original campaign. The single differentiating factor is the Authenticode certificate.
The operator transitioned from using a self-signed certificate mimicking JustWatch to another unauthorized certificate designed to resemble the BleacherReport[.]com certificate. This technique is known as Code Signing Impersonation.
Attackers craft certificates to mimic legitimate, trusted publishers (e.g., Microsoft or Google) by cloning their metadata as Table 3 below shows. It is important to note that Bleacher Report has not been compromised.
Variant A
Variant B
Subject
CN=justwatch[.]com
CN=\\*.bleacherreport[.]com
Issuer
CN=WR3 (rogue self-signed CA)
CN=GlobalSign Atlas R3 DV TLS CA 2026 Q1 (Cloned issuer name)
Chain is trusted?
No
No
Certificate type
Fake Authenticode (CA:TRUE)
Certificate chain could not be built to a trusted root authority (fake certification)
Table 3. Certificate data from the old and new variants of Vidar stealer.
We observed these samples contacting the Telegram channel ci0iiif. New C2 servers in this cluster include 138.199.246[.]13, 116.203.243[.]208 and 136.243.203[.]111.
Conclusion
This campaign demonstrated a multi-layer evasion approach. This approach combined the following characteristics:
Rogue certificates
Go-compiled loaders with per-build unique hashes
Binaries inflated to hundreds of MB with null byte padding
An in-memory AMSI bypass
Loader samples sharing these characteristics were all delivered via a MaaS platform that also serves other malware stealer families.
The operator's shift from using a self-signed certificate to leveraging an unauthorized certificate in Variant B demonstrates the actor's ability to adapt rapidly.
We recommend that organizations enforce strong Authenticode chain validation and supplement it with:
Certificate serial blocklisting
Configuring security tooling to scan files regardless of size
Monitoring for MpClient.dll loading from non-standard paths.
Defenders should also:
Hunt for the persistence indicators and file-drop patterns described above
Block outbound connections to all C2 addresses and pool.supportxmr[.]com immediately
Palo Alto Networks Protection and Mitigation
Palo Alto Networks customers are better protected from the threats discussed above through the following products:
Cortex XDR and XSIAM help to prevent the threats described in this article, by employing the Malware Prevention Engine. This approach combines several layers of protection, including Advanced WildFire, Behavioral Threat Protection and the Local Analysis module, to prevent both known and unknown malware from causing harm to endpoints.
The Advanced WildFire machine-learning models and analysis techniques have been reviewed and updated in light of the indicators shared in this research.
Prisma Browser provides additional protection layers against advanced web threats including dynamic scans of every loaded web page, to prevent execution of new and unknown malicious attacks such as the malvertising campaign described above, and to protect company assets.
If you think you may have been compromised or have an urgent matter, get in touch with the Unit 42 Incident Response team or call:
North America: Toll Free: +1 (866) 486-4842 (866.4.UNIT42)
UK: +44.20.3743.3660
Europe and Middle East: +31.20.299.3130
Asia: +65.6983.8730
Japan: +81.50.1790.0200
Australia: +61.2.4062.7950
India: 000 800 050 45107
South Korea: +82.080.467.8774
Palo Alto Networks has shared these findings with our fellow Cyber Threat Alliance (CTA) members. CTA members use this intelligence to rapidly deploy protections to their customers and to systematically disrupt malicious cyber actors. Learn more about the Cyber Threat Alliance.
Indicators of Compromise
Vidar C2 Server IP Addresses
116.203.243[.]208
136.243.203[.]109
136.243.203[.]111
138.199.246[.]13
Code Signing Certificate Information
(Read: Field - Value)
Subject Common Name (CN) - justwatch[.]com
Issuer Common Name (CN) - WR3
Serial Number - 2f:7e:f0:15:7d:17:62:5c:09:86:91:ce:f1:ff:7d:63