Process

Instances of computer programs that are being executed by at least one thread. Processes have memory space for process executables, loaded modules (DLLs or shared libraries), and allocated memory regions containing everything from user input to application-specific data structures[1]

ID: DS0009
Platforms: Linux, Windows, macOS
Collection Layer: Host
Contributors: Center for Threat-Informed Defense (CTID)
Version: 1.0
Created: 20 October 2021
Last Modified: 30 March 2022

Data Components

Process: OS API Execution

Initial construction of a WMI object, such as a filter, consumer, subscription, binding, or provider (ex: Sysmon EIDs 19-21)

Process: OS API Execution

Initial construction of a WMI object, such as a filter, consumer, subscription, binding, or provider (ex: Sysmon EIDs 19-21)

Domain ID Name Detects
Enterprise T1548 Abuse Elevation Control Mechanism

Also look for any process API calls for behavior that may be indicative of Process Injection. Monitoring OS API callbacks for the execution can also be a way to detect this behavior but requires specialized security tooling.

.004 Elevated Execution with Prompt

Monitoring OS API callbacks for the execution can also be a way to detect this behavior but requires specialized security tooling.

Enterprise T1134 Access Token Manipulation

Monitor for API calls, loaded by a payload, for token manipulation only through careful analysis of user network activity, examination of running processes, and correlation with other endpoint and network behavior. There are many Windows API calls a payload can take advantage of to manipulate access tokens (e.g., LogonUser [2], DuplicateTokenEx[3], and ImpersonateLoggedOnUser[4]). Please see the referenced Windows API pages for more information.

.001 Token Impersonation/Theft
.002 Create Process with Token

Monitor for API calls associated with detecting token manipulation only through careful analysis of user activity, examination of running processes, and correlation with other endpoint and network behavior. Analysts can also monitor for use of Windows APIs such as CreateProcessWithTokenW and correlate activity with other suspicious behavior to reduce false positives that may be due to normal benign use by users and administrators.

.003 Make and Impersonate Token
.004 Parent PID Spoofing
.005 SID-History Injection
Enterprise T1087 .001 Account Discovery: Local Account

Monitor for API calls (such as NetUserEnum()) that may attempt to gather local accounts information such as type of user, privileges and groups.

.002 Account Discovery: Domain Account

Monitor for API calls that may attempt to gather information about domain accounts such as type of user, privileges and groups.

Enterprise T1010 Application Window Discovery

Monitor for API calls (such as GetForegroundWindow()) that may attempt to get a listing of open application windows.

Enterprise T1123 Audio Capture
Enterprise T1547 Boot or Logon Autostart Execution

Monitor for API calls that may configure system settings to automatically execute a program during system boot or logon to maintain persistence or gain higher-level privileges on compromised systems.

.010 Port Monitors

Monitor process API calls to AddMonitor.[5]

.012 Print Processors

Monitor process API calls to AddPrintProcessor and GetPrintProcessorDirectory.

Enterprise T1115 Clipboard Data

Monitor API calls that could collect data stored in the clipboard from users copying information within or between applications.

Enterprise T1059 .002 Command and Scripting Interpreter: AppleScript

Monitor for execution of AppleScript through osascript and usage of the NSAppleScript and OSAScript APIs that may be related to other suspicious behavior occurring on the system.

Enterprise T1543 Create or Modify System Process

Monitor for API calls that may create or modify system-level processes to repeatedly execute malicious payloads as part of persistence.

.003 Windows Service

Monitor for API calls that may create or modify Windows services (ex: CreateServiceW()) to repeatedly execute malicious payloads as part of persistence.

Enterprise T1555 Credentials from Password Stores

Monitor for API calls that may search for common password storage locations to obtain user credentials.

.001 Keychain

Monitor for Keychain Services API calls, specifically legacy extensions such as SecKeychainFindInternetPassword, that may collect Keychain data from a system to acquire credentials.[6]

.003 Credentials from Web Browsers

Monitor for API calls that may acquire credentials from web browsers by reading files specific to the target browser.[7]

.004 Windows Credential Manager

Consider monitoring API calls such as CredEnumerateA that may list credentials from the Windows Credential Manager.[8][9]

.005 Password Managers

Monitor for API calls that may search for common password storage locations to obtain user credentials.

Enterprise T1005 Data from Local System

Monitor for API calls that may search local system sources, such as file systems or local databases, to find files of interest and sensitive data prior to Exfiltration.

Enterprise T1565 Data Manipulation

Monitor for API calls associated with altering data. Remote access tools with built-in features may interact directly with the Windows API to gather information.

.002 Transmitted Data Manipulation

Monitor for API calls associated with altering data. Remote access tools with built-in features may interact directly with the Windows API to gather information.

.003 Runtime Data Manipulation

Monitor for API calls associated with altering data. Remote access tools with built-in features may interact directly with the Windows API to gather information.

Enterprise T1622 Debugger Evasion

Monitor for API calls (such as IsDebuggerPresent()) that may employ various means to detect and avoid debugged environments. Detecting actions related to debugger identification may be difficult depending on the adversary's implementation and monitoring required.

Enterprise T1482 Domain Trust Discovery

Monitor for API calls associated with gathering information on domain trust relationships that may be used to identify lateral movement like DSEnumerateDomainTrusts() Win32 API call to spot activity associated with Domain Trust Discovery.[10] Information may also be acquired through Windows system management tools such as PowerShell. The .NET method GetAllTrustRelationships() can be an indicator of Domain Trust Discovery.[11]

Enterprise T1611 Escape to Host

Remote access tools with built-in features may interact directly with the Windows API, such as calling GetLocaleInfoW() to gather system location information.[12]

Enterprise T1546 .009 Event Triggered Execution: AppCert DLLs

Monitor and analyze application programming interface (API) calls that are indicative of Registry edits, such as RegCreateKeyEx and RegSetValueEx. [13]

.010 Event Triggered Execution: AppInit DLLs

Monitor and analyze application programming interface (API) calls that are indicative of Registry edits such as RegCreateKeyEx and RegSetValueEx. [13]

Enterprise T1083 File and Directory Discovery

Monitor for API calls that may enumerate files and directories or may search in specific locations of a host or network share for certain information within a file system.

Enterprise T1564 Hide Artifacts

Monitor for API calls that may attempt to hide artifacts associated with their behaviors to evade detection.

.004 NTFS File Attributes

Monitor calls to the ZwSetEaFile and ZwQueryEaFile Windows API functions as well as binaries used to interact with EA, [14] [15] and consider regularly scanning for the presence of modified information. [16]

Enterprise T1070 Indicator Removal on Host

Monitor for API calls that may delete or alter generated artifacts on a host system, including logs or captured files such as quarantined malware.

.001 Clear Windows Event Logs

Monitor for Windows API calls that may clear Windows Event Logs to hide the activity of an intrusion.

Enterprise T1056 Input Capture

Monitor for API calls to SetWindowsHook, GetKeyState, and GetAsyncKeyState [17]

.001 Keylogging

Monitor for API calls to the SetWindowsHook, GetKeyState, and GetAsyncKeyState.[17] and look for common keylogging API calls. API calls alone are not an indicator of keylogging, but may provide behavioral data that is useful when combined with other information such as new files written to disk and unusual processes.

.004 Credential API Hooking

Monitor for API calls to the SetWindowsHookEx and SetWinEventHook functions, which install a hook procedure.[18][19] Also consider analyzing hook chains (which hold pointers to hook procedures for each type of hook) using tools[19][20][21] or by programmatically examining internal kernel structures.[22][23]

Enterprise T1556 Modify Authentication Process

Monitor for calls to OpenProcess that can be used to manipulate lsass.exe running on a domain controller as well as for malicious modifications to functions exported from authentication-related system DLLs (such as cryptdll.dll and samsrv.dll).[24]

.001 Domain Controller Authentication

Monitor for API calls to OpenProcess that can be used to manipulate lsass.exe running on a domain controller

Enterprise T1112 Modify Registry

Monitor for API calls associated with concealing Registry keys, such as Reghide. [25] Inspect and cleanup malicious hidden Registry entries using Native Windows API calls and/or tools such as Autoruns [26] and RegDelNull [27].

Enterprise T1111 Multi-Factor Authentication Interception

Monitor for API calls associated with polling to intercept keystrokes.

Enterprise T1106 Native API

Monitoring API calls may generate a significant amount of data and may not be useful for defense unless collected under specific circumstances, since benign use of API functions are common and may be difficult to distinguish from malicious behavior. Correlation of other events with behavior surrounding API function calls using API monitoring will provide additional context to an event that may assist in determining if it is due to malicious behavior. Correlation of activity by process lineage by process ID may be sufficient.

Enterprise T1135 Network Share Discovery

Monitor for API calls that may create and cultivate social media accounts that can be used during targeting.

Enterprise T1003 OS Credential Dumping

Monitor for API calls that may attempt to dump credentials to obtain account login and credential material, normally in the form of a hash or a clear text password, from the operating system and software.

.001 LSASS Memory

Monitor for API calls that may attempt to access credential material stored in the process memory of the Local Security Authority Subsystem Service (LSASS).

Enterprise T1120 Peripheral Device Discovery

Monitor for API calls that may attempt to gather information about attached peripheral devices and components connected to a computer system.

Enterprise T1542 Pre-OS Boot

Monitor for API calls that may abuse Pre-OS Boot mechanisms as a way to establish persistence on a system. Disk check, forensic utilities, and data from device drivers (i.e. API calls) may reveal anomalies that warrant deeper investigation. [28]

.002 Component Firmware

Monitor for API calls associated with the use of device drivers and/or provided by SMART (Self-Monitoring, Analysis and Reporting Technology) [29] [30] disk monitoring may reveal malicious manipulations of components. Otherwise, this technique may be difficult to detect since malicious activity is taking place on system components possibly outside the purview of OS security and integrity mechanisms.

Enterprise T1057 Process Discovery

Monitor for API calls may attempt to get information about running processes on a system.

Enterprise T1055 Process Injection

Monitoring Windows API calls indicative of the various types of code injection may generate a significant amount of data and may not be directly useful for defense unless collected under specific circumstances for known bad sequences of calls, since benign use of API functions may be common and difficult to distinguish from malicious behavior. Windows API calls such as CreateRemoteThread, SuspendThread/SetThreadContext/ResumeThread, QueueUserAPC/NtQueueApcThread, and those that can be used to modify memory within another process, such as VirtualAllocEx/WriteProcessMemory, may be used for this technique.[13] Monitoring for Linux specific calls such as the ptrace system call should not generate large amounts of data due to their specialized nature, and can be a very effective method to detect some of the common process injection methods.[31] [32] [33] [34]

