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.102sits 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.comlure 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 toapi.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:
| Type | Examples | Operationalization |
|---|---|---|
| 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. |
| IPv4 | 212.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/Hostnames | studiotikva.com, api.studiotikva.com, ns1/ns2.studiotikva.com | DNS sinkhole + proxy block. Retro-hunt recursive DNS logs for 90+ days — espionage frameworks dwell long. |
| URLs | https://api.studiotikva.com/api/v1/update/check | Full-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
---
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
// 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
# 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.120at egress; sinkholestudiotikva.comand 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.comor 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.comand 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.