LIVE · cybersecurity feed
Live wire
security

Project CAV3RN continues: Google Apps Script as C2 relay and DNS-based C2 channel selection

Project CAV3RN, an espionage framework targeting entities in Israel, has continued to evolve its command-and-control (C2) capabilities, now incorporating a sophisticated multi-transport communication module. This module, identified as `GoogleService.dll`, is a 64-bit DLL compiled with Microsoft .NET 8 NativeAOT, and it leverages DNS A-record responses to dynamically select between direct HTTPS…

ZeroDay News ·

Source: Securelist (Kaspersky)

Project CAV3RN, an espionage framework targeting entities in Israel, has continued to evolve its command-and-control (C2) capabilities, now incorporating a sophisticated multi-transport communication module. This module, identified as `GoogleService.dll`, is a 64-bit DLL compiled with Microsoft .NET 8 NativeAOT, and it leverages DNS A-record responses to dynamically select between direct HTTPS communication and a Google Apps Script relay for each C2 transaction.

The `GoogleService.dll` module, whose PDB path was found to be `C:\Users\user\Desktop\Modules\broker-cavern\communication\GoogleCommunication\bin\Release\net8.0\win-x64\native\GoogleService.pdb`, exports functions such as `GroupByCategory`, `CheckAvailability`, `IsPrimeNumber`, and `OrderByDate`. Upon initialization, the module registers a callback with its local broker and begins a `CheckAvailability` routine. After three seconds, it sends a type-0 frame to a fixed identifier, `33A4BA78-E286-4FF2-85EC-7365265F3D93`, expecting a specific error response (`Err1::33A4BA78-E286-4FF2-85EC-7365265F3D93`) to learn the broker's name before commencing C2 operations.

C2 packets processed by the framework include fields for type, client ID (`cid`), and payload. Packets of type `icmgdd` are handled internally by the communication module, while `broker` type packets are forwarded to the local broker. Command payloads use `_;;_` to separate commands from arguments and `_,_` for individual arguments. At startup, the module sends an `s_version_;;_` command, which triggers an inventory of DLLs in `AppContext.BaseDirectory`, collecting their company names and versions, along with the communication module's and local broker's names. This inventory is then serialized as JSON, XORed with `0xAC`, Base64-encoded, and sent as the initial C2 report.

The module supports five internal commands: `s_version` (returns DLL inventory), `s_config` (returns or replaces configuration in memory), `s_enLog` (enables debug logging), `s_deLog` (disables logging, sets level to Fatal), and `s_write` (Base64-decodes and GZip-decompresses data to a specified file path). The module reads its configuration from `conf.json` in the current working directory. If this file is absent, it generates a seven-character client identifier and writes embedded default settings to disk.

The configuration includes parameters such as a client ID, a direct C2 URL (`https://api.studiotikva.com/api/v1/update/check`), a DNS domain (`studiotikva.com`), a Google Apps Script deployment ID (redacted in reports), debug logging settings, poll delays, a base DNS recovery delay, an Apps Script relay authentication key (`s3criitC0d3/8-)B-,)`), the Google Apps Script URL format (`https://script.google.com/macros/s/{0}/exec`), and a user agent string. While the `s_config` command can update these settings in memory, only a recovered Apps Script deployment ID is written back to `conf.json`.

Before each command poll or result transmission, the module performs a DNS A-record query to determine the C2 channel. The query format is `[random nonce][error state].[hex-encoded client ID].m.studiotikva.com`. The first label combines a three- or four-character uppercase alphanumeric nonce with an error state (0 for None, 1 for GIDFailed, 2 for GoogleFailed, 3 for DirectFailed). Each new transaction begins in state 0. A specific response of `12.19.29[.]30` indicates a rejection. Other responses are interpreted based on their fourth octet, which dictates whether to use Google Apps Script or direct HTTPS, or to close the transaction. For instance, a fourth octet of `120 (0x78)` selects Google Apps Script if the error state is None, but Direct HTTPS if the state is GIDFailed, GoogleFailed, or DirectFailed. During analysis, valid `.m` queries returned `12.121.234[.]120`, while malformed queries returned `12.19.29[.]30`.

When the Google Apps Script mode is selected, the module verifies the freshness of its stored deployment ID by comparing the first four bytes of its MD5 digest with an A record returned by a query to `[random5].[hex-ID].q.studiotikva[.]com`. A mismatch triggers a retrieval process for a new deployment ID via `.p` queries to `[random5].[hex-ID].p.studiotikva[.]com`. The DNS recovery mechanism for the Google Apps Script deployment ID involves an initial response providing a one-byte length and the first three ID characters, followed by subsequent responses each contributing four bytes. An observed example showed an initial response of `74.65.75.102` (representing 4A 41 4B 66), indicating a length of 74 characters and the initial characters "AKf". One initial response and 18 continuation responses were observed to reconstruct a 74-character deployment ID, partially disclosed as `AKfycby46v0DPSEKWYa****dvQ`. This DNS infrastructure allows the operators to validate and rotate the Google Apps Script relay deployment ID.

The framework also includes a local broker component responsible for discovering and loading DLL components, routing messages between them, and facilitating runtime upgrades. This modular design and dynamic C2 channel selection highlight the advanced capabilities of the Project CAV3RN espionage framework.

ShareXLinkedInWhatsAppFacebook

More News

view all →
security

Canadian cybersecurity executive arrested in federal extortion case

A Canadian cybersecurity executive was arrested in Pennsylvania on Thursday, facing federal charges of conspiracy to commit extortion. Edward Dubrovsky, 54, a co-founder and former Chief Operating Officer of CYPFER, a firm specializing in ransomware negotiation, is charged with conspiring to threaten the confidentiality of information for extortion and conspiring to commit Hobbs Act extortion,…

breach

Criminal IP Introduces AITEM as the Next Evolution of Attack Surface Management

AI SPERA, the company behind the cyber threat intelligence platform Criminal IP, has announced AITEM (AI-Powered Threat Exposure Management), an expansion of its Attack Surface Management (ASM) offerings. AITEM aims to move beyond traditional asset discovery to provide a more comprehensive approach to understanding, prioritizing, and responding to security exposures. The platform is scheduled…

ai

AI Is Getting Really Good at Messing With Cybercriminals

Anti-cybercrime initiatives are increasingly deploying artificial intelligence to disrupt scammers by engaging them with lifelike bots, which the criminals mistake for genuine victims. This strategy aims to waste scammers' time and resources while gathering intelligence on their operations.

ransomware

FBI Arrests Ransomware Negotiation Firm Co-Founder in ShinyHunters Probe

The Federal Bureau of Investigation (FBI) has reportedly arrested Edward Dubrovsky, a co-founder of the ransomware negotiation firm Cypfer and currently associated with CyberSteward. The arrest is said to be part of the ongoing ShinyHunters investigation, specifically in connection with an incident involving FBI job applicant data.

ai

The Third-Party Agent Problem: Why Security Built for AI You Chose Misses the Agents You Didn't

A new report highlights a significant blind spot in enterprise security architectures concerning the proliferation of third-party AI agents. The forthcoming 2026 State of Agent Security Report indicates that current security models, often designed to protect AI systems directly chosen and deployed by an organization, frequently fail to account for AI capabilities embedded within third-party…

security

Insider Cyber Extortion Plot Against Industrial Firm Lands Engineer in Prison

A former core infrastructure engineer has been sentenced to prison for an attempted cyber extortion plot against an industrial firm. The engineer reportedly deleted administrative accounts and reset hundreds of user passwords, subsequently demanding a ransom of 20 Bitcoin to prevent further disruption to the company's servers.