KREMLIN Malware Forges Chromium Integrity Checks to Install Banking-Theft Extensions

· Original article ↗

Summary

Elastic researchers traced KREMLIN malware targeting Brazilian banking users through malicious Chrome and Edge extensions. Registering its sandbox-check domain temporarily disrupted execution, with 1,515 infected systems observed contacting it.

Key points

  • Elastic tracked seven REF9334 campaigns dating to May–June 2025, linking activity through shared infrastructure, installer behavior, extension code, and campaign identifiers.
  • Victims manually execute JavaScript lures impersonating banking or business documents. Staged loaders download additional components, use Node.js, and establish persistence through scheduled tasks.
  • KREMLIN installs extensions directly into Chrome and Edge profiles, modifies Secure Preferences, and regenerates integrity values using recovered encryption keys and a seed from resources.pak.
  • The installer exfiltrates browser credential and cookie databases alongside decryption keys. The extension supports keylogging, cookie and storage theft, screenshots, HTML injection, redirection, and request interception.
  • Ethereum smart contracts provide dynamically updated payload locations and C2 configuration. Some delivery chains sideload a malicious DLL through the legitimate SentinelMemoryScanner.exe binary; others deploy PULSAR or REMCOS RAT.
  • Portuguese-language lures impersonate Brazilian financial institutions. Researchers consider Brazil a plausible operator location based on language artifacts and Ethereum transaction timing, not confirmed attribution.
  • Threat Command registered a previously unregistered sandbox-check domain, causing contacting malware to crash. It observed 1,515 infected systems, 98.75% in Brazil; the disruption was temporary and did not remove installed components.

Article Details

Attack Vectors
  • Users manually execute JavaScript files disguised as banking receipts, statements, invoices, or company documents, initiating staged payload downloads.
  • Loader variants execute PowerShell, Node.js, and RunPE stages; some deliver additional payloads through JPEG carriers hosted on Internet Archive.
  • A legitimate signed executable sideloads an unsigned malicious DLL masquerading as one of its components.
  • The installer copies malicious extensions into browser profiles and forges Secure Preferences integrity values to activate them without user approval.
  • An alternative extension displays attacker-supplied QR codes on selected websites and asks users to reauthenticate; researchers could not determine what the codes encode.
Defensive Notes
  • The scheduled tasks MicrosoftNodeRuntimeUpdater and AcrobatBrowserExtension provide source-supported persistence artifacts for investigation.
  • Browser-profile investigations should examine unexpected extensions, developer-mode changes, altered Secure Preferences integrity values, and browser launches under a debugger with --no-startup-window.
  • The extension configuration field ENDPOINT_DINAMIC and the loader filename pattern popup_{date}_{random}.js can help identify related samples.
  • Threat Command registered the previously unregistered network-canary domain, causing responding implants to interpret connectivity as sandbox activity and crash. Researchers observed 1,515 systems contacting it, 98.75% from Brazil.
  • The canary intervention temporarily disrupted execution but did not remove installed malware; the article explicitly notes that affected systems remain infected.

Indicators of compromise

