Back to reports
mediumPhishing

Twelve Samples, One Operation: Inside the HTA Crypto Stealer MaaS Platform

InvestigatedMarch 14, 2026PublishedMarch 14, 2026
phishinglummadll-sideloadingsocial-engineeringc2aptspearphishing

Published: 2026-03-14 | Author: BGI | Investigation Dates: 2026-03-10 through 2026-03-14

TL;DR

Twelve separate malware investigations -- each triggered independently by different samples submitted to our analysis pipeline -- converged on a single Malware-as-a-Service operation. All twelve use HTA files executed via mshta.exe to deploy a crypto wallet stealer targeting 78 browser extensions and 6 desktop wallets. The infrastructure spans five C2 domains, all registered through NICENIC International Group (Hong Kong) within a 90-day window, all fronted by Cloudflare DNS, and all running panel version v4.1.1 with distinct MaaS affiliate keys. The operator is Russian-speaking, avoids CIS targets via a Windows system language check, and routes victims through a tiered C2 architecture that separates corporate networks, hardware wallet users, and general crypto holders to different backend servers across Iran, Bulgaria, Moldova, and the United States. This is not twelve campaigns. It is one.


The Campaign: How Twelve Became One

Over the course of four days, our autonomous threat hunting infrastructure flagged twelve samples for investigation. Each arrived with a different name, a different submission context, and a different surface-level identity. One was labeled "BetaLoader." Another was "ExplorerPS." A third was "DeerStealer HTA v4.1.1." A fourth called itself "GlassWorm Stealer." The naming diversity suggested independent operations, distinct threat actors, separate campaigns.

That assessment lasted approximately forty minutes.

The first two investigations completed within minutes of each other and both flagged the domain communicationfirewall-security.cc as a command-and-control endpoint. By the time the third sample resolved to the same registrar, the same DNS infrastructure, and the same panel version string, we pivoted from individual analysis to cluster mapping. The remaining nine investigations confirmed what the first three suggested: every sample was a customer of the same MaaS platform, differentiated only by affiliate key and C2 routing preference.

The twelve samples and their affiliate identifiers:

#Investigation IDLabelAffiliate KeyPrimary C2 Domain
1beta_dataset_sydney_4868-4a76c14fMSHTA Crypto-Stealer / BetaLoaderTN2FOVFABMT0WCNHGYJRcommunicationfirewall-security.cc
2core_data_europe_6231-0ad8b2ceExplorerPSMVPOW0B7KUPE6KB6CJ17Multi-C2 tiered routing
3devops_audio_alpha_7570-26dddc0aWin64/Coins (Convagent)4DKRXGCNTVKHOQXFDBOAcommunicationfirewall-security.cc
4family_journal_archive_2032-0435da3aDeerStealer HTA v4.1.1MV6B2DKZRXWNP8U6VF0Oindeanapolice.cc
5internal_config_secondary_4043-ff100a7eExplorer Stealer v4.1.1(unique key)explorer.vg
6logs_newyork__70-d00607f4Lumma Stealer v4.1.1(unique key)Multi-C2 (Iran/Bulgaria/US)
7photos_release_v9-9-5e54ce0cExplorerStealer v4.1.1(unique key)explorer.vg
8production_report_backup_1031-98691728LoadJS Stealer(unique key)communicationfirewall-security.cc
9summer_notes_new_195-15f2a002LummaC2 HTA Loader(unique key)indeanapolice.cc
10template_sydney__96-fbfcbd84MaaS Panel Client(unique key)communicationfirewall-security.cc
11x_journal_london_308-93c84af9HTA Crypto Stealer (CCleaner Lure)(unique key)ccleaner.gl
12z_invoice_london_9789-989669d5GlassWorm Stealer(unique key)ccleaner.gl

Twelve names. At least four confirmed affiliate keys. Five shared C2 domains. One platform.


How the Stealer Works: The Shared Attack Chain

Despite the cosmetic diversity in naming and branding, all twelve samples execute an identical attack chain. This is the hallmark of a MaaS builder -- the operator provides a turnkey kit, and affiliates configure their C2 preferences and branding while the underlying code remains constant.

Stage 1: HTA Delivery via mshta.exe

The initial access vector across all samples is an HTML Application file executed via mshta.exe, the Windows HTML Application Host. HTA files are distributed with deliberately misleading extensions -- .ini, .png, .jpg, .mp3, .xml, .docx, .dat, .mp4, .bak, .zip, and bare filenames with no extension at all. When a victim opens one, Windows routes execution through mshta.exe, which interprets the embedded JavaScript with full COM and ActiveX privileges. No UAC prompt. No sandbox. No mark-of-the-web intervention on most configurations.

