Back to Intelligence

PATCHCORD, SHEETCORD & Evooo1Bot: Google Sheets C2 Espionage + Linux Botnet Credential Theft — OTX Detection Pack

SA
Security Arsenal Team
August 14, 2026
12 min read

This week's AlienVault OTX feed surfaces four distinct but operationally converging threat streams, all orbiting a common objective: credential harvesting and persistent covert access to high-value networks.

The most strategically significant pulse is the PATCHCORD cluster, attributed to Operation C-Major — a previously undocumented espionage operation targeting Afghan telecom providers and South Asian critical infrastructure (government, defense, energy, healthcare). The delivery chain is sector-specific social engineering: fake VPN installers impersonating Afghan Telecom and trojanized telecom management utilities. Once inside, the operator deploys a multi-implant arsenal — PATCHCORD (C/C++ backdoor), SHEETCREEP, ValleyRAT, GateSentinel, SuperShell — alongside credential-theft tooling (HackBrowserData) and a novel C2 layer, SHEETCORD, which abuses Google Sheets as a dead-drop command channel. That technique defeats most perimeter controls because traffic terminates at legitimate Google infrastructure. The cluster also carries exploitation capability against CVE-2021-4034 (PwnKit, local privilege escalation) and CVE-2024-6387 (regreSSHion, OpenSSH RCE) — a clear pattern of Linux edge-device initial access followed by lateral privilege escalation.

In parallel, Evooo1Bot — a Mirai-derived Linux botnet active since July 2026 — industrializes the same edge-device attack surface at scale. It layers encrypted C2, SSH brute-force scanning, SOCKS relay (turning compromised devices into proxy infrastructure resold for criminal traffic), credential sniffing, and a broad exploit arsenal (CVE-2016-6277, CVE-2021-36260, CVE-2022-29464, CVE-2021-46422, and others) targeting routers, DVRs, and IoT gateways.

The Miasma v3 pulse demonstrates supply-chain credential theft: four AsyncAPI npm packages were hijacked via the project's own GitHub Actions OIDC pipeline, producing validly signed malicious releases that self-propagate through developer environments — a direct pipeline from developer laptops into enterprise CI/CD secrets.

Finally, the Tomorrowland 2026 phishing infrastructure (~12 typosquatted domains) shows the consumer-facing end of the credential economy: payment-card theft and account harvesting via fake ticket shops with countdown timers and fraudulent 'biometric verification' flows — credentials that are subsequently resold on the same dark web markets that supply initial access for campaigns like Operation C-Major.

Collective read: initial access is increasingly bought (phishing marketplaces), built (supply-chain hijack), or brute-forced (botnets), while C2 is moving onto trusted SaaS platforms. Perimeter trust models built on domain reputation are failing.

Threat Actor / Malware Profile

Operation C-Major / PATCHCORD Cluster

  • Distribution: Spear-phishing and watering-hole delivery of fake VPN installers impersonating Afghan Telecom; trojanized telecom network-management tools tailored to victim sector.
  • Payload behavior: PATCHCORD (C/C++) establishes a custom backdoor with reconnaissance, file staging, and second-stage loader capability. SHEETCREEP and ValleyRAT provide redundancy — classic espionage tradecraft of layered implants so one detection doesn't burn the operation. GateSentinel acts as a network-positioning/gateway implant; SuperShell provides interactive access.
  • Credential theft: HackBrowserData is deployed to rip saved credentials, cookies, and autofill data from Chrome/Edge/Firefox — feeding account takeover of telecom OSS/BSS portals.
  • C2 communication: SHEETCORD (Go-based) reads commands from and writes results to attacker-controlled Google Sheets documents, blending into sanctioned SaaS traffic. HACKERAI C2 Agent provides a fallback channel. Known infrastructure includes 46.30.188.13, 108.187.42.63, and appstoore.solutions.
  • Persistence & escalation: Exploitation of CVE-2021-4034 (PwnKit) for root on Linux hosts; CVE-2024-6387 (regreSSHion) against exposed OpenSSH. Persistence via scheduled tasks, rogue services, and webshell-like implants on gateway devices.
  • Anti-analysis: Multi-implant rotation, legitimate cloud C2, encrypted payload staging.

Evooo1Bot (Mirai variant)

  • Distribution: Exploitation of internet-facing IoT/edge devices (8+ CVEs spanning 2007–2022) plus SSH brute-force.
  • Payload behavior: DDoS engine inherited from Mirai; added modules for SOCKS5 relay, credential sniffing on local interfaces, and SSH scanning/propagation.
  • C2 communication: Encrypted C2 channel; strings protected with multi-layer AES-256-CBC encryption to defeat static analysis and IoC extraction.
  • Persistence: Init script and cron-based re-establishment on compromised embedded devices; kills competing botnet processes.

