Full research report
GoCaracal Malware Uses Ethereum Smart Contract to Fetch Replacement C2 Address
Executive assessment
GoCaracal represents a deliberate capability expansion for Dark Caracal rather than a toolkit replacement: both GoCaracal and an updated Bandook variant ran in parallel during the June 2026 Venezuelan intrusion, and 249 samples show a four-phase development effort running January through July 2026. The BulletproofC2 Ethereum fallbackβusing eth_getStorageAt against public RPC endpoints to retrieve replacement C2 addresses from an attacker-controlled Solidity smart contractβfollows the EtherHiding technique class documented since 2023 and used by DPRK-linked actors; Arctic Wolf confirmed it was operationally deployed via blockchain transaction history, though no host in the investigated intrusion was observed actually invoking it successfully. The mechanism's resilience value lies in separating C2 address distribution from the malware binary: operators can rotate infrastructure by posting a blockchain transaction without redeploying implants, making domain or IP takedowns insufficient for full disruption. Attribution to Lebanon's GDGS remains at medium confidence, resting on a consistent but circumstantial cluster of behavioural and infrastructure indicators rather than definitive code or certificate linkage.
What happened
In June 2026, Arctic Wolf investigated an intrusion at an unnamed communications organisation in Venezuela and identified GoCaracal, a previously undocumented modular Go-based malware framework. The firm attributes the activity with medium confidence to Dark Caracal, a cyber-espionage group linked to Lebanon's General Directorate of General Security (GDGS). GoCaracal was deployed in parallel with an updated Bandook variant rather than as a replacement. Arctic Wolf published full technical findings, YARA rules, and indicators of compromise on 26β27 August 2026.
Affected scope
Confirmed: an unnamed communications organisation in Venezuela targeted in June 2026. Assessed with moderate confidence from 249 identified samples: Brazil, Ecuador, Chile, Colombia, El Salvador, and Uruguay. Historically, Dark Caracal targets government personnel, businesses, journalists, and activists across multiple regions.
Technical assessment
GoCaracal operates in two profiles. The lightweight profile establishes encrypted access via AES-GCM, executes payloads, and injects shellcode. The extended profile adds browser credential harvesting (Chrome, Brave, Firefox), keylogging, WebRTC remote desktop, hidden browser sessions, SOCKS5 proxying, and registry-based persistence. The extended profile's distinctive BulletproofC2 mechanism invokes the Ethereum JSON-RPC method eth_getStorageAt against public RPC endpoints after repeated primary C2 failures; the attacker-controlled Solidity smart contract returns a replacement C2 address that the implant writes to its in-memory configuration and uses for renewed off-chain communication. Multiple public RPC endpoints reduce single-point dependency. Blockchain transaction history confirmed the mechanism was operationally deployed. Delivery relied on weaponised SVG attachments that redirect through URL shorteners to a staging domain delivering 7-Zip archives containing the lightweight implant.
Recommended defensive actions
- Apply the Arctic Wolf YARA rule for GoCaracal lightweight variantsβmatching strings main.cleanupShell, main.detectAntivirus, main.InjectShellcode, SendSecurePacket, RPCFallbackβto endpoint detection and email security tooling.
- Block outbound connections to known AEZA Group-hosted C2 IPs (109.120.187.217, 77.110.105.244, 82.117.87.138) and delivery domains (getpdfdigital[.]cloud, visualizarpdf[.]online, contabilidad[.]icu, documentodigital[.]cloud, soportedigital[.]cloud) at the network perimeter.
- Monitor for outbound eth_getStorageAt or eth_call requests to public Ethereum JSON-RPC endpoints (patterns: eth-mainnet.*, infura.io, alchemy.com) originating from non-Web3 business processes; alert on any such process making blockchain calls.
- Hunt for GoCaracal artefacts using published SHA-256 hashes (lightweight: 1E499C815146124C4A6D2B48C99068B980AD74E1A2CFD16013F8D75A9425A0CA; extended: 8C03D072DF2E1BF14B0C00A8AB99834138C8B69F301849BF09CB44394E916015; Delphi loader: 0A6DA70548F14834ACB8960689A589B48FF422F8385AE445A281AAB77045FE22) and flag network traffic to or from Ethereum wallet 0x7D321FE277f8c25aaC14aF1BA3Fc34953242052F.
- Restrict execution of SVG files delivered via email and block 7-Zip archive execution through phishing channels to disrupt the documented delivery chain.
- Subscribe to Arctic Wolf's full IoC release for the complete list of 24 C2 IP addresses not published in the public report.
Uncertainties and evidence gaps
- The original phishing email and SVG attachment were not recovered from the victim environment; the phishing-delivery assessment rests on artefact naming and campaign-pattern inference rather than direct forensic evidence.
- Arctic Wolf confirmed no host in the June intrusion successfully invoked the Ethereum fallback and reconnected via a replacement C2 address; operational effectiveness of BulletproofC2 in live operations remains unproven from this case.
- Medium-confidence attribution to Dark Caracal rests on behavioural and infrastructural indicators (Bandook co-deployment, Delphi loader, SVG delivery, AEZA hosting, Latin American focus) rather than code-level proof, signing-certificate linkage, or government acknowledgement.
- Breadth of Latin American targeting beyond Venezuela is inferred from 249 samples and historical Dark Caracal patterns; no additional named victim organisations in other countries have been confirmed.
Vulnerability flow
Defender-oriented path reconstructed only from sourced report findings. Unknown stages are omitted.
GoCaracal was deployed in a confirmed June 2026 intrusion against a Venezuelan communications organisation; Arctic Wolf found no evidence that the Ethereum C2 fallback was successfully invoked during that incident, and no broader active exploitation campaign beyond this single documented intrusion has been confirmed.
The investigation began with the THN article as the sole source, claiming an Ethereum-based C2 fallback attributed to Dark Caracal. Fetching the primary Arctic Wolf technical report confirmed and substantially extended those claims with IoCs, attribution reasoning, a four-phase development timeline, and the BulletproofC2 mechanism name, including blockchain transaction evidence that the fallback was operationally deployed. MITRE ATT&CK independently corroborated Dark Caracal's Lebanon GDGS attribution and confirmed Bandook as the group's signature tool, satisfying the independent-corroboration requirement. Researching the EtherHiding technique class established that GoCaracal's blockchain fallback is an instance of a known technique family documented since 2023, with an existing Elastic Security detection rule applicable to the observable signals. Confidence is high: the primary Arctic Wolf report is detailed and specific, MITRE provides independent attribution corroboration, and the technique has cross-validated detection guidance.
- Does the THN article contain accurate, coherent reporting and does it link to a primary source?Fetched THN article to extract key claims and source linksthehackernews.com β
Article confirmed GoCaracal as a Go-based framework deployed in June 2026 against a Venezuelan communications organisation; phishing via SVG; Ethereum fallback via eth_getStorageAt; two operational profiles; YARA rules and IoCs published; linked to Arctic Wolf primary report.
why Confirmed the supplied article text is accurate and not fabricated; provided the Arctic Wolf blog URL as the primary source to pursue.
- What technical detail does the primary Arctic Wolf report provide, and does it corroborate the news coverage?Searched for and fetched the Arctic Wolf GoCaracal blog postarcticwolf.com β
Full technical report confirmed two build profiles with AES-GCM C2, BulletproofC2 Ethereum fallback mechanism, 249 samples, AEZA Group hosting, delivery domains, Ethereum wallet 0x7D321FE277f8c25aaC14aF1BA3Fc34953242052F, development timeline JanuaryβJuly 2026, and YARA rule strings. Blockchain transaction history confirmed operational deployment of the fallback.
why Primary source; substantially raised assessment confidence and produced IoCs and attribution reasoning needed for the full report; confirmed the Ethereum mechanism was operationally deployed, not merely present in code.
- What is Dark Caracal's established attribution, historical toolkit, and targeting pattern from an independent source?Fetched MITRE ATT&CK entry for Dark Caracal (G0070)attack.mitre.org β
ATT&CK confirms attribution to Lebanon's GDGS, active since at least 2012, with Bandook (S0234) as primary documented RAT; techniques include spearphishing, registry persistence, UPX packing, and credential collection.
why Provides independent corroboration of the Dark Caracal attribution chain and confirms Bandook as the group's signature tool, strengthening Arctic Wolf's medium-confidence attribution rationale.
- Is GoCaracal's eth_getStorageAt C2 fallback novel, or does it belong to an established technique family with existing detection guidance?Searched for EtherHiding and blockchain-based malware C2 prior art and fetched Elastic Security detection ruleelastic.co β
EtherHiding documented since October 2023; DPRK-linked actors and ClickFix campaigns have used the same technique. Elastic publishes a high-severity EQL detection rule monitoring outbound connections to Ethereum RPC domains (eth-mainnet.*, infura.io) from scripting processes, with false-positive guidance for legitimate Web3 tooling.
why Establishes GoCaracal's BulletproofC2 as an instance of a known technique family rather than a novel capability; provides a concrete, independently sourced detection signal directly applicable to the eth_getStorageAt calls GoCaracal makes.
- Does secondary coverage add corroborating detail not present in the primary sources?Fetched CoinGape secondary coverage of the GoCaracal storycoingape.com β
Secondary article corroborates the Ethereum fallback mechanism description, medium-confidence attribution to Dark Caracal, and the June 2026 Venezuelan intrusion; no material additional detail beyond Arctic Wolf findings.
why Confirms consistent reporting across independent outlets; no contradictions found, supporting high overall confidence.
Research coverage
All 71 registered source leaves were evaluated for this run: 64 completed, 0 were unavailable, 0 failed and 7 were disabled. For this story, 1 registered sources supplied useful evidence (1 primary, 0 corroborating, 0 contextual and 0 PoC/exploit references). 63 completed sources contained no matched information for this story.
Complete source-by-source audit 71 sources
| Source | Run result | Value | Why it was useful β or not |
|---|---|---|---|
| The Hacker Newsnews | ok11 records | Primary evidence1 matched items | Published the source report used to frame and date the event. |
| AlienVault OTXdark_web | ok10 records | Checked β no match | The source completed, but none of its retained records matched this story. |
| BleepingComputernews | ok11 records | Checked β no match | The source completed, but none of its retained records matched this story. |
| CERT-EU Threat Intelligencenews | ok empty0 records | Checked β no match | The source completed but returned no records in the collection scope. |
| CIRCL CVEcve | ok30 records | Checked β no match | The source completed, but none of its retained records matched this story. |
| CISA Alertsnews | ok empty0 records | Checked β no match | The source completed but returned no records in the collection scope. |
| CISA KEVkev | ok1685 records | Checked β no match | The source completed, but none of its retained records matched this story. |
| Cisco PSIRTvendor_advisory | ok5333 records | Checked β no match | The source completed, but none of its retained records matched this story. |
| Cisco Talosnews | ok2 records | Checked β no match | The source completed, but none of its retained records matched this story. |
| deepdarkCTI CVE most exploiteddeepdarkcti | ok94 records | Checked β no match | The source completed, but none of its retained records matched this story. |
| deepdarkCTI Discorddeepdarkcti | ok7 records | Checked β no match | The source completed, but none of its retained records matched this story. |
| deepdarkCTI exploitsdeepdarkcti | ok24 records | Checked β no match | The source completed, but none of its retained records matched this story. |
| deepdarkCTI forumsdeepdarkcti | ok264 records | Checked β no match | The source completed, but none of its retained records matched this story. |
| deepdarkCTI malware as a servicedeepdarkcti | ok7 records | Checked β no match | The source completed, but none of its retained records matched this story. |
| deepdarkCTI malware samplesdeepdarkcti | ok3 records | Checked β no match | The source completed, but none of its retained records matched this story. |
| deepdarkCTI marketsdeepdarkcti | ok127 records | Checked β no match | The source completed, but none of its retained records matched this story. |
| deepdarkCTI phishingdeepdarkcti | ok19 records | Checked β no match | The source completed, but none of its retained records matched this story. |
| deepdarkCTI ransomware gangsdeepdarkcti | ok687 records | Checked β no match | The source completed, but none of its retained records matched this story. |
| deepdarkCTI RATsdeepdarkcti | ok1 records | Checked β no match | The source completed, but none of its retained records matched this story. |
| deepdarkCTI Telegram infostealerdeepdarkcti | ok130 records | Checked β no match | The source completed, but none of its retained records matched this story. |
| deepdarkCTI Telegram threat actorsdeepdarkcti | ok1012 records | Checked β no match | The source completed, but none of its retained records matched this story. |
| deepdarkCTI Twitter threat actorsdeepdarkcti | ok39 records | Checked β no match | The source completed, but none of its retained records matched this story. |
| Exploit-DBexploit_reference | ok empty0 records | Checked β no match | The source completed but returned no records in the collection scope. |
| FIRST EPSSepss | ok8041 records | Checked β no match | The source completed, but none of its retained records matched this story. |
| Fortinet PSIRTvendor_advisory | disabled | Disabled | Disabled in the source registry; no check was attempted. |
| GitHub topic: cveresearch | ok empty0 records | Checked β no match | The source completed but returned no records in the collection scope. |
| GitHub topic: exploitresearch | ok empty0 records | Checked β no match | The source completed but returned no records in the collection scope. |
| GitHub topic: penetration-testingresearch | ok empty0 records | Checked β no match | The source completed but returned no records in the collection scope. |
| GitHub topic: pocresearch | ok empty0 records | Checked β no match | The source completed but returned no records in the collection scope. |
| GitHub topic: vulnerabilityresearch | ok empty0 records | Checked β no match | The source completed but returned no records in the collection scope. |
| GreyNoiseexploit_reference | ok empty0 records | Checked β no match | The source completed but returned no records in the collection scope. |
| KrebsOnSecuritynews | ok1 records | Checked β no match | The source completed, but none of its retained records matched this story. |
| LinkedIn RSS proxy feeds (disabled)research | disabled | Disabled | Disabled in the source registry; no check was attempted. |
| MalwareBazaardark_web | ok4 records | Checked β no match | The source completed, but none of its retained records matched this story. |
| Mastodon #cveresearch | ok20 records | Checked β no match | The source completed, but none of its retained records matched this story. |
| Mastodon #cybersecurityresearch | ok14 records | Checked β no match | The source completed, but none of its retained records matched this story. |
| Mastodon #exploitresearch | ok20 records | Checked β no match | The source completed, but none of its retained records matched this story. |
| Mastodon #infosecresearch | ok20 records | Checked β no match | The source completed, but none of its retained records matched this story. |
| Mastodon #malwareresearch | ok18 records | Checked β no match | The source completed, but none of its retained records matched this story. |
| Mastodon #ransomwareresearch | ok20 records | Checked β no match | The source completed, but none of its retained records matched this story. |
| Mastodon #threatintelresearch | ok14 records | Checked β no match | The source completed, but none of its retained records matched this story. |
| Mastodon #vulnerabilityresearch | ok20 records | Checked β no match | The source completed, but none of its retained records matched this story. |
| Metasploit module metadataexploit_reference | ok empty0 records | Checked β no match | The source completed but returned no records in the collection scope. |
| Microsoft MSRCvendor_advisory | ok1591 records | Checked β no match | The source completed, but none of its retained records matched this story. |
| Microsoft Securitynews | ok1 records | Checked β no match | The source completed, but none of its retained records matched this story. |
| MISP Galaxyresearch | ok empty0 records | Checked β no match | The source completed but returned no records in the collection scope. |
| MISP threat actor galaxyactor | ok0 records | Checked β no match | The source completed, but none of its retained records matched this story. |
| NVDcve | ok900 records | Checked β no match | The source completed, but none of its retained records matched this story. |
| Palo Alto Networks PSIRTvendor_advisory | ok25 records | Checked β no match | The source completed, but none of its retained records matched this story. |
| ProjectDiscovery nuclei templatesexploit_reference | ok empty0 records | Checked β no match | The source completed but returned no records in the collection scope. |
| Rapid7news | ok1 records | Checked β no match | The source completed, but none of its retained records matched this story. |
| Reddit r/AskNetsec (pending API approval)research | disabled | Disabled | Disabled in the source registry; no check was attempted. |
| Reddit r/cybersecurity (pending API approval)research | disabled | Disabled | Disabled in the source registry; no check was attempted. |
| Reddit r/malware (pending API approval)research | disabled | Disabled | Disabled in the source registry; no check was attempted. |
| Reddit r/netsec (pending API approval)research | disabled | Disabled | Disabled in the source registry; no check was attempted. |
| Reddit r/ReverseEngineering (pending API approval)research | disabled | Disabled | Disabled in the source registry; no check was attempted. |
| SANS ISCnews | ok1 records | Checked β no match | The source completed, but none of its retained records matched this story. |
| SentinelLabsnews | ok empty0 records | Checked β no match | The source completed but returned no records in the collection scope. |
| Shadowserver public aggregate honeypot observationsexploit_reference | ok empty0 records | Checked β no match | The source completed but returned no records in the collection scope. |
| Shodanresearch | ok1 records | Checked β no match | The source completed, but none of its retained records matched this story. |
| Sigma Rulesresearch | ok empty0 records | Checked β no match | The source completed but returned no records in the collection scope. |
| Sophos IOCsresearch | ok empty0 records | Checked β no match | The source completed but returned no records in the collection scope. |
| Sophos X-Opsnews | ok empty0 records | Checked β no match | The source completed but returned no records in the collection scope. |
| ThreatFoxthreat_intelligence | ok100 records | Checked β no match | The source completed, but none of its retained records matched this story. |
| UK NCSCnews | ok1 records | Checked β no match | The source completed, but none of its retained records matched this story. |
| Unit 42news | ok empty0 records | Checked β no match | The source completed but returned no records in the collection scope. |
| Unit42 IOCsresearch | ok empty0 records | Checked β no match | The source completed but returned no records in the collection scope. |
| URLhausdark_web | ok10 records | Checked β no match | The source completed, but none of its retained records matched this story. |
| VirusTotal Community IOC enrichmentresearch | ok4 records | Checked β no match | The source completed, but none of its retained records matched this story. |
| VulnCheck KEVkev | ok500 records | Checked β no match | The source completed, but none of its retained records matched this story. |
| Vulnerability Lookupcve | ok30 records | Checked β no match | The source completed, but none of its retained records matched this story. |
Additional verified pages 7 opened outside the registered collection
PoC & exploit code1
Primary technical write-up containing YARA rule, SHA-256 hashes, C2 IP list, delivery domains, Ethernet wallet indicator, and BulletproofC2 mechanism detail.
Vendor & gov advisories1
Sole vendor advisory; published 26 August 2026 by the investigating firm with full IoC set and defensive YARA rule.
Analysis & research3
Authoritative independent entry confirming Lebanon GDGS attribution, active-since-2012 timeline, and Bandook as the group's primary documented tool.
Detection rule and observable signals for the EtherHiding technique class that GoCaracal's BulletproofC2 fallback instantiates.
Secondary reporting that corroborates Arctic Wolf findings and adds Latin American victim-country scope detail.