Back to Intelligence

C2Looper Rust Backdoor, Operation QUICSILVER & ASTERIX: OTX Pulse Analysis — GitHub C2, QUIC Exfiltration & Crypto-Vishing Detection Pack

SA
Security Arsenal Team
August 18, 2026
10 min read

Classification: TLP:WHITE | Intelligence Category: Active Malware Campaigns & Criminal Tooling | Pulses Analyzed: 3


Threat Summary

Three concurrent OTX pulses paint a picture of a maturing criminal and espionage ecosystem that is converging on the same core technique: abusing legitimate, trusted infrastructure to hide command-and-control traffic and evade perimeter defenses.

C2Looper is a new Rust-based backdoor assessed with low-to-medium confidence to be delivered via multi-stage ClickFix social engineering chains — the same initial-access technique that has been tied to the Oyster/Lactrodectus loader ecosystem operated by initial access brokers (IABs). Its most notable feature is the use of GitHub as a C2 channel, meaning its traffic blends into developer-friendly egress that most organizations cannot block outright. Zscaler assesses it is likely operated by ransomware-affiliated actors, positioning C2Looper as a pre-ransomware staging implant: remote shell, host reconnaissance, and follow-on payload deployment.

Operation QUICSILVER is a China-nexus espionage campaign targeting Myanmar government personnel and diplomats. The infection chain begins with Burmese-language lures impersonating Myanmar's Information Technology and Cyber Security Department — including graduation ceremony invitations — delivering Virtual Hard Disk (VHD) files disguised as JPEG images. The payload, QUICAgent, is a Go-based backdoor that communicates over the QUIC protocol (UDP/443) through Cloudflare Workers, again hiding espionage traffic inside trusted cloud infrastructure.

Operation ASTERIX is not malware in the traditional sense but a full crypto-fraud pipeline exposed through an open directory on criminal infrastructure. The operator held datasets of roughly 885,000 phone numbers validated against cryptocurrency exchanges, account-enumeration tooling, phishing panels, voice-dialing scripts for vishing, and fake wallet applications impersonating Ledger, Trezor, and Exodus — Electron-based malware engineered for seed-phrase theft, with exfiltration via Telegram. The tooling shows hallmarks of AI-assisted development, including jailbreak-prompt artifacts.

Collective assessment: All three operations weaponize trust — trusted file types, trusted cloud platforms (GitHub, Cloudflare), and trusted brands (Ledger, Kraken, Trezor). Detection strategies must shift from blocking known-bad infrastructure to behavioral analytics on process execution, protocol anomalies, and cloud-service abuse.


Threat Actor / Malware Profile

C2Looper (Rust-based backdoor)

  • Distribution: Multi-stage ClickFix infection chains — victims are socially engineered into pasting malicious commands into Run/Terminal dialogs, launching downloader stages.
  • Payload behavior: Remote shell execution, system reconnaissance (host, user, network enumeration), and retrieval/deployment of additional payloads consistent with IAB pre-ransomware staging.
  • C2 communication: Leverages GitHub infrastructure as a dead-drop/command channel, making C2 traffic indistinguishable from legitimate developer activity at the domain level. Related infrastructure observed at 45.158.196.0/24.
  • Delivery technique: DLL sideloading is used to execute the payload under the cover of a legitimate signed binary.
  • Anti-analysis: Rust compilation produces large, symbol-heavy binaries that break many YARA signatures tuned for C/C++ malware and frustrate static disassembly; dynamic API resolution obscures imports.

QUICAgent (Go backdoor — Operation QUICSILVER)

  • Distribution: Spearphishing with Burmese-language lures (fake graduation invitations, IT department notices); VHD files masquerading as JPEG images. Mounting the VHD exposes the staged payload.
  • Payload behavior: Go-based backdoor providing remote tasking against government and diplomatic targets.
  • C2 communication: QUIC protocol (UDP/443) terminated at Cloudflare Workers — a double evasion: QUIC bypasses TCP-only inspection, and Cloudflare Workers provides reputable, hard-to-block egress.
  • Target profile: Myanmar diplomats and government entities; adjacent Technology sector targeting noted.

Operation ASTERIX tooling (crypto fraud pipeline)

  • Distribution: Vishing (voice phishing) using validated phone-number datasets (~885K numbers checked against exchanges such as Kraken), followed by phishing panels directing victims to fake wallet software.
  • Payload behavior: Electron-based fake Ledger/Trezor/Exodus wallet applications that harvest seed phrases and wallet credentials; exfiltration over Telegram bots/API.
  • Notable artifacts: Account-enumeration scripts, voice-dialing automation, and jailbreak-prompt remnants indicating AI-assisted code generation — lowering the skill barrier for the operators.