Miasma v3 (npm worm)

  • Distribution: Compromised @asyncapi/generator, @asyncapi/generator-helpers, @asyncapi/generator-components, and @asyncapi/specs — published through the project's legitimate GitHub Actions workflow via npm OIDC, meaning valid provenance attestations.
  • Payload behavior: Self-propagating worm that harvests npm tokens, SSH keys, and CI/CD environment secrets, then republishes itself to packages the victim can access. C2 at 85.137.53.71 (ports 8080/8081/8091), with code obfuscation linked to obfuscator.io.
  • Anti-analysis: Heavy JavaScript obfuscation; valid package signatures defeat provenance checks.

Tomorrowland Phishing Infrastructure

  • Typosquatted domains (tomorrowland-booking.com, belgium-tomorrowlland.com, tmrlnd.shop, etc.) mimicking official ticket sales with urgency timers and fake biometric verification to harvest payment cards and identity data.

IOC Analysis

This feed delivers four indicator classes, each requiring a different operationalization path:

TypeExamplesOperationalization
IPv4 C246.30.188.13, 108.187.42.63, 85.137.53.71Block at egress firewall/proxy; retro-hunt NetFlow, firewall, and proxy logs for 90 days. C2 IPs have long shelf lives for espionage clusters.
Domainsappstoore.solutions, tomorrowland-booking.com, tmrlnd.shopDNS sinkhole + web proxy block. Typosquats are disposable — pair blocking with brand-monitoring for new registrations (homoglyph patterns like 'tomorrowlland').
File hashes (MD5/SHA1/SHA256)0f4073d3...346b3Push SHA256 to EDR blocklists and email gateway detonation. MD5/SHA1 retained for cross-referencing malware repositories (VirusTotal, MalwareBazaar).
CVEsCVE-2021-4034, CVE-2024-6387, CVE-2021-36260, CVE-2022-29464Not 'indicators' — they are attack surface. Feed directly into vulnerability management SLAs: PwnKit and regreSSHion on Linux estate; IoT CVEs against your edge/OT device inventory.
URLshttp://85.137.53.71:8080–8091URL filtering; investigate any developer workstation or CI runner seen connecting — Miasma v3 infection means assume npm/SSH/CI secrets are compromised.

Tooling: Decode and pivot with OTX DirectConnect / the OTX Python SDK for automated feed ingestion; Maltego or MISP for infrastructure graphing (the PATCHCORD cluster shares registrant and hosting patterns); VirusTotal Intelligence for hash pivots. For SHEETCORD specifically, proxy logs filtered to docs.google.com / sheets.googleapis.com from non-browser processes are the high-fidelity hunt — legitimate SaaS C2 cannot be blocked, only behaviorally detected.

Detection Engineering

YAML
---
title: SHEETCORD / Cloud SaaS C2 — Non-Browser Process Accessing Google Sheets API
id: 8f3a1c2e-7b4d-4e9f-a1c5-6d2b8e0f9a31
status: experimental
description: Detects non-browser processes communicating with Google Sheets/Docs API endpoints, consistent with SHEETCORD (Operation C-Major) using Google Sheets as a C2 dead-drop channel.
author: Security Arsenal Threat Intelligence
references:
    - https://www.acronis.com/en/tru/posts/patchcord-new-malware-cluster-targets-afghan-telecom-and-south-asian-critical-infrastructure/
date: 2026/08/14
modified: 2026/08/14
tags:
    - attack.command_and_control
    - attack.t1102
    - attack.t1102.002
logsource:
    category: network_connection
    product: windows
detection:
    selection_domain:
        DestinationHostname|contains:
            - 'sheets.googleapis.com'
            - 'docs.google.com'
            - 'googleapis.com'
    selection_browser_paths:
        Image|endswith:
            - '\chrome.exe'
            - '\msedge.exe'
            - '\firefox.exe'
            - '\brave.exe'
            - '\opera.exe'
            - '\Teams.exe'
            - '\OUTLOOK.EXE'
    condition: selection_domain and not selection_browser_paths
falsepositives:
    - Google Drive for Desktop, legitimate backup/sync agents, RMM tooling
