Adversaries may communicate with compromised devices using out of band data streams. This could be done for a variety of reasons, including evading network traffic monitoring, as a backup method of command and control, or for data exfiltration if the device is not connected to any Internet-providing networks (i.e. cellular or Wi-Fi). Several out of band data streams exist, such as SMS messages, NFC, and Bluetooth.
On Android, applications can read push notifications to capture content from SMS messages, or other out of band data streams. This requires that the user manually grant notification access to the application via the settings menu. However, the application could launch an Intent to take the user directly there.
On iOS, there is no way to programmatically read push notifications.
| ID | Name | Description |
|---|---|---|
| S0304 | Android/Chuli.A |
Android/Chuli.A used SMS to receive command and control messages.[1] |
| S1079 | BOULDSPY | |
| S0655 | BusyGasper |
BusyGasper can perform actions when one of two hardcoded magic SMS strings is received.[3] |
| S0529 | CarbonSteal |
CarbonSteal has used specially crafted SMS messages to control the target device.[4] |
| S0505 | Desert Scorpion |
Desert Scorpion can be controlled using SMS messages.[5] |
| S0406 | Gustuff |
Gustuff can use SMS for command and control from a defined admin phone number.[6] |
| S0407 | Monokle |
Monokle can be controlled via email and SMS from a set of "control phones."[7] |
| S9040 | NGate |
NGate has used NFC to send the victim's card information through a server to an adversary-controlled device.[8][9][10] |
| S0316 | Pegasus for Android |
Pegasus for Android uses SMS for command and control.[11] |
| S0289 | Pegasus for iOS |
Pegasus for iOS uses SMS for command and control.[12] |
| S0295 | RCSAndroid |
RCSAndroid can use SMS for command and control.[13] |
| S0411 | Rotexy | |
| S1055 | SharkBot |
SharkBot can use the "Direct Reply" feature of Android to automatically reply to notifications with a message provided by C2.[15] |
| S0327 | Skygofree | |
| S1195 | SpyC23 |
SpyC23 can receive Command and Control commands from SMS messages.[17] |
| S0324 | SpyDealer |
SpyDealer enables remote control of the victim through SMS channels.[18] |
| S0328 | Stealth Mango |
Stealth Mango uses commands received from text messages for C2.[19] |
| S1216 | TriangleDB |
TriangleDB has used the Protobuf library for command and control communication.[20] |
| S0427 | TrickMo |
| ID | Mitigation | Description |
|---|---|---|
| M1011 | User Guidance |
Users should be instructed to not grant applications unexpected or unnecessary permissions. |
| ID | Name | Analytic ID | Analytic Description |
|---|---|---|---|
| DET0688 | Detection of Out of Band Data | AN1798 |
For Android, detect Out of Band Data by correlating analyst-visible device/network evidence and management state; use streaming or batched telemetry only where the documented collector is deployed. Correlate API Calls via Application Vetting / Instrumented Dynamic Analysis [Dynamic API/runtime trace: NotificationListenerService.onNotificationPosted() receiving notifications from source_app IN $HighValueNotifApps$ by listener NOT IN $NotificationAllowList$]; Network Traffic Content via Enterprise Secure Web Gateway / Proxy [DNS/HTTP(S) inspection or proxy transaction metadata where enterprise decryption/inspection is deployed]; System Notifications via Android Enterprise / Managed App Telemetry [Documented DPC/admin callbacks or managed-app generated event telemetry]. Alert on a sequence or state change inconsistent with the device/app baseline, approved management policy, or expected user workflow; do not infer unobserved API calls, file/process activity, or payload content from management state alone. |
| AN1799 |
For iOS, detect Out of Band Data by correlating analyst-visible device/network evidence and management state; use streaming or batched telemetry only where the documented collector is deployed. Correlate Application Permission via Application Vetting [Code-signing entitlements and Info.plist privacy usage-description keys]; Network Traffic Flow via Apple Network Extension / Enterprise VPN [NEFilterFlow / per-app VPN / secure-web-gateway flow metadata]; Protected Configuration via Apple MDM [DeviceInformation / SecurityInfo / ProfileList / restrictions and compliance queries]. Alert on a sequence or state change inconsistent with the device/app baseline, approved management policy, or expected user workflow; do not infer unobserved API calls, file/process activity, or payload content from management state alone. |