Back to Intelligence

Kimwolf v7 IoT Botnet + Project CAV3RN Espionage Framework: OTX Pulse Analysis — Blockchain C2 & Google Apps Script Detection Pack

SA
Security Arsenal Team
August 11, 2026
11 min read

Two fresh AlienVault OTX pulses document a split threat landscape this cycle: a materially upgraded IoT botnet monetizing compromised Android TV hardware through DDoS-for-hire operations, and a modular espionage framework quietly abusing legitimate Google infrastructure for command-and-control against Israeli entities. Both campaigns share a defining trait — C2 channels engineered to blend into trusted, hard-to-block services (blockchain resolution and Google Apps Script). Defenders relying on domain reputation alone are blind to both.


Threat Summary

Pulse 1 — Kimwolf v7 (AISURU family): Unit 42-tracked analysis, surfaced via OTX, confirms a seventh-generation variant of the Kimwolf Android/IoT botnet. The operators are systematically compromising Android TV boxes and set-top boxes — devices that sit permanently online, rarely patched, and almost never monitored by enterprise or consumer security tooling. Version 7 adds HTTP/2-based DDoS floods with full browser fingerprint emulation (JA3/JA4-style headers, TLS signatures, HTTP/2 settings frames), making attack traffic nearly indistinguishable from legitimate browser sessions at Layer 7. The most operationally significant change is the C2 architecture: a three-tier resilient design that resolves C2 addresses through Ethereum Name Service (ENS) lookups against five hard-coded blockchain endpoints, with Tor as a fallback channel. This makes traditional domain takedowns and DNS sinkholing ineffective — there is no registrar to pressure and no DNS record to poison.

Pulse 2 — Project CAV3RN: Securelist-documented espionage activity targeting organizations in Israel. CAV3RN is a modular framework (GoogleService.dll, CommunicationUxTheme.dll, net.dll, rnp.dll, texture.dll) whose latest evolution uses DNS A-record responses as a decision layer: the implant queries attacker DNS infrastructure, parses the returned IP, and dynamically selects either direct HTTPS or a Google Apps Script relay for each individual C2 transaction. A dedicated DNS validation layer rotates Google Apps Script deployment IDs, meaning the C2 endpoint lives on script.google.com — traffic that virtually no proxy or egress filter will block. A local broker component arbitrates between modules, indicating a design built for long-dwell, compartmented collection.

Collective read: Both campaigns reflect the same strategic shift in adversary C2 design — migration away from registrable domains toward decentralized or whitelisted infrastructure (ENS, Google Workspace). The operational objective differs (criminal DDoS monetization vs. state-style espionage), but the defensive implication is identical: behavioral and egress-pattern detection now matters more than indicator-based blocking.


Threat Actor / Malware Profile

Kimwolf v7 (AISURU)

  • Attribution: Unknown criminal operators; infrastructure historically tied to Russian-language hosting (IOC 212.193.31.102 sits in RU address space). Linked to the AISURU botnet lineage.
  • Distribution: Exploitation of exposed Android Debug Bridge (ADB) interfaces and known vulnerabilities on Android TV/set-top hardware; the pulse associates CVE-2016-5195 (Dirty COW — Linux kernel privilege escalation) with the intrusion chain, used to root devices after initial code execution.
  • Payload behavior: ARM/x86 ELF payloads (SHA256 421111a57b0a4224..., 951c94809aa6c7ab...). Post-root, the implant installs as a background service, inventories device capabilities, and enrolls into DDoS tasking.
  • C2 communication: Three-tier model — (1) ENS resolution via five hard-coded Ethereum RPC endpoints to derive current C2 addresses; (2) primary C2 over clearnet with Tor fallback; (3) HTTP/2 flood tasking delivered with full browser fingerprint parameters.
  • Persistence: Init scripts and modified boot properties on rooted Android devices; survives reboot via init.d or system property injection post-Dirty COW escalation.
  • Anti-analysis: Browser fingerprint mimicry in flood traffic, blockchain-based resolution defeating sandbox DNS interception, Tor fallback for takedown resistance.