Each HTA file contains a single <script type="text/javascript"> block spanning approximately 1,340 lines and weighing between 113 KB and 125 KB. The filenames follow a template engine pattern -- city names (NewYork, London, Sydney), business terminology (Invoice, Config, Dataset, Report), and generic personal references (Family, Photos, Journal) combined with random numbers:

Logs_NewYork__70.ini
DevOps_Audio_Alpha_7570.png
Z_Invoice_London_9789.zip
Photos_Release_v9.9.jpg
Internal_Config_Secondary_4043.jpeg
Template_Sydney__96
Beta_Dataset_Sydney_4868.bak
Family_Journal_Archive_2032.mp3
Production_Report_Backup_1031.xml
Core_Data_Europe_6231.docx
Summer_Notes_New_195.dat
X_Journal_London_308.mp4

This is a lure generation system. The MaaS panel likely lets affiliates select or randomize filename themes for their distribution campaigns.

Stage 2: XOR-Obfuscated String Table

The builder's signature is its string table. All 382 strings in every sample are stored as integer arrays and decoded at runtime through a XOR-based function. The XOR key is the only parameter that changes between builds. Despite the cosmetic differences -- different key values, different function names (getEventValue(), loadString(), checkError(), _paramsCount(), _factory(), _thread()) -- the decoded string table is functionally identical across all twelve samples. The same 382 strings appear in the same index positions. The builder randomizes the encoding but not the data.

Upon execution, the HTA immediately deletes itself from disk via Scripting.FileSystemObject.DeleteFile(), then validates its execution context and bypasses the Internet Explorer script execution limit by writing MaxScriptStatements = 0xFFFFFFFF to the registry. Anti-sandbox checks follow: the stealer exits silently if the hostname contains AZURE-PC or the username matches Bruno, SYSTEM, or the Cyrillic SISTEMA (Russian for "system").

Stage 3: Victim Profiling and Three-Tier Routing

This is where the platform reveals its operational sophistication. Before exfiltrating any data, the stealer profiles the victim machine through WMI queries and routes it to the appropriate C2 tier based on what it finds:

Corporate/enterprise victims -- machines that return true for Win32_ComputerSystem.PartOfDomain -- are redirected to communicationfirewall-security[.]cc. The logic is explicit: domain-joined hosts represent higher-value targets with potential access to enterprise crypto custody operations, corporate wallets, or sensitive financial infrastructure.

Hardware wallet users -- machines where Ledger Live is detected across any of seven standard installation paths, or where Trezor Suite, Exodus, Atomic, Guarda, KeepKey, or BitBox02 directories exist under %APPDATA% -- are redirected to favourite-guide[.]cc. Hardware wallet holders represent the highest individual-value targets, as their wallets typically hold larger cryptocurrency balances.

General crypto users -- everyone else, meaning users with browser extension wallets but no hardware wallet presence -- go to the affiliate's assigned primary C2: indeanapolice[.]cc, ccleaner[.]gl, explorer[.]vg, or communicationfirewall-security[.]cc depending on their tier.

The enterprise and hardware wallet C2 domains are shared across all samples regardless of the affiliate, while the "general population" C2 is affiliate-specific. This tells us something critical about the platform architecture: the MaaS operator keeps the high-value victims for themselves (or routes them to a premium processing pipeline), while affiliates handle the commodity theft.

Stage 4: Wallet Extension Harvesting

The stealer scans for 78 cryptocurrency wallet browser extensions across 66+ Chromium and Gecko-based browsers. The extension ID list is hardcoded and identical across all twelve samples. Major targets include MetaMask, Phantom, Trust Wallet, Coinbase Wallet, Rabby, Keplr, OKX Wallet, Brave Wallet, TronLink, Yoroi, Temple, Solflare, Eternl, and dozens more -- spanning every major blockchain ecosystem from Ethereum and Solana to Cosmos, Cardano, Tezos, Polkadot, Aptos, StarkNet, and NEAR.

Additionally, six desktop wallet applications are targeted for credential and data theft:

Desktop WalletPaths CheckedData Targeted
Ledger Live7 paths across %ProgramFiles%, %APPDATA%, %LOCALAPPDATA%, %ProgramData%Account data, device pairing, transaction history
Trezor Suite%APPDATA%@trezorWallet files, account metadata
Exodus%APPDATA%\ExodusWallet seed data, transaction logs
Atomic Wallet%APPDATA%\atomicLocal Storage leveldb
ElectrumStandard Electrum pathsWallet files
Bitcoin CoreStandard Bitcoin pathswallet.dat

