Back to Intelligence

Operation ASTERIX: Detecting the AI-Built Crypto Fraud Pipeline — Fake Wallets, Vishing Panels, and Telegram Exfiltration

SA
Security Arsenal Team
August 17, 2026
13 min read

Rapid7's Operation ASTERIX investigation is one of the more instructive disclosures of 2025-2026 — not because the tradecraft is exotic, but because of how ordinary it has become. Researchers stumbled onto an exposed web directory sitting on infrastructure supporting a cryptocurrency fraud operation, and what they found inside was essentially a turnkey fraud factory: raw phone-number datasets, account-validation tooling, enriched lead records, social engineering panels, voice-dialing (vishing) scripts, fake cryptocurrency wallet applications, persistence mechanisms, and Telegram-based exfiltration code.

Two details should get every defender's attention. First, this operation blended voice phishing (vishing) with malicious software delivery — victims are worked over the phone by operators using enriched lead data, then walked into installing a fake wallet app that drains them. Second, the recovered prompts, shell history, and project files show the operator leaned on AI coding assistants throughout the entire development lifecycle: packaging Electron applications, obfuscating code, troubleshooting builds, modifying the social engineering panels, and preparing the malware for distribution. When one model began refusing parts of the workflow, the operator simply routed around it.

That second point is the strategic shift. AI assistance has collapsed the skill barrier for mid-tier fraud actors. The output isn't more sophisticated malware — it's more malware, shipped faster, by operators who couldn't have built it alone two years ago. Your detection strategy cannot depend on spotting elite tradecraft. It has to catch commodity-grade malicious Electron apps, Telegram API exfiltration, and vishing-driven social engineering at scale. This post breaks down the pipeline and gives you concrete hunts for each stage.

Technical Analysis

Pipeline Anatomy

Operation ASTERIX is best understood as an assembly line with four stages, each of which leaves distinct telemetry:

Stage 1 — Lead generation and enrichment. The exposed directory contained raw phone-number datasets and account-validation tools, plus enriched lead records. This is the targeting layer: the operator validates which numbers are live, enriches them (likely with breached data, exchange account indicators, or prior scam engagement history), and feeds qualified leads to the calling operation. This stage lives almost entirely on the attacker's infrastructure — your defensive leverage here is user awareness and telecom-layer controls, not endpoint detection.

Stage 2 — Vishing via social engineering panels and dialer scripts. The infrastructure hosted web-based social engineering panels and voice-dialing scripts. These panels typically give the caller a real-time script flow, spoofed caller ID, and a dashboard to capture what the victim reads back — including, critically, one-time passcodes and wallet seed phrases. The caller poses as exchange support, wallet support, or 'fraud prevention' and manufactures urgency: your account is compromised, we need to verify you, install this 'security update' or 'official wallet' to secure your funds.

Stage 3 — Fake wallet delivery via trojanized Electron applications. This is where the operation crosses from pure social engineering into malware. The operator used AI assistance to package and troubleshoot Electron applications impersonating legitimate cryptocurrency wallets. Electron is a gift for fraud actors: it's a legitimate framework (Chromium + Node.js), the apps are large and noisy which frustrates signature-based AV, they run cross-platform (Windows, macOS, Linux), and the malicious logic lives in JavaScript inside an app.asar archive that many security tools never inspect. Recovered artifacts also showed AI being used to obfuscate code — typically packed/encoded JavaScript inside the ASAR, string encryption, and junk code insertion to defeat static detection.

Stage 4 — Persistence and exfiltration. The directory contained persistence mechanisms (on Windows, expect Run keys, scheduled tasks, or Startup folder entries for the fake wallet; on macOS, LaunchAgents) and Telegram exfiltration code. Telegram's Bot API (api.telegram.org/bot<token>/sendMessage, sendDocument) remains the workhorse of commodity exfiltration: it's TLS-encrypted to a legitimate, widely-used domain, blends into normal traffic, requires no attacker-operated C2 infrastructure, and gives the operator instant mobile notifications when a victim's seed phrase or credentials land.

The AI-Assisted Development Angle

