Back to Intelligence

BandCamPro 'Patriot Bait' Campaign: AI-Deployed C2 Botnet via Google Gemini CLI — OTX Pulse Analysis & Healthcare Detection Pack

SA
Security Arsenal Team
August 14, 2026
9 min read

Threat Summary

A newly documented AlienVault OTX pulse (TLP:WHITE) exposes a significant evolution in low-sophistication cybercrime: the Russian-speaking threat actor tracked as bandcampro leveraged Google Gemini CLI to architect, code, deploy, and debug a fully functional command-and-control botnet in approximately six minutes — with the AI model handling an estimated 89% of all operational labor.

Analysis of roughly 200 Gemini CLI session logs spanning March–April 2026 revealed that the actor successfully established control over eight workstations inside a dental clinic, gaining access to OpenDental databases — a high-value target containing protected health information (PHI), patient records, and billing data. The campaign, dubbed 'Patriot Bait' by researchers, blends several revenue and access streams:

  • Cryptocurrency fraud operations layered on top of compromised infrastructure
  • WordPress site compromise used as staging and lure infrastructure
  • Botnet operations with a lightweight C2 framework built almost entirely by AI code generation
  • Targeting concentrated in the United States and Canada, with Healthcare as the confirmed vertical

The strategic significance of this pulse is not the botnet itself — it is the collapse of the skill floor. An actor with minimal development capability used a publicly available AI CLI assistant to compress what would traditionally take days of development and debugging into a single working session. This pattern — AI-assisted infrastructure-as-a-service for low-skill actors — will replicate across the criminal ecosystem and should be treated as a preview of the 2026–2027 threat landscape, not an anomaly.

Threat Actor / Malware Profile

Adversary: bandcampro

AttributeDetail
AttributionRussian-speaking financially motivated actor
Campaign NamePatriot Bait
ToolingGoogle Gemini CLI (AI-assisted development), custom C2 botnet
Confirmed VictimologyDental clinic (8 endpoints), OpenDental database access
GeographyUnited States, Canada
SectorHealthcare
MonetizationCryptocurrency fraud, botnet resale/rental potential

Attack Chain Reconstruction

Based on session-log analysis, the operational flow was:

  1. Access Vector — Compromise of WordPress-based web properties and/or exposed clinic infrastructure provides the initial beachhead. WordPress compromise tags suggest vulnerable plugins or credential-stuffed admin panels were used for staging.
  2. AI-Assisted Build — The actor used Gemini CLI sessions to generate botnet architecture: agent code, C2 listener logic, deployment scripts, and error handling. The AI debugged compilation and runtime failures in real time, eliminating the traditional development bottleneck.
  3. Deployment & Migration — The C2 infrastructure was migrated and operationalized within a six-minute window, indicating scripted, repeatable deployment (likely via infrastructure automation also generated by the AI assistant).
  4. Endpoint Control — Eight dental clinic machines were enrolled as bots, with the actor browsing and accessing OpenDental databases — indicating interactive, hands-on-keyboard access rather than purely automated collection.
  5. Monetization — Cryptocurrency fraud operations ran in parallel with access maintenance.