.001 Dynamic-link Library Injection

Monitoring Windows API calls indicative of the various types of code injection may generate a significant amount of data and may not be directly useful for defense unless collected under specific circumstances for known bad sequences of calls, since benign use of API functions may be common and difficult to distinguish from malicious behavior. Windows API calls such as CreateRemoteThread and those that can be used to modify memory within another process, such as VirtualAllocEx/WriteProcessMemory, may be used for this technique.[13]

.002 Portable Executable Injection

Monitoring Windows API calls indicative of the various types of code injection may generate a significant amount of data and may not be directly useful for defense unless collected under specific circumstances for known bad sequences of calls, since benign use of API functions may be common and difficult to distinguish from malicious behavior. Windows API calls such as CreateRemoteThread and those that can be used to modify memory within another process, such as VirtualAllocEx/WriteProcessMemory, may be used for this technique.[13]

.003 Thread Execution Hijacking

Monitoring Windows API calls indicative of the various types of code injection may generate a significant amount of data and may not be directly useful for defense unless collected under specific circumstances for known bad sequences of calls, since benign use of API functions may be common and difficult to distinguish from malicious behavior. Windows API calls such as CreateRemoteThread, SuspendThread/SetThreadContext/ResumeThread, and those that can be used to modify memory within another process, such as VirtualAllocEx/WriteProcessMemory, may be used for this technique.[13]

.004 Asynchronous Procedure Call

Monitoring Windows API calls indicative of the various types of code injection may generate a significant amount of data and may not be directly useful for defense unless collected under specific circumstances for known bad sequences of calls, since benign use of API functions may be common and difficult to distinguish from malicious behavior. Windows API calls such as SuspendThread/SetThreadContext/ResumeThread, QueueUserAPC/NtQueueApcThread, and those that can be used to modify memory within another process, such as VirtualAllocEx/WriteProcessMemory, may be used for this technique.[13]

.005 Thread Local Storage

Monitoring Windows API calls indicative of the various types of code injection may generate a significant amount of data and may not be directly useful for defense unless collected under specific circumstances for known bad sequences of calls, since benign use of API functions may be common and difficult to distinguish from malicious behavior. Windows API calls such as CreateRemoteThread, SuspendThread/SetThreadContext/ResumeThread, and those that can be used to modify memory within another process, such as VirtualAllocEx/WriteProcessMemory, may be used for this technique.[13]

.008 Ptrace System Calls

Monitoring for Linux specific calls such as the ptrace system call should not generate large amounts of data due to their specialized nature, and can be a very effective method to detect some of the common process injection methods.[31] [32] [33] [34]

.011 Extra Window Memory Injection

Monitor for API calls related to enumerating and manipulating EWM such as GetWindowLong [35] and SetWindowLong [36]. Malware associated with this technique have also used SendNotifyMessage [37] to trigger the associated window procedure and eventual malicious injection. [13]

.012 Process Hollowing

Monitoring Windows API calls indicative of the various types of code injection may generate a significant amount of data and may not be directly useful for defense unless collected under specific circumstances for known bad sequences of calls, since benign use of API functions may be common and difficult to distinguish from malicious behavior. Windows API calls such as CreateRemoteThread, SuspendThread/SetThreadContext/ResumeThread, and those that can be used to modify memory within another process, such as VirtualAllocEx/WriteProcessMemory, may be used for this technique.[13]

.013 Process Doppelgänging

Monitor and analyze calls to CreateTransaction, CreateFileTransacted, RollbackTransaction, and other rarely used functions indicative of TxF activity. Process Doppelgänging also invokes an outdated and undocumented implementation of the Windows process loader via calls to NtCreateProcessEx and NtCreateThreadEx as well as API calls used to modify memory within another process, such as WriteProcessMemory. [38] [39]

.014 VDSO Hijacking

Monitor for malicious usage of system calls, such as ptrace and mmap, that can be used to attach to, manipulate memory, then redirect a processes' execution path. Monitoring for Linux specific calls such as the ptrace system call should not generate large amounts of data due to their specialized nature, and can be a very effective method to detect some of the common process injection methods.[31][32][33][34]

.015 ListPlanting

Consider monitoring for excessive use of SendMessage and/or PostMessage API functions with LVM_SETITEMPOSITION and/or LVM_GETITEMPOSITION arguments.

Monitoring Windows API calls indicative of the various types of code injection may generate a significant amount of data and may not be directly useful for defense unless collected under specific circumstances for known bad sequences of calls, since benign use of API functions may be common and difficult to distinguish from malicious behavior. Windows API calls such as FindWindow, FindWindowEx, EnumWindows, EnumChildWindows, and those that can be used to modify memory within another process, such as VirtualAllocEx/WriteProcessMemory, may be abused for this technique.

Enterprise T1012 Query Registry

Monitor for API calls (such as RegOpenKeyExA) that may interact with the Windows Registry to gather information about the system, configuration, and installed software.

Enterprise T1620 Reflective Code Loading

Monitor for code artifacts associated with reflectively loading code, such as the abuse of .NET functions such as Assembly.Load() and Native API functions such as CreateThread(), memfd_create(), execve(), and/or execveat().[40][41]

Enterprise T1113 Screen Capture

Monitoring for screen capture behavior will depend on the method used to obtain data from the operating system and write output files. Detection methods could include collecting information from unusual processes using API calls used to obtain image data, and monitoring for image files written to disk, such as CopyFromScreen, xwd, or screencapture.[42][43]. The sensor data may need to be correlated with other events to identify malicious activity, depending on the legitimacy of this behavior within a given network environment.

Enterprise T1489 Service Stop

Remote access tools with built-in features may interact directly with the Windows API to perform these functions outside of typical system utilities. For example, ChangeServiceConfigW may be used by an adversary to prevent services from starting.[7]

Enterprise T1129 Shared Modules

Monitor for API calls that may execute malicious payloads via loading shared modules.

Enterprise T1518 Software Discovery

Monitor for API calls that may attempt to get a listing of software and software versions that are installed on a system or in a cloud environment.

.001 Security Software Discovery

Monitor for API calls that may attempt to get a listing of security software, configurations, defensive tools, and sensors that are installed on a system or in a cloud environment.

Enterprise T1218 System Binary Proxy Execution

Monitor for API calls that may forge credential materials that can be used to gain access to web applications or Internet services.

.002 Control Panel

Monitor for API calls that may forge web cookies that can be used to gain access to web applications or Internet services.

Enterprise T1082 System Information Discovery

Monitor for API calls that may attempt to get detailed information about the operating system and hardware, including version, patches, hotfixes, service packs, and architecture. Remote access tools with built-in features may interact directly with the Windows API to gather information. Information may also be acquired through Windows system management tools such as Windows Management Instrumentation and PowerShell. In cloud-based systems, native logging can be used to identify access to certain APIs and dashboards that may contain system information. Depending on how the environment is used, that data alone may not be useful due to benign use during normal operations.

Enterprise T1614 System Location Discovery

Remote access tools with built-in features may interact directly with the Windows API, such as calling GetLocaleInfoW to gather information.[12]

.001 System Language Discovery

Monitor for API calls that may attempt to gather information about the system language of a victim in order to infer the geographical location of that host.

Enterprise T1016 System Network Configuration Discovery

Monitor for API calls (such as GetAdaptersInfo() and GetIpNetTable()) that may gather details about the network configuration and settings, such as IP and/or MAC addresses.

Enterprise T1049 System Network Connections Discovery

Monitor for API calls that may attempt to get a listing of network connections to or from the compromised system they are currently accessing or from remote systems by querying for information over the network.

Enterprise T1033 System Owner/User Discovery

Monitor for API calls that may attempt to dump credentials to obtain account login and credential material, normally in the form of a hash or a clear text password, from the operating system and software.

Enterprise T1124 System Time Discovery

Monitor for API calls that may gather the system time and/or time zone from a local or remote system. Remote access tools with built-in features may interact directly with the Windows API to gather information.

Enterprise T1125 Video Capture

Detection of this technique may be difficult due to the various APIs that may be used. Telemetry data regarding API use may not be useful depending on how a system is normally used, but may provide context to other potentially malicious activity occurring on a system. Behavior that could indicate technique use include an unknown or unusual process accessing APIs associated with devices or software that interact with the video camera, recording devices, or recording software, and a process periodically writing files to disk that contain video or camera image data.

Enterprise T1497 Virtualization/Sandbox Evasion

Monitor for API calls that may employ various means to detect and avoid virtualization and analysis environments. Detecting actions related to virtualization and sandbox identification may be difficult depending on the adversary's implementation and monitoring required.

.001 System Checks

Monitor for API calls that may employ various means to detect and avoid virtualization and analysis environments. Detecting actions related to virtualization and sandbox identification may be difficult depending on the adversary's implementation and monitoring required.

.002 User Activity Based Checks

Monitor for API calls that may employ various means to detect and avoid virtualization and analysis environments. Detecting actions related to virtualization and sandbox identification may be difficult depending on the adversary's implementation and monitoring required.

.003 Time Based Evasion

Monitor for API calls that may employ various time-based methods to detect and avoid virtualization and analysis environments. Detecting actions related to virtualization and sandbox identification may be difficult depending on the adversary's implementation and monitoring required.

Process: Process Access

Opening of a process by another process, typically to read memory of the target process (ex: Sysmon EID 10)

Process: Process Access

Opening of a process by another process, typically to read memory of the target process (ex: Sysmon EID 10)

Domain ID Name Detects
Enterprise T1185 Browser Session Hijacking

This may be a difficult technique to detect because adversary traffic may be masked by normal user traffic. Monitor for Process Injection against browser applications.

Enterprise T1555 Credentials from Password Stores

Monitor for processes being accessed that may search for common password storage locations to obtain user credentials.

.002 Securityd Memory

Monitor for processes being accessed that may obtain root access (allowing them to read securityd’s memory), then they can scan through memory to find the correct sequence of keys in relatively few tries to decrypt the user’s logon keychain.

.003 Credentials from Web Browsers

