Detect Redundant Access in CrowdStrike LogScale
Adversaries may use more than one remote access tool with varying command and control protocols or credentialed access to remote services so they can maintain access if an access mechanism is detected or mitigated. If one type of tool is detected and blocked or removed as a response but the organization did not gain a full understanding of the adversary's tools and access, then the adversary will be able to retain access to the network. This deprecated technique has been superseded by T1136 (Create Account), T1505/003 (Web Shell), and T1133 (External Remote Services), but the underlying adversary behavior — establishing backup access channels in parallel — remains a critical detection target. Observable patterns include simultaneous deployment of web shells alongside account creation, installation of multiple remote access services within a short window, and evidence of access from multiple distinct toolsets or protocols to the same target environment.
MITRE ATT&CK
- Tactic
- Defense Evasion Persistence
- Canonical reference
- https://attack.mitre.org/techniques/T1108/
LogScale Detection Query
// Detect redundant access: 2+ distinct remote access signal types on same host within 24h
// Signal 1: Remote access tool process launches
#repo=base_sensor #event_simpleName=ProcessRollup2
| FileName = /(?i)(ngrok\.exe|frpc\.exe|frps\.exe|chisel\.exe|plink\.exe|AnyDesk\.exe|TeamViewer\.exe|ScreenConnect\.exe|vncviewer\.exe|vncserver\.exe|psexec\.exe|psexesvc\.exe|winscp\.exe)/
OR (CommandLine = /(?i)(ngrok|frpc|chisel|ligolo)/ AND CommandLine = /(?i)(tcp|http|tunnel|connect|proxy)/)
| eval Signal="RemoteAccessToolExecution"
| eval Detail=FileName
| table [@timestamp, ComputerName, UserName, Signal, Detail]
// Union Signal 2: New service installation (via Windows event logs ingested)
| union [
#repo=base_sensor #event_simpleName=ServiceInstalled
| ServiceDisplayName = /(?i)(vnc|rdp|ssh|remote|anydesk|teamviewer|screenconnect|logmein)/
OR ImageFileName = /(?i)(ngrok|frpc|chisel|plink|psexec)/
| eval Signal="RemoteServiceInstalled"
| eval Detail=ServiceDisplayName
| table [@timestamp, ComputerName, UserName, Signal, Detail]
]
// Union Signal 3: Web shell file creation
| union [
#repo=base_sensor #event_simpleName=NewExecutableWritten
| TargetFileName = /(?i)(\\inetpub\\|\\wwwroot\\|\\htdocs\\|\\webapps\\)/
| TargetFileName = /\.(?:asp|aspx|php|jsp|jspx|shtml)$/
| NOT (ParentBaseFileName = /(?i)(w3wp\.exe|httpd\.exe|nginx\.exe|iisexpress\.exe)/)
| eval Signal="WebShellDropped"
| eval Detail=TargetFileName
| table [@timestamp, ComputerName, UserName, Signal, Detail]
]
// Union Signal 4: Registry run key persistence
| union [
#repo=base_sensor #event_simpleName=RegGenericValueUpdate
| RegObjectName = /(?i)(\\CurrentVersion\\Run|\\CurrentVersion\\RunOnce)/
| RegStringValue = /(?i)(ngrok|frpc|chisel|anydesk|teamviewer|vnc|rdp)/
| eval Signal="PersistenceRegistryKey"
| eval Detail=RegStringValue
| table [@timestamp, ComputerName, UserName, Signal, Detail]
]
// Aggregate: find hosts with 2+ distinct signal types in 24h
| groupBy([ComputerName], function=[
count(Signal, as=TotalEvents),
count(distinct(Signal), as=DistinctSignals),
collect(Signal, as=SignalTypes, limit=20),
collect(Detail, as=Details, limit=20),
min(@timestamp, as=Earliest),
max(@timestamp, as=Latest)
])
| DistinctSignals >= 2
| eval TimeWindowMinutes = round((Latest - Earliest) / 60000, 1)
| sort(DistinctSignals, order=desc) CrowdStrike LogScale (Falcon) query detecting redundant access by correlating four signal types (remote tool execution, service installation, web shell file drops, registry run key persistence) on the same host within a 24-hour window using Falcon sensor event types (ProcessRollup2, ServiceInstalled, NewExecutableWritten, RegGenericValueUpdate). Groups by ComputerName and alerts when 2+ distinct signal types are observed.
Data Sources
Required Tables
False Positives & Tuning
- Red team engagements using CrowdStrike's own test tools alongside legitimate admin tooling — Falcon may generate multiple signal types from authorized offensive security operations on explicitly excluded test systems
- Software vendors testing their remote administration products on internal QA machines where multiple tools (VNC, SSH, TeamViewer) are installed, configured, and registry entries set within a single test session
- Cloud or virtualization platform agents (e.g., AWS Systems Manager, VMware Tools) that deploy remote management capabilities and create local service accounts as part of cloud instance bootstrapping on newly provisioned hosts
Other platforms for T1108
Testing Methodology
Validate this detection against 5 adversary techniques from Atomic Red Team. Each test below lists the behaviour to exercise and the telemetry you should expect to see. Executable commands and cleanup steps are available with Pro.
- Test 1Install Redundant Remote Access Service via SC.exe
Expected signal: Windows System Event ID 7045: New Service Installed with ServiceName=RemoteAccessBackup, ServiceFileName=C:\Windows\System32\calc.exe, ServiceType=user mode service, StartType=auto start. Windows Security Event ID 4697 (if auditing enabled): A service was installed in the system. Sysmon Event ID 1 for sc.exe process creation with full command line captured.
- Test 2Create Backup Local Administrator Account
Expected signal: Windows Security Event ID 4720: A user account was created — TargetUserName=df00tech-svc-backup. Security Event ID 4732: A member was added to a security-enabled local group — TargetUserName=df00tech-svc-backup, GroupName=Administrators. Security Event ID 4722: A user account was enabled. Sysmon Event ID 1 for net.exe and wmic.exe process creation with full command lines.
- Test 3Deploy ngrok Tunnel as Redundant C2 Channel
Expected signal: Sysmon Event ID 1: Process Create for powershell.exe with Invoke-WebRequest command line downloading ngrok. Sysmon Event ID 11: File Create for ngrok.zip and ngrok.exe in %TEMP%. Sysmon Event ID 1: Process Create for ngrok.exe with 'http 8080' arguments. Sysmon Event ID 3: Network connection attempt from ngrok.exe to ngrok infrastructure (will fail or succeed depending on network access). Security Event ID 4688 (if command line auditing enabled).
- Test 4Drop Simulated Web Shell in IIS Web Root
Expected signal: Sysmon Event ID 11: File Create with TargetFilename=C:\inetpub\wwwroot\df00tech-test-shell.aspx, Image=cmd.exe (unexpected parent for web root writes). Sysmon Event ID 1: Process Create for cmd.exe with echo/redirect command line. Security Event ID 4663 (object access, if file auditing enabled on inetpub) showing file create by cmd.exe.
- Test 5Add SSH Authorized Key for Persistent Backdoor Access (Linux/macOS)
Expected signal: Linux auditd: syscall write/open on ~/.ssh/authorized_keys by the bash/sh process — generates SYSCALL and PATH audit records. Syslog/auth.log: no immediate logon event but future SSH logons using this key will generate 'Accepted publickey' entries identifying the key fingerprint. File integrity monitoring (FIM): if deployed, triggers on modification of ~/.ssh/authorized_keys.
References (10)
- https://attack.mitre.org/techniques/T1108/
- https://www.fireeye.com/content/dam/fireeye-www/services/pdfs/mandiant-apt1-report.pdf
- https://attack.mitre.org/techniques/T1136/
- https://attack.mitre.org/techniques/T1505/003/
- https://attack.mitre.org/techniques/T1133/
- https://learn.microsoft.com/en-us/defender-endpoint/advanced-hunting-deviceprocessevents-table
- https://learn.microsoft.com/en-us/defender-endpoint/advanced-hunting-devicefileevents-table
- https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1133/T1133.md
- https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1505.003/T1505.003.md
- https://github.com/SigmaHQ/sigma/tree/master/rules/windows/builtin/security
Unlock Pro Content
Get the full detection package for T1108 including response playbook, investigation guide, and atomic red team tests.