Payload & C2 Characteristics

  • Distribution: AI-generated deployment scripts; staging via compromised WordPress infrastructure
  • C2 Communication: Outbound beaconing to actor-controlled domains — the pulse identifies tralalarkefe.com as C2 infrastructure. Expect HTTP/HTTPS polling with lightweight tasking.
  • Persistence: AI-generated persistence routines typically default to common mechanisms — Run keys, scheduled tasks, or service installation. Hunt broadly across all three.
  • Anti-Analysis: Minimal traditional obfuscation is expected (the actor's skill ceiling is low), but AI-generated code produces novel, low-prevalence binaries that evade hash-based and signature detection. Behavioral detection is mandatory.

IOC Analysis

The pulse contains one confirmed indicator:

TypeIndicatorRole
Domaintralalarkefe.comC2 domain for the bandcampro botnet

Operationalization Guidance

A single confirmed domain is the floor, not the ceiling. The actor's AI-assisted workflow means infrastructure can be regenerated faster than IOC lists can be published. SOC teams should:

  • Block at the resolver: Add tralalarkefe.com to DNS sinkhole/blocklists (Pi-hole, Umbrella, Zscaler, or internal DNS RPZ). Also block at egress proxy and EDR network layers.
  • Pivot on infrastructure: Resolve passive DNS history for tralalarkefe.com; identify co-hosted domains on the same ASN/registrar — AI-assisted operators frequently register domains in batches with identical WHOIS patterns.
  • Hunt DNS telemetry: Query historical DNS logs for resolution attempts — even failed lookups indicate infection attempts.
  • Tooling: Use VirusTotal, OTX, urlscan.io, and SecurityTrails for passive DNS pivoting. Decode any observed beacon payloads with CyberChef (Base64/XOR are common in AI-generated agent code).
  • Watch for Gemini CLI artifacts: Legitimate developer use of AI CLI tools is growing, but gemini CLI execution on clinical/endpoint systems with no developer function is itself an anomaly worth alerting on.

Detection Engineering

YAML
---
title: BandCamPro C2 Communication - Tralalarkefe Domain
description: Detects DNS resolution or network connection to the bandcampro 'Patriot Bait' botnet C2 domain identified in AlienVault OTX pulse analysis
author: Security Arsenal Threat Intelligence
status: experimental
logsource:
  category: dns
  product: windows
detection:
  selection:
    QueryName|contains:
      - 'tralalarkefe.com'
  condition: selection
falsepositives:
  - Threat hunting or sandbox detonation of this briefing's IOCs
level: critical
tags:
  - attack.command_and_control
  - attack.t1071
date: 2026/08/15
---
title: Suspicious Gemini CLI Execution on Non-Developer Endpoint
description: Detects execution of Google Gemini CLI tooling on endpoints, associated with AI-assisted malware development by the bandcampro threat actor
author: Security Arsenal Threat Intelligence
status: experimental
logsource:
  category: process_creation
  product: windows
detection:
  selection_image:
    Image|endswith:
      - '\gemini.exe'
      - '\node.exe'
  selection_cmdline:
    CommandLine|contains:
      - 'gemini'
      - 'gemini-cli'
  filter_approved_paths:
    Image|startswith:
      - 'C:\Program Files\Google\'
  condition: (selection_image and selection_cmdline) and not filter_approved_paths
falsepositives:
  - Legitimate developer workstations using Gemini CLI for sanctioned work
level: high
tags:
  - attack.execution
  - attack.t1059
date: 2026/08/15
---
title: Persistence Artifact Creation Followed by Rare Outbound Connection
description: Detects Run key or scheduled task persistence creation patterns consistent with AI-generated botnet agent installation observed in the Patriot Bait campaign
author: Security Arsenal Threat Intelligence
status: experimental
logsource:
  category: registry_set
  product: windows
detection:
  selection:
    TargetObject|contains:
      - '\CurrentVersion\Run\'
      - '\CurrentVersion\RunOnce\'
    Details|contains:
      - 'AppData'
      - 'Temp'
      - 'Public'
  condition: selection
falsepositives:
  - Legitimate user-space software installers registering auto-start entries
level: medium
tags:
  - attack.persistence
  - attack.t1060
  - attack.t1547.001
date: 2026/08/15
KQL — Microsoft Sentinel / Defender
// BandCamPro 'Patriot Bait' Hunt — C2 resolution, Gemini CLI abuse, and persistence correlation
// Microsoft Sentinel / Microsoft Defender XDR
let C2Domains = dynamic(["tralalarkefe.com"]);
let Lookback = 30d;
let DnsHits = DeviceNetworkEvents
    | where TimeGenerated > ago(Lookback)
    | where RemoteUrl has_any (C2Domains)
    | project DnsTime=TimeGenerated, DeviceName, DnsRemoteUrl=RemoteUrl, RemoteIP, InitiatingProcessFileName, InitiatingProcessCommandLine, ReportId;
let GeminiExec = DeviceProcessEvents
    | where TimeGenerated > ago(Lookback)
    | where ProcessCommandLine has_any ("gemini", "gemini-cli") or FileName =~ "gemini.exe"
    | project GeminiTime=TimeGenerated, DeviceName, FileName, ProcessCommandLine, InitiatingProcessAccountName;
let Persistence = DeviceRegistryEvents
    | where TimeGenerated > ago(Lookback)
    | where RegistryKey has_any (@"\CurrentVersion\Run", @"\CurrentVersion\RunOnce")
    | where RegistryValueData has_any ("AppData", "Temp", "Public")
    | project PersistTime=TimeGenerated, DeviceName, RegistryKey, RegistryValueName, RegistryValueData, InitiatingProcessFileName;
DnsHits
| join kind=leftouter (GeminiExec) on DeviceName
| join kind=leftouter (Persistence) on DeviceName
| project DeviceName, DnsTime, DnsRemoteUrl, RemoteIP, InitiatingProcessFileName, InitiatingProcessCommandLine,
          GeminiTime, ProcessCommandLine, PersistTime, RegistryKey, RegistryValueData
| sort by DeviceName asc, DnsTime desc
PowerShell
# BandCamPro 'Patriot Bait' IOC Hunt Script
# Checks for C2 connections, persistence artifacts, and Gemini CLI presence
# Run elevated on suspected endpoints; export results per host

$Report = @()
$C2Domain = "tralalarkefe.com"

Write-Host "[1/5] Checking DNS cache for C2 resolution..." -ForegroundColor Cyan
$DnsHits = Get-DnsClientCache | Where-Object { $_.Entry -like "*$C2Domain*" }
if ($DnsHits) {
    $Report += [PSCustomObject]@{ Check="DNS Cache"; Finding="C2 domain resolved"; Detail=($DnsHits.Entry -join ', ') }
}

Write-Host "[2/5] Checking active network connections..." -ForegroundColor Cyan
$Connections = Get-NetTCPConnection | Where-Object { $_.State -eq 'Established' } |
    ForEach-Object {
        $proc = Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue
        [PSCustomObject]@{ LocalPort=$_.LocalPort; RemoteAddress=$_.RemoteAddress; RemotePort=$_.RemotePort; Process=$proc.ProcessName; Path=$proc.Path }
    }
$SuspiciousConns = $Connections | Where-Object {
    try { (Resolve-DnsName -Name $C2Domain -ErrorAction Stop).IPAddress -contains $_.RemoteAddress } catch { $false }
}
if ($SuspiciousConns) {
    $Report += [PSCustomObject]@{ Check="Network"; Finding="Active connection to C2 IP"; Detail=($SuspiciousConns | Out-String) }
}

Write-Host "[3/5] Auditing Run/RunOnce persistence keys..." -ForegroundColor Cyan
$RunKeys = @(
    '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 ($key in $RunKeys) {
    if (Test-Path $key) {
        Get-ItemProperty -Path $key | Get-Member -MemberType NoteProperty | ForEach-Object {
            $val = (Get-ItemProperty -Path $key -Name $_.Name).$($_.Name)
            if ($val -match 'AppData|Temp|Public' -and $val -notmatch 'Microsoft|OneDrive|Teams') {
                $Report += [PSCustomObject]@{ Check="Persistence"; Finding="Suspicious Run key: $($_.Name)"; Detail="$key -> $val" }
            }
        }
    }
}

Write-Host "[4/5] Checking scheduled tasks for user-space binaries..." -ForegroundColor Cyan
Get-ScheduledTask | ForEach-Object {
    $action = $_.Actions.Execute
    if ($action -match 'AppData|Temp|Public' -and $action -notmatch 'Microsoft') {
        $Report += [PSCustomObject]@{ Check="ScheduledTask"; Finding="Suspicious task: $($_.TaskName)"; Detail=$action }
    }
}

Write-Host "[5/5] Checking for Gemini CLI artifacts..." -ForegroundColor Cyan
$GeminiPaths = @("$env:LOCALAPPDATA\gemini", "$env:USERPROFILE\.gemini", "$env:APPDATA\npm\gemini*")
foreach ($p in $GeminiPaths) {
    if (Test-Path $p) {
        $Report += [PSCustomObject]@{ Check="GeminiCLI"; Finding="Gemini CLI artifact present"; Detail=$p }
    }
}

if ($Report.Count -gt 0) {
    $Report | Format-Table -AutoSize
    $Report | Export-Csv -Path ".\BandCamPro_Hunt_$env:COMPUTERNAME.csv" -NoTypeInformation
    Write-Host "[!] Findings exported to BandCamPro_Hunt_$env:COMPUTERNAME.csv" -ForegroundColor Red
} else {
    Write-Host "[+] No indicators found on this host." -ForegroundColor Green
}

Response Priorities

Immediate (0–4 hours)

  • Block tralalarkefe.com at DNS resolver, egress proxy, and EDR network layers; add to threat intel feeds
  • Query 30 days of DNS/proxy logs for resolution of the C2 domain — any hit is a confirmed compromise, not a false positive candidate
  • Run the KQL hunt across the fleet; isolate any endpoint with DNS hits and persistence artifacts
  • Audit internet-facing WordPress properties for vulnerable plugins, weak admin credentials, and unauthorized file modifications — this is the likely staging vector

24 Hours

  • Healthcare organizations: treat any confirmed infection as a potential PHI breach — the actor demonstrably accessed OpenDental databases. Engage legal/compliance for HIPAA breach-notification assessment
  • Force credential resets for any user on compromised endpoints, prioritizing accounts with access to patient records, EHR systems, and financial data
  • Review authentication logs for lateral movement from compromised hosts; the actor operated interactively, so expect RDP/SMB artifacts
  • Inventory Gemini CLI (and other AI coding assistants) execution across endpoints — establish a sanctioned-use baseline

1 Week

  • Implement application allowlisting for clinical workstations — dental/medical front-office machines have no legitimate need for arbitrary script interpreters or AI CLI tools
  • Deploy egress filtering rules blocking outbound traffic to newly registered/unclassified domains for non-browser processes
  • Harden WordPress perimeter: enforce MFA on admin panels, deploy WAF rules, and automate plugin patching
  • Build detections for the pattern, not the IOC: AI-assisted actors regenerate domains weekly. Behavioral rules for persistence-plus-beaconing sequences will outlive any indicator list

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.