The recovered shell history and prompts matter for defenders in one specific way: they tell you the operator's skill floor. An actor asking an AI to 'package my Electron app for Windows distribution' and 'obfuscate this JavaScript' is going to produce artifacts with commodity fingerprints — default Electron builder metadata, unsigned or self-signed binaries, stock electron-builder/electron-packager output directory structures, ASAR archives with default packing, and copy-paste Telegram bot code with hardcoded tokens and chat IDs. These are all detectable. AI raised this actor's ceiling, but the floor — operational hygiene, code signing, infrastructure discipline — stayed low, which is why an exposed directory full of their entire operation was sitting there to be found.

Exploitation Status

This is not a vulnerability-driven campaign — there is no CVE, no exploit chain, no patch. Initial access is purely social: the phone call is the exploit. Rapid7's disclosure confirms this tooling was operational and in active use supporting a live fraud pipeline, with the exposed directory discovered on live infrastructure. Treat this as confirmed in-the-wild criminal activity targeting cryptocurrency holders, with the understanding that the same toolkit pattern (vishing + fake Electron wallet + Telegram exfil) is reused across dozens of unrelated fraud crews in 2025-2026.

What Defenders Are Actually Up Against

StageTarget SurfacePrimary Telemetry
Lead enrichment / vishingHumans, telecomCall reporting, helpdesk tickets, HR/awareness channels
Fake wallet installWindows/macOS endpointsProcess creation, installer telemetry, code-signing metadata
PersistenceEndpoint registry/launchdAutoruns, scheduled tasks, LaunchAgents
ExfiltrationNetwork egressTLS to api.telegram.org, DNS, proxy logs

Detection & Response

The following detections target the observable behaviors of this pipeline: unsigned Electron apps executing from user-writable paths, persistence registrations masquerading as wallet software, and egress to the Telegram Bot API from non-Telegram processes. Each is scoped to keep false positives manageable in real environments.

YAML
---
title: Unsigned Electron Application Executing from User-Writable Path
id: 3f7c2a91-8b4e-4d5a-9c1f-6e8b2a4d7f01
status: experimental
description: Detects execution of Electron-based applications (large unsigned binaries with Electron characteristics) launched from user-writable directories such as Downloads, AppData\Local\Temp, or user Desktop — consistent with fake cryptocurrency wallet droppers observed in Operation ASTERIX-style fraud pipelines.
references:
  - https://www.rapid7.com/blog/post/tr-operation-asterix-crypto-fraud-vishing-phishing
  - https://attack.mitre.org/techniques/T1204/002/
author: Security Arsenal
date: 2026/01/15
tags:
  - attack.execution
  - attack.t1204.002
logsource:
  category: process_creation
  product: windows
detection:
  selection_paths:
    Image|contains:
      - '\Downloads\'
      - '\AppData\Local\Temp\'
      - '\AppData\Roaming\'
      - '\Desktop\'
  selection_wallet_lure:
    Image|contains:
      - 'wallet'
      - 'ledger'
      - 'trezor'
      - 'metamask'
      - 'exodus'
      - 'coinbase'
      - 'binance'
      - 'crypto'
  filter_known_good:
    Image|contains:
      - '\AppData\Local\Microsoft\'
      - '\AppData\Local\Programs\Signal\'
      - '\AppData\Local\Programs\Microsoft VS Code\'
      - '\AppData\Roaming\Telegram Desktop\'
  condition: selection_paths and selection_wallet_lure and not filter_known_good
falsepositives:
  - Legitimate community wallet software installed per-user — verify code signing certificate and vendor hash before dismissal
level: high
---
title: Persistence Registration Masquerading as Cryptocurrency Wallet Software
id: 8a1e4b62-3c7d-4f2a-b5e9-1d6c8a3f5b92
status: experimental
description: Detects registry Run key persistence entries whose value names or target paths reference cryptocurrency wallet branding, consistent with fake wallet persistence mechanisms recovered from Operation ASTERIX infrastructure.
references:
  - https://www.rapid7.com/blog/post/tr-operation-asterix-crypto-fraud-vishing-phishing
  - https://attack.mitre.org/techniques/T1547/001/
author: Security Arsenal
date: 2026/01/15
tags:
  - attack.persistence
  - attack.privilege_escalation
  - attack.t1547.001
logsource:
  category: registry_set
  product: windows
