Remote Access Tool Forensics: AnyDesk, TeamViewer and More
Investigate abused RMM and remote access tools on Windows: install traces, per-tool logs, session IDs and IPs, file transfers and telling attackers from IT.
Commercial remote access and RMM software has become a favourite for intrusions: it is signed, trusted by EDR, tunnels through firewalls over HTTPS and gives the operator a full desktop. This guide shows you how to prove a tool was installed or run, extract session IDs, IPs and timestamps from each product's own logs, find file transfer traces, and separate attacker use from normal IT support. It builds on the RDP, PsExec and WinRM guide, which covers the native Windows techniques.
For a condensed field reference on the file locations, see the remote access tools artifact page.
Why RMM abuse is hard to spot
Attackers use remote access tools in three ways: dropping a portable binary after initial access, installing a full agent tied to their own account for persistence, or hijacking an RMM platform the victim already uses. The third case is the hardest, because every binary, service and network flow is legitimate. What differs is the account, tenant or session on the other side.
That shapes the investigation. You are not only asking "is AnyDesk here?" but "which instance, registered to whom, used from where, by which local user, and to move which files?" Most of those answers live in plain text logs written by the tool itself, not in Windows event logs.
Installation and execution evidence
Start with the generic evidence that any program leaves. It gives you a first-seen time and a path, which tells you whether you are looking at an IT deployment or an ad hoc drop.
- Services. Most tools install a service to survive reboots and handle UAC prompts. System 7045 records the service name and image path; the service key sits under
HKLM\SYSTEM\CurrentControlSet\Services\(see services). Typical names includeAnyDesk,TeamViewer,ScreenConnect Client (<id>),SplashtopRemoteService,AteraAgentandRustDesk, but names can be customised by the installer or the attacker. - Installed programs. MSI installs write
MsiInstallerevents (1033, 11707) in the Application log and uninstall entries underHKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstalland itsWOW6432Nodetwin. The installed programs page lists the fields worth keeping, includingInstallDateandInstallLocation. - Prefetch and Amcache. Portable runs of
AnyDesk.exefromDownloadsorC:\Users\Publicappear here even when nothing was installed. Amcache gives the SHA1, which you can compare to the vendor's release, and Prefetch gives run counts and last run times. - Browser downloads. The download history and the Zone.Identifier stream on the installer give the source URL. A download from the vendor's site in the middle of the night, by a user who never needed it, is a strong lead. See Windows browser forensics.
- Process creation. 4688 or Sysmon event 1 shows the parent. An RMM installer launched from
cmd.exeunder a service account, or from a PowerShell download cradle, is not how IT deploys software.
# Services pointing to common remote access tools (live or mounted SYSTEM hive)
Get-CimInstance Win32_Service |
Where-Object { $_.PathName -match 'AnyDesk|TeamViewer|ScreenConnect|Splashtop|Atera|RustDesk|ConnectWise' } |
Select-Object Name, StartMode, State, PathName
# Service installs from the System log
Get-WinEvent -FilterHashtable @{LogName='System'; Id=7045} |
Where-Object { $_.Message -match 'AnyDesk|TeamViewer|ScreenConnect|Splashtop|Atera|RustDesk' } |
Select-Object TimeCreated, Message
Per-tool artifacts
The details below reflect commonly observed versions. Vendors rename, move and reformat logs between releases, so confirm against a lab install of the same version when a finding matters.
AnyDesk
- Locations:
C:\ProgramData\AnyDesk\for the installed service,%APPDATA%\AnyDesk\for the user side and for portable runs. ad_svc.trace/ad.trace: verbose trace logs. Lines about incoming sessions often include the remote AnyDesk ID and the remote IP, either a relay address or a direct peer. Search for "Incoming session", "Logged in from" and "External address" style strings rather than exact formats.connection_trace.txt: one line per incoming connection with date, time, authentication method (for exampleUserfor an accepted prompt,Passwdfor unattended password,Tokenfor a saved session) and the remote AnyDesk ID. An unattendedPasswdconnection at 03:00 is a classic persistence pattern.- Configuration:
system.confandservice.confhold the local AnyDesk ID and settings such as unattended access;user.confholds per-user preferences. A newly set unattended password is an attacker favourite. - File transfer: the trace log records file transfer activity, and some versions also write a dedicated
file_transfer_trace.txt. Treat both as optional.
TeamViewer
Connections_incoming.txtin the install folder (for exampleC:\Program Files\TeamViewer\): remote TeamViewer ID, display name, start and end time, local Windows user, connection type (remote control or file transfer) and a session GUID. It is the single most useful TeamViewer artifact.Connections.txtunder%APPDATA%\TeamViewer\: outgoing connections made from this host, useful when the host was used as a jump point.- Log file:
TeamViewer<version>_Logfile.login the install folder (older versions put the major version in the name) plus rotated_OLDcopies. It contains participant details, and file transfer lines naming the files sent or written. The exact wording differs across versions, so search broadly for "file", "Write" and "Download". - Registry:
HKLM\SOFTWARE\TeamViewer(orWOW6432Node) holds the localClientIDand settings; a managed deployment usually shows an assignment to a company account.
ScreenConnect (ConnectWise Control)
- Service and folder:
ScreenConnect Client (<16-hex id>)inC:\Program Files (x86)\orC:\Program Files\. The id is derived from the server instance, so two different ids on one host mean two different ScreenConnect servers. system.config/user.configin the client folder: the relay host and port the client calls back to. This is the attacker's server if the instance is rogue.- Application event log: the client writes events under a source named after the service. Messages describe connection and disconnection of a named participant, file transfers and commands run through the toolbox or backstage. This is unusual among RMM tools and very valuable.
- Transferred files and toolbox items commonly land under
C:\Windows\Temp\ScreenConnect\<version>\or a similar temp path, often with the original file name. - Server side: if the victim hosts the server, its session database (SQLite in
App_Data) and web logs record every session and operator. Collect it before anyone patches or rebuilds the server.
Splashtop
- Streamer service
SplashtopRemoteService; logs such asSPLog.txtunder the Splashtop Remote Server folder inProgram Files (x86). Log names and folders vary by product edition (Business, SOS, Atera-integrated). - Entries include session start and end, the remote account or device name and sometimes the peer IP.
Atera
AteraAgentservice inC:\Program Files\ATERA Networks\AteraAgent\, with packages downloaded into its subfolders.HKLM\SOFTWARE\ATERA Networks\AlphaAgentholds values such asAccountIdandIntegratorLogin, the email of the Atera account the agent enrolled with. An unknown email here is close to a confession.- Atera delegates interactive remote control to integrated tools (Splashtop, AnyDesk), so also check those artifacts.
RustDesk
- Open source, self-hostable, and increasingly seen in intrusions. User config and logs under
%APPDATA%\RustDesk\(config\RustDesk.toml,RustDesk2.toml,log\), and the service profile underC:\Windows\ServiceProfiles\LocalService\AppData\Roaming\RustDesk\on typical installs. RustDesk2.tomlmay contain acustom-rendezvous-serverand relay entry: an attacker-run ID/relay server is a hard indicator.- The
peersfolder lists remote IDs that this client connected to.
Quick Assist
- Built into Windows and now delivered as a Store app (
quickassist.exe). It has been abused in vishing campaigns where the caller poses as help desk. - It keeps very little local logging. Rely on Prefetch or the app package folder for execution, SRUM for per-app network usage (see SRUM forensics), process creation telemetry, and what the user ran right after the session.
Network and firewall evidence
Host logs are strongest when paired with network traces.
- Firewall rules and logs. Installers often add inbound rules. Rule creation appears in
Microsoft-Windows-Windows Firewall With Advanced Security/Firewall(2004 on older builds, 2097 on newer ones), andpfirewall.logrecords allowed connections if logging was enabled. See Windows Firewall logs. - WFP auditing. Security 5156 (connection permitted) names the application, the remote address and port, if "Filtering Platform Connection" auditing is on. It is noisy but decisive.
- Sysmon 3 and 22: network connections and DNS queries per process. Vendor relay domains (
*.net.anydesk.com,*.teamviewer.com, a ScreenConnect relay host,*.splashtop.com) and RustDesk ports 21115 to 21119 are useful pivots. - Perimeter data: proxy, DNS and NetFlow logs confirm the timeline and catch sessions on hosts where the local logs were deleted.
Remember that most tools connect through vendor relays. The IP in a log may be a relay, not the operator. Direct peer connections are the exception and are worth highlighting when you find them.
If a packet capture exists (a network tap, EDR capture or pktmon output converted to pcapng), PCAP Parser opens it in the browser and lists conversations, DNS lookups and TLS SNI, which is often enough to confirm the RMM relay domains contacted during the session.
Session attribution
For each session, build one row: tool, local host, remote ID, remote display name or account, remote IP (and whether it is a relay), local user, start, end, and what happened in between.
- Remote IDs (AnyDesk, TeamViewer, RustDesk) are stable identifiers. The same ID across several victims is a strong link, and vendors can resolve them through legal process.
- Tenant or account (Atera
IntegratorLogin, ScreenConnect relay host, TeamViewer company assignment) tells you whether the instance belongs to your organisation at all. - Local user and logon session: correlate the session start with 4624 on the host (a type 2 or 7 may follow unattended access, depending on how the tool handles the desktop) and with user artifacts. Tools running as SYSTEM act on whatever desktop is active, so check who was logged on at the time.
- What they did: process creation under the tool's process tree, files appearing in
Downloads,Tempor the desktop, and PowerShell logs. A process tree rooted atAnyDesk.exeor the ScreenConnect client is interactive operator activity.
File transfer traces
File transfers are where RMM tools most often leak evidence of staging or exfiltration.
- Tool logs: TeamViewer log file lines, AnyDesk trace or
file_transfer_trace.txt, ScreenConnect Application log events and temp folder. - File system: new files with a creation time inside the session window. Parse the $MFT and USN journal for the window and look at who wrote them.
- Clipboard: several tools sync the clipboard, which can carry commands or small files. The clipboard history is worth a look if enabled.
Per-tool reference
| Tool | Install evidence | Key logs / config | Session identity | File transfer |
|---|---|---|---|---|
| AnyDesk | Service AnyDesk, Prefetch, Amcache | ad_svc.trace, ad.trace, connection_trace.txt, system.conf | Remote AnyDesk ID, auth method, IP (often relay) | Trace log, file_transfer_trace.txt (some versions) |
| TeamViewer | Service TeamViewer, MSI events | Connections_incoming.txt, Connections.txt, TeamViewer*_Logfile.log | Remote ID, display name, local user, session GUID | Log file lines |
| ScreenConnect | Service ScreenConnect Client (<id>) | Application log (client source), system.config / user.config | Participant name, relay host | Application log, C:\Windows\Temp\ScreenConnect\ |
| Splashtop | Service SplashtopRemoteService | SPLog.txt and edition-specific logs | Remote account or device | Log entries (version dependent) |
| Atera | Service AteraAgent | HKLM\SOFTWARE\ATERA Networks\AlphaAgent | IntegratorLogin, AccountId | Via integrated tools |
| RustDesk | Service RustDesk (if installed) | RustDesk2.toml, log\, peers\ | Remote ID, custom rendezvous server | Log entries |
| Quick Assist | Prefetch, Store package | Little local logging | SRUM, network telemetry | Follow-up file system activity |
MITRE ATT&CK tracks this behaviour as T1219. Recent versions name it Remote Access Tools with sub-techniques, and T1219.002 (Remote Desktop Software) is the one that fits these products.
Legitimate IT use or intrusion?
Build a baseline with IT before drawing conclusions:
- Which product and deployment method IT uses, and which tenant or account. Anything else is suspect by default.
- Install path: managed installs land in
Program Files. Portable binaries inDownloads,AppData,ProgramDatasubfolders orC:\Users\Publicare rarely IT. - Timing: sessions outside the support desk's hours, or right after a suspicious logon, deserve a closer look.
- Configuration: unattended access enabled on a workstation that never needed it, a password set shortly after install, or a custom relay server.
- Stacking: two or three different remote tools installed within minutes is an attacker hedging against removal, never a helpdesk practice.
Pitfalls
- Treating the logged IP as the operator. Most sessions go through relays. Say "relay address" in the report unless you can show a direct connection.
- Relying on one log. Trace logs roll over and attackers delete them. Cross-check with Prefetch, the event logs, Sysmon and the file system.
- Missing the portable copy. Many investigations check installed programs only. Portable binaries write their logs under the user's
AppData, notProgramData. - Assuming stable formats. A parser written for one AnyDesk or TeamViewer version can silently miss lines in another. Grep the raw text as well.
- Forgetting the legitimate RMM. If the attacker used the company's own platform, the host evidence looks normal. You need the RMM console's audit log, which lives in the vendor cloud or on the RMM server.
- Ignoring time zones. Some tool logs write local time, some UTC. Check against a known event before merging them into a timeline.
Workflow checklist
- Inventory remote access tools on every host in scope: services, installed programs, Prefetch, Amcache, and portable binaries in user folders.
- For each instance, record version, install path, install time and the account, tenant or relay it is tied to.
- Collect the tool's logs and config from both
ProgramDataand every user'sAppData, plus the Application log for ScreenConnect. - Build a session table: remote ID, remote name, remote IP (relay or direct), local user, start, end.
- Map activity inside each session window: process trees under the tool, new files, PowerShell, credential access. See credential access forensics if tools such as Mimikatz appear.
- Confirm with network evidence: firewall logs, 5156, Sysmon 3/22, proxy and DNS.
- Compare with the IT baseline and classify each instance as sanctioned, suspicious or malicious.
- Hunt the same IDs, tenants, hashes and relay hosts across the fleet, and place everything on the incident super timeline.
Area 08
Lateral Movement
The artifact cheat sheets behind this guide: location by Windows version, what each one proves and the tools to parse it.