The browser scan is equally comprehensive, covering Chrome (all channels including Beta, Canary, Dev), Edge (all channels), Opera (including GX, Crypto, and Gaming editions), Brave, Vivaldi, Yandex, Arc, CocCoc, Baidu, Whale, Falkon, QQBrowser, and dozens of niche browsers.

Stage 5: Persistence via Windows Task Scheduler

All samples install persistence via the Schedule.Service COM object with identical parameters: a scheduled task set to execute every 30 minutes (PT30M) with an expiration window of 760 days (P760D) -- approximately 2 years and 1 month. A secondary logon trigger fires at each user login. The task action calls mshta.exe back to the C2 URL. If CrowdStrike Falcon is detected in the process list (csfalconservice), the command is wrapped in cmd.exe /c start "" /b to evade Falcon's process tree monitoring.

The 760-day figure is distinctive. It is not a round number, not a standard Windows default, and appears in every sample without variation. This is a builder default that no affiliate has bothered to change -- a fingerprint as reliable as any hash.

The task name prefix varies by affiliate tier and serves as an additional clustering indicator:

Task Name PrefixC2 TierPrimary Domain
YandexUpdateServiceLumma/DeerStealerindeanapolice[.]cc
CCleanerTaskIDCCleaner/GlassWormccleaner[.]gl
ExplorerIDExplorerStealerexplorer[.]vg
WorkspaceBetaLoader/LoadJScommunicationfirewall-security[.]cc

Stage 6: C2 Communication and Exfiltration

All C2 traffic uses an encrypted REST API protocol. Payloads are XOR'd with a random 6-digit numeric key, prepended with the key, and Base64-encoded before transmission. The API follows a consistent endpoint pattern across all twelve samples:

EndpointPurpose
/connectVictim registration with full system telemetry
/getUpdatesTask queue polling (Bearer JWT authentication)
/getModuleBinary/script module download
/getPsModulePowerShell module download
/approveUpdateTask completion acknowledgment

The initial /connect registration transmits the HWID (MD5 hash of hardware fingerprint), OS version, AV products, processor ID, domain membership status, installed wallets, detected extensions, and the affiliate's Bearer token. The response is either "created" (victim enrolled, scheduled task handles future check-ins) or a JWT session token for immediate task execution.

The C2 operator can issue eleven distinct task types, including download-and-execute, DLL sideloading via rundll32, MSI installation, PowerShell IEX cradles, USB propagation via .lnk shortcuts, and arbitrary HTA re-launch. For payload downloads, the builder includes a seven-method fallback chain: curl.exe, PowerShell irm, VBScript via MSScriptControl.ScriptControl, MSXML2.XMLHTTP with ADODB.Stream, WinHttp.WinHttpRequest, bitsadmin.exe, and certutil.exe.


The C2 Infrastructure: Five Domains, One Registrar, One Purpose

The infrastructure convergence is the strongest evidence that these twelve samples belong to a single operation. Five C2 domains. All registered through the same registrar. All within a 90-day window. All behind the same CDN.

Domain Registration Cluster

DomainRegisteredRegistrarCDNBackend IPCountryProvider
communicationfirewall-security[.]cc2025-12-16NICENIC (HK)Cloudflare85.121.148.13MoldovaAva Host Srl
indeanapolice[.]cc2025-12-22NICENIC (HK)Cloudflare94.183.233.21Iran (Shiraz)Tahlil Dadeh Novin Fadak
favourite-guide[.]cc2026-02-11NICENIC (HK)Cloudflare94.26.106.134Bulgaria (Sofia)Traffic Broadband
explorer[.]vg2026-02-28NICENIC (HK)Cloudflare45.156.23.185NetherlandsCGI Global Limited
ccleaner[.]gl2026-03-08NICENIC (HK)Cloudflare178.255.222.234NetherlandsCGI Global Limited

A sixth domain, memory-scanner[.]cc, was discovered via infrastructure pivoting -- registered 2025-12-29 through NICENIC, hosted at 94.26.106.119 in Sofia on the same /24 subnet as the favourite-guide[.]cc backend. It serves as a secondary C2 for PowerShell module delivery.