level: high
---
title: HackBrowserData Browser Credential Dump Execution
id: 2c7e91a4-3d5f-4b8a-9e1c-0a6f4d8b2c17
status: experimental
description: Detects execution of HackBrowserData or similar browser credential theft tooling, deployed by the PATCHCORD/Operation C-Major cluster to harvest saved credentials from Chrome, Edge, and Firefox.
author: Security Arsenal Threat Intelligence
references:
    - https://www.acronis.com/en/tru/posts/patchcord-new-malware-cluster-targets-afghan-telecom-and-south-asian-critical-infrastructure/
date: 2026/08/14
modified: 2026/08/14
tags:
    - attack.credential_access
    - attack.t1555
    - attack.t1555.003
logsource:
    category: process_creation
    product: windows
detection:
    selection_binary:
        Image|endswith:
            - '\hackbrowserdata.exe'
        OriginalFileName|contains:
            - 'hack-browser-data'
    selection_behavior:
        CommandLine|contains|all:
            - 'browser'
            - '-b'
        CommandLine|contains:
            - 'all'
            - 'chrome'
            - 'firefox'
    selection_copy:
        CommandLine|contains:
            - 'Login Data'
            - 'Local State'
            - 'Web Data'
            - 'logins.json'
            - 'key4.db'
    condition: selection_binary or selection_behavior or selection_copy
falsepositives:
    - Legitimate forensic tools, IT migration scripts (rare)
level: high
---
title: Miasma v3 — Suspicious npm Postinstall Executing Obfuscated Payload or External Fetch
id: 5b1d8f36-9a2c-4e7d-b3f1-8c0e2a6d4b59
status: experimental
description: Detects node/npm lifecycle scripts spawning network fetches, shells, or script interpreters — consistent with the Miasma v3 worm delivered via hijacked AsyncAPI npm packages in CI/CD and developer environments.
author: Security Arsenal Threat Intelligence
references:
    - https://research.jfrog.com/post/miasma-worm-returns-to-npm/
date: 2026/08/14
modified: 2026/08/14
tags:
    - attack.execution
    - attack.t1059
    - attack.t1195
    - attack.t1195.002
logsource:
    category: process_creation
    product: windows
detection:
    selection_parent:
        ParentImage|endswith:
            - '\node.exe'
            - '\npm.cmd'
            - '\npm.exe'
            - '\npx.cmd'
    selection_child:
        Image|endswith:
            - '\powershell.exe'
            - '\pwsh.exe'
            - '\cmd.exe'
            - '\curl.exe'
            - '\wget.exe'
            - '\certutil.exe'
            - '\rundll32.exe'
    selection_suspicious:
        CommandLine|contains:
            - '85.137.53.71'
            - 'obfuscator'
            - 'FromBase64String'
            - '-enc '
            - 'IEX'
            - 'Invoke-Expression'
    condition: selection_parent and (selection_child or selection_suspicious)
falsepositives:
    - Legitimate build tooling with postinstall scripts (esbuild, node-gyp); tune per build-agent baseline
level: high
KQL — Microsoft Sentinel / Defender
// Security Arsenal — OTX Pulse Hunt: PATCHCORD / Evooo1Bot / Miasma v3 / Phishing Infrastructure
// Scope: network connections to known C2 & phishing IOCs, plus behavioral pivots
let C2IPs = dynamic(["46.30.188.13", "108.187.42.63", "85.137.53.71"]);
let BadDomains = dynamic([
    "appstoore.solutions",
    "tomorrowland-booking.com", "belgium-tomorrowlland.com",
    "belgium-tomorrowlland.info", "belgiumtomoorrowland.com",
    "festreisen.com", "jedemenatomorrowland.cz",
    "mcsdirect.tech", "tmrlnd.shop", "obfuscator.io"
]);
let HashIOC = "0f4073d3c866bc3daf55b25f71250b96ec120db94a4f9cc8fe85b7c9f9d346b3";
union isfuzzy=true
    (
    DeviceNetworkEvents
    | where TimeGenerated > ago(30d)
    | where RemoteIP in~ (C2IPs) or RemoteUrl has_any (BadDomains)
    | project TimeGenerated, DeviceName, InitiatingProcessFileName,
              InitiatingProcessCommandLine, RemoteIP, RemoteUrl, RemotePort
    | extend MatchType = "Network IOC"
    ),
    (
    DeviceFileEvents
    | where TimeGenerated > ago(30d)
    | where SHA256 == HashIOC or MD5 == "dce02a45e7bec01df012b626182a2a7f"
    | project TimeGenerated, DeviceName, FileName, FolderPath, SHA256
    | extend MatchType = "File Hash IOC"
    ),
    (
    // SHEETCORD behavioral pivot: non-browser process hitting Google Sheets API
    DeviceNetworkEvents
    | where TimeGenerated > ago(14d)
    | where RemoteUrl has_any ("sheets.googleapis.com", "docs.google.com")
    | where InitiatingProcessFileName !in~ ("chrome.exe", "msedge.exe", "firefox.exe",
                                            "brave.exe", "opera.exe", "Teams.exe", "OUTLOOK.EXE")
    | project TimeGenerated, DeviceName, InitiatingProcessFileName,
              InitiatingProcessCommandLine, RemoteUrl
    | extend MatchType = "Behavioral: SaaS C2"
    ),
    (
    // Miasma v3 behavioral pivot: npm/node spawning download cradles
    DeviceProcessEvents
    | where TimeGenerated > ago(14d)
    | where InitiatingProcessFileName in~ ("node.exe", "npm.cmd", "npm", "node")
    | where FileName in~ ("powershell.exe", "pwsh.exe", "curl.exe", "wget.exe",
                          "certutil.exe", "cmd.exe", "bash", "sh")
    | project TimeGenerated, DeviceName, InitiatingProcessCommandLine,
              FileName, ProcessCommandLine
    | extend MatchType = "Behavioral: npm Supply Chain"
    )