detection:
  selection_key:
    TargetObject|contains:
      - '\CurrentVersion\Run\'
      - '\CurrentVersion\RunOnce\'
  selection_lure:
    TargetObject|contains:
      - 'wallet'
      - 'ledger'
      - 'trezor'
      - 'metamask'
      - 'exodus'
      - 'coinbase'
      - 'binance'
      - 'blockchain'
      - 'crypto'
  condition: selection_key and selection_lure
falsepositives:
  - Legitimate wallet auto-update entries — validate signer and install source; genuine vendors sign their binaries and document their autostart entries
level: high
---
title: Non-Telegram Process Connecting to Telegram Bot API
id: 5c9d3f47-2a8b-4e6c-91d4-7b2e5f8a1c63
status: experimental
description: Detects outbound HTTPS connections to the Telegram Bot API endpoint (api.telegram.org) initiated by processes other than the legitimate Telegram client — a strong indicator of commodity exfiltration code with hardcoded bot tokens, as recovered from Operation ASTERIX.
references:
  - https://www.rapid7.com/blog/post/tr-operation-asterix-crypto-fraud-vishing-phishing
  - https://attack.mitre.org/techniques/T1567/002/
author: Security Arsenal
date: 2026/01/15
tags:
  - attack.exfiltration
  - attack.t1567.002
  - attack.t1102
logsource:
  category: network_connection
  product: windows
detection:
  selection:
    DestinationHostname: 'api.telegram.org'
  filter_client:
    Image|contains:
      - '\Telegram Desktop\'
      - '\Telegram.exe'
  condition: selection and not filter_client
falsepositives:
  - Legitimate IT automation or monitoring scripts using Telegram bots for alerting — inventory and allowlist known internal bot integrations by process path
level: high
KQL — Microsoft Sentinel / Defender
// Hunt: Operation ASTERIX-style fake wallet + Telegram exfiltration
// Part 1: Processes with crypto-wallet lures launched from user-writable paths,
//         correlated with subsequent Telegram API egress within 30 minutes.
let lureProcs = DeviceProcessEvents
| where TimeGenerated > ago(7d)
| where FileName has_any ("wallet", "ledger", "trezor", "metamask", "exodus", "coinbase", "binance", "crypto")
| where FolderPath has_any ("\\Downloads\\", "\\AppData\\Local\\Temp\\", "\\Desktop\\", "\\AppData\\Roaming\\")
| where not(FolderPath has_any ("Telegram Desktop", "Microsoft VS Code", "\\AppData\\Local\\Microsoft\\"))
| project WalletTime=TimeGenerated, DeviceName, DeviceId, FileName, FolderPath, SHA256, ProcessCommandLine, InitiatingProcessAccountName;
let tgEgress = DeviceNetworkEvents
| where TimeGenerated > ago(7d)
| where RemoteUrl == "api.telegram.org"
| where not(InitiatingProcessFolderPath has "Telegram Desktop")
| project TgTime=TimeGenerated, DeviceName, DeviceId, InitiatingProcessFileName, InitiatingProcessFolderPath, InitiatingProcessCommandLine, RemoteUrl, RemoteIP;
lureProcs
| join kind=inner tgEgress on DeviceId
| where TgTime between (WalletTime .. WalletTime + 30m)
| project WalletTime, TgTime, DeviceName, FileName, FolderPath, SHA256, ProcessCommandLine,
          InitiatingProcessFileName, InitiatingProcessCommandLine, RemoteUrl, RemoteIP, InitiatingProcessAccountName
| order by WalletTime desc;
// Part 2 (standalone): Sentinel Syslog/CEF view for egress to Telegram Bot API from Linux/macOS hosts
// CommonSecurityLog
// | where TimeGenerated > ago(7d)
// | where DestinationHostName == "api.telegram.org"
// | summarize ConnectionCount=count(), FirstSeen=min(TimeGenerated), LastSeen=max(TimeGenerated)
//     by SourceHostName, SourceProcessName, DestinationIP
// | order by ConnectionCount desc;
VQL — Velociraptor
-- Operation ASTERIX hunt artifact: fake Electron wallets + Telegram exfil
-- 1) Running processes with wallet-lure names executing from user-writable paths
SELECT Pid, Name, Exe, CommandLine, Username, CreateTime
FROM pslist()
WHERE (Exe =~ '(?i)(wallet|ledger|trezor|metamask|exodus|coinbase|binance|crypto)')
  AND (Exe =~ '(?i)(Downloads|AppData\\\\Local\\\\Temp|Desktop|AppData\\\\Roaming)')
  AND NOT (Exe =~ '(?i)(Telegram Desktop|VS Code|AppData\\\\Local\\\\Microsoft)')