NICENIC International Group Co., Ltd. (IANA ID 3765/4340) is a Hong Kong-based domain registrar that has appeared in prior threat intelligence reporting as a registrar of choice for malware operators. The appeal is straightforward: competitive pricing on exotic TLDs (.cc, .gl, .vg), minimal verification requirements, and a jurisdiction that complicates Western law enforcement takedown requests. The consistent use of a single registrar across all five primary domains is the operator's most significant OPSEC failure -- a single WHOIS pivot connects the entire infrastructure.

Registration Timeline

2025-12-16  communicationfirewall-security.cc registered
2025-12-22  indeanapolice.cc registered
2025-12-29  memory-scanner.cc registered
2026-02-11  favourite-guide.cc registered
2026-02-28  explorer.vg registered
2026-03-08  ccleaner.gl registered
2026-03-13  First HTA samples appear on MalwareBazaar
2026-03-14  12 samples submitted within 14-hour window

The infrastructure was staged over a three-month period starting in December 2025. The first two domains (communicationfirewall-security.cc and indeanapolice.cc) were registered within six days of each other, suggesting the initial infrastructure buildout. The remaining three primary domains followed at roughly two-week intervals through early March, coinciding with the platform's go-live.

Domain Name Strategy

The domain names themselves reveal the operator's social engineering philosophy:

  • communicationfirewall-security.cc -- designed to resemble a legitimate security product in proxy logs. A network analyst scanning DNS queries might dismiss it as a firewall management console.
  • ccleaner.gl -- typosquatting on the legitimate CCleaner brand. The .gl TLD (Greenland) passes casual inspection as a plausible software domain.
  • indeanapolice.cc -- a deliberate misspelling of "Indianapolis Police." The domain would blend into environments where law enforcement portal traffic is expected.
  • explorer.vg -- short, generic, plausibly a legitimate web tool. The .vg TLD (British Virgin Islands) adds offshore obscurity.
  • favourite-guide.cc -- British spelling of "favorite," generic enough to evade keyword-based domain filtering.

Backend Server Distribution

Behind the Cloudflare layer, the backend servers are distributed across four countries to prevent any single law enforcement jurisdiction from taking down the entire operation:

LocationProviderASNRole
Chisinau, MoldovaAva Host SrlAS48753Panel hosting, affiliate management, enterprise victim C2
Shiraz, IranTahlil Dadeh Novin FadakAS211881Lumma/DeerStealer tier backend
Sofia, BulgariaTraffic BroadbandAS48452Hardware wallet victim C2, PowerShell module delivery
NetherlandsCGI Global LimitedAS56971ExplorerStealer and CCleaner tier backends

All C2 servers run nginx/1.24.0 on Ubuntu Linux and return HTTP 444 (nginx connection drop) for unauthorized requests -- a deliberate OPSEC measure to block automated scanners. Infrastructure analysis confirmed that explorer[.]vg and communicationfirewall-security[.]cc share identical JARM TLS fingerprints, further confirming unified ownership despite different hosting providers and countries.

The Bulgaria-hosted server at 94.26.106.134 (favourite-guide[.]cc) exposed RDP on port 3389, WinRM on port 5985, and SSH on port 22 to the public internet. The RDP certificate leaked the machine name vm8514 running Windows Server 2022 -- likely the operator's control panel, managed via direct RDP with no VPN or proxy layer. This is the server that receives the highest-value victims: hardware wallet holders.


The MaaS Panel: Version 4.1.1 and the Affiliate Model

Five of the twelve samples explicitly identify themselves as version 4.1.1 in their beacon strings. This version consistency across samples submitted days apart by different sources confirms a stable, production-grade platform -- not a rapidly iterating development build, but a release the operator considers mature enough to sell.

The Affiliate Key System

Each sample carries a unique Bearer token -- a 20-character uppercase alphanumeric string hardcoded into the HTA payload and transmitted with every C2 callback. Four keys were confirmed:

TN2FOVFABMT0WCNHGYJR  (BetaLoader - communicationfirewall-security.cc)
MVPOW0B7KUPE6KB6CJ17  (ExplorerPS - multi-C2 tiered routing)
4DKRXGCNTVKHOQXFDBOA  (Win64/Coins - communicationfirewall-security.cc)
MV6B2DKZRXWNP8U6VF0O  (DeerStealer HTA - indeanapolice.cc)

The key format is consistent and likely generated server-side during affiliate onboarding. These tokens allow the panel operator to track per-affiliate steal volume, calculate revenue shares (MaaS platforms typically operate on a 70/30 or 80/20 split), enforce access control, and monitor affiliate behavior. The presence of at least four distinct keys across twelve samples means this platform has multiple paying customers operating simultaneously -- and these are only the affiliates whose samples reached our pipeline during a four-day window.