| sort by TimeGenerated desc
PowerShell
<#
.SYNOPSIS
    Security Arsenal OTX IOC Hunt — PATCHCORD Cluster / Evooo1Bot / Miasma v3
.DESCRIPTION
    Sweeps a Windows host for indicators and execution artifacts from the
    2026-08-14 OTX pulse set: C2 connections, phishing DNS cache entries,
    malicious file hashes, browser-credential-dump artifacts, and npm infection traces.
#>

$ErrorActionPreference = 'SilentlyContinue'
$findings = @()

# --- 1. Live & historical network connections to C2 IPs ---
$C2IPs = @('46.30.188.13','108.187.42.63','85.137.53.71')
Get-NetTCPConnection | Where-Object { $C2IPs -contains $_.RemoteAddress } | ForEach-Object {
    $proc = Get-Process -Id $_.OwningProcess
    $findings += [PSCustomObject]@{
        Type='Network'; Severity='CRITICAL'
        Detail="Active connection to C2 $($_.RemoteAddress):$($_.RemotePort) by $($proc.ProcessName) (PID $($_.OwningProcess))"
    }
}

# --- 2. DNS cache for C2 / phishing domains ---
$BadDomains = @('appstoore.solutions','tomorrowland-booking.com','belgium-tomorrowlland.com',
                'belgium-tomorrowlland.info','belgiumtomoorrowland.com','festreisen.com',
                'jedemenatomorrowland.cz','mcsdirect.tech','tmrlnd.shop','obfuscator.io')
Get-DnsClientCache | Where-Object { $d=$_.Entry; $BadDomains | Where-Object { $d -like "*$_*" } } | ForEach-Object {
    $findings += [PSCustomObject]@{ Type='DNS Cache'; Severity='HIGH'; Detail="Resolved $($_.Entry) -> $($_.Data)" }
}

# --- 3. File hash hunt in common staging locations ---
$BadHashes = @('0F4073D3C866BC3DAF55B25F71250B96EC120DB94A4F9CC8FE85B7C9F9D346B3')
$paths = @("$env:TEMP","$env:APPDATA","$env:LOCALAPPDATA","$env:USERPROFILE\Downloads","C:\ProgramData")
foreach ($p in $paths) {
    Get-ChildItem -Path $p -Recurse -File -ErrorAction SilentlyContinue | ForEach-Object {
        if ($BadHashes -contains (Get-FileHash $_.FullName -Algorithm SHA256).Hash) {
            $findings += [PSCustomObject]@{ Type='File Hash'; Severity='CRITICAL'; Detail="PATCHCORD sample at $($_.FullName)" }
        }
    }
}

# --- 4. HackBrowserData / credential-dump artifacts ---
Get-ChildItem -Path $env:TEMP, "$env:USERPROFILE\Downloads" -Recurse -Include '*hack*browser*data*','browser_password*','decrypt_password*' -ErrorAction SilentlyContinue | ForEach-Object {
    $findings += [PSCustomObject]@{ Type='Credential Theft Tool'; Severity='CRITICAL'; Detail="Possible HackBrowserData artifact: $($_.FullName)" }
}

