Threat actors are packaging malicious loaders and cryptocurrency miners as desktop clients for Anthropic Claude and OpenAI ChatGPT under a campaign tracked as Yoba. The lure is simple and effective: convincing GitHub repositories advertise AI desktop tools with names such as GPT-5.6 Sol, GPT-6 Astra, and Claude Opus, then deliver a malicious software family instead of a legitimate client. The risk is not a novel memory corruption bug or a single vendor patch gap; it is trusted distribution mechanics being weaponized. Users want AI tooling, attackers supply a polished impostor, and the endpoint inherits a loader, miner, persistence, and potentially follow-on credential theft.
No CVE is identified in the reporting for this campaign, and defenders should not wait for one. This is an execution-and-trust failure: social engineering, repository impersonation, signed or otherwise plausible executables, and miner traffic blended into normal endpoint noise. Treat this as an active intrusion vector against developer workstations, enthusiast power users, and any employee permitted to install desktop AI utilities outside of software approval workflows.
Technical Analysis
Affected products and platforms: The reported lures impersonate desktop applications for OpenAI ChatGPT and Anthropic Claude. The campaign uses fake GitHub projects and product names including GPT-5.6 Sol, GPT-6 Astra, and Claude Opus. Based on the described loader and miner delivery model, Windows endpoints are the highest-value target because desktop AI utilities, code signing, GitHub distribution, scheduled tasks, Run keys, and miner payloads are most commonly operationalized there. macOS and Linux users are not immune to repository impersonation, but the detections below prioritize Windows telemetry where signed-executable abuse and miner persistence are most observable.
Attack chain from a defender perspective:
- Repository lure: A fake GitHub project presents a compelling AI desktop client, often with release binaries, screenshots, and version names that imply newer-than-real models.
- Installer or loader execution: The user runs an executable that may be signed or packed to resemble a legitimate application. Signature presence must not be treated as maliciousness or safety by itself; validate publisher identity, certificate subject, timestamping, reputation, and distribution channel.
- Staging: The loader writes payloads to user-writable locations such as AppData, Temp, ProgramData, or a directory themed around the fake product name.
- Persistence: Expect scheduled tasks, Run or RunOnce keys, startup folder entries, services, or WMI subscriptions using names that mimic Claude, OpenAI, ChatGPT, GPT, Astra, Sol, or Opus.
- Miner execution: The payload launches a miner or miner-like child process with command-line pools, wallet or worker strings, CPU or GPU limits, and network beacons to mining infrastructure.
- Monetization and expansion: Crypto mining provides immediate revenue while loaders can retain access for second-stage theft, proxying, or additional malware.
Exploitation status: The activity is described as an active campaign using fake projects and malicious deliveries, not a theoretical proof of concept. There is no CISA KEV entry or CVE in the source summary. The practical exposure is user-assisted execution and weak control over unapproved software sources.
Defensive priority: Do not over-rotate on whether the binary is signed. A valid signature answers only who controlled a certificate at signing time, not whether the repository is authentic, the release was expected, or the behavior is appropriate. Your control plane should be application allowlisting, browser and download governance, EDR behavioral analytics, DNS and egress mining detection, and rapid triage of AI-themed executables appearing outside sanctioned software catalogs.
Detection and Response
The strongest signals are contextual: AI-branded binaries from non-official publishers, unexpected child processes from a desktop app, user-profile staging, persistence with AI naming, and outbound connections to mining protocols or pool ports. Tune aggressively around approved software paths and known developer tools.
---
title: Fake AI Desktop App Loader Spawning Scripting or Mining Payloads
id: 8f2c1f6a-7b5d-4c9e-a2d1-6e4f9b1a2c30
status: experimental
description: Detects executables themed as ChatGPT, Claude, GPT, Astra, Sol, or Opus launching command interpreters, script hosts, or miner-like command lines consistent with the Yoba fake AI app campaign.
references:
- https://thehackernews.com/2026/10/fake-chatgpt-and-claude-apps-abuse.html
- https://attack.mitre.org/techniques/T1036/
- https://attack.mitre.org/techniques/T1059/
- https://attack.mitre.org/techniques/T1496/
author: Security Arsenal
date: 2026/10/31
tags:
- attack.execution
- attack.resource_hijacking
- attack.t1036
- attack.t1496
logsource:
category: process_creation
product: windows
detection:
selection_parent:
ParentImage|endswith:
- 'gpt-5.6 sol.exe'
- 'gpt-6 astra.exe'
- 'claude opus.exe'
- 'chatgpt.exe'
- 'claude.exe'
- 'openai.exe'
CommandLine|contains:
- 'gpt-5.6 sol'
- 'gpt-6 astra'
- 'claude opus'
selection_child:
Image|endswith:
- 'cmd.exe'
- 'powershell.exe'
- 'pwsh.exe'
- 'wscript.exe'
- 'cscript.exe'
- 'rundll32.exe'
- 'regsvr32.exe'
- 'mshta.exe'
- 'xmrig.exe'
condition: selection_parent and selection_child
falsepositives:
- Official AI desktop applications updating or launching diagnostics. Validate publisher, source URL, package hash, and enterprise software inventory before suppression.
level: high
---
title: Outbound Stratum Mining Traffic From Non-Browser Processes
id: 3b9d7e21-4a68-4d2f-9c10-7e8a5b6d1f42
status: experimental
description: Detects likely cryptocurrency miner egress by flagging non-browser processes connecting to common stratum ports or emitting stratum protocol markers.
references:
- https://thehackernews.com/2026/10/fake-chatgpt-and-claude-apps-abuse.html
- https://attack.mitre.org/techniques/T1496/
author: Security Arsenal
date: 2026/10/31
tags:
- attack.resource_hijacking
- attack.command_and_control
- attack.t1496
logsource:
category: network_connection
product: windows
detection:
selection_port:
DestinationPort:
- 3333
- 4444
- 5555
- 7777
- 8888
- 14444
- 45700
selection_process:
Image|endswith:
- 'xmrig.exe'
- 'claude opus.exe'
- 'gpt-6 astra.exe'
- 'gpt-5.6 sol.exe'
- 'powershell.exe'
- 'rundll32.exe'
- 'notepad.exe'
filter_browsers:
Image|endswith:
- 'chrome.exe'
- 'msedge.exe'
- 'firefox.exe'
condition: selection_port and selection_process and not filter_browsers
falsepositives:
- Approved research mining, blockchain development, or sanctioned pool connectivity. In most enterprises these destinations should be rare and easy to baseline.
level: high
let Lookback = 14d;
let FakeAINames = dynamic(['gpt-5.6 sol','gpt-6 astra','claude opus','chatgpt','claude','openai','astra','opus']);
let MinerTerms = dynamic(['stratum+tcp','stratum+ssl','xmrig','--donate-level','--coin','--algo','-o pool','worker','wallet']);
DeviceProcessEvents
| where TimeGenerated >= Lookback
| extend ProcLower = tolower(FileName), CmdLower = tolower(ProcessCommandLine), FolderLower = tolower(FolderPath)
| where ProcLower has_any (FakeAINames) or CmdLower has_any (FakeAINames) or CmdLower has_any (MinerTerms) or FolderLower has_any (dynamic(['appdata','temp','programdata']))
| project TimeGenerated, DeviceName, AccountName, FileName, FolderPath, ProcessCommandLine, InitiatingProcessFileName, InitiatingProcessCommandLine, SHA256, ProcessVersionInfoCompanyName, ProcessVersionInfoProductName
| join kind=leftouter (
DeviceNetworkEvents
| where TimeGenerated >= Lookback
| where RemotePort in (3333,4444,5555,7777,8888,14444,45700) or RemoteUrl has_any (MinerTerms)
| project TimeGenerated, DeviceName, InitiatingProcessFileName, RemoteUrl, RemoteIP, RemotePort
) on DeviceName, $left.FileName == $right.InitiatingProcessFileName
| sort by TimeGenerated desc;
-- Yoba fake AI app endpoint sweep: suspicious AI-themed processes, user-profile staging, and miner egress
SELECT Pid, Ppid, Name, CommandLine, Exe, Username, CreateTime
FROM pslist()
WHERE CommandLine =~ '(?i)(gpt-5\.6 sol|gpt-6 astra|claude opus|stratum\+tcp|stratum\+ssl|xmrig|--donate-level|--algo|worker|wallet)'
OR Name =~ '(?i)(gpt|astra|opus|claude|chatgpt|xmrig)'
OR Exe =~ '(?i)(appdata|temp|programdata)'
-- Persistence and dropped artifacts in common user-writable locations
SELECT FullPath, Size, Mtime, Atime, Ctime
FROM glob(globs=['C:/Users/*/AppData/Roaming/*/*gpt*', 'C:/Users/*/AppData/Roaming/*/*claude*', 'C:/Users/*/AppData/Local/*/*astra*', 'C:/ProgramData/*/*opus*', 'C:/Users/*/Downloads/*GPT*', 'C:/Users/*/Downloads/*Claude*'])
WHERE FullPath =~ '(?i)(gpt-5\.6|gpt-6|astra|opus|claude|chatgpt|xmrig|miner)'
-- Current mining-style connections
SELECT Pid, Name, LocalAddr, LocalPort, RemoteAddr, RemotePort, Status
FROM netstat()
WHERE RemotePort in (3333, 4444, 5555, 7777, 8888, 14444, 45700)
AND NOT Name =~ '(?i)(chrome|msedge|firefox|Teams|slack)'
# Audit-first triage for Yoba-style fake AI app loaders and miners. Review output before removal.
$ErrorActionPreference = 'SilentlyContinue'
$terms = 'gpt-5.6 sol|gpt-6 astra|claude opus|chatgpt|claude|openai|astra|opus|xmrig|stratum'
$report = Join-Path $env:ProgramData 'Yoba_Triage_' + (Get-Date -Format 'yyyyMMdd_HHmmss') + '.txt'
"=== Processes ===" | Out-File $report
Get-CimInstance Win32_Process | Where-Object { $_.Name -match $terms -or $_.CommandLine -match $terms -or $_.ExecutablePath -match 'AppData|Temp|ProgramData' } | Select-Object ProcessId,ParentProcessId,Name,ExecutablePath,CommandLine | Format-List | Out-File $report -Append
"=== Run Keys ===" | Out-File $report -Append
Get-ItemProperty 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Run','HKCU:\Software\Microsoft\Windows\CurrentVersion\RunOnce','HKLM:\Software\Microsoft\Windows\CurrentVersion\Run','HKLM:\Software\Microsoft\Windows\CurrentVersion\RunOnce' | Out-String | Select-String -Pattern $terms | Out-File $report -Append
"=== Scheduled Tasks ===" | Out-File $report -Append
Get-ScheduledTask | Where-Object { $_.TaskName -match $terms -or $_.Actions.Execute -match $terms -or $_.Actions.Arguments -match $terms } | Select-Object TaskName,TaskPath,State,@{n='Action';e={($_.Actions.Execute + ' ' + $_.Actions.Arguments)}} | Format-List | Out-File $report -Append
"=== Network Ports ===" | Out-File $report -Append
Get-NetTCPConnection -State Established | Where-Object { $_.RemotePort -in 3333,4444,5555,7777,8888,14444,45700 } | Select-Object LocalAddress,LocalPort,RemoteAddress,RemotePort,OwningProcess,@{n='Process';e={(Get-Process -Id $_.OwningProcess).ProcessName}} | Format-Table | Out-File $report -Append
"=== Egress Blocks for Common Stratum Ports ===" | Out-File $report -Append
New-NetFirewallRule -DisplayName 'SECARSENAL Block Outbound Stratum TCP' -Direction Outbound -Protocol TCP -RemotePort 3333,4444,5555,7777,8888,14444,45700 -Action Block -Profile Any | Out-File $report -Append
"Report written to $report. Validate publisher, hash, source repository, and business need before deleting files or disabling tasks."
Remediation
Immediate containment: Isolate affected endpoints from the network, preserve volatile memory if credential theft is suspected, and capture process trees, prefetch, amcache or shimcache where available, scheduled tasks, Run keys, services, browser download history, and GitHub URLs used for installation. Do not rely on delete-and-reimage until persistence and any secondary payloads are understood.
Remove the lure and the payload: Quarantine executables and archives named or themed as GPT-5.6 Sol, GPT-6 Astra, Claude Opus, ChatGPT desktop, Claude desktop, miner builds, or similar release assets obtained from unverified repositories. Remove matching scheduled tasks, Run or RunOnce entries, startup folder shortcuts, services, and WMI subscriptions only after collection. Reset credentials used on the host if the loader ran with user context, especially browser-stored tokens, GitHub tokens, SSH keys, cloud CLI credentials, and AI service API keys.
Prevent recurrence: Enforce application control through WDAC, AppLocker, or an equivalent allowlist so user-profile executables and unapproved release binaries cannot run. Route software acquisition through a managed catalog and require official vendor distribution paths for AI clients. Add DNS and egress controls for stratum protocols and known pool ports; block outbound TCP 3333, 4444, 5555, 7777, 8888, 14444, and 45700 unless a documented business exception exists. Alert on certificate and publisher anomalies: unexpected signer names, mismatched product metadata, newly seen code-signing certificates, and binaries whose internal product name does not match the displayed AI brand.
Vendor and source verification: There is no patch and no CVE deadline in the source item. The remediation is distribution hygiene: confirm the official OpenAI and Anthropic channels before install, verify GitHub organization ownership rather than repository name alone, pin approved hashes and signatures into your software catalog, and treat star counts, release notes, and screenshots as copyable marketing artifacts rather than proof of legitimacy. Where employees need local AI tooling, provide a sanctioned package so shadow installs are less attractive.
Validation after cleanup: Re-run endpoint hunts for 7 to 14 days, watch for re-created persistence, confirm no stratum egress remains, review Defender or EDR tamper events around the execution window, and check proxy and DNS logs for other users visiting the same fake release pages. Close the loop with a targeted awareness note: AI desktop clients are now a malware delivery theme, and GitHub popularity is not an approval mechanism.
Related Resources
Security Arsenal Penetration Testing Services AlertMonitor Platform Book a SOC Assessment vulnerability-management Intel Hub
Is your security operations ready?
Get a free SOC assessment or see how AlertMonitor cuts through alert noise with automated triage.