TypeIndicatorContext
DOMAINacrobat-updater[.]comFake plugin lure and staged payload infrastructure, also used by a recurring persistence task.
DOMAINcodecaudiog[.]siteLoader infrastructure distributing malicious installers in the June 2025 activity.
DOMAINcodecvideowin[.]onlineInfrastructure providing malicious extension identifiers and extension archives.
DOMAINconnection[.]upgradeonline[.]siteMalicious loader beaconing and extension-delivery infrastructure.
DOMAINcremeb[.]comMalware infrastructure supplying QR-code content to the malicious QR-themed extension.
DOMAINgranderevolucao[.]storeMalicious installer hosting domain distributed through Ethereum configuration.
DOMAINluizestrelhashapr[.]onlineC2 endpoint returned by the analyzed extension's dynamic resolver.
DOMAINvolmira[.]siteInfrastructure serving the malicious extension and receiving stolen browser data.
DOMAINzaviro[.]onlineSmart-contract-configured payload infrastructure and browser-data exfiltration destination.
EMAILfacebook-br@protonmail[.]comUploader email recorded in metadata for the account hosting malicious RunPE JPEG carriers.
HOSTNAMEgraph[.]checkeligibitily[.]workers[.]devAttacker-used resolver endpoint returning the malicious extension's final C2 address.
HOSTNAMEorange-sun-195a[.]checkeligibitily[.]workers[.]devAttacker-used resolver returning separate WebSocket and HTTP C2 endpoints for earlier extensions.
HOSTNAMEseguranca[.]versionnova[.]siteInfrastructure used by a parallel KREMLIN variant to deliver staged payloads and receive loader beacons.
HOSTNAMEversion[.]checkeligibitily[.]workers[.]devAttacker-used worker endpoint contacted by an installer to download the malicious extension.
IPV4144[.]172[.]112[.]239PULSAR C2 address used on port 4782 in the August 2025 activity.
IPV4178[.]92[.]162[.]38REMCOS RAT C2 address used on port 443.
IPV4185[.]221[.]23[.]133PULSAR C2 address observed using ports 4782 and 443.
IPV437[.]16[.]74[.]100PULSAR 2.4.5 C2 address used on port 443.
IPV437[.]16[.]74[.]34Additional PULSAR 2.4.5 C2 address used on port 443.
IPV445[.]90[.]13[.]210PULSAR C2 address used on port 443 in the August 2025 activity.
SHA256106eac79396a3ff77b8f375c391260ce422be2ae4d55d3aa75b2635cbdc0fa42Analyzed multi-stage JavaScript loader that initiates the KREMLIN infection chain.
SHA256223be3f8648bf6998c4a58b972522e5fda8d9d0a57b4e163811930de66c3f7caAnalyzed malicious browser extension supporting interception, credential capture, and remote commands.
SHA25642a3e2bb135fb46b11b127f45a266b3a4d9dff4aa1cf75433f93fe69ba51a9b9PowerShell reimplementation of the malicious extension installer that generates browser integrity values.
SHA256c8c38634dd44d7c6162c66174a6ee23ee404265125166e8d757681bdd66a4268Analyzed native KREMLIN browser-extension installer.
URLhxxps[:]//archive[.]org/download/hotelmoskva/hotelmoskva.jpgSpecific hosted JPEG carrier containing the RunPE process-injection module.
URLhxxps[:]//archive[.]org/download/operagarnier/operagarnier.jpgSpecific payload-carrier resource recorded in the malware smart contract's steganography configuration.
URLhxxps[:]//ia601808[.]us[.]archive[.]org/5/items/sentinel_20260722_0435/Sentinel.jpgSpecific JPEG carrier holding the CAB package used in the malicious DLL-sideloading chain.
URLhxxps[:]//volmira[.]site//api/savecredsC2 endpoint receiving encrypted browser-data archives, customer identifiers, and archive decryption material.
URLhxxps[:]//volmira[.]site/api/ext?p=98d8049e-804f-11f1-b79f-ae3a8bb85d01Malicious extension ZIP download URL containing the installer customer identifier.
URLhxxps[:]//zaviro[.]online//api/v1/fingerprintAdditional C2 endpoint receiving encrypted stolen browser data and associated decryption material.

MITRE ATT&CK

T1041 · Exfiltration Over C2 ChannelStolen browser archives are uploaded to C2 endpoints, and extension-collected data is transmitted through its HTTP and WebSocket communications.T1053.005 · Scheduled TaskMicrosoftNodeRuntimeUpdater runs at logon; AcrobatBrowserExtension runs at logon and every 30 minutes.T1055 · Process InjectionInstallers inject DonutLoader shellcode into explorer.exe; a later RunPE variant uses Early Cascade Injection into that process.T1056.001 · KeyloggingThe extension attaches input listeners to input and textarea elements and sends captured text to its server.T1059.001 · PowerShellSeveral infection chains execute PowerShell scripts to retrieve payloads and invoke RunPE assemblies.T1059.007 · JavaScriptJavaScript loaders execute through WSH and downloaded Node.js runtimes.T1105 · Ingress Tool TransferLoaders download Node.js, installers, extension archives, and JPEG-carried payloads from remote infrastructure.T1113 · Screen CaptureThe extension captures selected or active browser tabs and uploads compressed screenshots.T1176 · Software ExtensionsKREMLIN installs malicious extensions directly into Chrome and Edge profiles and regenerates integrity values to activate them.T1204.002 · Malicious FileVictims manually execute JavaScript files disguised as banking or company documents.T1497.001 · System ChecksLoaders check desktop-file counts, process counts, hardware properties, and a network canary to detect artificial environments.T1539 · Steal Web Session CookieThe installer exfiltrates browser cookie databases, while extension commands steal cookies from selected or active tabs.T1555.003 · Credentials from Web BrowsersThe installer steals browser Login Data databases and recovers OSCrypt keys needed to decrypt protected fields.T1574.002 · DLL Side-LoadingSentinelMemoryScanner.exe sideloads the unsigned malicious payload disguised as SentinelAgentCore.dll.T1620 · Reflective Code LoadingPowerShell loads RunPE as a .NET assembly, and earlier RunPE versions manually map payloads and call their entrypoints.

Threat Actors

Malware

Vendors

Products

Tools

Countries

Industries

Related Articles