-
SSL Pinning
- Missing SSL Pinning
-
SSL Pinning Bypass
- Frida
- Objection
- Code Manipulation
-
Root Detection
- Missing Root Detection
-
Root Detection Bypass
- Frida
- Code Manipulation
- Magisk Hide
-
Emulator Detection
- Missing Emulator Detection
-
Emulator Detection Bypass
- Frida
- Code Manipulation
-
Sensitive Information in ADB Logcat
- Logcat
- Search for sensitive information
- If the application is using Encrypted Request, Logcat may contain Unencrypted Requests
-
Sensitive Information in Local Storage
- SharedPrefs
- Database
- Other Files
-
Sensitive Information in Application Memory
- Fridump.py
-
Weak Signing Algorithm
- Check if the APK is signed with a weak
algorithm such as "SHA1withRSA"
-
Exploiting Android Components
-
Activities
- Activity Hijacking
- Denial of Service
- Authentication Bypass by Calling After
Authentication Activity
- Exported Activities
-
Webviews
- Cross-Site Scripting
- Local File Inclusion
-
Intent Filters
- Intent Spoofing/Sniffing
-
Broadcast Receivers
- Exported Broadcast Receivers
-
Content Providers
- SQL Injection
- Access Permission Issues
-
Code Obfuscation
- Missing Code Obfuscation
- Partial Code Obfuscation
-
Sensitive Information Hardcoded
- Search for Keys, Secrets, Password, etc.
- Tools: JADX, APKLEAKS, MobSF
-
Insecure Coding Practices
- Javascript Enabled for Webviews
- Use of Insecure Random Number Generator
- Use of Insecure Functions
- Use of Weak Cryptography such as MD5
- Presence of other Coding Weakness
- Insecure Deeplinks
-
Missing Integrity Checks
- Decompile the application, perform some
code changes, Recompile and Sign the
application. Check if the application works
successfully after modification or not
-
Insecure Android Permissions
- Clear Text Traffic
- Debug Mode Enabled
- Backup Enabled
- Unnecessary Permissions
-
Background Screen Caching
- Check if the screenshots are taken when
the application is sent to background
-
Taskbar Snooping
- Check if the sensitive data is not masked
when performing app switching
-
Third Party Keyboard Enabled
- Check if the Third Party Keyboard Usage is
allowed, specially for the sensitive fields
-
Copy/Paste Allowed on Sensitive Fields
- Check if the sensitive fields such as Credit
Card, Password, etc. allows Copy/Paste
-
Android Lock/Biometric Bypass
- Frida
- Objection
- Runtime Hooking/Code Level Modification
-
Insecure Firebase Database
- Append ".json" at the end of Firebase
Instance to see if "read" permissions are
enabled.
- Also try replacing "firebaseio.com" with "appspot.com" with "/.json" appended at the end may allow you to access appspot instance as well.
-
Dynamic Analysis Issues
- Test for all the test cases that are applicable on the APIs
- Broken Access Controls & Authorization Checks
- Broken Authentication
- Server-Side Injections
- Sensitive Data Exposure
- Server Security Misconfiguration
- Fuzzing
-
Debug Certifcate
- Check if the Application is using Debug
Certificate
-
Guides & References
- https://github.com/tanprathan/MobileApp-Pentest-Cheatsheet
- https://book.hacktricks.xyz/mobile-apps-pentesting/android-checklist
- https://owasp.org/www-project-mobile-security-testing-guide/
- https://github.com/B3nac/Android-Reports-and-Resources
- https://github.com/wtsxDev/android-security-list
- https://mobile-security.gitbook.io/mobile-security-testing-guide/
- https://github.com/saeidshirazi/awesome-android-security
- https://github.com/ashishb/android-security-awesome
-
Vulnerable & Test Applications
- DIVA Android
- InsecureBank v2
- Uncrackable Mobile Apps
- VyAPI
- DVHMA
- WaTF Bank
- Injured Android
- Sieve mwrlabs
- Vuldroid
- Oversecured Vulnerable Android App
-
Important Tools
- MobSF Mobile Security Framework
- Yaazhini
- Frida
- Objection
- Runtime Security Framework (RMS)
- House
- APKTool
- JADX
- JD-GUI
- APKLeaks
- Fridump
- Drozer
- Note: Multiple methods are available for
bypassing various restrictions and attacks
are not limited to the below mentioned,
however, this is a category of attacks that
is widely observed.
- Mindmap By: Harsh Bothra
@harshbothra_