Potential Modification of Accessibility Binaries
editPotential Modification of Accessibility Binaries
editWindows contains accessibility features that may be launched with a key combination before a user has logged in. An adversary can modify the way these programs are launched to get a command prompt or backdoor without logging in to the system.
Rule type: eql
Rule indices:
- winlogbeat-*
- logs-endpoint.events.*
- logs-windows.*
Severity: high
Risk score: 73
Runs every: 5m
Searches indices from: now-9m (Date Math format, see also Additional look-back time
)
Maximum alerts per execution: 100
References:
Tags:
- Elastic
- Host
- Windows
- Threat Detection
- Persistence
Version: 8
Rule authors:
- Elastic
Rule license: Elastic License v2
Investigation guide
edit## Triage and analysis ### Investigating Potential Modification of Accessibility Binaries Adversaries may establish persistence and/or elevate privileges by executing malicious content triggered by accessibility features. Windows contains accessibility features that may be launched with a key combination before a user has logged in (ex: when the user is on the Windows logon screen). An adversary can modify the way these programs are launched to get a command prompt or backdoor without logging in to the system. More details can be found [here](https://attack.mitre.org/techniques/T1546/008/). This rule looks for the execution of supposed accessibility binaries that don't match any of the accessibility features binaries' original file names, which is likely a custom binary deployed by the attacker. #### Possible investigation steps - Investigate the process execution chain (parent process tree). - Identify the user account that performed the action and whether it should perform this kind of action. - Contact the account owner and confirm whether they are aware of this activity. - Investigate other alerts associated with the user/host during the past 48 hours. - Check for similar behavior in other hosts on the environment. - Retrieve the file and determine if it is malicious: - Use a private sandboxed malware analysis system to perform analysis. - Observe and collect information about the following activities: - Attempts to contact external domains and addresses. - File and registry access, modification, and creation activities. - Service creation and launch activities. - Scheduled tasks creation. - Use the PowerShell Get-FileHash cmdlet to get the SHA-256 hash value of the file. - Search for the existence and reputation of this file in resources like VirusTotal, Hybrid-Analysis, CISCO Talos, Any.run, etc. ### False positive analysis - This activity should not happen legitimately. The security team should address any potential benign true positive (B-TP), as this configuration can put the user and the domain at risk. ### Response and remediation - Initiate the incident response process based on the outcome of the triage. - Isolate the involved host to prevent further post-compromise behavior. - If the triage identified malware, search the environment for additional compromised hosts. - Implement any temporary network rules, procedures, and segmentation required to contain the malware. - Immediately block the IoCs identified. - Remove and block malicious artifacts identified on the triage. - Reset passwords for the user account and other potentially compromised accounts (email, services, CRMs, etc.). ## Config If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work.
Rule query
editprocess where event.type in ("start", "process_started", "info") and process.parent.name : ("Utilman.exe", "winlogon.exe") and user.name == "SYSTEM" and process.args : ( "C:\\Windows\\System32\\osk.exe", "C:\\Windows\\System32\\Magnify.exe", "C:\\Windows\\System32\\Narrator.exe", "C:\\Windows\\System32\\Sethc.exe", "utilman.exe", "ATBroker.exe", "DisplaySwitch.exe", "sethc.exe" ) and not process.pe.original_file_name in ( "osk.exe", "sethc.exe", "utilman2.exe", "DisplaySwitch.exe", "ATBroker.exe", "ScreenMagnifier.exe", "SR.exe", "Narrator.exe", "magnify.exe", "MAGNIFY.EXE" ) /* uncomment once in winlogbeat to avoid bypass with rogue process with matching pe original file name */ /* and process.code_signature.subject_name == "Microsoft Windows" and process.code_signature.status == "trusted" */
Framework: MITRE ATT&CKTM
-
Tactic:
- Name: Persistence
- ID: TA0003
- Reference URL: https://attack.mitre.org/tactics/TA0003/
-
Technique:
- Name: Event Triggered Execution
- ID: T1546
- Reference URL: https://attack.mitre.org/techniques/T1546/
-
Sub-technique:
- Name: Accessibility Features
- ID: T1546.008
- Reference URL: https://attack.mitre.org/techniques/T1546/008/
-
Tactic:
- Name: Privilege Escalation
- ID: TA0004
- Reference URL: https://attack.mitre.org/tactics/TA0004/
-
Technique:
- Name: Event Triggered Execution
- ID: T1546
- Reference URL: https://attack.mitre.org/techniques/T1546/
-
Sub-technique:
- Name: Accessibility Features
- ID: T1546.008
- Reference URL: https://attack.mitre.org/techniques/T1546/008/