-- 2) Unsigned executables dropped in per-user locations (Electron payloads are
--    frequently unsigned or self-signed); enrich with Authenticode outside VQL
SELECT FullPath, Size, Mtime, Ctime
FROM glob(globs=['C:/Users/*/Downloads/*.exe',
                 'C:/Users/*/AppData/Local/Temp/*.exe',
                 'C:/Users/*/Desktop/*.exe'])
WHERE FullPath =~ '(?i)(wallet|ledger|trezor|metamask|exodus|coinbase|binance|crypto|setup|update)'
  AND Mtime > now() - 604800

-- 3) Established outbound connections to Telegram API infrastructure (149.154.160.0/20, 91.108.4.0/22)
SELECT Pid, Name, Status, Family, Laddr, Lport, Raddr, Rport
FROM netstat()
WHERE Status =~ 'ESTAB'
  AND (Raddr =~ '^(149\\.154\\.|91\\.108\\.)')
  AND NOT (Name =~ '(?i)telegram')

-- 4) Run-key persistence entries referencing wallet branding
SELECT Name, FullPath AS KeyPath, { SELECT StringValue FROM stat(filename=FullPath) } AS Value
FROM glob(globs=['HKEY_USERS/*/Software/Microsoft/Windows/CurrentVersion/Run/*',
                 'HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Run/*'],
          accessor='registry')
WHERE Name =~ '(?i)(wallet|ledger|trezor|metamask|exodus|coinbase|binance|blockchain|crypto)'
PowerShell
# Operation ASTERIX endpoint audit — run elevated on suspected Windows endpoints
# 1) Enumerate wallet-branded persistence in Run/RunOnce keys (HKLM + HKCU + all user hives)
$lure = '(?i)(wallet|ledger|trezor|metamask|exodus|coinbase|binance|blockchain|crypto)'
$runPaths = @('HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run',
              'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce',
              'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run',
              'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce')
foreach ($p in $runPaths) {
  if (Test-Path $p) {
    Get-ItemProperty $p | ForEach-Object {
      $_.PSObject.Properties | Where-Object { $_.Name -match $lure -or $_.Value -match $lure } |
        ForEach-Object { [PSCustomObject]@{Key=$p; Name=$_.Name; Value=$_.Value} }
    }
  }
}

# 2) Find unsigned wallet-lure executables in user-writable paths (last 30 days)
$paths = @("$env:SystemDrive\Users\*\Downloads", "$env:SystemDrive\Users\*\Desktop",
           "$env:SystemDrive\Users\*\AppData\Local\Temp", "$env:SystemDrive\Users\*\AppData\Roaming")
Get-ChildItem -Path $paths -Recurse -Include *.exe -ErrorAction SilentlyContinue |
  Where-Object { $_.Name -match $lure -and $_.LastWriteTime -gt (Get-Date).AddDays(-30) } |
  ForEach-Object {
    $sig = Get-AuthenticodeSignature $_.FullName
    if ($sig.Status -ne 'Valid') {
      [PSCustomObject]@{Path=$_.FullName; SizeKB=[math]::Round($_.Length/1KB);
                        LastWrite=$_.LastWriteTime; SigStatus=$sig.Status;
                        SHA256=(Get-FileHash $_.FullName -Algorithm SHA256).Hash}
    }
  }

# 3) Audit scheduled tasks for wallet-lure names or user-path actions
Get-ScheduledTask | ForEach-Object {
  $t = $_
  $t.Actions | Where-Object { $_.Execute -match $lure -or $_.Execute -match '(?i)AppData|Downloads|Temp' } |
    ForEach-Object { [PSCustomObject]@{Task=$t.TaskName; State=$t.State; Action=$_.Execute; Args=$_.Arguments} }
}