Project CAV3RN

  • Attribution: Unknown espionage actor; victimology (Israeli entities, including the studiotikva.com lure infrastructure) and framework maturity suggest a well-resourced state-aligned group.
  • Distribution: Staged DLL sideloading of named modules — GoogleService.dll (masquerading as a legitimate Google component), CommunicationUxTheme.dll, net.dll, rnp.dll, texture.dll.
  • Payload behavior: Modular architecture: a broker component coordinates tasking between functional DLLs (network operations, collection, staging). Modules are loaded on demand, limiting on-disk footprint at any given time.
  • C2 communication: Dual-channel per-transaction selection. Implant queries attacker-controlled DNS (ns1/ns2.studiotikva.com), parses A-record responses to choose between direct HTTPS to api.studiotikva.com (/api/v1/update/check) or relay through Google Apps Script. DNS responses also carry validation/rotation data for Apps Script deployment IDs.
  • Persistence: DLL sideloading into legitimate signed processes; broker component maintains module state across reboots.
  • Anti-analysis: C2 decision logic hidden in DNS responses (invisible to HTTP-layer inspection), legitimate Google relay defeats reputation filtering, modular loading frustrates full-chain static analysis.

IOC Analysis

The pulses provide complementary indicator sets across four types:

TypeExamplesOperationalization
FileHash (SHA256/SHA1/MD5)421111a57b0a..., 2078af54891b...Push to EDR blocklists and threat-intel platform watchlists. MD5s have collision risk — treat as hunting pivots, not block-grade. SHA256s are block-grade.
IPv4212.193.31.102 (Kimwolf C2), 12.19.29.30, 12.121.234.120 (CAV3RN)Block at egress firewall/proxy. Add to IDS rules. Note: CAV3RN's IPs may encode C2 decisions in DNS answers — alert on DNS responses containing these, not just connections to them.
Domains/Hostnamesstudiotikva.com, api.studiotikva.com, ns1/ns2.studiotikva.comDNS sinkhole + proxy block. Retro-hunt recursive DNS logs for 90+ days — espionage frameworks dwell long.
URLshttps://api.studiotikva.com/api/v1/update/checkFull-URI match in proxy/ZTNA logs; path-level alerting (/api/v1/update/check) catches infrastructure re-pointing.

SOC operationalization guidance: Ingest hashes into MISP/your TIP with to_ids=true; deploy IPs/domains to perimeter block lists and SIEM reference sets. Critically, add behavioral pivots: outbound ENS RPC calls (queries to eth.llamarpc.com, cloudflare-eth.com, or JSON-RPC eth_call/resolve patterns to Ethereum endpoints from non-browser processes) and unexpected script.google.com/script.googleusercontent.com traffic from endpoints are stronger signals than any static IOC. CVE-2016-5195 should trigger a sweep for unpatched embedded/Android Linux assets — Dirty COW is a decade old and its presence here confirms attackers are farming neglected device classes.


Detection Engineering

YAML
---
title: Kimwolf Botnet Ethereum Name Service C2 Resolution
id: 7f3a1c2e-4b5d-4e8a-9c1f-2d6e8a0b1c3d
status: experimental
description: Detects processes making JSON-RPC calls to public Ethereum RPC endpoints consistent with Kimwolf v7 ENS-based C2 resolution. Non-browser, non-wallet processes resolving ENS names are highly anomalous.
author: Security Arsenal Threat Intelligence
date: 2026/08/11
references:
    - https://unit42.paloaltonetworks.com/kimwolf-v7-botnet-malware/
logsource:
    category: network_connection
    product: zeek
    service: json
    
