| ID | Name |
|---|---|
| T1636.001 | Calendar Entries |
| T1636.002 | Call Log |
| T1636.003 | Contact List |
| T1636.004 | SMS Messages |
| T1636.005 | Accounts |
Adversaries may utilize standard operating system APIs to gather contact list data. On Android, this can be accomplished using the Contacts Content Provider. On iOS, this can be accomplished using the Contacts framework.
If the device has been jailbroken or rooted, an adversary may be able to access the Contact List without the user’s knowledge or approval.
| ID | Name | Description |
|---|---|---|
| S1061 | AbstractEmu |
AbstractEmu can grant itself contact list access.[1] |
| S0309 | Adups | |
| S1095 | AhRat | |
| S0304 | Android/Chuli.A |
Android/Chuli.A stole contact list data stored both on the the phone and the SIM card.[4] |
| S0292 | AndroRAT | |
| S0422 | Anubis | |
| S0540 | Asacub | |
| S1079 | BOULDSPY | |
| C0033 | C0033 |
During C0033, PROMETHIUM used StrongPity to collect the device’s contact list.[10] |
| S0480 | Cerberus | |
| S0323 | Charger | |
| S0425 | Corona Updates |
Corona Updates can collect device contacts.[13] |
| S9004 | Crocodilus |
Crocodilus has the ability to collect the contact list.[14] |
| S1243 | DCHSpy | |
| S0505 | Desert Scorpion |
Desert Scorpion can collect the device’s contact list.[16] |
| S9005 | DocSwap |
DocSwap has requested for the |
| S0550 | DoubleAgent |
DoubleAgent has accessed the contact list.[19] |
| S0507 | eSurv | |
| S0522 | Exobot | |
| S0405 | Exodus | |
| S1080 | Fakecalls |
Fakecalls can copy and exfiltrate a device’s contact list.[23] |
| S0509 | FakeSpy | |
| S0408 | FlexiSpy | |
| S1067 | FluBot |
FluBot has used the contact list to infect more devices.[26][27] |
| S0423 | Ginp | |
| S1231 | GodFather | |
| S0535 | Golden Cup |
Golden Cup can collect the device’s contact list.[30] |
| S0551 | GoldenEagle |
GoldenEagle has collected a list of contacts.[19] |
| S0421 | GolfSpy | |
| S0536 | GPlayed | |
| S0406 | Gustuff | |
| S0544 | HenBox | |
| S1128 | HilalRAT | |
| S1077 | Hornbill | |
| S0463 | INSOMNIA | |
| S1185 | LightSpy |
LightSpy has accessed the device’s contact list.[38][39][40][41][42] |
| S0485 | Mandrake | |
| S0407 | Monokle | |
| S0399 | Pallas | |
| S0316 | Pegasus for Android |
Pegasus for Android accesses contact list information.[46] |
| S0289 | Pegasus for iOS |
Pegasus for iOS gathers contacts from the system by dumping the victim's address book.[47] |
| S1126 | Phenakite |
Phenakite can exfiltrate the victim device’s contact list.[48] |
| S1241 | RatMilad | |
| S0539 | Red Alert 2.0 |
Red Alert 2.0 can collect the device’s contact list.[50] |
| S0403 | Riltok |
Riltok can access and upload the device's contact list to the command and control server.[51] |
| S0411 | Rotexy |
Rotexy can access and upload the contacts list to the command and control server.[52] |
| S0549 | SilkBean | |
| S1195 | SpyC23 |
SpyC23 can exfiltrate the victim device’s contact list.[53][54][55] |
| S0324 | SpyDealer | |
| S0305 | SpyNote RAT |
SpyNote RAT can view contacts.[57] |
| S0328 | Stealth Mango |
Stealth Mango uploads contact lists for various third-party applications such as Yahoo, AIM, GoogleTalk, Skype, QQ, and others.[58] |
| S1082 | Sunbird | |
| S1069 | TangleBot |
TangleBot can request permission to view device contacts.[59] |
| S0558 | Tiktok Pro |
Tiktok Pro can access the device's contact list.[60] |
| S9006 | VajraSpy |
VajraSpy has collected and exfiltrated the contact list.[61][62] |
| S0506 | ViperRAT | |
| G0112 | Windshift |
Windshift has included contact list exfiltration in the malicious apps deployed as part of Operation BULL.[64] |
| S0489 | WolfRAT |
| ID | Mitigation | Description |
|---|---|---|
| M1011 | User Guidance |
Contact list access is an uncommonly needed permission, so users should be instructed to use extra scrutiny when granting access to their contact list. |
| ID | Name | Analytic ID | Analytic Description |
|---|---|---|---|
| DET0679 | Detection of Contact List | AN1782 |
For Android, detect Contact List 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: ContentResolver.query(ContactsContract) with projection=all_fields]; Network Traffic Flow via Android Enterprise Network Logging / Enterprise VPN [DevicePolicyManager.retrieveNetworkLogs(): DnsEvent / ConnectEvent; VPN flow metadata]; Permissions Request via Android Enterprise DPC / Application Vetting [DevicePolicyManager.getPermissionGrantState(); PackageManager manifest/requested-permission review]. 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. |
| AN1783 |
For iOS, detect Contact List 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: CNContactStore.enumerateContacts with CNContactFetchRequest.keysToFetch containing all contact keys by app NOT IN $ApprovedContactsApps$]; Network Traffic Flow via Apple Network Extension / Enterprise VPN [NEFilterFlow / per-app VPN / secure-web-gateway flow metadata]; Permissions Request via Application Vetting [Code-signing entitlements and Info.plist privacy usage-description keys]. 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. |