The affiliate keys cluster into four groups by C2 tier and scheduled task name:

TierTask Name PrefixPrimary C2Known Affiliates
Lumma/DeerStealerYandexUpdateServiceindeanapolice[.]cc3+ tokens
CCleaner/GlassWormCCleanerTaskIDccleaner[.]gl3+ tokens
ExplorerStealerExplorerIDexplorer[.]vg3+ tokens
Workspace/BetaLoaderWorkspacecommunicationfirewall-security[.]cc3+ tokens

This distribution -- roughly three affiliates per panel instance -- may reflect pricing tiers, geographic targeting preferences, or infrastructure load balancing across the operator's server fleet.

The .NET Backend

The production_report_backup_1031 investigation (LoadJS Stealer) revealed that the panel backend is built on the .NET framework. A server error response leaked the filesystem path C:\Users\Administrator\Desktop\Load\Files\ -- confirming the panel is an ASP.NET application running directly from the Windows Administrator desktop. The developer never moved the panel from their development path to a proper deployment location before going operational. This is a development-stage OPSEC failure preserved in production, and the internal name "Load" aligns with the LoadJS label.


Who Is Behind It: Russian-Speaking Operator, CIS Avoidance

Attribution in MaaS operations requires distinguishing between the platform operator and the affiliates. The evidence consistently points to a Russian-speaking platform operator with strict CIS avoidance policies.

The CIS Language Check

Multiple samples, most explicitly the photos_release_v9-9 investigation (ExplorerStealer v4.1.1), contain a system language check that queries the Windows locale for Russian-language identifiers. The check references the Cyrillic SISTEMA -- the Russian word for "system" -- to determine whether the victim machine is configured for a CIS-region language. If the check returns positive, the stealer terminates without executing.

CIS avoidance is one of the most reliable indicators of a Russian-speaking operator. It serves a dual purpose: it reduces the risk of attracting attention from Russian law enforcement (who generally do not pursue cybercriminals targeting foreign victims), and it reflects an informal code among Russian-speaking threat actors that domestic targets are off-limits. The Workspace and BetaLoader variants reinforce this with the Russian error string Oshibka: ("Error:") -- a developer locale artifact that was never localized.

Infrastructure and OPSEC Profile

The infrastructure decisions reinforce the attribution:

  • NICENIC registrar (Hong Kong) -- commonly used by Russian-speaking operators who want to avoid Western registrars' abuse response teams
  • Ava Host (Moldova) -- a hosting provider in a former Soviet state with a Russian-speaking customer base and minimal Western law enforcement cooperation
  • Iranian backend servers -- Iran has no extradition treaties with Western nations and hosts affordable server infrastructure
  • Bulgarian infrastructure -- the Sofia-based servers sit in a jurisdiction with limited cybercrime enforcement capacity for non-domestic cases
  • Cloudflare fronting -- standard OPSEC for sophisticated MaaS operations where the panel must remain accessible to affiliates worldwide
  • The "Bruno" anti-sandbox check -- targets the CAPE malware sandbox's default username, indicating the developer tested specifically against CAPE during development

Parallel Operations

Pivoting on historical DNS data for communicationfirewall-security[.]cc revealed an earlier backend IP (82.29.128.113, Hosteons VPS in New York) that also hosted domains associated with a Mexican courier phishing campaign using Estafeta and DHL lures. The same VPS served both the crypto stealer C2 and a smishing operation, suggesting either a single multi-campaign threat actor or a shared infrastructure broker.


What GHOST Found: Autonomous Investigation Disclosure

All twelve investigations were conducted autonomously by GHOST (General Heuristic OSINT and Security Tracker), BGI's automated threat hunting system. GHOST ingested each sample independently, performed static and dynamic analysis, extracted IOCs, and mapped infrastructure connections. The cluster identification -- the recognition that twelve separate investigations pointed to a single MaaS operation -- was flagged automatically when GHOST's infrastructure correlation engine detected overlapping C2 domains, shared registrar fingerprints, identical panel version strings, and matching GUID values across multiple concurrent investigations.

No human analyst directed the cluster analysis. The convergence emerged organically from the data. This is the operational model that Breakglass Intelligence was built to demonstrate: automated threat hunting at a scale and speed that would be impractical for a human analyst team processing twelve simultaneous investigations.

