Input Injection

A malicious application can inject input to the user interface to mimic user interaction through the abuse of Android's accessibility APIs.

Input Injection can be achieved using any of the following methods:

  • Mimicking user clicks on the screen, for example to steal money from a user's PayPal account.[1]
  • Injecting global actions, such as GLOBAL_ACTION_BACK (programatically mimicking a physical back button press), to trigger actions on behalf of the user.[2]
  • Inserting input into text fields on behalf of the user. This method is used legitimately to auto-fill text fields by applications such as password managers.[3]
ID: T1516
Sub-techniques:  No sub-techniques
Tactic Type: Post-Adversary Device Access
Platforms: Android
Contributors: Lukáš Štefanko, ESET
Version: 1.2
Created: 15 September 2019
Last Modified: 12 May 2026

Procedure Examples

ID Name Description
S1094 BRATA

BRATA can insert a given string of text into a data field. BRATA can abuse the Accessibility Service to interact with other installed applications and inject screen taps to grant permissions.[4][5]

S0480 Cerberus

Cerberus can inject input to grant itself additional permissions without user interaction and to prevent application removal.[6][7]

S9004 Crocodilus

Crocodilus has the ability to perform clicks, swipes (left, right, up and down) on the screen and actions such as "Back," "Home," and "Menu."[8]

S0479 DEFENSOR ID

DEFENSOR ID can abuse the accessibility service to perform actions on behalf of the user, including launching attacker-specified applications to steal data.[9]

S0423 Ginp

Ginp can inject input to make itself the default SMS handler.[10]

S1231 GodFather

GodFather has abused the Accessibility Service to mimic victims’ actions and to redirect victims to its StubActivity when the victims attempt to use the original, legitimate banking application.[11]

S0406 Gustuff

Gustuff injects the global action GLOBAL_ACTION_BACK to mimic pressing the back button to close the application if a call to an open antivirus application is detected.[2]

S0485 Mandrake

Mandrake abuses the accessibility service to prevent removing administrator permissions, accessibility permissions, and to set itself as the default SMS handler.[12]

S0403 Riltok

Riltok injects input to set itself as the default SMS handler by clicking the appropriate places on the screen. It can also close or minimize targeted antivirus applications and the device security settings screen.[13]

S1062 S.O.V.A.

S.O.V.A. can programmatically tap the screen or swipe.[14]

S1055 SharkBot

SharkBot can use input injection via Accessibility Services to simulate user touch inputs, prevent applications from opening, change device settings, and bypass MFA protections.[15]

S0545 TERRACOTTA

TERRACOTTA can inject clicks to launch applications, share posts on social media, and interact with WebViews to perform fraudulent actions.[16]

S0427 TrickMo

TrickMo can inject input to set itself as the default SMS handler, and to automatically click through pop-ups without giving the user any time to react.[17]

S0494 Zen

Zen can simulate user clicks on ads and system prompts to create new Google accounts.[18]

Mitigations

ID Mitigation Description
M1012 Enterprise Policy

An EMM/MDM can use the Android DevicePolicyManager.setPermittedAccessibilityServices method to set an explicit list of applications that are allowed to use Android's accessibility features.

M1011 User Guidance

Users should be warned against granting access to accessibility features, and to carefully scrutinize applications that request this dangerous permission.

Detection Strategy

ID Name Analytic ID Analytic Description
DET0612 Detection of Input Injection AN1666

The defender correlates Android accessibility or UI-automation-capable behavior from an app identity with injected user-interface actions occurring on behalf of the user in another foreground application. The strongest Android evidence is accessibility-enabled or similarly privileged app behavior that triggers programmatic clicks, global actions, or text insertion into another app's active UI, especially when those actions occur without matching user touch interaction, while the injecting app is backgrounded or foreground-service-only, or when the target foreground app belongs to a sensitive category such as banking, payments, identity, communications, or enterprise access. The detection is strengthened when the injected input sequence is followed by target-app navigation, form submission, transaction progression, or network activity from the target context.

References