detection:
    selection_rpc_method:
        jsonrpc.method|contains:
            - 'eth_call'
            - 'eth_getCode'
    selection_endpoint:
        dst_domain|contains:
            - 'eth.llamarpc.com'
            - 'cloudflare-eth.com'
            - 'rpc.ankr.com'
            - 'ethereum.publicnode.com'
            - 'mainnet.infura.io'
    filter_browsers:
        Image|endswith:
            - '\chrome.exe'
            - '\firefox.exe'
            - '\msedge.exe'
    condition: selection_rpc_method and selection_endpoint and not filter_browsers
falsepositives:
    - Legitimate cryptocurrency wallet software or Web3 development tools
level: high
tags:
    - attack.command_and_control
    - attack.t1071.001
    - attack.t1568
---
title: HTTP/2 Flood With Browser Fingerprint Mimicry From Non-Browser Process
id: 8a4b2d3f-5c6e-4f9b-0d2e-3f7a9b1c2d4e
status: experimental
description: Detects rapid HTTP/2 request bursts carrying full browser User-Agent and header fingerprints originating from non-browser binaries, consistent with Kimwolf v7 DDoS tasking behavior on compromised IoT/Android devices relayed through enterprise segments.
author: Security Arsenal Threat Intelligence
date: 2026/08/11
references:
    - https://unit42.paloaltonetworks.com/kimwolf-v7-botnet-malware/
logsource:
    category: proxy
    
detection:
    selection_ua:
        c-useragent|contains:
            - 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)'
            - 'Mozilla/5.0 (Macintosh; Intel Mac OS X'
    selection_h2:
        cs-protocol: 'HTTP/2'
    timeframe: 60s
    condition: selection_ua and selection_h2 | count(dst_host) by src_ip > 200
falsepositives:
    - Load balancers, health-check services, and automated monitoring agents impersonating browsers
level: medium
tags:
    - attack.impact
    - attack.t1498
---
title: Project CAV3RN Google Apps Script C2 Relay or Suspicious Module Load
id: 9b5c3e4a-6d7f-4a0c-1e3f-4a8b0c2d3e5f
status: experimental
description: Detects CAV3RN-style C2 via Google Apps Script relay from non-browser processes, or loading of the framework's known module DLL names. CAV3RN selects Apps Script vs direct HTTPS per transaction based on DNS A-record responses.
author: Security Arsenal Threat Intelligence
date: 2026/08/11
references:
    - https://securelist.com/project-cav3rn-continues/120991
logsource:
    category: network_connection
    product: windows
    
detection:
    selection_gas_relay:
        DestinationHostname|endswith:
            - 'script.google.com'
            - 'script.googleusercontent.com'
    filter_browsers:
        Image|endswith:
            - '\chrome.exe'
            - '\firefox.exe'
            - '\msedge.exe'
            - '\brave.exe'
    selection_cav3rn_dns:
        DestinationHostname|endswith:
            - 'studiotikva.com'
    selection_module_load:
        ImageLoaded|contains:
            - '\GoogleService.dll'
            - '\CommunicationUxTheme.dll'
            - '\net.dll'
            - '\rnp.dll'
            - '\texture.dll'
    condition: (selection_gas_relay and not filter_browsers) or selection_cav3rn_dns or selection_module_load
falsepositives:
    - Enterprise automation legitimately calling Apps Script webhooks (rare from endpoints); third-party software shipping generic DLL names like net.dll — whitelist by signer and path
level: high
tags:
    - attack.command_and_control
    - attack.t1071.001
    - attack.t1102
    - attack.persistence
    - attack.t1574.002