Monitor process execution logs to include PowerShell Transcription focusing on those that perform a combination of behaviors including reading web browser process memory, utilizing regular expressions, and those that contain numerous keywords for common web applications (Gmail, Twitter, Office365, etc.).

.005 Password Managers

Monitor process being accessed that may acquire user credentials from third-party password managers.[44]

Enterprise T1559 Inter-Process Communication

Monitor for processes making abnormal calls to higher privileged processes, such as a user application connecting to a VPN service.[45]

.003 XPC Services

Monitor for processes making abnormal calls to higher privileged processes, such as a user application connecting to a VPN service.[45]

Enterprise T1556 Modify Authentication Process

Monitor for unexpected processes interacting with authentication mechanisms and processes to access user credentials or enable otherwise unwarranted access to accounts.

.001 Domain Controller Authentication

Monitor for unexpected processes interacting with the authentication process on a domain controller to bypass the typical authentication mechanisms and enable access to accounts.

Enterprise T1003 OS Credential Dumping

Monitor for unexpected processes interacting with lsass.exe.[46] Common credential dumpers such as Mimikatz access the LSA Subsystem Service (LSASS) process by opening the process, locating the LSA secrets key, and decrypting the sections in memory where credential details are stored. Credential dumpers may also use methods for reflective Process Injection to reduce potential indicators of malicious activity.

Linux

To obtain the passwords and hashes stored in memory, processes must open a maps file in the /proc filesystem for the process being analyzed. This file is stored under the path /proc/<pid>/maps, where the <pid> directory is the unique pid of the program being interrogated for such authentication data. The AuditD monitoring tool, which ships stock in many Linux distributions, can be used to watch for hostile processes opening this file in the proc file system, alerting on the pid, process name, and arguments of such programs.

.001 LSASS Memory

Monitor for unexpected processes interacting with LSASS.exe.[46] Common credential dumpers such as Mimikatz access LSASS.exe by opening the process, locating the LSA secrets key, and decrypting the sections in memory where credential details are stored. Credential dumpers may also use methods for reflective Process Injection to reduce potential indicators of malicious activity.

Enterprise T1055 Process Injection

Monitor for processes being viewed that may inject code into processes in order to evade process-based defenses as well as possibly elevate privileges.

.001 Dynamic-link Library Injection

Monitor for process being viewed that may inject dynamic-link libraries (DLLs) into processes in order to evade process-based defenses as well as possibly elevate privileges.

.002 Portable Executable Injection

Monitor for processes being viewed that may inject portable executables (PE) into processes in order to evade process-based defenses as well as possibly elevate privileges.

.003 Thread Execution Hijacking

Monitor for processes being viewed that may inject malicious code into hijacked processes in order to evade process-based defenses as well as possibly elevate privileges.

.004 Asynchronous Procedure Call

Monitor for processes being viewed that may inject malicious code into processes via the asynchronous procedure call (APC) queue in order to evade process-based defenses as well as possibly elevate privileges.

.005 Thread Local Storage

Monitor for processes being viewed that may inject malicious code into processes via thread local storage (TLS) callbacks in order to evade process-based defenses as well as possibly elevate privileges.

.008 Ptrace System Calls

Monitor for processes being viewed that may inject malicious code into processes via ptrace (process trace) system calls in order to evade process-based defenses as well as possibly elevate privileges.

.012 Process Hollowing

Monitor for processes being viewed that may inject malicious code into suspended and hollowed processes in order to evade process-based defenses.

Enterprise T1539 Steal Web Session Cookie

Monitor for attempts by programs to inject into or dump browser process memory.

Enterprise T1033 System Owner/User Discovery

Monitor for unexpected processes interacting with lsass.exe.[46] Common credential dumpers such as Mimikatz access the LSA Subsystem Service (LSASS) process by opening the process, locating the LSA secrets key, and decrypting the sections in memory where credential details are stored. Credential dumpers may also use methods for reflective Process Injection to reduce potential indicators of malicious activity.

Linux

To obtain the passwords and hashes stored in memory, processes must open a maps file in the /proc filesystem for the process being analyzed. This file is stored under the path /proc/<pid>/maps, where the <pid> directory is the unique pid of the program being interrogated for such authentication data. The AuditD monitoring tool, which ships stock in many Linux distributions, can be used to watch for hostile processes opening this file in the proc file system, alerting on the pid, process name, and arguments of such programs.

Process: Process Creation

Birth of a new running process (ex: Sysmon EID 1 or Windows EID 4688)

Process: Process Creation

Birth of a new running process (ex: Sysmon EID 1 or Windows EID 4688)

Domain ID Name Detects
Enterprise T1548 Abuse Elevation Control Mechanism

Monitor for newly executed processes that may circumvent mechanisms designed to control elevate privileges to gain higher-level permissions.

.002 Bypass User Account Control

Monitor newly executed processes, such as eventvwr.exe and sdclt.exe, that may bypass UAC mechanisms to elevate process privileges on system.

.003 Sudo and Sudo Caching

Monitor newly executed processes that may perform sudo caching and/or use the suoders file to elevate privileges.

.004 Elevated Execution with Prompt

Consider monitoring for /usr/libexec/security_authtrampoline executions which may indicate that AuthorizationExecuteWithPrivileges is being executed. MacOS system logs may also indicate when AuthorizationExecuteWithPrivileges is being called.

Enterprise T1134 Access Token Manipulation

Monitor for executed processes that may modify access tokens to operate under a different user or system security context to perform actions and bypass access controls.

.004 Parent PID Spoofing

Monitor for newly constructed processes and/or command-lines that may abuse mechanisms to evade defenses, such as those blocking processes spawning directly from Office documents, and analysis targeting unusual/potentially malicious parent-child process relationships, such as spoofing the PPID of PowerShell/Rundll32 to be explorer.exe

Enterprise T1087 Account Discovery

Monitor for processes that can be used to enumerate user accounts and groups such as net.exe and net1.exe, especially when executed in quick succession.[47] Information may also be acquired through Windows system management tools such as Windows Management Instrumentation and PowerShell.

.001 Local Account

Monitor for processes that can be used to enumerate user accounts and groups such as net.exe and net1.exe, especially when executed in quick succession.[47] Information may also be acquired through Windows system management tools such as Windows Management Instrumentation and PowerShell.

.002 Domain Account

Monitor for processes that can be used to enumerate domain accounts and groups, such as net.exe and net1.exe, especially when executed in quick succession.[47] Information may also be acquired through Windows system management tools such as Windows Management Instrumentation and PowerShell.

.003 Email Account

Monitor for newly executed processes, such as Windows Management Instrumentation and PowerShell , with arguments that can be used to enumerate email addresses and accounts.

Enterprise T1098 Account Manipulation

Monitor for newly constructed processes indicative of modifying account settings, such as those that modify authorized_keys or /etc/ssh/sshd_config files.

.004 SSH Authorized Keys

Monitor for suspicious processes modifying the authorized_keys or /etc/ssh/sshd_config files.

Enterprise T1010 Application Window Discovery

Monitor for newly executed processes that may attempt to get a listing of open application windows. System and network discovery techniques normally occur throughout an operation as an adversary learns the environment. Data and events should not be viewed in isolation, but as part of a chain of behavior that could lead to other activities based on the information obtained.

Enterprise T1560 Archive Collected Data

Monitor for newly constructed processes and/or command-lines that aid in compression or encrypting data that is collected prior to exfiltration, such as 7-Zip, WinRAR, and WinZip.

.001 Archive via Utility

Monitor for newly constructed processes and/or command-lines that aid in compression or encrypting data that is collected prior to exfiltration, such as 7-Zip, WinRAR, and WinZip.

Enterprise T1197 BITS Jobs

Monitor for newly constructed BITS tasks to enumerate using the BITSAdmin tool (bitsadmin /list /allusers /verbose).

Enterprise T1547 Boot or Logon Autostart Execution

Suspicious program execution as autostart programs may show up as outlier processes that have not been seen before when compared against historical data to increase confidence of malicious activity, data and events should not be viewed in isolation, but as part of a chain of behavior that could lead to other activities, such as network connections made for Command and Control, learning details about the environment through Discovery, and Lateral Movement.

.003 Time Providers

Monitor newly executed processes, such as the W32tm.exe utility. [48] The Sysinternals Autoruns tool may also be used to analyze auto-starting locations, including DLLs listed as time providers. [49]

.006 Kernel Modules and Extensions

Monitor for newly created processes that may modify the kernel to automatically execute programs on system boot.

.009 Shortcut Modification

Monitor for newly executed processes that may create or edit shortcuts to run a program during system boot or user login.

.013 XDG Autostart Entries

Monitor newly executed processes that may modify XDG autostart entries to execute programs or commands during system boot.

.014 Active Setup

Monitor newly executed processes that may achieve persistence by adding a Registry key to the Active Setup of the local machine.

.015 Login Items

Monitor processes that start at login for unusual or unknown applications. Usual applications for login items could include what users add to configure their user environment, such as email, chat, or music applications, or what administrators include for organization settings and protections. Check for running applications from login items that also have abnormal behavior, such as establishing network connections.

Enterprise T1037 Boot or Logon Initialization Scripts

Monitor for newly executed processes that may use scripts automatically executed at boot or logon initialization to establish persistence.

.001 Logon Script (Windows)

Monitor for newly constructed processes and/or command-lines that execute logon scripts

.002 Login Hook

Monitor for processes and/or command-lines to install or modify login hooks, as well as processes spawned at user login by these hooks.

.003 Network Logon Script

Monitor for newly constructed processes and/or command-lines that execute logon scripts

.004 RC Scripts

Monitor for newly constructed processes and/or command-lines that execute /etc/rc.local if present.

.005 Startup Items

Monitor for newly constructed processes and/or command-lines that execute during the boot up process to check for unusual or unknown applications and behavior

Enterprise T1217 Browser Bookmark Discovery

Monitor newly constructed processes, e.g. browsers, for to gather personal information about users (ex: banking sites, interests, social media, etc.)

Enterprise T1176 Browser Extensions

Monitor for newly executed processes that could be used to abuse internet browser extensions to establish persistence.

Enterprise T1059 Command and Scripting Interpreter

Monitor log files for process execution through command-line and scripting activities. This information can be useful in gaining additional insight to adversaries' actions through how they use native processes or custom tools. Also monitor for loading of modules associated with specific languages.

.001 PowerShell

