Screen Capture

Adversaries may use screen captures to collect information about applications running in the foreground, capture user data, credentials, or other sensitive information. Applications running in the background can capture screenshots or videos of another application running in the foreground by using the Android MediaProjectionManager (generally requires the device user to grant consent).[1][2] Background applications can also use Android accessibility services to capture screen contents being displayed by a foreground application.[3] An adversary with root access or Android Debug Bridge (adb) access could call the Android screencap or screenrecord commands.[4][5]

ID: T1513
Sub-techniques:  No sub-techniques
Tactic Type: Post-Adversary Device Access
Tactic: Collection
Platforms: Android
MTC ID: APP-40
Version: 1.1
Created: 08 August 2019
Last Modified: 24 June 2020

Procedure Examples

Name Description
Anubis

Anubis can take screenshots.[11]

DEFENSOR ID

DEFENSOR ID can abuse the accessibility service to read any text displayed on the screen.[15]

EventBot

EventBot can abuse Android’s accessibility service to capture data from installed applications.[14]

Exodus

Exodus Two can take screenshots of any application in the foreground.[9]

FlexiSpy

FlexiSpy can take screenshots of other applications.[7]

Ginp

Ginp can capture device screenshots and stream them back to the C2.[12]

GolfSpy

GolfSpy can take screenshots.[10]

Monokle

Monokle can record the screen as the user unlocks the device and can take screenshots of any application in the foreground. Monokle can also abuse accessibility features to read the screen to capture data from a large number of popular applications.[3]

SpyDealer

SpyDealer abuses Accessibility features to steal messages from popular apps such as WeChat, Skype, Viber, and QQ.[8]

TrickMo

TrickMo can use the MediaRecorder class to record the screen when the targeted application is presented to the user, and can abuse accessibility features to record targeted applications to intercept transaction authorization numbers (TANs) and to scrape on-screen text.[13]

Mitigations

Mitigation Description
Application Developer Guidance

Application developers can apply FLAG_SECURE to sensitive screens within their apps to make it more difficult for the screen contents to be captured.[6]

Application Vetting

Applications can be vetted for their use of the Android MediaProjectionManager class, with extra scrutiny applied to any application that uses the class.

Enterprise Policy

Enterprise policies should block access to the Android Debug Bridge (ADB) by preventing users from enabling USB debugging on Android devices unless specifically needed (e.g., if the device is used for application development). 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.

User Guidance

Users should be advised not to grant consent for screen captures to occur unless expected. Users should avoid enabling USB debugging (Android Debug Bridge) unless explicitly required.

Detection

The user can view a list of apps with accessibility service privileges in the device settings.

References