All analysis used passive reconnaissance and sample inspection only. No unauthorized access to C2 infrastructure was performed. All findings are based on sample analysis, WHOIS records, passive DNS data, certificate transparency logs, Shodan, and publicly available threat intelligence feeds.


MITRE ATT&CK Mapping

TacticTechniqueIDImplementation
Initial AccessPhishing: Spearphishing AttachmentT1566.001HTA files with misleading extensions (.ini, .png, .jpg, .mp3, .xml, .docx)
ExecutionSystem Binary Proxy Execution: MshtaT1218.005All 12 samples execute via mshta.exe
ExecutionCommand and Scripting Interpreter: JavaScriptT1059.007XOR-obfuscated JavaScript in HTA payload
ExecutionCommand and Scripting Interpreter: PowerShellT1059.001PowerShell IEX cradles for module delivery
ExecutionCommand and Scripting Interpreter: Windows Command ShellT1059.003cmd.exe wrapper for CrowdStrike Falcon evasion
PersistenceScheduled Task/Job: Scheduled TaskT1053.00530-minute interval, 760-day expiry via Schedule.Service COM
Defense EvasionObfuscated Files or InformationT1027XOR-encoded 382-string lookup table, per-build keys
Defense EvasionMasquerading: Match Legitimate Name or LocationT1036.005Task names mimic YandexUpdate, CCleaner, Explorer
Defense EvasionVirtualization/Sandbox Evasion: System ChecksT1497.001AZURE-PC hostname, Bruno/SYSTEM/SISTEMA username checks
Defense EvasionImpair DefensesT1562.001CrowdStrike Falcon process detection and evasion
Defense EvasionIndicator Removal: File DeletionT1070.004HTA self-deletes from disk on execution
Defense EvasionModify RegistryT1112MaxScriptStatements bypass for script execution limit
DiscoverySystem Information DiscoveryT1082WMI queries for OS, CPU, UUID, disk serial, domain status
DiscoverySecurity Software DiscoveryT1518.001WMI AntiVirusProduct enumeration, Falcon/csfalconservice check
DiscoverySystem Language DiscoveryT1614.001CIS language check (Cyrillic SISTEMA detection)
DiscoveryFile and Directory DiscoveryT108366+ browser profiles, 78 extension paths, wallet directories
Credential AccessCredentials from Password Stores: Web BrowsersT1555.003Browser extension local storage exfiltration
Credential AccessUnsecured Credentials: Credentials in FilesT1552.001Desktop wallet file enumeration
CollectionData from Local SystemT1005Wallet data, browser extension storage
Lateral MovementReplication Through Removable MediaT1091USB .lnk propagation (task type 9)
ExfiltrationExfiltration Over C2 ChannelT1041Stolen data POSTed to /connect endpoint
Command and ControlApplication Layer Protocol: Web ProtocolsT1071.001HTTPS-based C2 communication
Command and ControlEncrypted Channel: Symmetric CryptographyT1573.001XOR + Base64 encoding on all C2 traffic
Command and ControlProxy: External ProxyT1090.002Cloudflare as reverse proxy to obscure backend IPs
Resource DevelopmentAcquire Infrastructure: DomainsT1583.0015 domains via NICENIC within 90 days
Resource DevelopmentAcquire Infrastructure: Web ServicesT1583.006Cloudflare DNS fronting on all C2 domains

Defensive Recommendations

Immediate Actions

  1. Block all C2 domains at DNS and proxy layers:

    • communicationfirewall-security[.]cc
    • indeanapolice[.]cc
    • favourite-guide[.]cc
    • explorer[.]vg
    • ccleaner[.]gl
    • memory-scanner[.]cc
  2. Null-route backend IPs at the firewall: 85.121.148.13 (Moldova), 94.183.233.21 (Iran), 94.26.106.134 (Bulgaria), 94.26.106.119 (Bulgaria), 45.156.23.185 (Netherlands), 178.255.222.234 (Netherlands), 82.29.128.113 (US/historical).

  3. Hunt for scheduled tasks matching the patterns YandexUpdateService*, CCleanerTaskID*, ExplorerID*, and Workspace*. Check the task action for mshta.exe pointing to external URLs. Any match should be treated as a confirmed compromise.

  4. Audit the registry for HKCU\Software\Microsoft\Internet Explorer\Styles\MaxScriptStatements set to 10000000 or 4294967295 -- a telltale artifact of this builder's script timeout bypass.

  5. Block or restrict mshta.exe execution from browser download directories, email attachment paths, and temporary folders. Most enterprise environments have no legitimate need for HTA execution.