Monitor for newly executed processes that may abuse PowerShell commands and scripts for execution.

.002 AppleScript

Monitor for newly executed processes that may abuse AppleScript for execution. Scripts are likely to perform actions with various effects on a system that may generate events, depending on the types of monitoring used. Actions may be related to network and system information Discovery, Collection, or other scriptable post-compromise behaviors and could be used as indicators of detection leading back to the source script.

.003 Windows Command Shell

Monitor for newly executed processes that may abuse the Windows command shell for execution.

.004 Unix Shell

Monitor for newly executed processes that may abuse Unix shell commands and scripts for execution.

.005 Visual Basic

Monitor for events associated with VB execution, such as Office applications spawning processes, usage of the Windows Script Host (typically cscript.exe or wscript.exe). VB execution is likely to perform actions with various effects on a system that may generate events, depending on the types of monitoring used.

.006 Python

Monitor systems for abnormal Python usage and python.exe behavior, which could be an indicator of malicious activity. Understanding standard usage patterns is important to avoid a high number of false positives. If scripting is restricted for normal users, then any attempts to enable scripts running on a system would be considered suspicious. If scripts are not commonly used on a system, but enabled, scripts running out of cycle from patching or other administrator functions are suspicious. Scripts should be captured from the file system when possible to determine their actions and intent. Scripts are likely to perform actions with various effects on a system that may generate events, depending on the types of monitoring used. Monitor newly executed processes that may abuse Python commands and scripts for execution.

.007 JavaScript

Monitor for events associated with scripting execution, such as process activity, usage of the Windows Script Host (typically cscript.exe or wscript.exe), file activity involving scripts

Enterprise T1609 Container Administration Command

Container administration service activities and executed commands can be captured through logging of process execution with command-line arguments on the container as well as within the underlying host.

Enterprise T1136 Create Account

Monitor newly executed processes associated with account creation, such as net.exe

.001 Local Account

Monitor newly executed processes associated with account creation, such as net.exe

.002 Domain Account

Monitor newly executed processes associated with account creation, such as net.exe

Enterprise T1543 Create or Modify System Process

New, benign system processes may be created during installation of new software.

.002 Systemd Service

Suspicious processes or scripts spawned in this manner will have a parent process of ‘systemd’, a parent process ID of 1, and will usually execute as the ‘root’ user.

.003 Windows Service

Suspicious program execution through services may show up as outlier processes that have not been seen before when compared against historical data. Look for abnormal process call trees from known services and for execution of other commands that could relate to Discovery or other adversary techniques. Data and events should not be viewed in isolation, but as part of a chain of behavior that could lead to other activities, such as network connections made for Command and Control, learning details about the environment through Discovery, and Lateral Movement.

.004 Launch Daemon

Monitor for newly executed processes that may create or modify Launch Daemons to execute malicious payloads as part of persistence.

Enterprise T1555 Credentials from Password Stores

Monitor newly executed processes that may search for common password storage locations to obtain user credentials.

.001 Keychain

Monitor processes spawned by command line utilities to manipulate keychains directly, such as security, combined with arguments to collect passwords, such as dump-keychain -d.

.004 Windows Credential Manager

Monitor newly executed processes of vaultcmd.exe for suspicious activity, such as listing credentials from the Windows Credentials locker (i.e., vaultcmd /listcreds:"Windows Credentials").[50]

Enterprise T1485 Data Destruction

Monitor for newly executed processes of binaries that could be involved in data destruction activity, such as SDelete.

Enterprise T1486 Data Encrypted for Impact

Monitor for newly constructed processes and/or command-lines involved in data destruction activity, such as vssadmin, wbadmin, and bcdedit.

Enterprise T1005 Data from Local System

Monitor for newly executed processes that may search local system sources, such as file systems or local databases, to find files of interest and sensitive data prior to Exfiltration.

Enterprise T1622 Debugger Evasion

Monitoring for suspicious processes being spawned that gather a variety of system information or perform other forms of Discovery, especially in a short period of time, may aid in detection. Debugger related system checks will likely occur in the first steps of an operation but may also occur throughout as an adversary learns the environment. Data and events should not be viewed in isolation, but as part of a chain of behavior that could lead to other activities, such as lateral movement, based on the information obtained.

Enterprise T1140 Deobfuscate/Decode Files or Information

Monitor for newly executed processes that attempt to hide artifacts of an intrusion, such as common archive file applications and extensions (ex: Zip and RAR archive tools), and correlate with other suspicious behavior to reduce false positives from normal user and administrator behavior.

Enterprise T1561 Disk Wipe

Monitor newly executed processes that may wipe or corrupt raw disk data on specific systems or in large numbers in a network to interrupt availability to system and network resources.

.001 Disk Content Wipe

Monitor newly executed processes that may erase the contents of storage devices on specific systems or in large numbers in a network to interrupt availability to system and network resources.

.002 Disk Structure Wipe

Monitor newly executed processes that may corrupt or wipe the disk data structures on a hard drive necessary to boot a system; targeting specific critical systems or in large numbers in a network to interrupt availability to system and network resources.

Enterprise T1482 Domain Trust Discovery

Monitor for newly executed processes that may attempt to gather information on domain trust relationships that may be used to identify lateral movement opportunities in Windows multi-domain/forest environments.

Enterprise T1189 Drive-by Compromise

Monitor for newly executed processes to gain access to a system through a user visiting a website over the normal course of browsing.

Enterprise T1611 Escape to Host

Monitor for process activity (such as unexpected processes spawning outside a container and/or on a host) that might indicate an attempt to escape from a privileged container to host.

Enterprise T1546 Event Triggered Execution

Tools such as Sysinternals Autoruns can be used to detect changes to execution triggers that could be attempts at persistence. Also look for abnormal process call trees for execution of other commands that could relate to Discovery actions or other techniques.

.001 Change Default File Association

Monitor for newly executed processes that may establish persistence by executing malicious content triggered by a file type association.

.002 Screensaver

Monitor newly executed processes that may establish persistence by executing malicious content triggered by user inactivity.

.003 Windows Management Instrumentation Event Subscription

Monitor newly executed processes that result from the execution of subscriptions (i.e. spawning from the WmiPrvSe.exe WMI Provider Host process).

.004 Unix Shell Configuration Modification

Monitor newly executed processes that may establish persistence through executing malicious commands triggered by a user’s shell.

.005 Trap

Monitor newly executed processes that may establish persistence by executing malicious content triggered by an interrupt signal.

.006 LC_LOAD_DYLIB Addition

Monitor processes for those that may be used to modify binary headers.

.007 Netsh Helper DLL

It is likely unusual for netsh.exe to have any child processes in most environments. Monitor process executions and investigate any child processes spawned by netsh.exe for malicious behavior.

.008 Accessibility Features

Monitor newly executed processes that may establish persistence and/or elevate privileges by executing malicious content triggered by accessibility features.

.009 AppCert DLLs

Monitor newly executed processes that may establish persistence and/or elevate privileges by executing malicious content triggered by AppCert DLLs loaded into processes.

.010 AppInit DLLs

Monitor newly executed processes that may establish persistence and/or elevate privileges by executing malicious content triggered by AppInit DLLs loaded into processes.

.011 Application Shimming

Monitor newly executed processs for sdbinst.exe for potential indications of application shim abuse. There are several public tools available that will detect shims that are currently available [51]: Shim-Process-Scanner - checks memory of every running process for any shim flags Shim-Detector-Lite - detects installation of custom shim databases Shim-Guard - monitors registry for any shim installations ShimScanner - forensic tool to find active shims in memory* ShimCacheMem - Volatility plug-in that pulls shim cache from memory (note: shims are only cached after reboot)

.012 Image File Execution Options Injection

Monitor for abnormal usage of the GFlags tool as well as common processes spawned under abnormal parents and/or with creation flags indicative of debugging such as DEBUG_PROCESS and DEBUG_ONLY_THIS_PROCESS. [52]

.013 PowerShell Profile

Monitor newly executed processes that may gain persistence and elevate privileges by executing malicious content triggered by PowerShell profiles.

.014 Emond

Monitor newly executed processes that may gain persistence and elevate privileges by executing malicious content triggered by the Event Monitor Daemon (emond).

.015 Component Object Model Hijacking

Monitor newly executed processes that may establish persistence by executing malicious content triggered by hijacked references to Component Object Model (COM) objects.

Enterprise T1480 Execution Guardrails

Monitoring for suspicious processes being spawned that gather a variety of system information or perform other forms of Discovery, especially in a short period of time, may aid in detection. Detecting the use of guardrails may be difficult depending on the implementation.

.001 Environmental Keying

Monitoring for suspicious processes being spawned that gather a variety of system information or perform other forms of Discovery, especially in a short period of time, may aid in detection. Detecting the use of environmental keying may be difficult depending on the implementation.

Enterprise T1052 Exfiltration Over Physical Medium

Monitor for newly executed processes when removable media is mounted.

.001 Exfiltration over USB

Monitor for newly executed processes when removable media is mounted

Enterprise T1203 Exploitation for Client Execution

Monitor for abnormal process creations, such as a Command and Scripting Interpreter spawning from a potentially exploited application. Also look for other behavior on the endpoint system that might indicate successful compromise, such as abnormal behavior of browser or Office processes.

Enterprise T1083 File and Directory Discovery

Monitor newly executed processes that may enumerate files and directories or may search in specific locations of a host or network share for certain information within a file system.

Enterprise T1222 File and Directory Permissions Modification

Monitor for newly executed processes that may modify file or directory permissions/attributes to evade access control lists (ACLs) and access protected files.[53][54]

.001 Windows File and Directory Permissions Modification

Monitor for newly constructed processes and/or command-lines that can interact with the DACLs using built-in Windows commands, such as icacls, cacls, takeown, and attrib, which can grant adversaries higher permissions on specific files and folders.

.002 Linux and Mac File and Directory Permissions Modification

Monitor for newly executed processes that may modify file or directory permissions/attributes to evade access control lists (ACLs) and access protected files.[53][54]

Enterprise T1615 Group Policy Discovery

Monitor for newly executed processes that may gather information on Group Policy settings to identify paths for privilege escalation, security measures applied within a domain, and to discover patterns in domain objects that can be manipulated or used to blend in the environment.

Enterprise T1564 Hide Artifacts

Monitor newly executed processes that may attempt to hide artifacts associated with their behaviors to evade detection.

