Three concurrent OTX pulses from 2026-08-11/12 expose a threat landscape spanning decentralized blockchain command-and-control, nation-state credential harvesting via hospitality networks, and mobile banking trojan operations against financial institutions. This briefing synthesizes all three into an actionable detection and response package.
Threat Summary
These pulses collectively reveal three distinct but overlapping threat trends:
1. Aeternum — Blockchain-Native C2 (Actor: LenAI). A C++ botnet loader abandoning traditional C2 servers entirely, writing encrypted instructions to Polygon blockchain smart contracts. Infected hosts query public RPC endpoints (Tenderly, DRPC, Zan.top, OmniaTech) to retrieve commands — making takedown nearly impossible since the "C2" is an immutable, decentralized ledger. Aeternum acts as a loader for XWorm RAT, ZingoStealer, and XMRig cryptocurrency miners, and its implementation of weak PBKDF2HMAC/AES-GCM with self-salting passwords means payloads can be decrypted and analyzed — but the infrastructure cannot be seized.
2. CaptiveCrunch — Midnight Blizzard / UNC2452 (APT29/Cozy Bear/Storm-2945). A nation-state campaign compromising captive portal DNS and HTTP traffic at hotels, conference centers, and hospitality venues across the US, India, Saudi Arabia, and associated territories. Victims are redirected to attacker infrastructure hosting fake Microsoft 365 login pages (m365-owa.com, ms365-device.com, owa-ms365.com), subjected to device code phishing abusing the Microsoft Entra ID authentication flow, and pushed malware via ClickFix social engineering — delivering CornFlake and ChocoShell implants. The pulse also references CVE-2026-21509, suggesting exploitation in the delivery chain.
3. GoldDigger — Android Banking Trojan (Finance sector). Targeting mobile banking users in South Africa and the UK with expansion indicators, GoldDigger disguises itself as airline and shopping apps, uses the custom 'dpt-shell' packer, anti-debugging, and Frida detection, abuses Android Accessibility services for overlay attacks, and shows code overlap with the GodFather banking trojan family.
Collective objective: credential theft, financial fraud, and persistent access — with a shared theme of abusing trusted infrastructure (public blockchains, hotel networks, official app ecosystems, Microsoft authentication flows) to evade traditional perimeter controls.
Threat Actor / Malware Profile
Aeternum (LenAI)
- Distribution: Loader-based; dropped alongside XWorm, ZingoStealer, XMRig payloads
- Payload behavior: Multi-stage loader fetching follow-on payloads (RAT, stealer, miner) based on blockchain-retrieved instructions
- C2 communication: Polygon blockchain smart contracts queried via public RPC endpoints —
endpoints.omniatech.io,polygon-zkevm.drpc.org,polygon-mumbai.gateway.tenderly.co,api.zan.top. Infrastructure pivot:sekirolegion.duckdns.org(DDNS fallback),cdnjsdelivr.beer(CDN typosquat for staging), 193.221.200.219 - Encryption: Weak PBKDF2HMAC/AES-GCM with self-salting passwords — decryptable by defenders with the sample
- Persistence: Loader installs resident components for miner/RAT families (registry Run keys, scheduled tasks typical of XWorm/XMRig deployments)
CaptiveCrunch / Midnight Blizzard (UNC2452)
- Distribution: Compromised captive portal DNS/HTTP manipulation on hotel and conference Wi-Fi; ClickFix fake-verification social engineering
- Payload behavior: CornFlake and ChocoShell implants; M365 credential harvesting pages; Entra ID device code phishing to obtain tokens without passwords
- C2/infrastructure: m365-owa.com, ms365-device.com, ms365-live.com, owa-ms365.com; 38.146.28.75
- Anti-analysis: Living-off-trusted-auth-flows — device code phishing defeats MFA push fatigue defenses and leaves minimal endpoint artifacts
GoldDigger (Android)
- Distribution: Trojanized airline/shopping apps via sideloading and third-party stores
- Payload behavior: Accessibility service abuse → overlay injection over legitimate banking apps → credential and OTP capture
- Anti-analysis: 'dpt-shell' custom packer, anti-debugging, Frida instrumentation detection, virtual environment checks
- Attribution overlap: Code and TTP similarity to GodFather trojan
IOC Analysis
| Type | Examples | Operationalization |
|---|---|---|
| Hostname (RPC endpoints) | endpoints.omniatech.io, polygon-zkevm.drpc.org, polygon-mumbai.gateway.tenderly.co, api.zan.top | Do NOT blanket-block — these are legitimate public RPC gateways. Instead, alert on corporate endpoints making repeated JSON-RPC calls (eth_call, eth_getLogs) to blockchain RPC hosts. Only crypto-native business units should ever speak to Polygon RPC. |
| DDNS / staging domains | sekirolegion.duckdns.org, cdnjsdelivr.beer | Block at DNS/proxy. DuckDNS subdomains are high-fidelity in enterprise contexts. |
| Phishing domains | m365-owa.com, ms365-device.com, ms365-live.com, owa-ms365.com | Block at DNS sinkhole + email gateway + web proxy. Add to brand-monitoring watchlist for permutations. |
| IPv4 | 193.221.200.219, 38.146.28.75 | Block egress at firewall; retro-hunt NetFlow/proxy logs 90 days. |
| File hashes (SHA256/SHA1/MD5) | Aeternum loader, CornFlake/ChocoShell, GoldDigger APK hashes | Push to EDR blocklists; GoldDigger APK hashes feed mobile threat defense (MTD) via hash reputation lookups (VirusTotal, Koodous). |
| CVE | CVE-2026-21509 | Cross-reference asset inventory; prioritize patching on remote-access and hospitality-facing systems. |
Tooling: Decode Aeternum blockchain payloads by replaying smart contract reads via a Polygon archive node using the sample's embedded password (self-salting PBKDF2 — extractable statically). Feed all IOCs into your TIP (OpenCTI/MISP) with confidence scoring; the RPC hostnames carry low block-confidence but high alert-confidence.
Detection Engineering
---
title: Blockchain RPC C2 Communication from Endpoint (Aeternum / LenAI)
id: 8f3a1c2e-7b41-4e9d-a6f2-1d5c9e8b3a01
status: experimental
description: Detects endpoint processes initiating JSON-RPC traffic to public blockchain RPC endpoints, consistent with Aeternum botnet smart-contract C2 retrieval
author: Security Arsenal Threat Intel
date: 2026/08/12
references:
- https://unit42.paloaltonetworks.com/aeternum-blockchain-c2-analysis/
logsource:
category: proxy
product: proxy
detection:
selection_host:
cs-host|contains:
- 'endpoints.omniatech.io'
- 'polygon-zkevm.drpc.org'
- 'polygon-mumbai.gateway.tenderly.co'
- 'api.zan.top'
selection_method:
cs-method: 'POST'
filter_business:
cs-host|contains:
- '.internal.example.com'
condition: selection_host and selection_method and not filter_business
fields:
- c-ip
- cs-host
- cs-uri
- cs-user-agent
falsepositives:
- Legitimate Web3/crypto development teams
- Blockchain analytics platforms
level: high
tags:
- attack.command_and_control
- attack.t1102
- attack.t1071.001
---
title: Aeternum / CaptiveCrunch Malware Infrastructure Resolution
id: 2c7d4f9a-3e18-4b6c-9d21-5a8f6c0e7b42
status: experimental
description: Detects DNS resolution of Aeternum staging domains and Midnight Blizzard CaptiveCrunch M365 phishing domains
author: Security Arsenal Threat Intel
date: 2026/08/12
logsource:
category: dns
detection:
selection:
query|contains:
- 'sekirolegion.duckdns.org'
- 'cdnjsdelivr.beer'
- 'm365-owa.com'
- 'ms365-device.com'
- 'ms365-live.com'
- 'owa-ms365.com'
condition: selection
fields:
- ClientIP
- query
falsepositives:
- Threat research and sandbox detonation
level: critical
tags:
- attack.command_and_control
- attack.t1566
- attack.t1071.004
---
title: ClickFix Social Engineering — Suspicious Clipboard-to-Run Execution
id: 5e9b3d71-4c26-4f8a-b1d3-8e2a7c5f9d06
status: experimental
description: Detects ClickFix-style execution where users paste malicious commands into Run dialog or terminal spawning encoded PowerShell/mshta/curl, as used in CaptiveCrunch delivery of CornFlake and ChocoShell
author: Security Arsenal Threat Intel
date: 2026/08/12
logsource:
category: process_creation
product: windows
detection:
selection_parent:
ParentImage|endswith:
- '\explorer.exe'
- '\msedge.exe'
- '\chrome.exe'
- '\firefox.exe'
selection_child:
Image|endswith:
- '\powershell.exe'
- '\pwsh.exe'
- '\mshta.exe'
- '\curl.exe'
- '\rundll32.exe'
selection_cmd:
CommandLine|contains:
- '-enc'
- '-e '
- 'FromBase64String'
- 'iex'
- 'IWR'
- 'Invoke-WebRequest'
condition: selection_parent and selection_child and selection_cmd
falsepositives:
- IT admin remote remediation scripts
- Software deployment tooling
level: high
tags:
- attack.execution
- attack.t1059.001
- attack.t1204.002
// CaptiveCrunch & Aeternum — Network and Process Hunt (Microsoft Sentinel)
let PhishDomains = dynamic(["m365-owa.com","ms365-device.com","ms365-live.com","owa-ms365.com","sekirolegion.duckdns.org","cdnjsdelivr.beer"]);
let BadIPs = dynamic(["193.221.200.219","38.146.28.75"]);
let BlockchainRPC = dynamic(["endpoints.omniatech.io","polygon-zkevm.drpc.org","polygon-mumbai.gateway.tenderly.co","api.zan.top"]);
let Lookback = 14d;
let NetEvents = DeviceNetworkEvents
| where Timestamp > ago(Lookback)
| where RemoteUrl has_any (PhishDomains) or RemoteIP in (BadIPs) or RemoteUrl has_any (BlockchainRPC)
| extend IOCType = case(
RemoteUrl has_any (PhishDomains), "Phishing/Staging Domain",
RemoteIP in (BadIPs), "Malicious IP",
RemoteUrl has_any (BlockchainRPC), "Blockchain RPC C2",
"Other")
| project Timestamp, DeviceName, InitiatingProcessAccountName, InitiatingProcessFileName, InitiatingProcessCommandLine, RemoteUrl, RemoteIP, RemotePort, IOCType;
NetEvents
| join kind=leftouter (
DeviceProcessEvents
| where Timestamp > ago(Lookback)
| where ProcessCommandLine has_any ("-enc","FromBase64String","iex","Invoke-WebRequest","IWR ")
and InitiatingProcessFileName in~ ("msedge.exe","chrome.exe","firefox.exe","explorer.exe")
| project ProcTimestamp=Timestamp, DeviceName, ClickFixCmd=ProcessCommandLine, ProcFile=FileName
) on DeviceName
| extend ClickFixSuspect = isnotempty(ClickFixCmd)
| summarize Connections=count(), FirstSeen=min(Timestamp), LastSeen=max(Timestamp), Processes=make_set(InitiatingProcessFileName), ClickFix=any(ClickFixSuspect) by DeviceName, InitiatingProcessAccountName, IOCType
| sort by LastSeen desc
# Security Arsenal — Aeternum / CaptiveCrunch IOC Hunt Script
# Run elevated on Windows endpoints. Outputs findings to console + CSV.
$Results = @()
$Now = Get-Date
# --- 1. Network connections to known-bad IPs and blockchain RPC C2 ---
$BadIPs = @('193.221.200.219','38.146.28.75')
$BadHosts = @('endpoints.omniatech.io','polygon-zkevm.drpc.org','polygon-mumbai.gateway.tenderly.co','api.zan.top','sekirolegion.duckdns.org','cdnjsdelivr.beer','m365-owa.com','ms365-device.com','ms365-live.com','owa-ms365.com')
Get-NetTCPConnection -State Established -ErrorAction SilentlyContinue | Where-Object {
$BadIPs -contains $_.RemoteAddress
} | ForEach-Object {
$p = Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue
$Results += [PSCustomObject]@{Type='Network-IP'; Indicator=$_.RemoteAddress; Process=$p.ProcessName; PID=$_.OwningProcess; Time=$Now}
}
# --- 2. DNS cache hits for malicious / RPC domains ---
$dns = Get-DnsClientCache -ErrorAction SilentlyContinue
foreach ($h in $BadHosts) {
$dns | Where-Object { $_.Entry -like "*$h*" } | ForEach-Object {
$Results += [PSCustomObject]@{Type='DNS-Cache'; Indicator=$_.Entry; Process='N/A'; PID='N/A'; Time=$Now}
}
}
# --- 3. Persistence: Run keys & scheduled tasks referencing suspicious binaries (XWorm/XMRig patterns) ---
$RunKeys = @('HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run','HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run')
foreach ($k in $RunKeys) {
Get-ItemProperty -Path $k -ErrorAction SilentlyContinue | ForEach-Object {
$_.PSObject.Properties | Where-Object { $_.Value -match 'AppData|Temp|xmrig|powershell.*-enc|mshta' } | ForEach-Object {
$Results += [PSCustomObject]@{Type='Persistence-RunKey'; Indicator="$k\$($_.Name) = $($_.Value)"; Process='N/A'; PID='N/A'; Time=$Now}
}
}
}
Get-ScheduledTask -ErrorAction SilentlyContinue | Where-Object {
($_.Actions.Execute -match 'powershell|mshta|curl') -and ($_.Actions.Arguments -match '-enc|IWR|http')
} | ForEach-Object {
$Results += [PSCustomObject]@{Type='Persistence-SchedTask'; Indicator="$($_.TaskName): $($_.Actions.Execute) $($_.Actions.Arguments)"; Process='N/A'; PID='N/A'; Time=$Now}
}
# --- 4. File hash sweep (Aeternum loader / CornFlake / ChocoShell samples) ---
$Hashes = @(
'5bfb25b8255b61e5ffdf6804451534bcfa9f1dfd225e6c8cdcefb5f50d846898',
'918fa52ae45ed60ba7cc8bdc99c3cbe9ab92e0375ec31fc05d0d4513be11c593',
'be99857449d2856dd5a84e21c8a3d5e0e01456adb44062ddec5a6b4970d8d42c'
)
$SearchPaths = @("$env:TEMP","$env:APPDATA","$env:LOCALAPPDATA","$env:USERPROFILE\Downloads")
foreach ($path in $SearchPaths) {
Get-ChildItem -Path $path -Recurse -File -ErrorAction SilentlyContinue | ForEach-Object {
$h = (Get-FileHash $_.FullName -Algorithm SHA256 -ErrorAction SilentlyContinue).Hash
if ($Hashes -contains $h) {
$Results += [PSCustomObject]@{Type='FileHash-Match'; Indicator=$_.FullName; Process=$h; PID='N/A'; Time=$Now}
}
}
}
if ($Results.Count -gt 0) {
$Results | Format-Table -AutoSize
$Results | Export-Csv -Path ".\IOC_Hunt_$($env:COMPUTERNAME)_$(Get-Date -Format 'yyyyMMdd_HHmm').csv" -NoTypeInformation
Write-Host "[!] $($Results.Count) indicator(s) found — escalate to IR immediately." -ForegroundColor Red
} else {
Write-Host "[+] No indicators matched on $env:COMPUTERNAME." -ForegroundColor Green
}
Response Priorities
Immediate (0–4 hours)
- Block phishing domains (m365-owa.com, ms365-device.com, ms365-live.com, owa-ms365.com), DDNS/staging hosts (sekirolegion.duckdns.org, cdnjsdelivr.beer), and IPs 193.221.200.219 / 38.146.28.75 at DNS, proxy, and firewall layers
- Deploy the blockchain-RPC Sigma rule and KQL query; alert (do not block) on corporate endpoints querying Polygon RPC gateways
- Push all file hashes to EDR blocklists; push GoldDigger APK hashes to your MTD/mobile fleet management
- Run the PowerShell hunt script across Tier-1 assets and any endpoints used by recent travelers
24 Hours
- Credential exposure sweep: Midnight Blizzard's device code phishing means tokens, not just passwords, may be compromised. Audit Entra ID sign-in logs for device code flow authentications from unusual geographies/ASNs; revoke refresh tokens and force re-authentication for any user who connected to hotel/conference Wi-Fi in the exposure window
- Review travel logs against targeted geographies (US, India, Saudi Arabia); brief traveling executives on captive portal risk
- Search email and web logs for ClickFix lures referencing CVE-2026-21509 themes
- Verify MDM/MTD coverage for corporate and BYOD devices used for banking (South Africa/UK finance staff especially)
1 Week
- Architecture hardening: enforce certificate pinning + DNS-over-HTTPS to enterprise resolvers on managed laptops so captive-portal DNS manipulation is visible; deploy VPN-always-on policy for off-network devices
- Restrict Entra ID device code flow via Conditional Access (limit to approved device categories/locations) — this directly blunts CaptiveCrunch's token theft
- Block uncategorized blockchain RPC egress at the proxy for non-crypto business units; require exception approval
- Enforce Android app installation source restrictions (Play-only) via MDM; audit Accessibility service grants on managed mobile devices
- Patch CVE-2026-21509 across exposed assets per the pulse reference
- Tabletop exercise: "traveling executive + hotel Wi-Fi + ClickFix" scenario for the SOC
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.