Detection Engineering

  1. Sigma rule: Alert on mshta.exe spawning network connections to .cc, .gl, or .vg TLDs. These TLDs have a high abuse ratio and low legitimate enterprise usage.

  2. YARA rule: Target the 382-entry string table decoding pattern and the shared GUID {0830A3F8-70B8-40E1-A0F3-E0EC9092F861}. The integer-array-to-string decoding loop and the version string 4.1.1 in combination provide high-confidence detection with low false positives.

  3. Suricata/Snort rule: Match the C2 beacon parameter pattern in POST requests: connect?hwid=...&os=...&av=...&version=4.1.1.

  4. EDR query: Scheduled task creation via Schedule.Service COM object from within an mshta.exe process context, with task parameters matching PT30M interval and P760D duration.

  5. Browser extension audit: Deploy the 78 targeted extension IDs as a watchlist across endpoints. Any unauthorized wallet extension installation should trigger investigation, particularly on corporate machines.

Strategic Recommendations

  1. Report domains to Cloudflare via their abuse portal with the IOCs in this report. Cloudflare has actioned abuse reports for stealer C2 infrastructure when provided with sufficient evidence.

  2. Report to NICENIC abuse contacts. While the registrar's responsiveness is historically limited, establishing a paper trail supports future takedown efforts and potential ICANN complaints.

  3. Notify cryptocurrency wallet vendors. The 78 targeted extension IDs and 6 desktop wallets should be shared with Ledger, Trezor, Exodus, MetaMask, Phantom, and Coinbase for integration into their fraud detection and user notification systems.

  4. Restrict mshta.exe via WDAC or AppLocker as a medium-term hardening measure. The attack chain is entirely dependent on mshta.exe execution -- removing that single binary from the allowlist breaks every variant of this platform.


Complete IOC Table

C2 Domains

DomainRegistrarRegisteredBackend IPCountryRole
communicationfirewall-security[.]ccNICENIC2025-12-1685.121.148.13MoldovaEnterprise redirect, Workspace tier C2
indeanapolice[.]ccNICENIC2025-12-2294.183.233.21Iran (Shiraz)Lumma/DeerStealer tier C2
memory-scanner[.]ccNICENIC2025-12-2994.26.106.119Bulgaria (Sofia)PowerShell module delivery
favourite-guide[.]ccNICENIC2026-02-1194.26.106.134Bulgaria (Sofia)Hardware wallet victim C2
explorer[.]vgNICENIC2026-02-2845.156.23.185NetherlandsExplorerStealer/PS tier C2
ccleaner[.]glNICENIC2026-03-08178.255.222.234NetherlandsCCleaner-themed tier C2

Backend Infrastructure

IP AddressDomain(s)CountryASNProviderNotes
85.121.148.13communicationfirewall-security[.]ccMoldovaAS48753Ava Host SrlPanel hosting
82.29.128.113communicationfirewall-security[.]cc (historical)USA (NYC)AS142036HosteonsAlso hosts Mexican phishing
94.183.233.21indeanapolice[.]ccIran (Shiraz)AS211881Tahlil Dadeh Novin Fadak
94.26.106.134favourite-guide[.]ccBulgaria (Sofia)AS48452Traffic BroadbandRDP exposed, Windows Server 2022
94.26.106.119memory-scanner[.]ccBulgaria (Sofia)AS48452Traffic BroadbandSame /24 as above
45.156.23.185explorer[.]vgNetherlandsAS56971CGI Global Limited
178.255.222.234ccleaner[.]glNetherlandsAS56971CGI Global Limited

Affiliate Keys

KeyAssociated InvestigationLabelC2 Tier
TN2FOVFABMT0WCNHGYJRbeta_dataset_sydney_4868-4a76c14fBetaLoaderWorkspace
MVPOW0B7KUPE6KB6CJ17core_data_europe_6231-0ad8b2ceExplorerPSMulti-C2
4DKRXGCNTVKHOQXFDBOAdevops_audio_alpha_7570-26dddc0aWin64/Coins (Convagent)communicationfirewall-security.cc
MV6B2DKZRXWNP8U6VF0Ofamily_journal_archive_2032-0435da3aDeerStealer HTA v4.1.1indeanapolice.cc

Investigation-to-Sample Mapping