KQL — Microsoft Sentinel / Defender
// Project CAV3RN + Kimwolf v7 — combined infrastructure & behavior hunt
// Sentinel: surface connections to known C2, ENS-RPC anomalies, and Apps Script relay usage
let cav3rn_domains = dynamic(["studiotikva.com", "api.studiotikva.com", "ns1.studiotikva.com", "ns2.studiotikva.com"]);
let cav3rn_ips = dynamic(["12.19.29.30", "12.121.234.120"]);
let kimwolf_ips = dynamic(["212.193.31.102"]);
let ens_rpc = dynamic(["eth.llamarpc.com", "cloudflare-eth.com", "rpc.ankr.com", "ethereum.publicnode.com", "mainnet.infura.io"]);
let browsers = dynamic(["chrome.exe", "msedge.exe", "firefox.exe", "brave.exe"]);
union isfuzzy=true
  // Direct C2 infrastructure hits
  (DeviceNetworkEvents
  | where TimeGenerated > ago(14d)
  | where RemoteIP in (cav3rn_ips) or RemoteIP in (kimwolf_ips)
        or RemoteUrl has_any (cav3rn_domains)
  | extend Signal = "Known C2 Infrastructure"),
  // CAV3RN: Google Apps Script relay from non-browser processes
  (DeviceNetworkEvents
  | where TimeGenerated > ago(14d)
  | where RemoteUrl has_any ("script.google.com", "script.googleusercontent.com")
  | where not(InitiatingProcessFileName in (browsers))
  | extend Signal = "Apps Script Relay (non-browser)"),
  // Kimwolf v7: ENS / Ethereum RPC resolution from non-browser processes
  (DeviceNetworkEvents
  | where TimeGenerated > ago(14d)
  | where RemoteUrl has_any (ens_rpc)
  | where not(InitiatingProcessFileName in (browsers))
  | extend Signal = "ENS-RPC Resolution (possible blockchain C2)"),
  // CAV3RN module DLL loads
  (DeviceImageLoadEvents
  | where TimeGenerated > ago(14d)
  | where FileName in~ ("GoogleService.dll", "CommunicationUxTheme.dll", "rnp.dll", "texture.dll")
  | extend Signal = "CAV3RN Module Load",
       RemoteIP = "", RemoteUrl = FolderPath)
| project TimeGenerated, Signal, DeviceName, InitiatingProcessFileName,
          InitiatingProcessCommandLine, RemoteIP, RemoteUrl, FileName, FolderPath, SHA256
| sort by TimeGenerated desc
PowerShell
# Security Arsenal — Kimwolf v7 / Project CAV3RN endpoint hunt
# Checks: known file hashes, CAV3RN module DLLs on disk, live C2 connections,
#         DNS cache for C2 domains, and Android-adjacent persistence artifacts.

$ErrorActionPreference = 'SilentlyContinue'
$findings = @()

# --- 1. Known malicious hashes (Kimwolf v7 payloads) ---
$badHashes = @(
  '421111a57b0a4224c052fa4108d90429d579974b5b5111ed2e58516ba09422ca',
  '951c94809aa6c7ab587125f9d4df30fa6a49ee0cbba76a4b7ceedaaa0e5dcd36'
)
$searchPaths = @("$env:TEMP","$env:LOCALAPPDATA","$env:APPDATA","C:\ProgramData","C:\Users\Public")
foreach ($p in $searchPaths) {
  Get-ChildItem -Path $p -Recurse -File -Include *.exe,*.dll,*.bin -Depth 3 | ForEach-Object {
    $h = (Get-FileHash $_.FullName -Algorithm SHA256).Hash.ToLower()
    if ($badHashes -contains $h) {
      $findings += [pscustomobject]@{Check='HashMatch'; Path=$_.FullName; Detail=$h}
    }
  }
}

# --- 2. CAV3RN module DLLs in suspicious locations ---
$modules = @('GoogleService.dll','CommunicationUxTheme.dll','rnp.dll','texture.dll')
foreach ($p in $searchPaths) {
  foreach ($m in $modules) {
    Get-ChildItem -Path $p -Recurse -Filter $m -Depth 3 | ForEach-Object {
      $findings += [pscustomobject]@{Check='CAV3RN-Module'; Path=$_.FullName; Detail=$m}
    }
  }
}

# --- 3. Live connections to known C2 ---
$c2 = @('212.193.31.102','12.19.29.30','12.121.234.120')
Get-NetTCPConnection -State Established | Where-Object { $c2 -contains $_.RemoteAddress } | ForEach-Object {
  $proc = Get-Process -Id $_.OwningProcess
  $findings += [pscustomobject]@{Check='C2-Connection'; Path=$proc.Path; Detail="$($_.RemoteAddress):$($_.RemotePort) via $($proc.Name)"}
}