.001 Hidden Files and Directories

Monitor newly executed processes that may set files and directories to be hidden to evade detection mechanisms.

.002 Hidden Users

Monitor newly executed processes for actions that could be taken to add a new user and subsequently hide it from login screens.

.003 Hidden Window

Monitor newly executed processes that may use hidden windows to conceal malicious activity from the plain sight of users.

.006 Run Virtual Instance

Monitor newly executed processes associated with running a virtual instance, such as those launched from binary files associated with common virtualization technologies (ex: VirtualBox, VMware, QEMU, Hyper-V).

.009 Resource Forking

Monitor newly executed processes that may abuse resource forks to hide malicious code or executables to evade detection and bypass security applications.

Enterprise T1574 Hijack Execution Flow

Monitor processes for unusual activity (e.g., a process that does not use the network begins to do so, abnormal process call trees). Track library metadata, such as a hash, and compare libraries that are loaded at process execution time against previous executions to detect differences that do not correlate with patching or updates.

.002 DLL Side-Loading

Monitor newly constructed processes for unusual activity (e.g., a process that does not use the network begins to do so) as well as the introduction of new files/programs.

.005 Executable Installer File Permissions Weakness

Monitor for newly constructed processes to match an existing service executables.

.006 Dynamic Linker Hijacking

Monitor for newly executed processes for unusual activity (e.g., a process that does not use the network begins to do so).

.007 Path Interception by PATH Environment Variable

Monitor for newly executed processes for process executable paths that are named for partial directories.

.008 Path Interception by Search Order Hijacking

Monitor for newly executed processes for process executable paths that are named for partial directories.

.009 Path Interception by Unquoted Path

Monitor for newly executed processes that may execute their own malicious payloads by hijacking vulnerable file path references.

.010 Services File Permissions Weakness

Monitor for newly executed processes that may execute their own malicious payloads by hijacking the binaries used by services.

.011 Services Registry Permissions Weakness

Monitor suspicious programs execution through services. These processes may show up as outlier processes that have not been seen before when compared against historical data.

.012 COR_PROFILER

Monitor for newly executed processes, such as setx.exe, that may abuse of the COR_PROFILER variable, monitor for new suspicious unmanaged profiling DLLs loading into .NET processes shortly after the CLR causing abnormal process behavior.[55]

Enterprise T1562 Impair Defenses

Monitor newly executed processes that may maliciously modify components of a victim environment in order to hinder or disable defensive mechanisms.

.002 Disable Windows Event Logging

Monitor newly executed processes that may disable Windows event logging to limit data that can be leveraged for detections and audits.

.009 Safe Mode Boot

Monitor newly executed processes that may abuse Windows safe mode to disable endpoint defenses.

.010 Downgrade Attack

Monitor newly executed processes that may downgrade or use a version of system features that may be outdated, vulnerable, and/or does not support updated security controls such as logging.

Enterprise T1070 Indicator Removal on Host

Monitor for newly executed processes that may delete or alter generated artifacts on a host system, including logs or captured files such as quarantined malware.

.005 Network Share Connection Removal

Monitor for newly constructed processes and/or command line execution that can be used to remove network share connections via the net.exe process.

Enterprise T1202 Indirect Command Execution

Monitor for newly constructed processes and/or command-lines that can be used instead of invoking cmd (i.e. pcalua.exe, winrs.exe, cscript/wscript.exe, hh.exe, or bash.exe)

Enterprise T1490 Inhibit System Recovery

Use process monitoring to monitor the execution and command line parameters of binaries involved in inhibiting system recovery, such as vssadmin, wbadmin, and bcdedit.

Enterprise T1056 Input Capture

Monitor for newly executed processes conducting malicious activity

.002 GUI Input Capture

Monitor for newly executed processes

Enterprise T1559 Inter-Process Communication

Monitor for newly executed processes that are associated with abuse of IPC mechanisms

.001 Component Object Model

Monitor for newly executed processes that are associated with COM objects, especially those invoked by a user different than the one currently logged on.

.002 Dynamic Data Exchange

Monitor for newly executed processes that may use Windows Dynamic Data Exchange (DDE) to execute arbitrary commands.

Enterprise T1570 Lateral Tool Transfer

Monitor newly constructed processes that assist in lateral tool transfers.

Enterprise T1112 Modify Registry

Monitor processes and command-line arguments for actions that could be taken to change, conceal, and/or delete information in the Registry. (i.e. reg.exe, regedit.exe)

Enterprise T1135 Network Share Discovery

Monitor for newly executed processes that may create and cultivate social media accounts that can be used during targeting.

Enterprise T1040 Network Sniffing

Monitor for newly executed processes that can aid in sniffing network traffic to capture information about an environment, including authentication material passed over the network

Enterprise T1027 Obfuscated Files or Information

Monitor for newly executed processes that may attempt to make an executable or file difficult to discover or analyze by encrypting, encoding, or otherwise obfuscating its contents on the system or in transit.

.004 Compile After Delivery

Monitor for newly constructed processes and/or command-lines that look for non-native binary formats and cross-platform compiler and execution frameworks like Mono and determine if they have a legitimate purpose on the system. Typically these should only be used in specific and limited cases, like for software development.

Enterprise T1137 Office Application Startup

Monitor newly executed processes that may leverage Microsoft Office-based applications for persistence between startups. Collect process execution information including process IDs (PID) and parent process IDs (PPID) and look for abnormal chains of activity resulting from Office processes. Non-standard process execution trees may also indicate suspicious or malicious behavior. If winword.exe is the parent process for suspicious processes and activity relating to other adversarial techniques, then it could indicate that the application was used maliciously.

.001 Office Template Macros

Monitor newly executed processes that may abuse Microsoft Office templates to obtain persistence on a compromised system.

.002 Office Test

Monitor newly executed processes that may abuse the Microsoft Office "Office Test" Registry key to obtain persistence on a compromised system.

.003 Outlook Forms

Monitor newly executed processes that may abuse Microsoft Outlook forms to obtain persistence on a compromised system.

.004 Outlook Home Page

Monitor newly executed processes that may abuse Microsoft Outlook's Home Page feature to obtain persistence on a compromised system.

.005 Outlook Rules

Monitor newly executed processes that may abuse Microsoft Outlook rules to obtain persistence on a compromised system.

.006 Add-ins

Monitor newly executed processes that may abuse Microsoft Office add-ins to obtain persistence on a compromised system.

Enterprise T1003 OS Credential Dumping

Monitor for newly executed processes that may be indicative of credential dumping. On Windows 8.1 and Windows Server 2012 R2, monitor Windows Logs for LSASS.exe creation to verify that LSASS started as a protected process.

.001 LSASS Memory

Monitor for newly executed processes that may be indicative of credential dumping. On Windows 8.1 and Windows Server 2012 R2, monitor Windows Logs for LSASS.exe creation to verify that LSASS started as a protected process.

Enterprise T1201 Password Policy Discovery

Monitor for newly executed processes that may attempt to access detailed information about the password policy used within an enterprise network or cloud environment.

Enterprise T1120 Peripheral Device Discovery

Monitor for newly executed processes that may attempt to gather information about attached peripheral devices and components connected to a computer system.

Enterprise T1069 Permission Groups Discovery

Monitor for newly constructed processes and/or command-lines for actions that could be taken to gather system and network information. System and network discovery techniques normally occur throughout an operation as an adversary learns the environment. Data and events should not be viewed in isolation, but as part of a chain of behavior that could lead to other activities, such as Lateral Movement, based on the information obtained.

.001 Local Groups

Monitor newly executed processes that may attempt to find local system groups and permission settings.

.002 Domain Groups

Monitor newly executed processes that may attempt to find domain-level groups and permission settings.

.003 Cloud Groups

Monitor newly executed processes that may attempt to find cloud groups and permission settings.

Enterprise T1647 Plist File Modification

Monitor for newly executed processes with arguments that can modify property list (plist) files.

Enterprise T1057 Process Discovery

Monitor for newly executed processes that may attempt to get information about running processes on a system.

Enterprise T1012 Query Registry

Monitor for newly executed processes that may interact with the Windows Registry to gather information about the system, configuration, and installed software.

Enterprise T1219 Remote Access Software

Monitor for applications and processes related to remote admin tools. Correlate activity with other suspicious behavior that may reduce false positives if these tools are used by legitimate users and administrators. Domain Fronting may be used in conjunction to avoid defenses. Adversaries will likely need to deploy and/or install these remote tools to compromised systems. It may be possible to detect or prevent the installation of these tools with host-based solutions.

Enterprise T1563 Remote Service Session Hijacking

Monitor newly executed processes that may take control of preexisting sessions with remote services to move laterally in an environment.

.001 SSH Hijacking

Monitor newly executed processes that may hijack a legitimate user's SSH session to move laterally within an environment.

.002 RDP Hijacking

Consider monitoring processes for tscon.exe usage

Enterprise T1021 Remote Services

Monitor for newly executed processes that may use Valid Accounts to log into a service specifically designed to accept remote connections, such as RDP, telnet, SSH, and VNC. The adversary may then perform actions that spawn additional processes as the logged-on user.

.001 Remote Desktop Protocol

Monitor for newly executed processes (such as mstsc.exe) that may use Valid Accounts to log into a computer using the Remote Desktop Protocol (RDP). The adversary may then perform actions that spawn additional processes as the logged-on user.

.003 Distributed Component Object Model

Monitor for newly executed processes associated with DCOM activity, especially those invoked by a user different than the one currently logged on. Enumeration of COM objects, via Query Registry or PowerShell, may also precede malicious use.[56][57]

.004 SSH

Monitor for newly executed processes that may use Valid Accounts to log into remote machines using Secure Shell (SSH). For example, on macOS systems log show --predicate 'process = "sshd"' can be used to review incoming SSH connection attempts for suspicious activity. The command log show --info --predicate 'process = "ssh" or eventMessage contains "ssh"' can be used to review outgoing SSH connection activity.[58]

.005 VNC

Monitor for newly executed processes that may use Valid Accounts to remotely control machines using Virtual Network Computing (VNC). For example, on macOS systems the screensharingd process may be related to VNC connection activity.[58]

.006 Windows Remote Management

Monitor for newly executed processes that may use Valid Accounts to interact with remote systems using Windows Remote Management (WinRM), as well as service processes such as wmiprvse.exe on destination hosts.

Enterprise T1018 Remote System Discovery

