Classification: TLP:WHITE | Pulse Date: 2026-10-28 | Category: APT & Nation-State Campaign Intelligence
Threat Summary
Three concurrent OTX pulses paint a picture of a threat landscape dominated by edge-device exploitation, supply-chain-adjacent social engineering, and rapid weaponization of public exploit code.
Pulse 1 — Operation Master (attributed to "masterblack") is the most strategically significant. This multi-tiered intrusion and monetization pipeline compromised enterprise networks across 16 countries and 7 industry verticals (Energy, Finance, Healthcare, Technology, Education, Retail, Telecommunications). The operation demonstrates industrial-scale target curation: adversaries scanned 277.5 million IP addresses to distill just 81 high-value targets, then gained initial access via a GlobalProtect authentication bypass (CVE-2026-0257). Post-exploitation leveraged SQL injection with xp_cmdshell to exfiltrate databases from 9+ instances, deployed the AdaptixC2 post-exploitation framework, and monetized access through a multi-tenant phishing platform supporting invoice fraud and OAuth device-code phishing. DNS tunneling was used for covert C2 egress. The CVE indicator list (CVE-2022-40684, CVE-2024-1086, CVE-2021-4034, CVE-2023-7028, CVE-2021-36260) shows a full kill chain from edge compromise through Linux privilege escalation.
Pulse 2 documents a credential-harvesting campaign via malicious Firefox extensions impersonating the Phantom, Jupiter, and Bitget cryptocurrency wallets. The extensions use Unicode homoglyph spoofing to mimic legitimate wallet names, harvest recovery seed phrases and private keys, and exfiltrate them to brand-named subdomains of bonto[.]io (e.g., phantom.bonto.io). A two-stage loader fetches additional payloads post-install.
Pulse 3 — PHP2Shell Havoc covers in-the-wild mass exploitation of CVE-2026-109618 and CVE-2026-109619, twin use-after-free flaws (CVSS 9.2) in PHP's session.upload_progress feature. Critically, the flaws trigger during multipart request parsing before application code executes, which means they bypass WAF inspection and yield unauthenticated remote code execution. Within 48 hours of the October 21, 2026 patch, UNC actors were exploiting public infrastructure (government, education, healthcare, NGOs), deploying Mirai botnet payloads and Keitaro traffic-direction infrastructure, alongside WordPress LFI scanning.
Collectively: edge and application-layer vulnerabilities remain the primary initial access vector, and the time-to-weaponization for critical RCEs has collapsed to under 48 hours. Credential theft operations are simultaneously targeting the browser layer where enterprise MFA controls are weakest.
Threat Actor / Malware Profile
masterblack / Operation Master
- Distribution / Initial Access: CVE-2026-0257 (Palo Alto GlobalProtect auth bypass); supplementary exploitation of Fortinet (CVE-2022-40684), GitLab (CVE-2023-7028), and Hikvision (CVE-2021-36260) devices; Ghostcat AJP (CVE-2020-1938) and Veritas (CVE-2022-28368).
- Payload Behavior: AdaptixC2 beacon deployment for hands-on-keyboard post-exploitation; database theft via SQL injection abusing MSSQL
xp_cmdshell; credential harvesting feeding a multi-tenant phishing and invoice-fraud monetization platform. - C2 Communication: DNS tunneling for low-and-slow egress; OAuth device-code phishing for persistent cloud identity access that survives password resets.
- Persistence: Compromised VPN/edge device access, stolen OAuth refresh tokens, webshells on application servers.
- Privilege Escalation: PwnKit (CVE-2021-4034) and nf_tables (CVE-2024-1086) for Linux local root.
Firefox Wallet Impersonators
- Distribution: Mozilla Add-ons ecosystem (or sideloaded) using Unicode homoglyph names visually identical to Phantom, Jupiter, and Bitget.
- Payload Behavior: Two-stage architecture — a loader extension fetches the theft module from
https://phantom.bonto.io/config; intercepts and exfiltrates seed phrases and private keys at wallet-unlock time. - C2: HTTPS POSTs to brand-specific subdomains (
phantom.bonto.io,jupiter.bonto.io,bitget.bonto.io) — blending with legitimate TLS traffic. - Anti-Analysis: Staged payload delivery keeps the static extension package clean at review time; homoglyph names defeat casual visual inspection.
PHP2Shell (CVE-2026-109618 / CVE-2026-109619)
- Distribution: Public exploit code; mass scanning of internet-facing PHP applications, WordPress instances, government/education/NGO infrastructure.
- Payload Behavior: Pre-application-code RCE via crafted multipart requests abusing
session.upload_progress; post-exploitation drops Mirai (botnet/DDoS conscription) and Keitaro (TDS for traffic monetization and malvertising). - Anti-Analysis: Exploitation occurs below the application layer, evading WAFs and many application-level logging controls; infrastructure hosted on domains like
the-trust.org.ukandbloodmoonstudios.netmasquerading as legitimate organizations.
IOC Analysis
| Indicator Type | Examples | Operationalization |
|---|---|---|
| Hostnames/Domains (C2 & exfil) | phantom.bonto.io, jupiter.bonto.io, bitget.bonto.io, the-trust.org.uk, bloodmoonstudios.net, thunder.godofthunder.st | DNS sinkhole/block at resolver and proxy; retroactive DNS log sweep (90 days) |
| IPv4 (exploit/C2 infra) | 41.223.30.7, 206.188.197.105 | Egress block at firewall; NetFlow review for beaconing cadence |
| URLs (stager endpoints) | https://phantom.bonto.io/config | Proxy block; hunt proxy logs for extension fetch patterns |
| FileHash-SHA256 | 311c49974f28d33947b8b74d78b48f51855eacac182d519a4fe1daa6af7f30e9 | EDR hash block; sweep browser profile/extension directories |
| CVEs | CVE-2026-0257, CVE-2026-109618/9, CVE-2022-40684, CVE-2024-1086, CVE-2021-4034 | Vulnerability scanner import; emergency patch validation on VPN edge and PHP fleets |
Tooling: Import pulses into your TIP (OpenCTI, MISP, ThreatConnect) via the OTX DirectConnect API; decode and pivot with otx-python, AbuseIPDB/Shodan for IP reputation, and urlscan.io for the bonto.io subdomains. For AdaptixC2, use YARA rules from the SOCRadar reference and fingerprint DNS tunneling via query-length/entropy analysis in Zeek or your DNS analytics layer.
Detection Engineering
---
title: AdaptixC2 Operation Master - xp_cmdshell Database Exfiltration
id: 8f3a1c2e-7b41-4d9a-a2f6-3e5c9d1b0001
status: experimental
description: Detects enabling and execution of xp_cmdshell on MSSQL, used in Operation Master for database theft and command execution following SQL injection.
author: Security Arsenal Threat Intel
date: 2026/10/28
references:
- https://socradar.io/blog/operation-master-intrusion-monetization-pipeline
logsource:
category: process_creation
product: windows
detection:
selection_parent:
ParentImage|endswith: '\sqlservr.exe'
selection_img:
Image|endswith:
- '\cmd.exe'
- '\powershell.exe'
- '\pwsh.exe'
- '\certutil.exe'
- '\bitsadmin.exe'
selection_cli:
CommandLine|contains:
- 'xp_cmdshell'
- 'sp_configure'
condition: selection_parent and (selection_img or selection_cli)
falsepositives:
- Legitimate DBA maintenance scripts executed interactively
level: high
tags:
- attack.execution
- attack.t1059
- attack.t1005
---
title: Malicious Firefox Extension C2 - bonto.io Crypto Wallet Exfiltration
id: 8f3a1c2e-7b41-4d9a-a2f6-3e5c9d1b0002
status: experimental
description: Detects Firefox processes communicating with bonto.io subdomains used to exfiltrate stolen cryptocurrency seed phrases and private keys.
author: Security Arsenal Threat Intel
date: 2026/10/28
references:
- https://socket.dev/blog/firefox-wallet-impersonators
logsource:
category: dns
product: windows
detection:
selection:
QueryName|endswith: '.bonto.io'
filter_legit:
QueryName: 'bonto.io'
condition: selection and not filter_legit
falsepositives:
- Unlikely; bonto.io subdomains in this campaign have no legitimate enterprise use
level: critical
tags:
- attack.exfiltration
- attack.t1041
- attack.t1071.001
---
title: PHP2Shell Exploitation - PHP Process Spawning Shell (CVE-2026-109618/9)
id: 8f3a1c2e-7b41-4d9a-a2f6-3e5c9d1b0003
status: experimental
description: Detects php-cgi/php-fpm or web server processes spawning shells or downloaders, consistent with pre-application RCE via session.upload_progress use-after-free exploitation.
author: Security Arsenal Threat Intel
date: 2026/10/28
references:
- https://akatsukilegion.com/post.php?slug=php2shell-cve-2026-109618-9-havoc-unc-actors-leveraging-public-exploit-code-against-public-business-and-educational-infrastructure
logsource:
category: process_creation
product: linux
detection:
selection_parent:
ParentImage|endswith:
- '/php-cgi'
- '/php-fpm'
- '/php'
- '/apache2'
- '/httpd'
- '/nginx'
selection_child:
Image|endswith:
- '/sh'
- '/bash'
- '/dash'
- '/curl'
- '/wget'
- '/python3'
- '/perl'
condition: selection_parent and selection_child
falsepositives:
- Legacy PHP applications invoking shell via exec()/system() for image processing or backups
level: high
tags:
- attack.execution
- attack.t1059.004
- attack.t1190
// Security Arsenal — Operation Master / PHP2Shell / bonto.io multi-campaign hunt
// Coverage: C2 egress, PHP exploit child processes, SQLi xp_cmdshell, DNS tunneling
let Lookback = 14d;
let MalDns = dynamic(["phantom.bonto.io","jupiter.bonto.io","bitget.bonto.io","the-trust.org.uk","bloodmoonstudios.net","thunder.godofthunder.st"]);
let MalIPs = dynamic(["41.223.30.7","206.188.197.105"]);
let NetHits =
DeviceNetworkEvents
| where Timestamp > ago(Lookback)
| where RemoteUrl has_any (MalDns) or RemoteIP in~ (MalIPs)
| project Timestamp, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine, RemoteIP, RemoteUrl, RemotePort
| extend Hunt = "C2/Exfil Network Hit";
let ProcHits =
DeviceProcessEvents
| where Timestamp > ago(Lookback)
| where (InitiatingProcessFileName in~ ("php-cgi.exe","php-fpm","php.exe","httpd.exe","apache2","nginx.exe")
and FileName in~ ("cmd.exe","powershell.exe","sh","bash","curl","wget"))
or ProcessCommandLine has_any ("xp_cmdshell","sp_configure")
or ProcessCommandLine has_any ("session.upload_progress","multipart/form-data")
| project Timestamp, DeviceName, FileName, ProcessCommandLine, InitiatingProcessFileName, InitiatingProcessCommandLine
| extend Hunt = "Exploit/SQLi Process Artifact";
let DnsTunnel =
DeviceNetworkEvents
| where Timestamp > ago(Lookback) and RemotePort == 53
| where InitiatingProcessFileName !in~ ("svchost.exe","dns.exe","systemd-resolved")
| summarize QueryCount = count() by DeviceName, InitiatingProcessFileName, bin(Timestamp, 1h)
| where QueryCount > 500
| extend Hunt = "Possible DNS Tunneling (high-volume anomalous resolver)";
union NetHits, ProcHits, DnsTunnel
| sort by Timestamp desc
# Security Arsenal — Multi-Campaign IOC & Artifact Hunt (Run as Admin, domain-wide via GPO/Intune/EDR)
$report = @()
$malDomains = @("phantom.bonto.io","jupiter.bonto.io","bitget.bonto.io","the-trust.org.uk","bloodmoonstudios.net","thunder.godofthunder.st")
$malIPs = @("41.223.30.7","206.188.197.105")
$malHash = "311c49974f28d33947b8b74d78b48f51855eacac182d519a4fe1daa6af7f30e9"
Write-Host "[1/6] DNS cache sweep for exfil/C2 domains..." -ForegroundColor Cyan
$dns = Get-DnsClientCache -ErrorAction SilentlyContinue | Where-Object { $d = $_.Entry; $malDomains | Where-Object { $d -like "*$_*" } }
if ($dns) { $report += "DNS HIT: $($dns | Out-String)" }
Write-Host "[2/6] Active & logged connections to malicious IPs..." -ForegroundColor Cyan
$conns = Get-NetTCPConnection -ErrorAction SilentlyContinue | Where-Object { $malIPs -contains $_.RemoteAddress }
if ($conns) { $report += "NETCONN HIT: $($conns | Select-Object LocalPort,RemoteAddress,State,OwningProcess | Out-String)" }
Write-Host "[3/6] Firefox extension sweep (wallet impersonators / homoglyphs)..." -ForegroundColor Cyan
Get-ChildItem "C:\Users\*\AppData\Roaming\Mozilla\Firefox\Profiles\*\extensions" -ErrorAction SilentlyContinue | ForEach-Object {
Get-ChildItem $_.FullName -Filter *.xpi -ErrorAction SilentlyContinue | ForEach-Object {
$h = (Get-FileHash $_.FullName -Algorithm SHA256 -ErrorAction SilentlyContinue).Hash
if ($h -eq $malHash -or $_.Name -match 'phantom|jupiter|bitget') {
$report += "EXT HIT: $($_.FullName) SHA256=$h"
}
}
}
Write-Host "[4/6] Webshell & AdaptixC2 staging artifact check..." -ForegroundColor Cyan
$suspectPaths = @("C:\inetpub\wwwroot","C:\xampp\htdocs","C:\ProgramData\Microsoft\Crypto","$env:TEMP")
foreach ($p in $suspectPaths) {
Get-ChildItem $p -Recurse -Include *.php,*.aspx,*.jsp,*.exe -ErrorAction SilentlyContinue |
Where-Object { $_.LastWriteTime -gt (Get-Date).AddDays(-21) } |
ForEach-Object { $report += "RECENT WEBROOT/STAGING FILE: $($_.FullName) ($($_.LastWriteTime))" }
}
Write-Host "[5/6] MSSQL xp_cmdshell enablement check (registry)..." -ForegroundColor Cyan
$sqlKeys = Get-ChildItem "HKLM:\SOFTWARE\Microsoft\Microsoft SQL Server" -Recurse -ErrorAction SilentlyContinue |
Where-Object { $_.Property -match 'xp_cmdshell' }
if ($sqlKeys) { $report += "SQL REG REVIEW: $($sqlKeys | Out-String)" }
Write-Host "[6/6] Persistence sweep — suspicious scheduled tasks & run keys (30d)..." -ForegroundColor Cyan
Get-ScheduledTask -ErrorAction SilentlyContinue | Where-Object {
$_.Actions.Execute -match 'powershell|cmd|wscript|mshta|curl' -and $_.Date -gt (Get-Date).AddDays(-30)
} | ForEach-Object { $report += "TASK REVIEW: $($_.TaskName) -> $($_.Actions.Execute) $($_.Actions.Arguments)" }
if ($report.Count -gt 0) {
$report | Out-File "$env:TEMP\arsenal_hunt_$(Get-Date -Format 'yyyyMMdd_HHmm').txt"
Write-Host "[!] FINDINGS — review report in $env:TEMP" -ForegroundColor Red
$report | ForEach-Object { Write-Host $_ -ForegroundColor Yellow }
} else {
Write-Host "[+] No campaign artifacts found on this host." -ForegroundColor Green
}
Response Priorities
Immediate (0–4 hours)
- Block all
bonto[.]iosubdomains,the-trust.org.uk,bloodmoonstudios.net,thunder.godofthunder.st, and IPs41.223.30.7/206.188.197.105at DNS resolver, proxy, and egress firewall. - Emergency-patch validation on all internet-facing GlobalProtect portals (CVE-2026-0257) and PHP fleets (CVE-2026-109618/9). If patching is not complete, take vulnerable PHP applications behind an allow-list or offline — WAF rules alone are insufficient given the pre-application-code trigger.
- Hunt with the KQL and PowerShell above; sweep 90 days of DNS logs for bonto.io and DNS-tunneling anomalies on VPN-adjacent segments.
24 Hours
- Credential & wallet response: Force seed-phrase rotation guidance for any user with the malicious Firefox extensions installed; treat associated wallets as fully compromised. For Operation Master victims, reset all credentials on systems reachable from SQL-injected databases and revoke OAuth refresh tokens — device-code phishing persistence survives password resets.
- Ediscovery on SQL servers: audit
xp_cmdshellenablement history and MSSQL error logs for injection artifacts across the 9+ database-theft TTP pattern. - Browser extension inventory: enumerate all Firefox/Chrome extensions enterprise-wide; enforce an allow-list policy via GPO/MDM.
1 Week
- Architecture hardening: segment VPN concentrators from internal database tiers; enforce egress filtering so only approved resolvers can issue external DNS (kills DNS tunneling); deploy PHP-FPM process-isolation and disable
session.upload_progresswhere not required. - Detect-in-depth: productionize the Sigma rules above; add Zeek/Suricata analytics for DNS entropy and AdaptixC2 beaconing cadence.
- Patch velocity SLA: the PHP2Shell pulse proves sub-48-hour weaponization — move CVSS 9+ internet-facing RCEs into an emergency change lane measured in hours, not sprint cycles.
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.