A new OTX pulse (AlienVault, TLP:WHITE) confirms what our dark web monitoring has been forecasting for two quarters: trusted AI platforms are now an active malware distribution channel. Threat actors are operating lookalike infrastructure — most notably claude.ai.download-app.us — engineered to impersonate Anthropic's Claude AI platform and trick users into downloading trojanized 'desktop clients' or 'AI assistant installers.'
The attack chain is straightforward but effective against an AI-hungry workforce:
- Lure: Malvertising, SEO poisoning, and phishing push users toward 'download the Claude desktop app' pages hosted on attacker infrastructure (
download-app.us,polse.us). - Delivery: The victim downloads an installer masquerading as a legitimate AI client. Because the parent domain string contains
claude.ai, cursory URL inspection and even some naive URL filters pass it. - Execution: The installer drops an infostealer payload that harvests browser credential stores, session cookies, crypto wallets, and — critically for enterprises — saved SSO tokens and API keys, including AI platform API keys (OpenAI, Anthropic, AWS) increasingly stored in developer environments.
- Exfiltration: Harvested credentials are staged and exfiltrated to C2 over HTTPS, blending with legitimate TLS traffic. Stolen credentials are then resold on dark web credential markets or used for follow-on lateral movement and supply-chain intrusion.
The pulse tags — credential-harvesting, supply-chain, data-exfiltration, lateral-movement — indicate the operators are not smash-and-grab commodity actors. The targeting breadth (Government, Defense, Energy, Finance, Healthcare, Telecommunications, Manufacturing, Technology) is consistent with an initial-access operation feeding multiple downstream buyers.
Threat Actor / Malware Profile
Attribution: Unknown at this time. TTP overlap suggests an Initial Access Broker (IAB) operation rather than a single APT — the wide sector spread and credential-focused objective are hallmarks of access-for-resale economics.
Distribution method:
- Typosquat/prefix-squat domains exploiting AI brand trust (
claude.ai.download-app.us— note the deceptive subdomain construction designed to survive visual inspection) - SEO poisoning targeting queries like 'Claude desktop download,' 'AI assistant app'
- Malvertising and forum/social media links on secondary domains (
polse.us)
Payload behavior:
- Fake installer presents a plausible AI-chat UI to delay suspicion while the stealer runs in the background
- Targets browser credential databases (Chrome
Login Data, Firefoxlogins.json), session cookies (enabling MFA bypass via token replay), and developer credential files (.env,~/.aws/credentials,.npmrc, SSH keys) - Archives stolen data into a compressed staging package before exfiltration
C2 communication:
- HTTPS POST beaconing to attacker-controlled domains
- Exfil archives transmitted via multipart form POSTs to blend with legitimate web uploads
- Domain fronting and fast rotation of lookalike domains expected given the campaign pattern
Persistence:
- Registry Run keys (
HKCU\Software\Microsoft\Windows\CurrentVersion\Run) under benign-sounding value names (e.g., 'AIAssistantUpdater') - Scheduled tasks masquerading as software update jobs
Anti-analysis:
- Environment checks for VMs/sandboxes before payload decryption
- Delayed execution (sleep timers) to evade sandbox detonation windows
- Legitimate-looking installer signing or unsigned binaries relying on user override of SmartScreen
IOC Analysis
The pulse contains 3 domain/hostname indicators — no file hashes or IPs were published, which is typical for early-stage infrastructure reporting:
| Indicator | Type | Assessment |
|---|---|---|
download-app.us | Domain | Parent distribution domain; generic name chosen for reuse across multiple brand-impersonation campaigns |
claude.ai.download-app.us | Hostname | Active Claude-impersonation lure host; highest-fidelity IOC — no legitimate reason for this hostname to exist |
polse.us | Domain | Secondary redirect/C2 infrastructure |
Operationalization guidance for SOC teams:
- Block at DNS: Sinkhole all three indicators at the resolver layer (RPZ, Pi-hole enterprise, or secure DNS gateway). DNS-layer blocking catches both the lure click AND post-infection C2 resolution.
- Proxy/SWG: Add to URL filtering block lists; alert on any historical hits in the last 90 days.
- Retrohunt: Because no hashes were published, network telemetry retrohunting is your primary detection path. Query DNS, proxy, and TLS SNI logs for these domains.
- Pivot:
claude.ai.download-app.usimplies the actors are registering brand-prefix subdomains at scale. Proactively hunt your DNS logs for the regex pattern(openai|claude|anthropic|chatgpt|gemini|copilot)\.(ai|com)?\.?[a-z0-9-]+\.(us|top|xyz|shop|online|app)to catch sibling infrastructure. - Tooling: URLScan.io and VirusTotal passive DNS for pivot analysis; dnstwist to enumerate registered lookalikes of your own AI-vendor domains.
Detection Engineering
---
title: Suspicious AI Platform Impersonation Domain Resolution
id: 7f3a2c1e-9d44-4b2a-a1c8-otxai00001
status: experimental
description: Detects DNS resolution of known malicious AI-platform impersonation domains identified in OTX pulse (claude.ai.download-app.us campaign). No legitimate traffic should resolve these hosts.
author: Security Arsenal Threat Intelligence
date: 2026/09/22
references:
- https://nsfocusglobal.com/ai-security-incident-case-trusted-ai-platforms-become-a-new-channel-for-malware-distribution/
logsource:
category: dns
detection:
selection:
query|contains:
- 'download-app.us'
- 'polse.us'
- 'claude.ai.download-app.us'
condition: selection
falsepositives:
- Threat intelligence sandbox detonation
level: critical
tags:
- attack.command_and_control
- attack.t1071.001
---
title: Browser Credential Store Access by Non-Browser Process
id: 7f3a2c1e-9d44-4b2a-a1c8-otxai00002
status: experimental
description: Detects infostealer behavior — a non-browser process reading Chrome/Edge/Firefox credential databases. Core behavior of credential-harvesting payloads distributed via fake AI platform installers.
author: Security Arsenal Threat Intelligence
date: 2026/09/22
logsource:
category: file_event
product: windows
detection:
selection_paths:
TargetFilename|contains:
- '\Google\Chrome\User Data\'
- '\Microsoft\Edge\User Data\'
- '\BraveSoftware\Brave-Browser\User Data\'
TargetFilename|endswith:
- '\Login Data'
- '\Cookies'
- '\Web Data'
- '\Local State'
filter_browsers:
Image|endswith:
- '\chrome.exe'
- '\msedge.exe'
- '\brave.exe'
- '\firefox.exe'
condition: selection_paths and not filter_browsers
falsepositives:
- Legitimate backup or EDR software accessing browser profiles
- Enterprise password management tools
level: high
tags:
- attack.credential_access
- attack.t1555.003
- attack.t1539
---
title: Fake AI Assistant Installer Persistence via Registry Run Key
id: 7f3a2c1e-9d44-4b2a-a1c8-otxai00003
status: experimental
description: Detects persistence establishment via Run keys using AI-assistant-themed value names, consistent with trojanized AI platform installer behavior described in OTX reporting.
author: Security Arsenal Threat Intelligence
date: 2026/09/22
logsource:
category: registry_set
product: windows
detection:
selection_key:
TargetObject|contains:
- '\CurrentVersion\Run'
- '\CurrentVersion\RunOnce'
selection_names:
Details|contains:
- 'AIAssistant'
- 'ClaudeApp'
- 'Claude Desktop'
- 'AIUpdater'
- 'AssistantUpdater'
condition: selection_key and selection_names
falsepositives:
- Legitimate AI desktop applications installed from verified vendor sources — validate signer and install path
level: high
tags:
- attack.persistence
- attack.t1060
- attack.t1547.001
// Hunt: AI-platform impersonation infrastructure + credential store access
// OTX pulse: claude.ai.download-app.us campaign (2026-09-22)
let maliciousDomains = dynamic(["download-app.us", "polse.us", "claude.ai.download-app.us"]);
let lookalikePattern = @"(openai|claude|anthropic|chatgpt|gemini|copilot)[.-]?(ai|app|desktop)?\.[a-z0-9-]+\.(us|top|xyz|shop|online|click|app)$";
let DnsHits = DeviceNetworkEvents
| where TimeGenerated > ago(90d)
| where RemoteUrl has_any (maliciousDomains)
or (RemoteUrl matches regex lookalikePattern and RemoteUrl !has "anthropic.com" and RemoteUrl !has "openai.com" and RemoteUrl !has "microsoft.com" and RemoteUrl !has "google.com")
| summarize FirstSeen=min(TimeGenerated), LastSeen=max(TimeGenerated), Connections=count(), RemoteIPs=make_set(RemoteIP), InitiatingProcesses=make_set(InitiatingProcessFileName)
by DeviceName, RemoteUrl, InitiatingProcessAccountName
| project DeviceName, RemoteUrl, FirstSeen, LastSeen, Connections, RemoteIPs, InitiatingProcesses, InitiatingProcessAccountName;
let CredStoreAccess = DeviceFileEvents
| where TimeGenerated > ago(30d)
| where FolderPath has_any (@"\Login Data", @"\Web Data") or FileName in~ ("logins.json", "key4.db")
| where FolderPath has_any (@"\Chrome\User Data\", @"\Edge\User Data\", @"\Brave-Browser\", @"\Mozilla\Firefox\")
| where InitiatingProcessFileName !in~ ("chrome.exe", "msedge.exe", "firefox.exe", "brave.exe", "MsMpEng.exe")
| summarize FirstSeen=min(TimeGenerated), FilesAccessed=make_set(FileName) by DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine;
DnsHits
| union (CredStoreAccess | extend RemoteUrl="", FirstSeen=FirstSeen, LastSeen=FirstSeen, Connections=0, RemoteIPs=dynamic([]), InitiatingProcesses=InitiatingProcessFileName, InitiatingProcessAccountName="", InitiatingProcessCommandLine=strcat(InitiatingProcessFileName, " ", InitiatingProcessCommandLine))
| sort by FirstSeen asc
# Security Arsenal - AI Impersonation Campaign IOC Hunt
# OTX Pulse: claude.ai.download-app.us (2026-09-22)
# Run as admin across fleet via RMM/Intune/SCCM or locally for triage
$ErrorActionPreference = 'SilentlyContinue'
$report = @()
Write-Host "[*] 1/4 Checking DNS cache for malicious AI-impersonation domains..." -ForegroundColor Cyan
$badDomains = @('download-app.us','polse.us','claude.ai.download-app.us')
$dnsCache = Get-DnsClientCache | Where-Object {
$entry = $_.Entry
$badDomains | Where-Object { $entry -like "*$_*" }
}
foreach ($hit in $dnsCache) {
$report += [PSCustomObject]@{Check='DNSCache'; Finding=$hit.Entry; Detail="Data: $($hit.Data)"; Severity='CRITICAL'}
}
Write-Host "[*] 2/4 Sweeping Run keys for AI-assistant persistence..." -ForegroundColor Cyan
$runPaths = @(
'HKCU:\Software\Microsoft\Windows\CurrentVersion\Run',
'HKCU:\Software\Microsoft\Windows\CurrentVersion\RunOnce',
'HKLM:\Software\Microsoft\Windows\CurrentVersion\Run',
'HKLM:\Software\Microsoft\Windows\CurrentVersion\RunOnce'
)
foreach ($path in $runPaths) {
$props = Get-ItemProperty -Path $path
if ($props) {
$props.PSObject.Properties | Where-Object {
$_.Name -match 'AI|Claude|Assistant|Updater' -and $_.Name -notmatch '^PS'
} | ForEach-Object {
# Flag if binary is unsigned or in a user-writable path
$bin = ($_.Value -split ' ')[0] -replace '"',''
$suspicious = ($_.Value -match 'AppData|Temp|Public') -or
((Test-Path $bin) -and -not (Get-AuthenticodeSignature $bin).SignerCertificate)
if ($suspicious) {
$report += [PSCustomObject]@{Check='RunKey'; Finding="$path\$($_.Name)"; Detail=$_.Value; Severity='HIGH'}
}
}
}
}
Write-Host "[*] 3/4 Checking scheduled tasks for masquerading updater jobs..." -ForegroundColor Cyan
Get-ScheduledTask | Where-Object {
$_.TaskName -match 'AI|Claude|Assistant' -and
($_.Actions.Execute -match 'AppData|Temp|Public')
} | ForEach-Object {
$report += [PSCustomObject]@{Check='ScheduledTask'; Finding=$_.TaskName; Detail=$_.Actions.Execute; Severity='HIGH'}
}
Write-Host "[*] 4/4 Auditing active connections to known C2 infrastructure..." -ForegroundColor Cyan
$connections = Get-NetTCPConnection -State Established |
Where-Object { $_.RemotePort -in 443,8443,80 } |
ForEach-Object {
$proc = Get-Process -Id $_.OwningProcess
[PSCustomObject]@{
Check='NetConn'
Finding="$($proc.ProcessName) (PID $($_.OwningProcess)) -> $($_.RemoteAddress):$($_.RemotePort)"
Detail=$proc.Path
Severity= if ($proc.Path -match 'AppData|Temp|Public') {'HIGH'} else {'INFO'}
}
}
$report += $connections | Where-Object { $_.Severity -eq 'HIGH' }
Write-Host "`n===== HUNT RESULTS =====" -ForegroundColor Yellow
if ($report.Count -eq 0) {
Write-Host "[+] No indicators of the AI-impersonation campaign found on this host." -ForegroundColor Green
} else {
$report | Sort-Object Severity | Format-Table -AutoSize
$report | Export-Csv -Path "$env:TEMP\ai_impersonation_hunt_$(Get-Date -Format 'yyyyMMdd_HHmm').csv" -NoTypeInformation
Write-Host "[!] $($report.Count) findings exported to $env:TEMP" -ForegroundColor Red
}
Response Priorities
Immediate (0–4 hours):
- Sinkhole
download-app.us,polse.us, andclaude.ai.download-app.usat the DNS resolver; add to SWG/proxy block lists - Retrohunt 90 days of DNS, proxy, and TLS SNI logs for all three indicators — any hit is a confirmed compromise requiring host isolation
- Deploy the Sigma DNS rule fleet-wide; the
claude.ai.download-app.ushostname has zero legitimate use — treat every hit as critical
24 hours:
- For any host that resolved or connected to the IOCs: assume full credential compromise. Force password resets for all accounts used on the host, revoke active sessions and OAuth tokens, and rotate any API keys stored on the endpoint (AI platform keys, AWS, npm/PyPI, SSH)
- Because this campaign targets session cookies, revoke IdP sessions (Entra ID / Okta) rather than relying on password resets alone — cookie theft defeats password-only remediation
- Check dark web credential marketplaces and your threat intel feeds for corporate domains appearing in fresh stealer logs
1 week:
- Publish an internal advisory warning staff that AI desktop apps should only be installed from verified vendor sources (anthropic.com, official app stores) — no legitimate Claude desktop client is distributed from third-party domains
- Deploy browser credential-store access detection (Sigma rule #2 / KQL query) as standing telemetry, not just for this campaign
- Evaluate application control (WDAC/AppLocker) to block unsigned executables launching from
AppDataandTemp— the standard execution path for these fake installers - Register or monitor lookalike domains of your own brand and the AI vendors your org uses (dnstwist + Certificate Transparency log monitoring) to catch the next impersonation wave before your users do
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.