Input Capture

Adversaries may use methods of capturing user input to obtain credentials or collect information. During normal system usage, users often provide credentials to various different locations, such as login pages/portals or system dialog boxes. Input capture mechanisms may be transparent to the user (e.g. Credential API Hooking) or rely on deceiving the user into providing input into what they believe to be a genuine service (e.g. Web Portal Capture).

ID: T1056
Sub-techniques:  T1056.001, T1056.002, T1056.003, T1056.004
Platforms: Linux, Network, Windows, macOS
Permissions Required: Administrator, SYSTEM, User, root
CAPEC ID: CAPEC-569
Contributors: John Lambert, Microsoft Threat Intelligence Center
Version: 1.2
Created: 31 May 2017
Last Modified: 08 March 2022

Procedure Examples

ID Name Description
G0087 APT39

APT39 has utilized tools to capture mouse movements.[1]

S0631 Chaes

Chaes has a module to perform any API hooking it desires.[2]

S0641 Kobalos

Kobalos has used a compromised SSH client to capture the hostname, port, username and password used to establish an SSH connection from the compromised host.[3][4]

Mitigations

This type of attack technique cannot be easily mitigated with preventive controls since it is based on the abuse of system features.

Detection

ID Data Source Data Component
DS0027 Driver Driver Load
DS0022 File File Modification
DS0009 Process OS API Execution
Process Creation
Process Metadata
DS0024 Windows Registry Windows Registry Key Modification

Detection may vary depending on how input is captured but may include monitoring for certain Windows API calls (e.g. SetWindowsHook, GetKeyState, and GetAsyncKeyState)[5], monitoring for malicious instances of Command and Scripting Interpreter, and ensuring no unauthorized drivers or kernel modules that could indicate keylogging or API hooking are present.

References