title: Auditing Android Applications
categories: [cheatsheets]
Auditing Android Source Code
- Check Activities & Permissions
- Check Intents & Intent Filters
- Check WebView + Javascript combinations (rg "JavascriptInterface")
- PendingIntents (e.g. for notifications) that are passed to another app. (1)
- Are all outgoing network connections secured? (Https + Public Key Pinning) (rg TrustManager) (2)
- Use Native Code (in /lib/armeabi-v7a) and call it with: System.loadLibrary('name')
- Start the webbrowser via the Intent ACTION_VIEW to bypass Internet permission.
- Use Java Reflection to call methods by strings and obfuscate strings.
- Permission: ACTION_NOTIFICATION_LISTENER_SETTINGS lets an app get notified when a notification is posted (by any other app)
- Act as NotificationListener to get Pending Intents
(1) When giving a PendingIntent to another application, this app can
perform the operation specified (with the same permissions & identity)
Common Mistake: specifiy private activity in the pending intent
More @ MOBISEC ~ Set 11, Page 53
(2) No Public Key Pinning and no HSTS? -> SSL Stripping
(3) SSL pinning bypass using Frida: https://techblog.mediaservice.net/2018/11/universal-android-ssl-pinning-bypass-2/