# --- 4. DNS cache: CAV3RN infrastructure ---
Get-DnsClientCache | Where-Object { $_.Entry -match 'studiotikva\.com' } | ForEach-Object {
  $findings += [pscustomobject]@{Check='DNS-Cache'; Path='resolver-cache'; Detail="$($_.Entry) -> $($_.Data)"}
}

# --- 5. Non-browser processes talking to Google Apps Script (egress proxy check) ---
Get-NetTCPConnection -State Established | Where-Object RemotePort -in 80,443 | ForEach-Object {
  $ip = $_.RemoteAddress
  try { $name = ([System.Net.Dns]::GetHostEntry($ip)).HostName } catch { $name = '' }
  if ($name -match 'script\.google(usercontent)?\.com') {
    $proc = Get-Process -Id $_.OwningProcess
    if ($proc.Name -notmatch '^(chrome|msedge|firefox|brave)$') {
      $findings += [pscustomobject]@{Check='AppsScript-Relay'; Path=$proc.Path; Detail="$($proc.Name) -> $name ($ip)"}
    }
  }
}

# --- Report ---
if ($findings.Count -gt 0) {
  Write-Host "[!] $($findings.Count) suspicious artifact(s) found:" -ForegroundColor Red
  $findings | Format-Table -AutoSize
  $findings | Export-Csv -Path ".\kimwolf_cav3rn_hunt_$(Get-Date -Format yyyyMMdd_HHmm).csv" -NoTypeInformation
} else {
  Write-Host "[+] No Kimwolf/CAV3RN artifacts detected on this host." -ForegroundColor Green
}

Response Priorities

Immediate (0–4 hours)

  • Push all pulse IOCs to enforcement points: block 212.193.31.102, 12.19.29.30, 12.121.234.120 at egress; sinkhole studiotikva.com and subdomains at the DNS layer; import both SHA256s into EDR block policy.
  • Retro-hunt 90 days of DNS and proxy logs for studiotikva.com — CAV3RN is an espionage framework; assume any hit equals long-dwell compromise and trigger IR, not just cleanup.
  • Audit egress for non-browser processes reaching script.google.com or Ethereum RPC endpoints — these are the highest-fidelity behavioral signals in this cycle.
  • Inventory externally exposed ADB (TCP/5555) and IoT/Android devices on corporate or guest segments; isolate anything reachable from the internet.

24 Hours

  • If any CAV3RN indicator is confirmed: treat as an espionage incident. Reset credentials for all users on affected hosts, review cloud/OAuth tokens and service principal activity from those endpoints, and hunt laterally from the affected device. Espionage frameworks collect identity material by design — assume credential theft even though CAV3RN is not a dedicated stealer.
  • For Kimwolf-affected networks: verify no internal segments were leveraged as DDoS launch points (review outbound PPS/bandwidth anomalies); confirm Android/embedded Linux estate patch posture against CVE-2016-5195.

1 Week

  • Implement egress policy restricting script.google.com and similar serverless relay domains to sanctioned browser/service accounts only.
  • Deploy the Sigma and KQL detections above into production; add ENS-RPC egress alerting as a standing detection use case (blockchain C2 is an expanding technique class, not a one-off).
  • Segment IoT/OTT/Android devices into isolated VLANs with deny-by-default east-west rules; establish a patching and replacement lifecycle for unpatchable embedded hardware.
  • Run a tabletop on espionage-scenario IR: dwell-time scoping, identity compromise response, and evidence preservation differ materially from commodity malware cleanup.

Related Resources

Security Arsenal Incident Response Managed SOC & MDR Services AlertMonitor Threat Detection From The Dark Side Intel Hub

Is your security operations ready?

Get a free SOC assessment or see how AlertMonitor cuts through alert noise with automated triage.