Monitor for newly executed processes that can be used to discover remote systems, such as ping.exe and tracert.exe, especially when executed in quick succession.[47]

Enterprise T1091 Replication Through Removable Media

Monitor for newly executed processes that execute from removable media after it is mounted or when initiated by a user. If a remote access tool is used in this manner to move laterally, then additional actions are likely to occur after execution, such as opening network connections for Command and Control and system and network information Discovery.

Enterprise T1496 Resource Hijacking

Monitor for common cryptomining software process names that may indicate compromise and resource usage.

Enterprise T1053 Scheduled Task/Job

Monitor for newly executed processes that may abuse task scheduling functionality to facilitate initial or recurring execution of malicious code.

.002 At

Monitor for newly constructed processes with command-lines that create/modify or are executed from tasks. For example, on Windows tasks may spawn from svchost.exe or the Windows Task Scheduler taskeng.exe for older OS versions. [59] Suspicious program execution through scheduled tasks may show up as outlier processes that have not been seen before when compared against historical data.

.003 Cron

Monitor for newly constructed processes and/or command-lines that executed through scheduled tasks may show up as outlier processes that have not been seen before when compared against historical data. Data and events should not be viewed in isolation, but as part of a chain of behavior that could lead to other activities, such as network connections made for Command and Control, learning details about the environment through Discovery, and Lateral Movement.

.005 Scheduled Task

Monitor for newly constructed processes and/or command-lines that execute from the svchost.exe in Windows 10 and the Windows Task Scheduler taskeng.exe for older versions of Windows. [59] If scheduled tasks are not used for persistence, then the adversary is likely to remove the task when the action is complete.

.006 Systemd Timers

Monitor for newly constructed processes and/or command-lines that will have a parent process of ‘systemd’, a parent process ID of 1, and will usually execute as the ‘root’ user.

Enterprise T1505 Server Software Component

Process monitoring may be used to detect servers components that perform suspicious actions such as running cmd.exe or accessing files.

.003 Web Shell

Web shells can be difficult to detect. Unlike other forms of persistent remote access, they do not initiate connections. The portion of the Web shell that is on the server may be small and innocuous looking. The PHP version of the China Chopper Web shell, for example, is the following short payload: [60]<?php @eval($_POST['password']);>Nevertheless, detection mechanisms exist. Process monitoring may be used to detect Web servers that perform suspicious actions such as spawning cmd.exe or accessing files that are not in the Web directory.[61]

.005 Terminal Services DLL

Monitor processes with arguments that may potentially highlight adversary actions to modify Registry values (ex: reg.exe) or modify/replace the legitimate termsrv.dll.

Enterprise T1489 Service Stop

Monitor for newly executed processes that may stop or disable services on a system to render those services unavailable to legitimate users.

Enterprise T1072 Software Deployment Tools

Monitor for newly executed processes that does not correlate to known good software. Analyze the process execution trees, historical activities from the third-party application (such as what types of files are usually pushed), and the resulting activities or events from the file/binary/script pushed to systems.

Enterprise T1518 Software Discovery

Monitor newly executed processes that may attempt to get a listing of software and software versions that are installed on a system or in a cloud environment.

.001 Security Software Discovery

Monitor newly executed processes that may attempt to get a listing of security software, configurations, defensive tools, and sensors that are installed on a system or in a cloud environment.

Enterprise T1553 Subvert Trust Controls

Monitor processes and arguments for malicious attempts to modify trust settings, such as the installation of root certificates or modifications to trust attributes/policies applied to files.

.001 Gatekeeper Bypass

Monitor and investigate attempts to modify extended file attributes with utilities such as xattr. Built-in system utilities may generate high false positive alerts, so compare against baseline knowledge for how systems are typically used and correlate modification events with other indications of malicious activity where possible.

.004 Install Root Certificate

Monitor for processes, such as certmgr.exe (macOS) or certutil.exe (Windows), that can be used to install root certificates. A system's root certificates are unlikely to change frequently. Monitor new certificates installed on a system that could be due to malicious activity. [62] Check pre-installed certificates on new systems to ensure unnecessary or suspicious certificates are not present. Microsoft provides a list of trustworthy root certificates online and through authroot.stl. [62] The Sysinternals Sigcheck utility can also be used (sigcheck[64].exe -tuv) to dump the contents of the certificate store and list valid certificates not rooted to the Microsoft Certificate Trust List. [63]

.006 Code Signing Policy Modification

Monitor processes and command-line arguments for actions that could be taken to modify the code signing policy of a system, such as bcdedit.exe -set TESTSIGNING ON[64]

Enterprise T1218 System Binary Proxy Execution

Monitor processes and command-line parameters for signed binaries that may be used to proxy execution of malicious files. Compare recent invocations of signed binaries that may be used to proxy execution with prior history of known good arguments and loaded files to determine anomalous and potentially adversarial activity. Legitimate programs used in suspicious ways, like msiexec.exe downloading an MSI file from the Internet, may be indicative of an intrusion. Correlate activity with other suspicious behavior to reduce false positives that may be due to normal benign use by users and administrators.

.001 Compiled HTML File

Monitor and analyze the execution and arguments of hh.exe. [65] Compare recent invocations of hh.exe with prior history of known good arguments to determine anomalous and potentially adversarial activity (ex: obfuscated and/or malicious commands). Non-standard process execution trees may also indicate suspicious or malicious behavior, such as if hh.exe is the parent process for suspicious processes and activity relating to other adversarial techniques.

.002 Control Panel

Monitor and analyze activity related to items associated with CPL files, such as the control.exe. Analyze new Control Panel items as well as those present on disk for malicious content. Both executable and CPL formats are compliant Portable Executable (PE) images and can be examined using traditional tools and methods, pending anti-reverse-engineering techniques.[66]

.003 CMSTP

Use process monitoring to detect and analyze the execution and arguments of CMSTP.exe. Compare recent invocations of CMSTP.exe with prior history of known good arguments and loaded files to determine anomalous and potentially adversarial activity. Sysmon events can also be used to identify potential abuses of CMSTP.exe. Detection strategy may depend on the specific adversary procedure, but potential rules include: [67] To detect loading and execution of local/remote payloads - Event 1 (Process creation) where ParentImage contains CMSTP.exe Also monitor for events, such as the creation of processes (Sysmon Event 1), that involve auto-elevated CMSTP COM interfaces such as CMSTPLUA (3E5FC7F9-9A51-4367-9063-A120244FBEC7) and CMLUAUTIL (3E000D72-A845-4CD9-BD83-80C07C3B881F).

.004 InstallUtil

Use process monitoring to monitor the execution and arguments of InstallUtil.exe. Compare recent invocations of InstallUtil.exe with prior history of known good arguments and executed binaries to determine anomalous and potentially adversarial activity

.005 Mshta

Use process monitoring to monitor the execution and arguments of mshta.exe.

.007 Msiexec

Use process monitoring to monitor the execution and arguments of msiexec.exe. Compare recent invocations of msiexec.exe with prior history of known good arguments and executed MSI files.

.008 Odbcconf

Use process monitoring to monitor the execution and arguments of odbcconf.exe. Compare recent invocations of odbcconf.exe with prior history of known good arguments and loaded DLLs to determine anomalous and potentially adversarial activity.

.009 Regsvcs/Regasm

Use process monitoring to monitor the execution and arguments of Regsvcs.exe and Regasm.exe. Compare recent invocations of Regsvcs.exe and Regasm.exe with prior history of known good arguments and executed binaries to determine anomalous and potentially adversarial activity.

.010 Regsvr32

Use process monitoring to monitor the execution and arguments of regsvr32.exe. Compare recent invocations of regsvr32.exe with prior history of known good arguments and loaded files to determine anomalous and potentially adversarial activity.

.011 Rundll32

Use process monitoring to monitor the execution and arguments of rundll32.exe. Compare recent invocations of rundll32.exe with prior history of known good arguments and loaded DLLs to determine anomalous and potentially adversarial activity.

.012 Verclsid

Use process monitoring to monitor the execution and arguments of verclsid.exe. Compare recent invocations of verclsid.exe with prior history of known good arguments and loaded files to determine anomalous and potentially adversarial activity. Depending on the environment, it may be unusual for verclsid.exe to have a parent process of a Microsoft Office product. It may also be unusual for verclsid.exe to have any child processes or to make network connections or file modifications.

.013 Mavinject

Monitor the execution and arguments of mavinject.exe. Compare recent invocations of mavinject.exe with prior history of known good arguments and injected DLLs to determine anomalous and potentially adversarial activity.

.014 MMC

Monitor processes for suspicious or malicious use of MMC. Since MMC is a signed Windows binary, verify use of MMC is legitimate and not malicious.

Enterprise T1082 System Information Discovery

Monitor newly executed processes that may attempt to get detailed information about the operating system and hardware, including version, patches, hotfixes, service packs, and architecture.

Enterprise T1614 System Location Discovery

Monitor newly executed processes that may gather information in an attempt to calculate the geographical location of a victim host.

.001 System Language Discovery

Monitor for newly executed processes that may attempt to gather information about the system language of a victim in order to infer the geographical location of that host.

Enterprise T1016 System Network Configuration Discovery

Monitor for executed processes (such as ipconfig/ifconfig and arp) with arguments that may look for details about the network configuration and settings, such as IP and/or MAC addresses.

.001 Internet Connection Discovery

Monitor for executed processes (such as tracert or ping) that may check for Internet connectivity on compromised systems.

Enterprise T1049 System Network Connections Discovery

Monitor for executed processes that may attempt to get a listing of network connections to or from the compromised system they are currently accessing or from remote systems by querying for information over the network.

Enterprise T1033 System Owner/User Discovery

Monitor for newly executed processes that may be indicative of credential dumping. On Windows 8.1 and Windows Server 2012 R2, monitor Windows Logs for LSASS.exe creation to verify that LSASS started as a protected process.

Enterprise T1216 System Script Proxy Execution

Monitor script processes, such as `cscript that may be used to proxy execution of malicious files.

.001 PubPrn

Monitor script processes, such as `cscript that may be used to proxy execution of malicious files.

Enterprise T1007 System Service Discovery

Monitor for newly executed processes with arguments that may try to get information about registered services. System and network discovery techniques normally occur throughout an operation as an adversary learns the environment. Data and events should not be viewed in isolation, but as part of a chain of behavior that could lead to other activities, such as Lateral Movement, based on the information obtained.