# --- 5. Suspicious persistence: run keys & scheduled tasks referencing temp/script paths ---
Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run',
                 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run' | ForEach-Object {
    $_.PSObject.Properties | Where-Object { $_.Value -match 'AppData|Temp|powershell.*-enc|rundll32' } | ForEach-Object {
        $findings += [PSCustomObject]@{ Type='Persistence'; Severity='HIGH'; Detail="Run key $($_.Name) = $($_.Value)" }
    }
}
Get-ScheduledTask | Where-Object { $_.Actions.Execute -match 'AppData|Temp|wscript|cscript|powershell' } | ForEach-Object {
    $findings += [PSCustomObject]@{ Type='Persistence'; Severity='MEDIUM'; Detail="Scheduled task '$($_.TaskName)' runs $($_.Actions.Execute)" }
}

# --- 6. Miasma v3: compromised AsyncAPI packages in node_modules ---
$Miasma = @('@asyncapi\generator','@asyncapi\generator-helpers','@asyncapi\generator-components','@asyncapi\specs')
Get-ChildItem -Path "$env:USERPROFILE" -Recurse -Directory -Filter 'node_modules' -Depth 4 -ErrorAction SilentlyContinue | ForEach-Object {
    foreach ($pkg in $Miasma) {
        $pkgPath = Join-Path $_.FullName $pkg
        if (Test-Path $pkgPath) {
            $findings += [PSCustomObject]@{ Type='Supply Chain'; Severity='CRITICAL'; Detail="AsyncAPI package present (verify version against July 2026 compromise): $pkgPath — ROTATE npm/SSH/CI secrets" }
        }
    }
}

# --- Report ---
if ($findings.Count -gt 0) {
    Write-Host "[!] $($findings.Count) finding(s) — isolate host and escalate to IR:" -ForegroundColor Red
    $findings | Sort-Object Severity | Format-Table -AutoSize
    $findings | Export-Csv -Path "$env:TEMP\otx_hunt_$(Get-Date -Format 'yyyyMMdd_HHmmss').csv" -NoTypeInformation
} else {
    Write-Host "[+] No IOC matches found on $env:COMPUTERNAME" -ForegroundColor Green
}

Response Priorities

Immediate (0–4 hours)

  • Push all IPv4, domain, URL, and SHA256 indicators to egress firewall, DNS sinkhole, web proxy, and EDR blocklists. Block 85.137.53.71 ports 8080/8081/8091 explicitly.
  • Run the KQL hunt and PowerShell sweep across endpoints; retro-search 90 days of proxy/firewall logs for the PATCHCORD C2 pair (46.30.188.13, 108.187.42.63).
  • Alert on any non-browser process reaching sheets.googleapis.com — SHEETCORD C2 lives on whitelisted SaaS and will not trip IP/domain controls.
  • Quarantine any developer workstation or CI runner with the compromised AsyncAPI packages; assume token theft.

24 Hours

  • Both PATCHCORD (HackBrowserData) and Miasma v3 are credential-stealing operations: force password resets and MFA re-verification for any user on a host with a positive finding, prioritizing telecom/OSS admin, VPN, and cloud-console accounts.
  • Rotate all npm tokens, SSH keys, and CI/CD secrets present on any machine that executed the malicious AsyncAPI packages. Audit npm publish events for unauthorized releases from your org.
  • Review browser credential-store access events (EDR telemetry) for Login Data / Local State reads by unexpected processes.
  • Notify employees who purchased festival/event tickets of the phishing domains; monitor for corporate-card fraud and credential reuse of harvested passwords against corporate SSO.

1 Week

  • Patch the exploited attack surface: CVE-2021-4034 (PwnKit) and CVE-2024-6387 (regreSSHion) across the Linux estate; the Evooo1Bot CVE set (CVE-2021-36260, CVE-2022-29464, CVE-2021-46422, et al.) against edge/IoT devices. Segment IoT/OT from user and server VLANs.
  • Enforce egress filtering with TLS inspection on SaaS API endpoints, or at minimum alerting, so Google Sheets/Docs API abuse is visible; default-deny outbound from server segments.
  • Harden CI/CD: pin GitHub Actions to commit SHAs, require environment protection rules for npm OIDC publishing, and deploy package-allowlisting for developer installs.
  • Stand up typosquat/brand monitoring with automated takedown workflows for look-alike domains targeting your organization.
  • Deploy the Sigma rules above to production SIEM and tune the SaaS-C2 rule against your legitimate Google Workspace tooling baseline.

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.