Threat Summary
An AlienVault OTX pulse published on 2026-09-15 exposes an active intrusion campaign against 3BB (Triple T Broadband), one of Thailand's largest telecommunications providers. The campaign was discovered when researchers located an open/exposed directory on attacker infrastructure containing operational artifacts from the compromise.
The attack chain is a textbook example of the modern edge-device intrusion playbook:
- Initial Access: Exploitation of CVE-2024-21762, a critical out-of-bounds write vulnerability (CVSS 9.6) in FortiGate SSL-VPN, against a FortiGate 60F appliance. This vulnerability allows unauthenticated remote code execution via crafted HTTP requests and has been widely exploited since its disclosure in February 2024.
- Persistence & C2: Deployment of MeshCentral, a legitimate open-source remote monitoring and management (RMM) platform, repurposed as a covert command-and-control channel. The attacker registered agent subdomains mimicking the victim's own infrastructure (
agent.3bb.co.th), indicating either DNS hijacking capability, control of a victim DNS zone, or convincing lookalike infrastructure. - Reconnaissance & Credential Access: The truncated pulse description references "extensive reconnaissance, cred[ential access]" — consistent with telecom-targeting operations seeking subscriber data, RADIUS/LDAP credentials, and lateral movement paths into ISP core systems.
Objective assessment: Telecommunications providers are high-value targets for espionage-motivated actors and initial access brokers alike. ISP-level access enables traffic interception, subscriber data harvesting, and downstream supply-chain positioning against the provider's enterprise customers. The use of legitimate RMM tooling rather than commodity malware suggests an operator prioritizing stealth and long-term dwell time over smash-and-grab monetization.
Threat Actor / Malware Profile
Attribution: Unknown. No named APT cluster or malware family is assigned in this pulse. However, the tradecraft profile — FortiGate edge exploitation + living-off-the-land RMM persistence against Southeast Asian telecom — aligns with patterns observed across multiple China-nexus clusters and access brokers operating in the region.
CVE-2024-21762 (Initial Access Vector)
- Type: Out-of-bounds write in
sslvpnd(FortiOS SSL-VPN daemon) - Impact: Unauthenticated remote code execution as root on the FortiGate appliance
- Affected: FortiOS 7.4.0–7.4.2, 7.2.0–7.2.6, 7.0.0–7.0.13, 6.4.0–6.4.14, 6.2.0–6.2.15, 6.0 all versions
- Delivery: Crafted HTTP requests to the SSL-VPN interface; no authentication or user interaction required
MeshCentral (Persistence / C2)
- Nature: Legitimate open-source RMM — this is RMM abuse, not malware in the traditional sense
- Distribution method: Post-exploitation deployment via the compromised FortiGate, likely pushed to internal hosts after initial foothold
- Payload behavior: MeshAgent installs as a service, providing full remote desktop, file transfer, terminal access, and tunneling — a complete C2 capability wrapped in signed, legitimate code
- C2 communication: HTTPS/WebSocket (TLS) to MeshCentral server on port 443; blends with normal web traffic. In this campaign, the attacker used victim-impersonating hostnames (
agent.3bb.co.th) to make agent check-ins appear as internal traffic - Persistence mechanism: Windows service installation (
Mesh Agentservice), registry Run keys, and self-updating agent binaries - Anti-analysis: No packing or obfuscation needed — the tool is legitimate software. Detection must be behavioral: unauthorized RMM tooling is the signal, not the binary itself. MeshAgent is rarely on application allowlists in telecom/enterprise environments
IOC Analysis
The pulse contains 10 indicators across three types:
| Type | Indicators | Operationalization |
|---|---|---|
| CVE | CVE-2024-21762 | Not a blockable IOC — drive patch/vuln management validation and retro-hunting for exploitation artifacts (sslvpnd crashes, anomalous HTTP POSTs) |
| IPv4 (attacker/infra) | 92.63.180.133 | Block at egress; retro-hunt NetFlow/proxy/firewall logs for any session. This range (92.63.180.0/24) has prior abuse history — consider subnet-level scrutiny |
| IPv4 (victim-side 3BB space) | 110.164.129.67, 110.164.192.228, 110.164.58.195 | These are 3BB-owned addresses — likely compromised hosts or observed infrastructure. Do NOT blindly block if you peer with Thai telecom; treat as hunt targets and watch for inbound connections from them |
| Hostname | mail.3bb.co.th, agent.3bb.co.th, www.ayuthayatech.com | agent.3bb.co.th is the critical indicator — resolve-check your DNS logs for this and any agent.* subdomain pattern. ayuthayatech.com appears to be attacker-registered or compromised staging infrastructure — block and hunt |
SOC operationalization guidance:
- Ingest IPv4s into firewall/EDR blocklists with 90-day expiry and alerting on any historical hit
- DNS-sinkhole or alert on
agent.3bb.co.thandwww.ayuthayatech.com; more importantly, hunt for any MeshCentral agent traffic in your environment (default ports 443/4430, TLS SNI patterns,meshagents.comrelay infrastructure) - For CVE indicators, cross-reference your asset inventory: any FortiGate 60F (or any FortiOS in affected ranges) with SSL-VPN enabled that was unpatched after Feb 2024 requires compromise assessment, not just patching — patching does not evict an implanted actor
- Tooling: OTX indicators can be pulled via the OTXv2 Python SDK or DirectConnect API into your SIEM/TIP (MISP, OpenCTI, ThreatConnect). Feed hostnames into passive DNS (SecurityTrails, PassiveTotal) to enumerate the full MeshCentral server footprint
Detection Engineering
---
title: FortiGate SSL-VPN CVE-2024-21762 Exploitation Attempt
id: 8f2a1c4d-7e3b-4a9f-b1c2-9d5e6f7a8b9c
status: experimental
description: Detects exploitation attempts against FortiGate SSL-VPN via CVE-2024-21762 patterns — oversized/crafted HTTP requests to sslvpnd endpoints, followed by anomalous process spawning on the appliance or crash artifacts.
author: Security Arsenal Threat Intelligence
date: 2026/09/15
references:
- https://hunt.io/blog/thai-broadband-fortigate-sslvpn-meshcentral-intrusion
- https://www.fortiguard.com/psirt/FG-IR-24-015
logsource:
category: webserver
product: fortigate
detection:
selection_uri:
cs_uri|contains:
- '/remote/hostcheck_validate'
- '/remote/info'
- '/remote/logincheck'
- '/sslvpn/portal/'
selection_size:
Content_Length|gte: 1500
selection_method:
cs_method: 'POST'
condition: selection_uri and selection_size and selection_method
falsepositives:
- Legitimate SSL-VPN authentication flows (filter known-good client source ranges)
level: high
tags:
- attack.initial_access
- attack.t1190
- cve.2024-21762
---
title: MeshCentral RMM Agent Installation and Execution
id: 3b7d9e1f-2a4c-4d8e-9f0a-1b2c3d4e5f6a
status: experimental
description: Detects installation or execution of MeshCentral MeshAgent — legitimate RMM tooling abused for covert C2, as observed in the 3BB telecom intrusion. Alerts on service installation, binary execution, and characteristic child process behavior.
author: Security Arsenal Threat Intelligence
date: 2026/09/15
references:
- https://hunt.io/blog/thai-broadband-fortigate-sslvpn-meshcentral-intrusion
logsource:
category: process_creation
product: windows
detection:
selection_img:
- Image|endswith:
- '\MeshAgent.exe'
- '\meshagent64.exe'
- '\meshagent32.exe'
- OriginalFileName: 'MeshAgent.exe'
selection_service:
ParentImage|endswith: '\services.exe'
CommandLine|contains: 'mesh'
condition: selection_img or selection_service
falsepositives:
- Organizations legitimately using MeshCentral for IT management (maintain an approved-server allowlist and alert on deviations)
level: high
tags:
- attack.command_and_control
- attack.t1219
- attack.persistence
- attack.t1543.003
---
title: Outbound Connection to Known 3BB Intrusion Infrastructure
id: 5c1e8a2b-6d3f-4b7a-8c9d-0e1f2a3b4c5d
status: experimental
description: Detects DNS resolution or network connections to infrastructure identified in the OTX pulse covering the Thai broadband FortiGate/MeshCentral intrusion.
author: Security Arsenal Threat Intelligence
date: 2026/09/15
references:
- https://hunt.io/blog/thai-broadband-fortigate-sslvpn-meshcentral-intrusion
logsource:
category: dns
detection:
selection:
query|contains:
- 'agent.3bb.co.th'
- 'www.ayuthayatech.com'
condition: selection
falsepositives:
- Unlikely outside of research/threat hunting activity
level: critical
tags:
- attack.command_and_control
- attack.t1071.001
// Hunt: MeshCentral RMM abuse + 3BB intrusion IOCs (Microsoft Sentinel / Defender XDR)
// Looks for MeshAgent execution, connections to pulse IOCs, and unexpected RMM-style TLS egress
let Lookback = 30d;
let SuspiciousIPs = dynamic(["92.63.180.133", "110.164.129.67", "110.164.192.228", "110.164.58.195"]);
let SuspiciousHosts = dynamic(["agent.3bb.co.th", "www.ayuthayatech.com", "mail.3bb.co.th"]);
let NetworkHits =
DeviceNetworkEvents
| where Timestamp > ago(Lookback)
| where RemoteIP in (SuspiciousIPs) or RemoteUrl has_any (SuspiciousHosts)
| project Timestamp, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine,
RemoteIP, RemoteUrl, RemotePort, ActionType
| extend Detection = "IOC Network Match";
let MeshAgentExec =
DeviceProcessEvents
| where Timestamp > ago(Lookback)
| where FileName has_any ("MeshAgent", "meshagent64", "meshagent32")
or ProcessCommandLine has_any ("meshcentral", "MeshAgent.exe")
| project Timestamp, DeviceName, FileName, ProcessCommandLine, FolderPath,
InitiatingProcessFileName, AccountName
| extend Detection = "MeshCentral Agent Execution";
let MeshServiceInstall =
DeviceEvents
| where Timestamp > ago(Lookback)
| where ActionType == "ServiceInstalled"
| where AdditionalFields has "mesh"
| project Timestamp, DeviceName, FileName, AdditionalFields
| extend Detection = "Mesh Service Installed";
union NetworkHits, MeshAgentExec, MeshServiceInstall
| sort by Timestamp desc
# ============================================================
# Hunt Script: FortiGate/MeshCentral Intrusion Artifacts
# Checks for MeshAgent services, persistence, IOC connections
# Run elevated on Windows endpoints/servers
# ============================================================
$Report = @()
# --- 1. MeshCentral agent services and processes ---
$meshServices = Get-CimInstance Win32_Service -ErrorAction SilentlyContinue |
Where-Object { $_.Name -match 'mesh' -or $_.PathName -match 'MeshAgent' }
foreach ($svc in $meshServices) {
$Report += [pscustomobject]@{
Category = 'Suspicious Service'
Finding = "$($svc.Name) | $($svc.State) | $($svc.PathName)"
Host = $env:COMPUTERNAME
}
}
$meshProcs = Get-Process -ErrorAction SilentlyContinue |
Where-Object { $_.ProcessName -match 'meshagent' }
foreach ($p in $meshProcs) {
$Report += [pscustomobject]@{
Category = 'Running MeshAgent Process'
Finding = "$($p.ProcessName) PID=$($p.Id) Path=$($p.Path)"
Host = $env:COMPUTERNAME
}
}
# --- 2. Persistence: Run keys and scheduled tasks referencing Mesh ---
$runPaths = @('HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run',
'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run')
foreach ($path in $runPaths) {
if (Test-Path $path) {
(Get-ItemProperty $path).PSObject.Properties |
Where-Object { $_.Value -match 'meshagent|meshcentral' } |
ForEach-Object {
$Report += [pscustomobject]@{
Category = 'Registry Persistence'
Finding = "$path :: $($_.Name) = $($_.Value)"
Host = $env:COMPUTERNAME
}
}
}
}
Get-ScheduledTask -ErrorAction SilentlyContinue |
Where-Object { ($_.Actions.Execute -match 'mesh') -or ($_.TaskName -match 'mesh') } |
ForEach-Object {
$Report += [pscustomobject]@{
Category = 'Scheduled Task Persistence'
Finding = "$($_.TaskName) -> $($_.Actions.Execute)"
Host = $env:COMPUTERNAME
}
}
# --- 3. Network connections to OTX pulse IOCs ---
$badIPs = @('92.63.180.133','110.164.129.67','110.164.192.228','110.164.58.195')
$badFqdn = @('agent.3bb.co.th','www.ayuthayatech.com','mail.3bb.co.th')
Get-NetTCPConnection -State Established -ErrorAction SilentlyContinue |
Where-Object { $badIPs -contains $_.RemoteAddress } |
ForEach-Object {
$proc = (Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue).ProcessName
$Report += [pscustomobject]@{
Category = 'IOC Network Connection (ACTIVE)'
Finding = "$($_.RemoteAddress):$($_.RemotePort) via $proc"
Host = $env:COMPUTERNAME
}
}
foreach ($fqdn in $badFqdn) {
try {
$r = Resolve-DnsName $fqdn -ErrorAction Stop
$Report += [pscustomobject]@{
Category = 'IOC DNS Resolution'
Finding = "$fqdn resolves: $($r.IPAddress -join ',')"
Host = $env:COMPUTERNAME
}
} catch {}
}
# --- 4. MeshAgent install directories ---
$meshDirs = @("$env:ProgramFiles\Mesh Agent", "${env:ProgramFiles(x86)}\Mesh Agent",
"$env:ProgramData\MeshAgent", "$env:windir\Temp\mesh")
foreach ($d in $meshDirs) {
if (Test-Path $d) {
$Report += [pscustomobject]@{
Category = 'MeshAgent Directory Found'
Finding = $d
Host = $env:COMPUTERNAME
}
}
}
if ($Report.Count -eq 0) {
Write-Output "[CLEAN] No MeshCentral/IOC artifacts found on $env:COMPUTERNAME"
} else {
$Report | Format-Table -AutoSize
$Report | Export-Csv -Path ".\mesh_hunt_$env:COMPUTERNAME.csv" -NoTypeInformation
Write-Warning "$($Report.Count) suspicious artifact(s) found. CSV exported."
}
Response Priorities
Immediate (0–4 hours)
- Block
92.63.180.133,www.ayuthayatech.com, andagent.3bb.co.that egress firewall, DNS, and proxy layers - Inventory check: Identify every FortiGate appliance in your environment running affected FortiOS versions with SSL-VPN enabled. If unpatched during the Feb 2024+ exploitation window, treat as potentially compromised, not merely vulnerable
- Hunt for MeshAgent execution using the KQL and PowerShell above — any RMM tool not on your approved software list is an incident by default
- Pull retro NetFlow/proxy data for all 10 pulse IOCs going back at least 90 days
24 Hours
- The pulse references credential access activity: force password resets for any accounts that authenticated through the compromised SSL-VPN, prioritizing privileged/VPN admin accounts
- Review FortiGate local and LDAP-bound admin accounts for unauthorized additions; check for rogue admin sessions and config exports (
execute backup full-configevents) - Audit SSL-VPN session logs for anomalous source geographies, impossible-travel patterns, and sessions coinciding with patch-window gaps
- Validate VPN MFA enforcement — stolen credentials are worthless to the actor if second-factor is enforced and session tokens are revoked
1 Week
- Architecture hardening: Place FortiGate management interfaces behind a dedicated management VLAN unreachable from user segments; disable SSL-VPN if not business-required (IPsec or ZTNA alternatives carry a smaller exploit surface)
- Implement application allowlisting for RMM tooling: explicitly permit only your sanctioned platform (e.g., your actual RMM), alert on all others — TeamViewer, AnyDesk, MeshCentral, ScreenConnect, Atera, Splashtop
- Deploy TLS inspection or JA3/JA4 fingerprinting on egress to catch RMM check-ins that blend into port 443
- Establish an edge-device compromise-assessment runbook: patching a firewall after public exploit availability must automatically trigger artifact review, not closure of the ticket
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.