Enterprise T1569 System Services

Monitor newly executed processes that may abuse system services or daemons to execute commands or programs.

.001 Launchctl

Monitor for newly executed daemons that may abuse launchctl to execute commands or programs.

.002 Service Execution

Monitor for newly executed processes that may abuse the Windows service control manager to execute malicious commands or payloads.

Enterprise T1529 System Shutdown/Reboot

Monitor for newly executed processes of binaries involved in shutting down or rebooting systems.

Enterprise T1124 System Time Discovery

Monitor for newly executed processes that may gather the system time and/or time zone from a local or remote system.

Enterprise T1080 Taint Shared Content

Monitor processes that are executed from removable media for malicious or abnormal activity such as network connections due to Command and Control and possible network Discovery techniques.

Enterprise T1221 Template Injection

Analyze process behavior to determine if an Office application is performing actions, such as opening network connections, reading files, spawning abnormal child processes (ex: PowerShell), or other suspicious actions that could relate to post-compromise behavior.

Enterprise T1127 Trusted Developer Utilities Proxy Execution

Monitor for abnormal presence of these or other utilities that enable proxy execution that are typically used for development, debugging, and reverse engineering on a system that is not used for these purposes may be suspicious. Use process monitoring to monitor the execution and arguments of from developer utilities that may be abused. Compare recent invocations of those binaries with prior history of known good arguments and executed binaries to determine anomalous and potentially adversarial activity. It is likely that these utilities will be used by software developers or for other software development related tasks, so if it exists and is used outside of that context, then the event may be suspicious.

.001 MSBuild

Monitor for newly executed processes of MSBuild.exe. Compare recent invocations of those binaries with prior history of known good arguments and executed binaries to determine anomalous and potentially adversarial activity.

Enterprise T1552 Unsecured Credentials

Monitor newly executed processes that may search compromised systems to find and obtain insecurely stored credentials.

.002 Credentials in Registry

Monitor newly executed processes for applications that can be used to query the Registry, such as Reg, and collect command parameters that may indicate credentials are being searched. Correlate activity with related suspicious behavior that may indicate an active intrusion to reduce false positives.

Enterprise T1204 User Execution

Monitor for newly executed processes that may be used by an adversary to gain Initial Access that require user interaction. This includes compression applications, such as those for zip files, that can be used to Deobfuscate/Decode Files or Information in payloads.

.002 Malicious File

Monitor for newly constructed processes and/or command-lines for applications that may be used by an adversary to gain initial access that require user interaction. This includes compression applications, such as those for zip files, that can be used to Deobfuscate/Decode Files or Information in payloads.

Enterprise T1497 Virtualization/Sandbox Evasion

Virtualization, sandbox, user activity, and related discovery techniques will likely occur in the first steps of an operation but may also occur throughout as an adversary learns the environment. Data and events should not be viewed in isolation, but as part of a chain of behavior that could lead to other activities, such as lateral movement, based on the information obtained. Detecting actions related to virtualization and sandbox identification may be difficult depending on the adversary's implementation and monitoring required. Monitoring for suspicious processes being spawned that gather a variety of system information or perform other forms of Discovery, especially in a short period of time, may aid in detection.

.001 System Checks

Virtualization, sandbox, user activity, and related discovery techniques will likely occur in the first steps of an operation but may also occur throughout as an adversary learns the environment. Data and events should not be viewed in isolation, but as part of a chain of behavior that could lead to other activities, such as lateral movement, based on the information obtained. Detecting actions related to virtualization and sandbox identification may be difficult depending on the adversary's implementation and monitoring required. Monitoring for suspicious processes being spawned that gather a variety of system information or perform other forms of Discovery, especially in a short period of time, may aid in detection.

.002 User Activity Based Checks

User activity-based checks will likely occur in the first steps of an operation but may also occur throughout as an adversary learns the environment. Data and events should not be viewed in isolation, but as part of a chain of behavior that could lead to other activities, such as lateral movement, based on the information obtained. Detecting actions related to virtualization and sandbox identification may be difficult depending on the adversary's implementation and monitoring required. Monitoring for suspicious processes being spawned that gather a variety of system information or perform other forms of Discovery, especially in a short period of time, may aid in detection.

.003 Time Based Evasion

Time-based evasion will likely occur in the first steps of an operation but may also occur throughout as an adversary learns the environment. Data and events should not be viewed in isolation, but as part of a chain of behavior that could lead to other activities, such as lateral movement, based on the information obtained. Detecting actions related to virtualization and sandbox identification may be difficult depending on the adversary's implementation and monitoring required. Monitoring for suspicious processes being spawned that gather a variety of system information or perform other forms of Discovery, especially in a short period of time, may aid in detection.

Enterprise T1047 Windows Management Instrumentation

Monitor for newly constructed processes and/or command-lines of "wmic"

Enterprise T1220 XSL Script Processing

Use process monitoring to monitor the execution and arguments of msxsl.exe and wmic.exe. [68] [69] Command arguments used before and after the script invocation may also be useful in determining the origin and purpose of the payload being loaded. The presence of msxsl.exe or other utilities that enable proxy execution that are typically used for development, debugging, and reverse engineering on a system that is not used for these purposes may be suspicious.

Process: Process Metadata

Contextual data about a running process, which may include information such as environment variables, image name, user/owner, etc.

Process: Process Metadata

Contextual data about a running process, which may include information such as environment variables, image name, user/owner, etc.

Domain ID Name Detects
Enterprise T1548 Abuse Elevation Control Mechanism

Monitor contextual data about a running process, which may include information such as environment variables, image name, user/owner that may circumvent mechanisms designed to control elevate privileges to gain higher-level permissions.

.002 Bypass User Account Control

Monitor contextual data about a running process, which may include information such as environment variables, image name, user/owner that may bypass UAC mechanisms to elevate process privileges on system.

.003 Sudo and Sudo Caching

Monitor contextual data about a running process, which may include information such as environment variables, image name, user/owner that may perform sudo caching and/or use the suoders file to elevate privileges.

Enterprise T1134 Access Token Manipulation

Query systems for process and thread token information and look for inconsistencies such as user owns processes impersonating the local SYSTEM account.[70] Look for inconsistencies between the various fields that store PPID information, such as the EventHeader ProcessId from data collected via Event Tracing for Windows (ETW), Creator Process ID/Name from Windows event logs, and the ProcessID and ParentProcessID (which are also produced from ETW and other utilities such as Task Manager and Process Explorer). The ETW provided EventHeader ProcessId identifies the actual parent process.

.004 Parent PID Spoofing

Look for inconsistencies between the various fields that store PPID information, such as the EventHeader ProcessId from data collected via Event Tracing for Windows (ETW), Creator Process ID/Name from Windows event logs, and the ProcessID and ParentProcessID (which are also produced from ETW and other utilities such as Task Manager and Process Explorer). The ETW provided EventHeader ProcessId identifies the actual parent process.[71]

Enterprise T1059 Command and Scripting Interpreter

Monitor contextual data about a running process, which may include information such as environment variables, image name, user/owner, or other information that may reveal abuse of system features. For example, consider monitoring for Windows event ID (EID) 400, which shows the version of PowerShell executing in the EngineVersion field (which may also be relevant to detecting a potential Downgrade Attack) as well as if PowerShell is running locally or remotely in the HostName field. Furthermore, EID 400 may indicate the start time and EID 403 indicates the end time of a PowerShell session.[72]

.001 PowerShell

Consider monitoring for Windows event ID (EID) 400, which shows the version of PowerShell executing in the EngineVersion field (which may also be relevant to detecting a potential Downgrade Attack) as well as if PowerShell is running locally or remotely in the HostName field. Furthermore, EID 400 may indicate the start time and EID 403 indicates the end time of a PowerShell session.[72]

Enterprise T1562 .010 Impair Defenses: Downgrade Attack

Monitor contextual data about a running process, which may include information such as environment variables, image name, user/owner, or other information that may reveal use of a version of system features that may be outdated, vulnerable, and/or does not support updated security controls such as logging. For example, monitoring for Windows event ID (EID) 400, specifically the EngineVersion field which shows the version of PowerShell running, may highlight a malicious downgrade attack.[72]

Enterprise T1056 Input Capture

Verify integrity of live processes by comparing code in memory to that of corresponding static binaries, specifically checking for jumps and other instructions that redirect code flow.

.004 Credential API Hooking

Verify integrity of live processes by comparing code in memory to that of corresponding static binaries, specifically checking for jumps and other instructions that redirect code flow.

Enterprise T1036 Masquerading

Monitor for file names that are mismatched between the file name on disk and that of the binary's PE metadata, this is a likely indicator that a binary was renamed after it was compiled.

.003 Rename System Utilities

Monitor for file names that are mismatched between the file name on disk and that of the binary's PE metadata, this is a likely indicator that a binary was renamed after it was compiled.

.005 Match Legitimate Name or Location

Collecting and comparing disk and resource filenames for binaries by looking to see if the InternalName, OriginalFilename, and/or ProductName match what is expected could provide useful leads, but may not always be indicative of malicious activity.

Process: Process Modification

Changes made to a process, or its contents, typically to write and/or execute code in the memory of the target process (ex: Sysmon EID 8)

Process: Process Modification

Changes made to a process, or its contents, typically to write and/or execute code in the memory of the target process (ex: Sysmon EID 8)

Domain ID Name Detects
Enterprise T1185 Browser Session Hijacking

This may be a difficult technique to detect because adversary traffic may be masked by normal user traffic. Monitor for Process Injection against browser applications.

Enterprise T1055 Process Injection

Monitor for changes made to processes that may inject code into processes in order to evade process-based defenses as well as possibly elevate privileges.

.001 Dynamic-link Library Injection

Monitor for changes made to processes that may inject dynamic-link libraries (DLLs) into processes in order to evade process-based defenses as well as possibly elevate privileges.

.002 Portable Executable Injection

Monitor for changes made to processes that may inject portable executables (PE) into processes in order to evade process-based defenses as well as possibly elevate privileges.

.003 Thread Execution Hijacking

Monitor for changes made to processes that may inject malicious code into hijacked processes in order to evade process-based defenses as well as possibly elevate privileges.

.004 Asynchronous Procedure Call

Monitor for changes made to processes that may inject malicious code into processes via the asynchronous procedure call (APC) queue in order to evade process-based defenses as well as possibly elevate privileges.