IOC Analysis

The indicator set across these pulses spans four types, each requiring different operational handling:

  • IPv4 (C2Looper): 45.158.196.184, 45.158.196.23 — bulletproof-hosted infrastructure in a /24 that should be treated as hostile in full. Block at the firewall/egress proxy and retro-hunt netflow and DNS resolution logs for the past 30–90 days.
  • Domains (ASTERIX): ledgerhelp.com — brand-impersonation phishing infrastructure. Block at DNS/web proxy; add to brand-monitoring watchlists. Expect lookalike rotation (e.g., ledger-, trezor- variants) — monitor DNS for fuzzy matches.
  • URLs (ASTERIX): http://136.0.213.184:1337/api/kraken-numio — an account-enumeration API endpoint. The non-standard port 1337 and path structure are themselves detectable patterns. Block the IP:port pair; alert on outbound connections to uncommon high ports on bare IPs.
  • File hashes (SHA256/SHA1/MD5 across all three pulses): Load into your EDR blocklist and threat intel platform (MISP, ThreatConnect, Sentinel TI). Note QUICSILVER hashes cover VHD containers and Go payloads; ASTERIX hashes cover Electron wallet installers — hunt for these in email gateways, download caches, and software-inventory telemetry.

Operational tooling: Decode and pivot with Maltego or the OTX DirectConnect API for infrastructure relationships; CyberChef for any base64/encoded C2 configs extracted from samples; Wireshark with QUIC dissection for UDP/443 analysis (QUICAgent); VT Enterprise / Hybrid Analysis for sandboxing the hash corpus. For GitHub-abuse C2, pivot on repository API paths in proxy logs rather than the domain itself.


Detection Engineering

YAML
---
title: C2Looper ClickFix Execution and DLL Sideloading
id: 8f3a1c2e-4b5d-4e7a-9c1f-2a3b4c5d6e7f
status: experimental
description: Detects ClickFix-style user-executed commands and DLL sideloading patterns associated with C2Looper Rust-based backdoor delivery
author: Security Arsenal Threat Intel
logsource:
    category: process_creation
    product: windows
 detection:
    selection_clickfix:
        ParentImage|endswith:
            - '\explorer.exe'
            - '\msedge.exe'
            - '\chrome.exe'
            - '\firefox.exe'
        Image|endswith:
            - '\powershell.exe'
            - '\pwsh.exe'
            - '\mshta.exe'
            - '\rundll32.exe'
            - '\cmd.exe'
        CommandLine|contains:
            - 'iex'
            - 'Invoke-WebRequest'
            - 'curl'
            - 'DownloadString'
            - 'FromBase64String'
    selection_rust_artifact:
        CommandLine|contains:
            - '45.158.196'
    condition: selection_clickfix or selection_rust_artifact
falsepositives:
    - Legitimate admin scripting launched from explorer context menus (rare)
level: high
tags:
    - attack.execution
    - attack.t1059
    - attack.t1204
    - attack.t1574.002
---
title: QUIC C2 Over Cloudflare Workers or Non-Standard QUIC Egress
id: 1d2e3f4a-5b6c-7d8e-9f0a-1b2c3d4e5f6a
status: experimental
description: Detects QUIC (UDP/443) network connections from non-browser processes, consistent with QUICAgent Go backdoor C2 via Cloudflare Workers
author: Security Arsenal Threat Intel
logsource:
    category: network_connection
    product: windows
detection:
    selection_quic:
        DestinationPort: 443
        Protocol: udp
        Initiated: 'true'
    filter_browsers:
        Image|endswith:
            - '\chrome.exe'
            - '\msedge.exe'
            - '\firefox.exe'
            - '\brave.exe'
            - '\opera.exe'
    condition: selection_quic and not filter_browsers
falsepositives:
    - Go-based legitimate applications using HTTP/3
    - Some VPN clients and updater services
level: high
tags:
    - attack.command_and_control
    - attack.t1071.001
    - attack.t1102
---
title: Fake Cryptocurrency Wallet Application Execution
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects execution of Electron-based fake wallet applications (Ledger, Trezor, Exodus impersonators) associated with Operation ASTERIX seed-phrase theft
author: Security Arsenal Threat Intel
logsource:
    category: process_creation
    product: windows
detection:
    selection_wallet_names:
        Image|contains:
            - 'Ledger'
            - 'Trezor'
            - 'Exodus'
    selection_suspicious_path:
        Image|contains:
            - '\AppData\Local\Temp\'
            - '\AppData\Roaming\'
            - '\Downloads\'
            - '\Public\'
    selection_c2:
        CommandLine|contains:
            - 'ledgerhelp.com'
            - '136.0.213.184'
    condition: (selection_wallet_names and selection_suspicious_path) or selection_c2