Investigation IDHash PrefixSurface LabelPrimary C2
beta_dataset_sydney_4868-4a76c14f4a76c14fMSHTA Crypto-Stealer / BetaLoadercommunicationfirewall-security.cc
core_data_europe_6231-0ad8b2ce0ad8b2ceExplorerPS (multi-C2 tiered routing)explorer.vg + tiered
devops_audio_alpha_7570-26dddc0a26dddc0aWin64/Coins (Convagent) -- Three-Tier C2communicationfirewall-security.cc, favourite-guide.cc, ccleaner.gl
family_journal_archive_2032-0435da3a0435da3aDeerStealer HTA v4.1.1 -- LummaC2 Payloadindeanapolice.cc
internal_config_secondary_4043-ff100a7eff100a7eExplorer Stealer v4.1.1explorer.vg, communicationfirewall-security.cc
logs_newyork__70-d00607f4d00607f4Lumma Stealer v4.1.1Iran/Bulgaria/US backends
photos_release_v9-9-5e54ce0c5e54ce0cExplorerStealer v4.1.1 (Russian SISTEMA check)explorer.vg
production_report_backup_1031-9869172898691728LoadJS Stealer -- XOR-Obfuscated (.NET backend)communicationfirewall-security.cc
summer_notes_new_195-15f2a00215f2a002LummaC2 HTA Loaderindeanapolice.cc
template_sydney__96-fbfcbd84fbfcbd84MaaS Panel Client (Moldova/Ava Host)communicationfirewall-security.cc
x_journal_london_308-93c84af993c84af9HTA Crypto Stealer -- CCleaner Lureccleaner.gl
z_invoice_london_9789-989669d5989669d5GlassWorm Stealer -- MaaS C2 Panelccleaner.gl

Host-Based Indicators

TypeValueNotes
Scheduled TaskYandexUpdateService*Lumma/DeerStealer tier
Scheduled TaskCCleanerTaskID*CCleaner/GlassWorm tier
Scheduled TaskExplorerID*ExplorerStealer tier
Scheduled TaskWorkspace*Workspace/BetaLoader/LoadJS tier
RegistryHKCU\Software\Microsoft\Internet Explorer\Styles\MaxScriptStatementsValue: 10000000 or 0xFFFFFFFF
GUID{0830A3F8-70B8-40E1-A0F3-E0EC9092F861}Shared COM CLSID across all builds
Version4.1.1Builder version in all C2 beacons
Task IntervalPT30M (30 minutes)Identical across all samples
Task DurationP760D (760 days)Identical across all samples

Conclusion

What appeared to be twelve separate malware campaigns is a single Malware-as-a-Service platform distributing through at least twelve affiliate channels simultaneously. The builder (version 4.1.1) produces functionally identical HTA droppers that differ only in their XOR encoding key, affiliate token, and cosmetic obfuscation layer. The C2 infrastructure is unified: five domains registered through the same Hong Kong registrar, hosted across Iran, Bulgaria, Moldova, and the Netherlands, all behind Cloudflare, all running the same nginx/Ubuntu stack, all sharing a version string and a GUID that the builder embeds in every payload.

The operator made enough mistakes to map the entire cluster from a single sample. The shared registrar gave us the domain cluster for free. The exposed RDP panel in Bulgaria revealed the management infrastructure. The .NET path leak confirmed the backend stack. The Russian language artifacts and CIS avoidance check confirmed the operator profile. The hardcoded affiliate keys -- transmitted in plaintext to the C2 with every beacon -- gave us the affiliate structure.

But the operational architecture is sound. The three-tier victim routing system demonstrates a mature understanding of how to extract maximum value from stolen data. Corporate victims go to one pipeline. Hardware wallet holders go to another. The commodity crypto users go to a third. The geographic distribution of backend servers across four countries with limited cross-border law enforcement cooperation means no single takedown action can be decisive.

For defenders: if you find one of these scheduled tasks on your network, you are dealing with a commodity MaaS platform that is currently serving at least twelve affiliates and targeting every cryptocurrency wallet in existence. Block the infrastructure, hunt for the persistence mechanisms, and restrict mshta.exe execution. The operator will rotate domains. The builder version will increment. But the architectural fingerprints -- the 382-string table, the three-tier victim routing, the 760-day scheduled tasks, the /connect-/getUpdates-/approveUpdate API protocol -- will persist across future versions.

The domains are live. The affiliates are active. The wallets are being drained.


This investigation was conducted autonomously by GHOST using passive analysis techniques only. No unauthorized access to any infrastructure was performed. All findings are based on sample analysis, WHOIS records, passive DNS data, certificate transparency logs, and publicly available threat intelligence.

Breakglass Intelligence -- Automated OSINT by BGI

Share