.005 Thread Local Storage

Monitor for changes made to processes that may inject malicious code into processes via thread local storage (TLS) callbacks in order to evade process-based defenses as well as possibly elevate privileges.

.008 Ptrace System Calls

Monitor for changes made to processes that may inject malicious code into processes via ptrace (process trace) system calls in order to evade process-based defenses as well as possibly elevate privileges.

.012 Process Hollowing

Monitor for changes made to processes that may inject malicious code into suspended and hollowed processes in order to evade process-based defenses.

.015 ListPlanting

Monitor for changes made to processes that may inject code into processes in order to evade process-based defenses as well as possibly elevate privileges. Analyze process behavior to determine if a process is performing unusual actions, such as opening network connections, reading files, or other suspicious actions that could relate to post-compromise behavior.

Process: Process Termination

Exit of a running process (ex: Sysmon EID 5 or Windows EID 4689)

Process: Process Termination

Exit of a running process (ex: Sysmon EID 5 or Windows EID 4689)

Domain ID Name Detects
Enterprise T1562 Impair Defenses

Monitor for unexpected deletions of a running process (ex: Sysmon EID 5 or Windows EID 4689) that may maliciously modify components of a victim environment in order to hinder or disable defensive mechanisms.

.001 Disable or Modify Tools

Monitor processes for unexpected termination related to security tools/services.

Enterprise T1489 Service Stop

Monitor processes and command-line arguments to see if critical processes are terminated or stop running.

References

  1. Microsoft. (2018, May 31). Processes and Threads. Retrieved September 28, 2021.
  2. Microsoft TechNet. (n.d.). Retrieved April 25, 2017.
  3. Microsoft TechNet. (n.d.). Retrieved April 25, 2017.
  4. Microsoft TechNet. (n.d.). Retrieved April 25, 2017.
  5. Microsoft. (n.d.). AddMonitor function. Retrieved November 12, 2014.
  6. Apple. (n.d.). Keychain Items. Retrieved April 12, 2022.
  7. Mercer, W. and Rascagneres, P. (2018, February 12). Olympic Destroyer Takes Aim At Winter Olympics. Retrieved March 14, 2019.
  8. Microsoft. (2018, December 5). CredEnumarateA function (wincred.h). Retrieved November 24, 2020.
  9. Delpy, B. (2017, December 12). howto ~ credential manager saved credentials. Retrieved November 23, 2020.
  10. Schroeder, W. (2017, October 30). A Guide to Attacking Domain Trusts. Retrieved February 14, 2019.
  11. Microsoft. (n.d.). Domain.GetAllTrustRelationships Method. Retrieved February 14, 2019.
  12. FBI. (2020, November 19). Indicators of Compromise Associated with Ragnar Locker Ransomware. Retrieved April 1, 2021.
  13. Hosseini, A. (2017, July 18). Ten Process Injection Techniques: A Technical Survey Of Common And Trending Process Injection Techniques. Retrieved December 7, 2017.
  14. Moe, O. (2018, January 14). Putting Data in Alternate Data Streams and How to Execute It. Retrieved June 30, 2018.
  15. Moe, O. (2018, April 11). Putting Data in Alternate Data Streams and How to Execute It - Part 2. Retrieved June 30, 2018.
  16. Atkinson, J. (2017, July 18). Host-based Threat Modeling & Indicator Design. Retrieved March 21, 2018.
  17. Tinaztepe, E. (n.d.). The Adventures of a Keystroke: An in-depth look into keyloggers on Windows. Retrieved April 27, 2016.
  18. Microsoft. (n.d.). Hooks Overview. Retrieved December 12, 2017.
  19. Volatility Labs. (2012, September 24). MoVP 3.1 Detecting Malware Hooks in the Windows GUI Subsystem. Retrieved December 12, 2017.
  20. Prekas, G. (2011, July 11). Winhook. Retrieved December 12, 2017.
  21. Satiro, J. (2011, September 14). GetHooks. Retrieved December 12, 2017.
  22. Felici, M. (2006, December 6). Any application-defined hook procedure on my machine?. Retrieved December 12, 2017.
  23. Eye of Ra. (2017, June 27). Windows Keylogger Part 2: Defense against user-land. Retrieved December 12, 2017.
  24. Dell SecureWorks. (2015, January 12). Skeleton Key Malware Analysis. Retrieved April 8, 2019.
  25. Russinovich, M. & Sharkey, K. (2006, January 10). Reghide. Retrieved August 9, 2018.
  26. Reitz, B. (2017, July 14). Hiding Registry keys with PSReflect. Retrieved August 9, 2018.
  27. Russinovich, M. & Sharkey, K. (2016, July 4). RegDelNull v1.11. Retrieved August 10, 2018.
  28. Pinola, M. (2014, December 14). 3 tools to check your hard drive's health and make sure it's not already dying on you. Retrieved October 2, 2018.
  29. SanDisk. (n.d.). Self-Monitoring, Analysis and Reporting Technology (S.M.A.R.T.). Retrieved October 2, 2018.
  30. smartmontools. (n.d.). smartmontools. Retrieved October 2, 2018.
  31. Ligh, M.H. et al.. (2014, July). The Art of Memory Forensics: Detecting Malware and Threats in Windows, Linux, and Mac Memory. Retrieved December 20, 2017.
  32. GNU. (2010, February 5). The GNU Accounting Utilities. Retrieved December 20, 2017.
  33. Jahoda, M. et al.. (2017, March 14). redhat Security Guide - Chapter 7 - System Auditing. Retrieved December 20, 2017.
  34. stderr. (2014, February 14). Detecting Userland Preload Rootkits. Retrieved December 20, 2017.
  35. Microsoft. (n.d.). GetWindowLong function. Retrieved December 16, 2017.
  36. Microsoft. (n.d.). SetWindowLong function. Retrieved December 16, 2017.
  1. Microsoft. (n.d.). SendNotifyMessage function. Retrieved December 16, 2017.
  2. Liberman, T. & Kogan, E. (2017, December 7). Lost in Transaction: Process Doppelgänging. Retrieved December 20, 2017.
  3. hasherezade. (2017, December 18). Process Doppelgänging – a new way to impersonate a process. Retrieved December 20, 2017.
  4. 0x00pico. (2017, September 25). Super-Stealthy Droppers. Retrieved October 4, 2021.
  5. Landry, J. (2016, April 21). Teaching an old RAT new tricks. Retrieved October 4, 2021.
  6. Microsoft. (n.d.). Graphics.CopyFromScreen Method. Retrieved March 24, 2020.
  7. Thomas Reed. (2017, January 18). New Mac backdoor using antiquated code. Retrieved July 5, 2017.
  8. ise. (2019, February 19). Password Managers: Under the Hood of Secrets Management. Retrieved January 22, 2021.
  9. VerSprite. (2018, January 24). Exploiting VyprVPN for MacOS. Retrieved April 20, 2022.
  10. French, D. (2018, October 2). Detecting Attempts to Steal Passwords from Memory. Retrieved October 11, 2019.
  11. Stepanic, D.. (2020, January 13). Embracing offensive tooling: Building detections against Koadic using EQL. Retrieved November 30, 2020.
  12. Mathers, B. (2017, May 31). Windows Time Service Tools and Settings. Retrieved March 26, 2018.
  13. Russinovich, M. (2016, January 4). Autoruns for Windows v13.51. Retrieved June 6, 2016.
  14. Arntz, P. (2016, March 30). The Windows Vault . Retrieved November 23, 2020.
  15. Pierce, Sean. (2015, November). Defending Against Malicious Application Compatibility Shims. Retrieved June 22, 2017.
  16. Shanbhag, M. (2010, March 24). Image File Execution Options (IFEO). Retrieved December 18, 2017.
  17. Hybrid Analysis. (2018, June 12). c9b65b764985dfd7a11d3faf599c56b8.exe. Retrieved August 19, 2018.
  18. Hybrid Analysis. (2018, May 30). 2a8efbfadd798f6111340f7c1c956bee.dll. Retrieved August 19, 2018.
  19. Brown, J. (2020, May 7). Detecting COR_PROFILER manipulation for persistence. Retrieved June 24, 2020.
  20. Hamilton, C. (2019, June 4). Hunting COM Objects. Retrieved June 10, 2019.
  21. Nelson, M. (2017, January 5). Lateral Movement using the MMC20 Application COM Object. Retrieved November 21, 2017.
  22. Sarah Edwards. (2020, April 30). Analysis of Apple Unified Logs: Quarantine Edition [Entry 6] – Working From Home? Remote Logins. Retrieved August 19, 2021.
  23. Loobeek, L. (2017, December 8). leoloobeek Status. Retrieved December 12, 2017.
  24. Lee, T., Hanzlik, D., Ahl, I. (2013, August 7). Breaking Down the China Chopper Web Shell - Part I. Retrieved March 27, 2015.
  25. NSA Cybersecurity Directorate. (n.d.). Mitigating Web Shells. Retrieved July 22, 2021.
  26. Graeber, M. (2017, December 22). Code Signing Certificate Cloning Attacks and Defenses. Retrieved April 3, 2018.
  27. Russinovich, M. et al.. (2017, May 22). Sigcheck. Retrieved April 3, 2018.
  28. Microsoft. (2021, February 15). Enable Loading of Test Signed Drivers. Retrieved April 22, 2021.
  29. Moe, O. (2017, August 13). Bypassing Device guard UMCI using CHM – CVE-2017-8625. Retrieved October 3, 2018.
  30. Mercês, F. (2014, January 27). CPL Malware - Malicious Control Panel Items. Retrieved January 18, 2018.
  31. Seetharaman, N. (2018, July 7). Detecting CMSTP-Enabled Code Execution and UAC Bypass With Sysmon.. Retrieved August 6, 2018.
  32. LOLBAS. (n.d.). Wmic.exe. Retrieved July 31, 2019.
  33. Desimone, J. (2018, April 18). Status Update. Retrieved July 3, 2018.
  34. Atkinson, J., Winchester, R. (2017, December 7). A Process is No One: Hunting for Token Manipulation. Retrieved December 21, 2017.
  35. Loh, I. (2018, December 21). Detecting Parent PID Spoofing. Retrieved June 3, 2019.
  36. Hastings, M. (2014, July 16). Investigating PowerShell Attacks. Retrieved December 1, 2021.