NEWS
GoCaracal Turns Ethereum Contracts Into C2 Dead Drops
Arctic Wolf details GoCaracal malware reading replacement C2 addresses from Ethereum contracts after primary server failure, linked to Dark Caracal.
Arctic Wolf Labs traced a June 2026 intrusion at a Venezuelan communications organization to a previously undocumented Go malware framework called GoCaracal that reads replacement command-and-control addresses from an Ethereum smart contract after its primary server fails. The extended build uses the eth_getStorageAt method against public JSON-RPC endpoints, loads the new address into memory, and retries ordinary internet traffic.
Operators can update the stored value with a single blockchain transaction and avoid shipping a fresh binary. Arctic Wolf assesses the activity with medium confidence as the work of Dark Caracal, the Lebanon-linked group long associated with Bandook.
The design keeps recovery simple and durable. When the primary host stops answering, the implant does not need a new package or a hardcoded backup list. It asks the chain for one fresh value and continues.
How the Ethereum Fallback Runs
The extended GoCaracal profile carries a primary HOST and PORT plus an optional CONTRACT address. After repeated connection failures it issues an eth_getStorageAt call to any reachable public Ethereum JSON-RPC endpoint and reads storage from the configured contract. If the returned bytes form a valid address, the implant overwrites its in-memory configuration and resumes conventional C2 traffic.
Arctic Wolf stressed the design leaves the full command channel off-chain. The blockchain functions only as a resilient dead-drop for configuration.
This mechanism does not place the malware’s full command-and-control channel on Ethereum.
Arctic Wolf Labs, technical report
Researchers recovered a custom Solidity contract named BulletproofC2 that stores one mutable C2 value and restricts updates to the deploying owner. Transaction history shows the value was changed to a public IP, proving the path was exercised rather than left dormant. Identical contracts first appeared on the Sepolia test network from the same wallet before mainnet deployment, and some stored private RFC 1918 addresses consistent with testing.
Multiple public RPC providers can read the same contract state, so blocking one endpoint does not cut the fallback. The implant treats those endpoints as interchangeable sources of truth. A single successful read is enough to restore the session path.
Because the update lands in one owner-controlled storage slot, operators rotate the address without touching the binary on disk. Defenders who seize a domain or sinkhole an IP still face a live contract that any public node can query. The Arctic Wolf Labs full technical report documents the exact flow and sample metadata.
Two Builds Across 249 Samples
Analysis of 249 related samples spanning January to July 2026 shows a shared modular architecture supporting two operational profiles observed together in the Venezuela intrusion.
| Profile | Role | Key Capabilities |
|---|---|---|
| Lightweight | Initial access and payload delivery | Host profiling, AES-GCM encrypted C2, interactive shell, file download/execution, shellcode injection |
| Extended | Sustained control and collection | 34 handlers covering browser cookies/logins, keylogging, WebRTC remote desktop, SOCKS5 proxy, hidden Chrome sessions, registry persistence, file search |
Internal version strings on extended samples ran from v1.0.1 through v1.0.6. Package structures, reusable modules and execution workflows link the two builds into one framework rather than separate families. Spanish-language operator status messages appear alongside English naming.
The lightweight profile opens the door and stages follow-on code. The extended profile then handles long-running collection and remote interaction. Shared modules keep both builds on the same development track.
Development moved in clear phases: core communications and profiling in January, modular network/core/execution components plus antivirus discovery by April, broad post-compromise features by June, and the Ethereum fallback in configured extended builds by July.
- January focused on encrypted C2, host profiling and basic code execution.
- By April the codebase had been split into reusable network, core and execution pieces, with antivirus discovery added.
- May and June brought the wide set of collection and remote-desktop handlers seen in the Venezuela case.
- June into July added the Ethereum fallback on extended builds after Sepolia rehearsals.
Dark Caracal Continuity and SVG Delivery
Delivery matched earlier Dark Caracal patterns documented by Kaspersky. Spanish-language financial and tax-themed lures, weaponized SVG attachments, URL shorteners and document-themed domains fed a 7-Zip archive containing the lightweight implant (tf-oficina004a9.exe). Arctic Wolf did not recover the original email or SVG from the victim, yet more than 100 related SVG files talked to the same malicious hosting infrastructure, supporting the phishing assessment.
A Delphi loader then dropped both an updated Bandook variant and the extended GoCaracal build. Bandook remains active; current evidence shows parallel use rather than replacement. The June Bandook sample randomized former sequential command IDs and obfuscated plugin exports, blunting older signatures while preserving core function.
- January 2026: Foundation of encrypted C2, host profiling and code execution.
- February-April 2026: Modular reorganization and interactive shell.
- May-June 2026: Extended collection and remote-interaction features; both profiles in the Venezuela case.
- June-July 2026: Ethereum fallback operationalized on mainnet after Sepolia tests.
Dark Caracal itself dates to at least 2012. Lookout and the Electronic Frontier Foundation publicly exposed it in 2018, linking infrastructure to a Beirut building used by Lebanon’s General Directorate of General Security. Bandook has been a long-standing Windows toolset for the group.
The SVG-to-archive path and the Delphi loader therefore connect a long-running toolkit to a new Go framework without discarding the older Windows implant. Operators keep the familiar lure language and hosting habits while adding a second post-compromise option.
Why Public Chains Change Defender Math
Traditional C2 takedowns target domains or IPs. An on-chain dead-drop survives those moves because any public RPC can still return the updated value. Operators gain binary-free rotation; defenders lose a clean kill switch and must now watch for outbound eth_getStorageAt (or similar) traffic that looks like ordinary Web3 activity.
The same public ledger that gives resilience also leaves a permanent transaction trail. Investigators can read the owner wallet, update history and test-network rehearsals. DFIR practitioners on X noted the practical hunt steps: many mail filters still pass SVGs without deep inspection, and outbound JSON-RPC calls to public Ethereum endpoints should raise alerts when they originate from unexpected hosts.
- Block or deeply inspect SVG attachments in email, especially financial or tax-themed Spanish lures.
- Alert on processes issuing eth_getStorageAt or eth_call patterns to public RPC endpoints.
- Hunt Go binaries talking to AEZA Group-hosted ranges; 23 of 24 GoCaracal C2 addresses sat on those networks while Bandook preferred AlexHost, a deliberate split that limits single-provider blast radius.
- Apply the published YARA rule for the lightweight profile and expand coverage with the full customer IoC set.
Of the 24 unique C2 addresses pulled from samples, the provider separation and the AEZA Group network designations supply useful behavioral context beyond individual IPs.
| Family | Preferred hosting | Observed share |
|---|---|---|
| GoCaracal | AEZA Group ranges | 23 of 24 C2 addresses |
| Bandook | AlexHost | Preferred provider in parallel use |
Splitting providers across the two families reduces the chance that a single takedown removes every channel at once. Hunters therefore treat AEZA-linked Go traffic and AlexHost-linked Bandook traffic as related but distinct signals.
Published Indicators and Contracts
Arctic Wolf released a YARA rule covering the lightweight version plus representative hashes, domains, IPs, host paths and Ethereum indicators. The public list is referential; customers receive the complete set.
| Type | Indicator | Notes |
|---|---|---|
| Contract | 0x03D605f13A74Bfb6149078122FcF62BD6d8799d8 | Configured BulletproofC2; deployed 20 May 2026 |
| Contracts | 0x04aB453494381E60171BE04Ea6BE6E7C44EafAfd and two others | Identical deployments, Sepolia then mainnet, same wallet |
| Wallet | 0x7D321FE277f8c25aaC14aF1BA3Fc34953242052F | Deployment and management; funded via Binance-linked infrastructure |
Representative lightweight hashes include 1E499C815146124C4A6D2B48C99068B980AD74E1A2CFD16013F8D75A9425A0CA. Delivery domains include getpdfdigital[.]cloud and several document-themed variants. Host paths such as %AppData%\Roaming\d30547514515\91ed375e.exe appeared in analysis. The contract itself is written in the Solidity contract language used for Ethereum.
Prior campaigns have already treated blockchains as dead-drops or payload stores (EtherRAT, Polygon-based Aeternum, npm packages reading transaction data, EtherHiding). GoCaracal’s owner-controlled mutable storage simply applies the pattern to C2 recovery inside an established espionage toolkit.
The published contract addresses, wallet and YARA rule give defenders immediate anchors. The customer IoC set extends those anchors with the fuller hash and infrastructure list reserved from the public page.
Regional Footprint and Parallel Tooling
Confirmed activity sits in the Venezuelan communications target. Related artifacts and infrastructure also touch Brazil, Ecuador, Chile, Colombia, El Salvador and Uruguay at moderate confidence; Arctic Wolf does not list those as confirmed victim countries. No broader confirmed victim count appears in the public report, and the June case did not show a host that successfully invoked the Ethereum fallback and reconnected.
GoCaracal currently augments rather than replaces Bandook. Functional overlap is clear, yet both families ran in the same intrusion with separate C2 footprints. The group is modernizing delivery and post-compromise tooling while keeping familiar Spanish-language phishing and Latin American focus.
Defenders now have concrete YARA, hashes, contracts and behavioral tells. Operators have a public, hard-to-kill configuration channel. The next observed use of the same BulletproofC2 pattern, or a close variant, will show whether the second-order effect spreads beyond this cluster.
Bandook and GoCaracal Share the Same Intrusion
The Venezuela case put both implants on the same host through one Delphi loader. That pairing matters because it shows deliberate dual-tooling rather than a clean handoff from an older family to a newer one.
Bandook kept its core Windows role after the June changes to command IDs and plugin exports. GoCaracal added the modular Go path, the wider handler set on the extended build, and the optional Ethereum recovery step. Each family kept its own C2 footprint and hosting preference.
Overlap in collection features does not collapse the two into one product. The lightweight Go build still handles initial profiling and payload delivery, while Bandook continues as a parallel Windows option. Operators can choose either channel after the loader runs, which complicates single-family signature strategies.
Continuity with Dark Caracal’s longer history reinforces the reading. Spanish financial and tax lures, SVG delivery, URL shorteners and document-themed domains all match earlier patterns. The new framework extends that line of work instead of breaking from it.
The Public Ledger Leaves Investigators a Trail
Resilience on the operator side creates visibility on the investigator side. Every owner update to BulletproofC2 is a permanent on-chain record. The same wallet that deployed the contract on Sepolia and then on mainnet also funded the work through Binance-linked infrastructure, giving analysts a durable starting point.
Test behavior remains visible as well. Identical contracts on Sepolia, RFC 1918 values written during rehearsal, and the later mainnet change to a public IP form a clear sequence. Analysts can line those transactions against sample compile times and intrusion dates without needing private telemetry.
- Sepolia deployments: identical contracts from the same wallet used for rehearsal.
- RFC 1918 storage values: private addresses written during testing.
- Mainnet deployment: BulletproofC2 configured for live recovery, including the 20 May 2026 contract.
- Live update: storage changed to a public IP, confirming the path was exercised.
That trail does not replace host-based forensics. It does give defenders a second, public plane to watch while they alert on eth_getStorageAt traffic and SVG lures. Combined with the YARA rule, representative hashes and provider split, the ledger record turns a hard-to-kill fallback into something that can still be hunted.
Frequently Asked Questions
How does GoCaracal retrieve a backup C2 address from Ethereum?
After primary C2 failures the extended build issues an eth_getStorageAt request to a public JSON-RPC endpoint, reads the value stored in a configured smart-contract slot, validates it as an address, writes it into active memory and retries ordinary TCP or HTTP communication to the new host.
What is the BulletproofC2 contract?
It is a custom Solidity contract that holds one mutable C2 value, allows updates only from the deploying owner address, and was observed both on Sepolia for testing and on mainnet with real public IP values written into storage.
Why does Arctic Wolf link GoCaracal to Dark Caracal?
The medium-confidence assessment rests on Bandook co-deployment, Delphi loader traits, Spanish financial SVG lures, URL shorteners, document-themed infrastructure, preferred hosting providers and Latin American targeting patterns that match the group’s established history since at least 2012.
What detection material did Arctic Wolf release?
A YARA rule for the lightweight profile, representative SHA-256 hashes, delivery domains, C2 IP addresses, host paths, three BulletproofC2 contract addresses and the managing wallet; the full set is reserved for customers while the public list remains referential.
-
FINANCE3 months agoZcash Patched a Double-Spend Bug as ZEC Climbed 5%
-
ENTERTAINMENT3 months agoSteam Summer Sale 2026 Locks In June 25 to July 9 Dates
-
FINANCE2 months agoCLARITY Act Final Text Expected This Weekend as 60-Vote Hurdle Looms
-
NEWS4 months agoMeta Adds AI Replies to Threads, But Users Can’t Block It
-
NEWS3 months agoYouTube Shorts is testing a heart in place of the thumbs-up
-
NEWS4 weeks agoSenators Force Apple Off Chinese Memory as Big Three Cash In
-
NEWS3 months agoNEURA Robotics’ $1.4B Series C Redraws Europe’s Physical AI Bet
-
ENTERTAINMENT5 months agoExtraction 3 Is Officially Coming to Netflix in 2027
