Adversaries may seek to identify all applications installed on the device. One use case for doing so is to identify the presence of endpoint security applications that may increase the adversary's risk of detection. Another use case is to identify the presence of applications that the adversary may wish to target.
On Android, applications can use methods in the PackageManager class [1] to enumerate other apps installed on device, or an entity with shell access can use the pm command line tool.
On iOS, apps can use private API calls to obtain a list of other apps installed on the device. [2] However, use of private API calls will likely prevent the application from being distributed through Apple's App Store.
ID | Name | Description |
---|---|---|
S0440 | Agent Smith |
Agent Smith obtains the device’s application list.[3] |
S0525 | Android/AdDisplay.Ashas |
Android/AdDisplay.Ashas has checked to see how many apps are installed, and specifically if Facebook or FB Messenger are installed.[4] |
S0422 | Anubis |
Anubis can collect a list of installed applications to compare to a list of targeted applications.[5] |
S0529 | CarbonSteal |
CarbonSteal has looked for specific applications, such as MiCode.[6] |
S0480 | Cerberus | |
S0479 | DEFENSOR ID |
DEFENSOR ID can retrieve a list of installed applications.[8] |
S0505 | Desert Scorpion |
Desert Scorpion can obtain a list of installed applications.[9] |
S0550 | DoubleAgent |
DoubleAgent has accessed the list of installed apps.[6] |
S0478 | EventBot | |
S0522 | Exobot |
Exobot can obtain a list of installed applications and can detect if an antivirus application is running, and close it if it is.[11] |
S0405 | Exodus | |
S0509 | FakeSpy | |
S0408 | FlexiSpy | |
S0423 | Ginp | |
S0535 | Golden Cup |
Golden Cup can obtain a list of installed applications.[16] |
S0551 | GoldenEagle |
GoldenEagle has collected a list of installed application names.[6] |
S0421 | GolfSpy | |
S0536 | GPlayed | |
S0406 | Gustuff |
Gustuff checks for antivirus software contained in a predefined list.[19] |
S0544 | HenBox | |
S0463 | INSOMNIA |
INSOMNIA can obtain a list of installed non-Apple applications.[21] |
S0485 | Mandrake | |
S0407 | Monokle | |
S0399 | Pallas |
Pallas retrieves a list of all applications installed on the device.[24] |
S0316 | Pegasus for Android |
Pegasus for Android accesses the list of installed applications.[25] |
S0539 | Red Alert 2.0 |
Red Alert 2.0 can obtain the running application.[26] |
S0403 | Riltok |
Riltok can retrieve a list of installed applications. Installed application names are then checked against an adversary-defined list of targeted applications.[27] |
S0411 | Rotexy |
Rotexy retrieves a list of installed applications and sends it to the command and control server.[28] |
S0328 | Stealth Mango |
Stealth Mango uploads information about installed packages.[29] |
S0545 | TERRACOTTA |
TERRACOTTA can obtain a list of installed apps.[30] |
S0558 | Tiktok Pro |
Tiktok Pro can obtain a list of installed applications.[31] |
S0424 | Triada |
Triada is able to modify code within the com.android.systemui application to gain access to |
S0427 | TrickMo | |
S0418 | ViceLeaker |
ViceLeaker can obtain a list of installed applications.[34] |
S0489 | WolfRAT |
ID | Mitigation | Description |
---|---|---|
M1005 | Application Vetting |
Application vetting techniques could search for use of the Android PackageManager class to enumerate other apps, and such applications could have extra scrutiny applied to them. However, this technique may not be practical if many apps invoke these methods as part of their legitimate behavior. On iOS, application vetting techniques could similarly search for use of the private API call necessary to obtain a list of apps installed on the device. Additionally, on iOS, use of the private API call is likely to result in the app not being accepted into Apple's App Store. |