Three pulses published to AlienVault OTX on 2026-10-16 paint a picture of converging criminal tradecraft: covert IoT-protocol command-and-control, industrial-scale laundering infrastructure hiding in gambling domains, and malware smuggled inside structurally valid media containers. Individually, each pulse describes a distinct operation. Collectively, they reveal how threat actors are deliberately choosing C2 channels and delivery vehicles that defeat default-deny egress rules, static file-type validation, and reputation-based domain filtering. This bulletin synthesizes all three pulses and ships detection content your SOC can deploy today.
Threat Summary
Pulse 1 — "The Banana Stand" (Lumen/Black Lotus Labs research, submitted by AlienVault): An active infection-brokering operation managing compromises across Asia and South America using BambooToken, an emerging multiplatform malware family active since February 2023. The operation leverages the MQTT protocol (Message Queuing Telemetry Transport — a lightweight pub/sub protocol designed for IoT devices) as a covert C2 channel. BambooToken acts as a loader and infection manager for a deep bench of Chinese-nexus backdoors and RATs: PlugX/Korplug, Thoper, TVT, DestroyRAT, Sogu, Kaba, WailingCrab, and IOCONTROL. The campaign relies heavily on DLL sideloading (including abuse of Tendyron OnKey USB banking token drivers, per the tendyron onkey tag), targeting finance, government, technology, hospitality, and healthcare across Cambodia, China, Hong Kong, Japan, Malaysia, Singapore, Argentina, Chile, and Lithuania. The name "banana stand" reflects the operator's role as an infection broker — compromising, staging, and reselling access across a wide victim pool rather than conducting bespoke intrusions.
Pulse 2 — PeckBirdy (Infoblox research): Tracking actor PeckBirdy and the broader criminal economy behind 1.7+ million Chinese-language casino domains. This infrastructure spans three overlapping categories: (1) triad-aligned illegal gambling and transnational money laundering, (2) "scambling" sites — rigged games with withdrawal fraud — targeting global audiences, and (3) espionage-adjacent operations hiding behind bulletproof hosting registered in bulk with numeric/algorithmic naming (e.g., 11168833.com, 843470.cc). The key insight for defenders: this garbage-domain sprawl is not noise. It provides disposable, high-churn infrastructure that state-aligned and criminal actors reuse for C2, phishing, and laundering. Defenders who filter gambling categories but ignore the infrastructure layer are missing a shared staging ground.
Pulse 3 — Fake MP4 NetSupport Delivery (Censys research): A sophisticated loader chain delivering NetSupport Manager RAT concealed inside fake MP4 files. The files are structurally valid ISO Base Media File Format (ISO-BMFF) containers — they pass naive magic-byte and file-type checks — but instead of playable video, they hide 6.5 MB of encrypted payload data inside uuid extension boxes. The chain begins with PowerShell loaders served from Cloudflare-fronted infrastructure, retrieves the fake MP4 from URLs like http://approvalrequest-api.com/333.mp4, decrypts the embedded NetSupport client, and establishes remote access. NetSupport Manager is a legitimate RAT abused ubiquitously by initial access brokers and ransomware affiliates.
Collective assessment: All three operations share a doctrine — abuse trusted protocols and formats (MQTT, legitimate RATs, valid media containers, Cloudflare fronting) and churn infrastructure faster than blocklists refresh. Sectors at highest combined risk: finance, government, technology, healthcare, and education, with geographic concentration in East and Southeast Asia plus South America.
Threat Actor / Malware Profile
BambooToken (Infection Broker / Loader)
- Distribution: Supply-chain and sideloading vectors; abuse of signed legitimate binaries (including Tendyron OnKey banking-token software) to load malicious DLLs — a hallmark of Chinese-nexus PlugX operators.
- Payload behavior: Stages and brokers second-stage implants: PlugX/Korplug (S0013), Sogu, Thoper, TVT, DestroyRAT, Kaba, WailingCrab, IOCONTROL. Functions as an access-management layer across both Windows and Linux — backend servers for mobile applications and legal/financial services platforms were observed compromised.
- C2 communication: MQTT pub/sub over broker infrastructure — C2 blends with legitimate IoT/telemetry traffic on standard MQTT ports (1883/8883). Observed broker endpoints include
chat5188.tkand the*.c2iznja.comcluster (api80,base64,live-hk,newdma,turbosubdomains). Thebase64.c2iznja.comhostname suggests Base64-encoded tasking channels. - Persistence: Sideloaded DLLs inherit persistence of the host application's scheduled tasks/services; PlugX-family implants typically register services or Run keys.
- Anti-analysis: Living-off-the-land execution via signed binaries; protocol choice (MQTT) evades HTTP/S-focused inspection stacks.
PeckBirdy (Infrastructure Operator)
- Distribution: Mass registration of algorithmically named domains (numeric
.com,.ccTLDs) behind bulletproof hosting. - Behavior: Operates laundering rails via casino deposit flows; scambling sites execute withdrawal fraud; overlapping infrastructure resurfaces in espionage-tasked activity.
- Defensive relevance: Domain-generation patterns (purely numeric second-level domains,
.cc/.tkTLD abuse) are high-fidelity detection pivots.
Fake MP4 → NetSupport Manager
- Distribution: PowerShell loader, Cloudflare-fronted delivery, fake MP4 lure (
tzast.mp4,333.mp4,55555555.mp4). - Payload behavior: Decrypts 6.5 MB blob from MP4
uuidboxes, installs NetSupport client for full remote control, file transfer, and screen capture — classic initial access preceding ransomware or data theft. - C2: NetSupport client beaconing over its native protocol; delivery infrastructure on
x2664.com,usersecuritycheck.com,approvalrequest-api.com,karlenagida.com, and raw IP89.34.90.111. - Anti-analysis: Encrypted payload never exists on disk in plaintext; valid container format defeats file-type gateways; Cloudflare fronting defeats IP reputation.
IOC Analysis
The three pulses expose 134 indicators dominated by network infrastructure:
- Domains/hostnames (majority): C2 and delivery domains. The BambooToken set shows infrastructure clustering — six subdomains under
c2iznja.comand API-numbered subdomains (api06.,api08.) underchat5188.tk. Clustered, role-labeled subdomains (api,base64,live-hk,turbo) indicate deliberate broker architecture — block the parent zones, not just enumerated subdomains. The PeckBirdy set shows bulk numeric registrations (11170011.com,843470.cc) — operationalize via pattern detection, not exact-match lists, since the 1.7M-domain corpus dwarfs the sample. - URLs: Direct payload retrieval paths ending in
.mp4. Hunt proxy logs for HTTP GETs to.mp4from non-browser user agents or immediately following PowerShell execution — theType:suffix artifact in several URL indicators suggests server-side content-negotiation logging and is itself a hunt string. - No file hashes in these pulses: Rely on behavioral detection (container analysis, PowerShell parentage) rather than hash matching.
Operationalization guidance:
- Ingest all domains into DNS sinkhole/proxy deny lists; alert on resolution attempts as high-fidelity compromise signals.
- For PeckBirdy-scale infrastructure, deploy regex/entropy-based detection on newly observed domains: purely numeric SLDs >6 digits, and
.tk/.ccTLDs with no organizational relationship. - Enrich hits against OTX pulse IDs to distinguish broker C2 (BambooToken — assume hands-on-keyboard) from commodity delivery (NetSupport — assume follow-on ransomware staging).
- Tooling:
yara+ffprobe/mp4boxfor container inspection (a >1MBuuidbox in an MP4 is anomalous);mqttprotocol decoders in Zeek/Suricata for non-standard MQTT destinations; Sigma/KQL below for endpoint telemetry.
Detection Engineering
---
title: BambooToken MQTT Command and Control to Known Broker Infrastructure
id: 7f2a1c4e-9b3d-4e5f-a1c2-b8d9e0f1a2b3
status: experimental
description: Detects outbound MQTT connections (ports 1883/8883) to known BambooToken broker domains associated with PlugX/Korplug infection brokering across Asia and South America.
references:
- https://www.lumen.com/blog/en-us/the-banana-stand-brokering-and-managing-infections-across-asia-using-mqtt
author: Security Arsenal Threat Intelligence
date: 2026/10/16
tags:
- attack.command_and_control
- attack.t1071
- attack.t1102
logsource:
category: network_connection
product: windows
detection:
selection_port:
DestinationPort:
- 1883
- 8883
selection_domain:
DestinationHostname|contains:
- 'c2iznja.com'
- 'chat5188.tk'
filter_legit_brokers:
DestinationHostname|contains:
- 'amazonaws.com' # tune to your approved IoT brokers
- 'azure-devices.net'
condition: selection_port and selection_domain and not filter_legit_brokers
falsepositives:
- Legitimate IoT telemetry to sanctioned MQTT brokers — maintain an allowlist of approved broker FQDNs
level: high
---
title: DLL Sideloading via Signed Tendyron OnKey or Legitimate Banking Token Binary
id: 8a3b2d5f-0c4e-5f6a-b2d3-c9e0f1a2b3c4
status: experimental
description: Detects DLL load events where a signed legitimate executable loads an unsigned or oddly-located DLL — consistent with PlugX/Korplug/BambooToken sideloading tradecraft including Tendyron OnKey abuse.
references:
- https://www.lumen.com/blog/en-us/the-banana-stand-brokering-and-managing-infections-across-asia-using-mqtt
author: Security Arsenal Threat Intelligence
date: 2026/10/16
tags:
- attack.defense_evasion
- attack.persistence
- attack.t1574.002
logsource:
category: image_load
product: windows
detection:
selection_unsigned:
Signed: 'false'
selection_path:
ImageLoaded|contains:
- '\AppData\'
- '\ProgramData\'
- '\Users\Public\'
- '\Temp\'
selection_parent_signed:
Signed: 'true'
condition: selection_unsigned and selection_path
falsepositives:
- Legitimate vendor updaters loading unsigned components — baseline by Image name
level: medium
---
title: Fake MP4 Container Retrieval Followed by PowerShell Execution — NetSupport RAT Chain
id: 9b4c3e6a-1d5f-6a7b-c3e4-d0f1a2b3c4d5
status: experimental
description: Detects PowerShell invoking web requests for .mp4 resources from known NetSupport delivery infrastructure or writing MP4 files to user-writable staging directories, per the Censys fake-MP4 NetSupport chain.
references:
- https://censys.com/blog/fake-mp4-file-carries-malicious-payload/
author: Security Arsenal Threat Intelligence
date: 2026/10/16
tags:
- attack.execution
- attack.t1059.001
- attack.t1105
- attack.t1036
logsource:
category: process_creation
product: windows
detection:
selection_img:
Image|endswith:
- '\powershell.exe'
- '\pwsh.exe'
selection_cli_download:
CommandLine|contains:
- 'Invoke-WebRequest'
- 'Invoke-RestMethod'
- 'DownloadFile'
- 'DownloadString'
- 'Start-BitsTransfer'
- 'curl.exe'
selection_cli_mp4:
CommandLine|contains:
- '.mp4'
- 'approvalrequest-api.com'
- 'usersecuritycheck.com'
- 'karlenagida.com'
- 'x2664.com'
- '89.34.90.111'
condition: selection_img and selection_cli_download and selection_cli_mp4
falsepositives:
- Rare — legitimate scripted video downloads; validate destination domain against allowlist
level: critical
// Security Arsenal — OTX Pulse Hunt: BambooToken MQTT C2 + Fake MP4 NetSupport Chain
// Covers: MQTT egress to broker domains, NetSupport delivery domains, .mp4 payload retrieval, sideloading staging
let Lookback = 7d;
let BambooTokenC2 = dynamic(["c2iznja.com","chat5188.tk","api80.c2iznja.com","base64.c2iznja.com","live-hk.c2iznja.com","newdma.c2iznja.com","turbo.c2iznja.com","api06.chat5188.tk","api08.chat5188.tk"]);
let NetSupportDelivery = dynamic(["x2664.com","usersecuritycheck.com","approvalrequest-api.com","karlenagida.com","89.34.90.111"]);
let ScamblingInfra = dynamic(["zzyud.com","11168833.com","11170011.com","1862.cc","312zym001.cc","80074.cc","843470.cc","am125.cc"]);
union isfuzzy=true
(DeviceNetworkEvents
| where TimeGenerated > ago(Lookback)
| where RemoteUrl has_any (BambooTokenC2) or RemoteUrl has_any (NetSupportDelivery) or RemoteUrl has_any (ScamblingInfra)
| extend Detection = "IOC Domain Resolution/Connection"
| project TimeGenerated, Detection, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine, RemoteUrl, RemoteIP, RemotePort),
(DeviceNetworkEvents
| where TimeGenerated > ago(Lookback)
| where RemotePort in (1883, 8883)
| where InitiatingProcessFileName !in~ ("mosquitto.exe","node.exe") // tune approved MQTT clients
| extend Detection = "MQTT Egress — Non-Standard Process"
| project TimeGenerated, Detection, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine, RemoteUrl, RemoteIP, RemotePort),
(DeviceNetworkEvents
| where TimeGenerated > ago(Lookback)
| where RemoteUrl endswith ".mp4" or RemoteIP == "89.34.90.111"
| where InitiatingProcessFileName in~ ("powershell.exe","pwsh.exe","cmd.exe","curl.exe","bitsadmin.exe")
| extend Detection = "Script-Process MP4 Retrieval (Fake MP4 Loader)"
| project TimeGenerated, Detection, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine, RemoteUrl, RemoteIP, RemotePort),
(DeviceProcessEvents
| where TimeGenerated > ago(Lookback)
| where FileName in~ ("powershell.exe","pwsh.exe")
| where ProcessCommandLine has_any ("DownloadFile","Invoke-WebRequest","Invoke-RestMethod","Start-BitsTransfer") and ProcessCommandLine has ".mp4"
| extend Detection = "PowerShell MP4 Download (NetSupport Chain)"
| project TimeGenerated, Detection, DeviceName, FileName, ProcessCommandLine, InitiatingProcessFileName, InitiatingProcessAccountName)
| order by TimeGenerated desc
# Security Arsenal — OTX IOC Hunt Script (BambooToken / PlugX / NetSupport)
# Run elevated on suspect endpoints or deploy fleet-wide via your EDR/SCCM.
# Checks: DNS cache for C2, MQTT connections, fake MP4 staging, persistence artifacts.
$ErrorActionPreference = 'SilentlyContinue'
$report = @()
$bambooC2 = @('c2iznja.com','chat5188.tk')
$netSupport = @('x2664.com','usersecuritycheck.com','approvalrequest-api.com','karlenagida.com')
$scambling = @('zzyud.com','11168833.com','11170011.com','1862.cc','312zym001.cc','80074.cc','843470.cc','am125.cc')
$allDomains = $bambooC2 + $netSupport + $scambling
Write-Host '[*] Checking DNS cache for C2 / delivery domains...' -ForegroundColor Cyan
$dnsCache = Get-DnsClientCache | Where-Object { $e = $_.Entry; $allDomains | Where-Object { $e -like "*$_*" } }
if ($dnsCache) { $dnsCache | ForEach-Object { $report += [pscustomobject]@{Check='DNS Cache'; Finding=$_.Entry; Data=$_.Data} } }
Write-Host '[*] Checking active MQTT (1883/8883) connections...' -ForegroundColor Cyan
$mqtt = Get-NetTCPConnection | Where-Object { $_.RemotePort -in 1883,8883 -and $_.State -eq 'Established' }
foreach ($c in $mqtt) {
$proc = Get-Process -Id $c.OwningProcess
$report += [pscustomobject]@{Check='MQTT Connection'; Finding="$($proc.ProcessName) -> $($c.RemoteAddress):$($c.RemotePort)"; Data=$proc.Path}
}
Write-Host '[*] Checking connections to NetSupport delivery IP...' -ForegroundColor Cyan
$ns = Get-NetTCPConnection | Where-Object { $_.RemoteAddress -eq '89.34.90.111' }
foreach ($c in $ns) {
$proc = Get-Process -Id $c.OwningProcess
$report += [pscustomobject]@{Check='NetSupport C2 IP'; Finding="$($proc.ProcessName) -> 89.34.90.111:$($c.RemotePort)"; Data=$proc.Path}
}
Write-Host '[*] Hunting staged fake MP4 payloads (>1MB in user-writable paths)...' -ForegroundColor Cyan
$paths = @("$env:PUBLIC","$env:TEMP","$env:APPDATA","$env:LOCALAPPDATA","$env:ProgramData")
foreach ($p in $paths) {
Get-ChildItem -Path $p -Recurse -Include *.mp4 -ErrorAction SilentlyContinue |
Where-Object { $_.Length -gt 1MB } |
ForEach-Object { $report += [pscustomobject]@{Check='Fake MP4 Staging'; Finding=$_.FullName; Data="$([math]::Round($_.Length/1MB,2)) MB"} }
}
Write-Host '[*] Checking NetSupport client artifacts (client32.exe)...' -ForegroundColor Cyan
@("$env:ProgramFiles\NetSupport","${env:ProgramFiles(x86)}\NetSupport","$env:APPDATA\NetSupport","$env:ProgramData\NetSupport") |
ForEach-Object { if (Test-Path $_) { $report += [pscustomobject]@{Check='NetSupport Install Dir'; Finding=$_; Data='Investigate client32.exe / client32.ini'} } }
Get-Process -Name client32 | ForEach-Object { $report += [pscustomobject]@{Check='NetSupport Running'; Finding='client32.exe'; Data=$_.Path} }
Write-Host '[*] Checking persistence (Run keys, services, scheduled tasks) for PlugX/sideload artifacts...' -ForegroundColor Cyan
$runKeys = @('HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run',
'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Run',
'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run')
foreach ($rk in $runKeys) {
Get-ItemProperty -Path $rk | ForEach-Object {
$_.PSObject.Properties | Where-Object { $_.Value -match 'AppData|ProgramData|Temp|client32|rundll32.*dll' } |
ForEach-Object { $report += [pscustomobject]@{Check='Run Key Persistence'; Finding="$rk\$($_.Name)"; Data=$_.Value} }
}
}
Get-ScheduledTask | Where-Object { $_.Actions.Execute -match 'powershell|client32|rundll32' -and $_.TaskPath -notlike '\Microsoft\*' } |
ForEach-Object { $report += [pscustomobject]@{Check='Scheduled Task'; Finding=$_.TaskName; Data=$_.Actions.Execute} }
Write-Host "`n[+] Hunt complete. $($report.Count) findings." -ForegroundColor Green
$report | Format-Table -AutoSize
$report | Export-Csv -Path "$env:TEMP\otx_hunt_$(Get-Date -Format yyyyMMdd_HHmm).csv" -NoTypeInformation
Response Priorities
Immediate (0–4 hours)
- Block all 134 indicators at DNS, proxy, and egress firewall. For
c2iznja.comandchat5188.tk, block parent zones — the broker architecture implies unenumerated subdomains exist. - Alert on MQTT egress (TCP 1883/8883) to any non-allowlisted destination. BambooToken's C2 is invisible to HTTP-focused inspection; this port-based rule is your highest-fidelity net.
- Deploy the KQL hunt across 7 days of telemetry; triage any
.mp4retrieval by script interpreters as critical. - Sweep endpoints with the PowerShell hunt script, prioritizing finance, government, and APAC-region assets.
24 Hours
- Any host with a BambooToken/PlugX-family hit: assume full credential compromise. Force resets for all accounts that authenticated from the host, revoke tokens/sessions, and review lateral movement from that host over the preceding 30 days (PlugX operators dwell long).
- NetSupport RAT findings: treat as pre-ransomware staging. Hunt for follow-on tooling (AnyDesk, PsExec, Cobalt Strike beacons), review privileged account usage, and validate backup integrity.
- Review DLP/proxy logs for data staged to MQTT channels or the delivery domains — infection brokers monetize access quickly.
1 Week
- Egress architecture: Enforce protocol-aware egress filtering — deny MQTT to the internet except via a brokered, authenticated gateway. Legitimate IoT telemetry should transit controlled infrastructure, not direct-from-endpoint.
- Application control: Block DLL sideloading via WDAC/AppLocker rules preventing unsigned DLL loads from user-writable paths; specifically inventory and constrain Tendyron OnKey and similar banking-token software in finance environments.
- Media container validation: For gateways that inspect attachments, add ISO-BMFF structural analysis — flag MP4s with oversized
uuidboxes or no media tracks. - Newly registered domain (NRD) policy: Apply aggressive scoring/blocking to NRDs matching PeckBirdy patterns (numeric SLDs,
.tk/.ccbulk registrations) at the proxy. - PowerShell hardening: Enforce Constrained Language Mode and script block logging fleet-wide; the NetSupport chain dies without unrestricted PowerShell.
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.