Adversaries may make, forward, or block phone calls without user authorization. This could be used for adversary goals such as audio surveillance, blocking or forwarding calls from the device owner, or C2 communication.
Several permissions may be used to programmatically control phone calls, including:
ANSWER_PHONE_CALLS - Allows the application to answer incoming phone calls[1]CALL_PHONE - Allows the application to initiate a phone call without going through the Dialer interface[1]PROCESS_OUTGOING_CALLS - Allows the application to see the number being dialed during an outgoing call with the option to redirect the call to a different number or abort the call altogether[1]MANAGE_OWN_CALLS - Allows a calling application which manages its own calls through the self-managed ConnectionService APIs[1]BIND_TELECOM_CONNECTION_SERVICE - Required permission when using a ConnectionService[1]WRITE_CALL_LOG - Allows an application to write to the device call log, potentially to hide malicious phone calls[1]When granted some of these permissions, an application can make a phone call without opening the dialer first. However, if an application desires to simply redirect the user to the dialer with a phone number filled in, it can launch an Intent using Intent.ACTION_DIAL, which requires no specific permissions. This then requires the user to explicitly initiate the call or use some form of Input Injection to programmatically initiate it.
| ID | Name | Description |
|---|---|---|
| S1214 | Android/SpyAgent |
Android/SpyAgent can execute an automated phone call.[2] |
| S0292 | AndroRAT | |
| S0422 | Anubis | |
| S1094 | BRATA |
BRATA can hide incoming calls by setting ring volume to 0 and showing a blank screen overlay.[5] |
| S0655 | BusyGasper |
BusyGasper can open a hidden menu when a specific phone number is called from the infected device.[6] |
| S0529 | CarbonSteal |
CarbonSteal can silently accept an incoming phone call.[7] |
| S1083 | Chameleon | |
| S9004 | Crocodilus |
Crocodilus has the ability to enable call forwarding.[9] |
| S9005 | DocSwap |
DocSwap has requested for the |
| S1054 | Drinik |
Drinik can use the Android |
| S1092 | Escobar | |
| S1080 | Fakecalls |
Fakecalls can intercept and imitate phone conversations by breaking the connection and displaying a fake call screen. It can also make outgoing calls and spoof incoming calls.[14] |
| S1231 | GodFather |
GodFather has requested for the |
| S0407 | Monokle |
Monokle can be controlled via phone call from a set of "control phones."[16] |
| S1195 | SpyC23 | |
| S1069 | TangleBot | |
| S9006 | VajraSpy |
VajraSpy has requested for |
| ID | Mitigation | Description |
|---|---|---|
| M1011 | User Guidance |
Users should be encouraged to be very careful with what applications they grant phone call-based permissions to. Further, users should not change their default call handler to applications they do not recognize. |
| ID | Name | Analytic ID | Analytic Description |
|---|---|---|---|
| DET0703 | Detection of Call Control | AN1822 |
The defender correlates call-control capability or telecom role state with subsequent unauthorized call initiation, answer, block, redirect, or concealment behavior by an application outside expected telephony workflows. The analytic prioritizes Android-observable control-plane effects: dangerous or role-gated call-control permissions, default dialer or ConnectionService-related role changes, telecom framework invocation for call placement or handling, write activity against call-log records, and call-control activity occurring from background or locked-device context without recent user interaction. |