falsepositives:
    - Legitimate wallet apps installed under AppData by default — validate code signature before dismissing
level: critical
tags:
    - attack.credential_access
    - attack.t1555
    - attack.t1056
    - attack.execution
KQL — Microsoft Sentinel / Defender
// Unified hunt: C2Looper, QUICSILVER, and ASTERIX indicators + behaviors
let C2LooperIPs = dynamic(["45.158.196.184", "45.158.196.23"]);
let AsterixIP = "136.0.213.184";
let AsterixDomain = "ledgerhelp.com";
let PulseHashes = dynamic([
    "f59f32c9af4fa8a5dbd4668df8893593bc0c4324816cbf9b956acedcbfb8cdb6",
    "f96ff2f3abbff7f382ace509b90e54853b4b61c402ecde27d82f1c17b414867b",
    "20675a659c338f7267fd09bacb431f4491f061d3acf42d07aca2dec3d25fa549",
    "c4b4647795567ab15528edd1ab1bf37fb50e21b442e59a653051061973e87c02",
    "0803521a7e9081f46f8f9f61d72371ecc1f49657f10202fffa9a33f581d8bb39"
]);
union isfuzzy=true
    // Network IOC hits
    (DeviceNetworkEvents
    | where RemoteIP in~ (C2LooperIPs) or RemoteIP == AsterixIP
       or RemoteUrl has AsterixDomain
    | project TimeGenerated, DeviceName, InitiatingProcessFileName, RemoteIP, RemoteUrl, RemotePort),
    // QUIC from non-browser processes (QUICAgent behavior)
    (DeviceNetworkEvents
    | where RemotePort == 443
    | where InitiatingProcessFileName !in~ ("chrome.exe","msedge.exe","firefox.exe","brave.exe")
    | where InitiatingProcessFileName has_any ("go", "agent", "quic")
       or InitiatingProcessFolderPath has_any ("\Temp\", "\AppData\Roaming\")
    | project TimeGenerated, DeviceName, InitiatingProcessFileName, InitiatingProcessFolderPath, RemoteIP, RemoteUrl),
    // ClickFix-style process chains (C2Looper delivery)
    (DeviceProcessEvents
    | where InitiatingProcessFileName in~ ("explorer.exe","msedge.exe","chrome.exe")
    | where FileName in~ ("powershell.exe","mshta.exe","rundll32.exe","cmd.exe")
    | where ProcessCommandLine has_any ("iex", "DownloadString", "FromBase64String", "curl ")
    | project TimeGenerated, DeviceName, FileName, ProcessCommandLine, InitiatingProcessFileName),
    // VHD mount events (QUICSILVER delivery)
    (DeviceProcessEvents
    | where ProcessCommandLine has_any (".vhd", ".vhdx")
    | where FileName in~ ("powershell.exe","diskpart.exe") or ProcessCommandLine has "Mount-VHD"
    | project TimeGenerated, DeviceName, FileName, ProcessCommandLine),
    // Hash hits
    (DeviceFileEvents
    | where SHA256 in~ (PulseHashes)
    | project TimeGenerated, DeviceName, FileName, FolderPath, SHA256)
| sort by TimeGenerated desc
PowerShell
# Security Arsenal — C2Looper / QUICSILVER / ASTERIX Endpoint IOC Hunt
# Run elevated on suspected endpoints. Outputs consolidated findings to CSV.

$findings = @()

# --- 1. Network connections to pulse IOCs ---
$badIPs = @('45.158.196.184','45.158.196.23','136.0.213.184')
Get-NetTCPConnection -ErrorAction SilentlyContinue | Where-Object {
    $_.RemoteAddress -in $badIPs
} | ForEach-Object {
    $proc = Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue
    $findings += [PSCustomObject]@{
        Type='NetworkIOC'; Host=$env:COMPUTERNAME
        Detail="Conn to $($_.RemoteAddress):$($_.RemotePort) by $($proc.ProcessName) ($($proc.Path))"
    }
}

# --- 2. QUIC (UDP/443) listeners/senders from non-browser processes ---
Get-NetUDPEndpoint -ErrorAction SilentlyContinue | Where-Object {
    $_.LocalPort -eq 443
} | ForEach-Object {
    $p = Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue
    if ($p.ProcessName -notmatch 'chrome|msedge|firefox|brave') {
        $findings += [PSCustomObject]@{
            Type='SuspiciousQUIC'; Host=$env:COMPUTERNAME
            Detail="UDP/443 held by $($p.ProcessName) at $($p.Path)"
        }
    }
}

# --- 3. Persistence artifacts: Run keys, scheduled tasks with suspicious paths ---
$runKeys = @(
    'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run',
    'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run',
    'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce'
)
foreach ($key in $runKeys) {
    if (Test-Path $key) {
        Get-ItemProperty $key | ForEach-Object {
            $_.PSObject.Properties | Where-Object {
                $_.Value -match 'Temp|AppData|Public|rundll32|mshta|powershell'
            } | ForEach-Object {
                $findings += [PSCustomObject]@{
                    Type='Persistence'; Host=$env:COMPUTERNAME
                    Detail="$key :: $($_.Name) = $($_.Value)"
                }
            }
        }
    }
}
Get-ScheduledTask -ErrorAction SilentlyContinue | Where-Object {
    $_.Actions.Execute -match 'powershell|mshta|rundll32' -and
    $_.TaskPath -notmatch '\\Microsoft\\'
} | ForEach-Object {
    $findings += [PSCustomObject]@{
        Type='SuspiciousTask'; Host=$env:COMPUTERNAME
        Detail="Task $($_.TaskName): $($_.Actions.Execute) $($_.Actions.Arguments)"
    }
}

# --- 4. Fake wallet apps in user-writable paths (ASTERIX) ---
$walletPaths = @(
    "$env:LOCALAPPDATA\Programs", "$env:APPDATA", "$env:USERPROFILE\Downloads", 'C:\Users\Public'
)
foreach ($path in $walletPaths) {
    Get-ChildItem $path -Recurse -Include '*Ledger*','*Trezor*','*Exodus*' -ErrorAction SilentlyContinue |
        Where-Object { $_.Extension -in '.exe','.msi' } | ForEach-Object {
            $sig = Get-AuthenticodeSignature $_.FullName
            if ($sig.Status -ne 'Valid') {
                $findings += [PSCustomObject]@{
                    Type='FakeWalletApp'; Host=$env:COMPUTERNAME
                    Detail="$($_.FullName) [sig: $($sig.Status), sha256: $((Get-FileHash $_.FullName -Algorithm SHA256).Hash)]"
                }
            }
        }
}

# --- 5. Recently mounted VHD/VHDX evidence (QUICSILVER) ---
Get-ChildItem "$env:USERPROFILE\Downloads", "$env:TEMP" -Recurse -Include '*.vhd','*.vhdx' -ErrorAction SilentlyContinue |
    ForEach-Object {
        $findings += [PSCustomObject]@{
            Type='SuspiciousVHD'; Host=$env:COMPUTERNAME
            Detail="$($_.FullName) created $($_.CreationTime)"
        }
    }

$findings | Format-Table -AutoSize
$findings | Export-Csv ".\pulse_hunt_$env:COMPUTERNAME.csv" -NoTypeInformation
Write-Host "[+] Hunt complete. $($findings.Count) finding(s) exported."

Response Priorities

Immediate (0–4 hours)

  • Block 45.158.196.0/24, 136.0.213.184, and ledgerhelp.com at firewall, DNS sinkhole, and web proxy layers.
  • Push all pulse file hashes to EDR blocklists and email-gateway detonation rules.
  • Run the KQL hunt across the fleet; isolate any host with a confirmed network IOC hit.
  • Audit egress for outbound connections to bare IPs on non-standard ports (notably :1337).

24 Hours

  • Credential response: ASTERIX targets wallet seed phrases and exchange credentials — any user who interacted with fake Ledger/Trezor/Exodus software must rotate exchange credentials, regenerate wallet seeds/move funds to new wallets, and reset hardware wallets.
  • Review GitHub-bound API traffic for anomalous repository reads/writes from workstations (C2Looper C2 channel).
  • Search email archives for VHD/VHDX attachments and Burmese-language lures if you have any Myanmar-adjacent business relationships; government-sector partners should be notified.
  • Validate vishing exposure: brief help-desk and executive staff that crypto-themed vishing campaigns are actively dialing validated phone lists.

1 Week

  • Architecture hardening: Block or alert on QUIC (UDP/443) from non-browser processes at the egress layer; deploy TLS/QUIC-aware inspection where policy permits.
  • Disable auto-mount of VHD/VHDX files via Group Policy; add VHD to email attachment block lists alongside ISO/IMG.
  • Implement ClickFix mitigations: restrict Run-dialog access for standard users, enforce PowerShell Constrained Language Mode, and enable ASR rules for child processes of browsers.
  • Deploy application control (WDAC/AppLocker) to prevent unsigned Electron applications and binaries in user-writable paths.
  • Enroll domains matching your crypto-brand exposure in lookalike-domain monitoring.

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.