# 4) Flag recent DNS cache hits for api.telegram.org on hosts that should not run Telegram
Get-DnsClientCache | Where-Object { $_.Entry -match 'api\.telegram\.org' } |
  Select-Object Entry, Data, TimeToLive

# 5) HARDENING: block Telegram Bot API egress via Windows Firewall (only on endpoints
#    where Telegram is not an approved business tool — validate against policy first)
# New-NetFirewallRule -DisplayName "Block Telegram Bot API Egress" -Direction Outbound `
#   -RemoteAddress @("149.154.160.0/20","91.108.4.0/22","91.108.56.0/22","95.161.64.0/20") `
#   -Protocol TCP -RemotePort 443 -Action Block -Profile Any

Remediation

Because Operation ASTERIX is a social-engineering-and-malware pipeline rather than a vulnerability, there is no patch. Remediation is layered: stop the call, stop the install, stop the persistence, stop the exfiltration.

1. Disrupt the vishing layer.

  • Publish a clear internal policy: no legitimate support organization will ever call and ask a user to install wallet software, read back a seed phrase, or share a one-time code. Say this explicitly in awareness training — vague 'be careful of phishing' messaging does not stop a live caller with a script and urgency.
  • Establish a reporting path for suspicious calls (not just emails) and treat vishing reports with the same triage priority as phish submissions. If one employee got the call, a list of your employees' numbers is in someone's dataset.
  • For organizations holding corporate crypto assets: enforce out-of-band verification for any wallet transaction or 'security action' requested by phone, chat, or email. No exceptions for urgency.

2. Block fake wallet installation.

  • Deploy application control (WDAC or AppLocker) to restrict execution of unsigned binaries from user-writable directories. Electron payloads die here — they are almost never signed by a legitimate CA-backed vendor certificate.
  • Use SmartScreen/reputation-based blocking and ensure your EDR flags unsigned Electron-packaged binaries. Consider alerting on any newly observed Electron application (large binary, resources/app.asar on disk) not present in your software inventory.
  • Maintain an allowlist of legitimate wallet applications for the small population with a business need, and block the category for everyone else.

3. Constrain persistence and exfiltration.

  • Alert on Run key, scheduled task, and LaunchAgent/LaunchDaemon registrations referencing crypto branding (rules above).
  • At the egress layer, restrict access to api.telegram.org and Telegram IP ranges (149.154.160.0/20, 91.108.4.0/22, 91.108.56.0/22) from endpoints with no approved Telegram use. Telegram is a business tool in some regions — scope blocks by policy, not blanket assumption. Where blocking is not possible, detect non-Telegram processes reaching the Bot API; the hardcoded-token pattern makes this a very high-fidelity signal.
  • Require TLS inspection or at minimum SNI/DNS logging on egress so Bot API calls from non-client processes are observable.

4. Prepare for the AI-accelerated volume problem.

  • Assume fraud crews can now iterate lures, repackage payloads, and rebrand fake wallets daily. Hash-based IOCs have a shelf life measured in hours. Anchor your detections on behavior (unsigned Electron execution, wallet-lure persistence, Bot API egress) rather than file hashes.
  • Track cryptocurrency fraud and vishing as a standing threat category in your threat-hunt program, not as a one-off investigation. The Operation ASTERIX write-up (linked below) is an excellent tabletop source: walk your SOC through 'what if this directory belonged to the crew that just called our CFO?'

5. If a user installed a suspected fake wallet.

  • Treat it as a full compromise of any credentials or seed phrases entered: rotate exchange credentials, revoke API keys, and move funds from any wallet whose seed phrase may have been exposed — immediately, and assume the operator is racing you.
  • Isolate the endpoint, capture triage artifacts (the VQL above is a starting point), and preserve the fake installer for analysis — the ASAR archive frequently contains the Telegram bot token and chat ID, which is attribution gold for takedown and law-enforcement referral.
  • Review the Rapid7 disclosure for current indicators: https://www.rapid7.com/blog/post/tr-operation-asterix-crypto-fraud-vishing-phishing

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.

Operation ASTERIX: Detecting the AI-Built Crypto Fraud Pipeline — Fake Wallets, Vishing Panels, and Telegram Exfiltration | Security Arsenal | Security Arsenal