
Install python 2.7 and set up environmental variables for path and pip. Install Android Studio, create a Pixel 3 virtual device via the AVD manager, then verify adb shell access.
Explore decompilation and recompilation workflows with decs to jar, geoducks, EPK tool, HBK tools, and sign to view, modify, reassemble, sign, and reinstall apps for testing vulnerabilities.
Set up the insecure bank app on your device to enable testing. Install the lab server with Python and pip, install the app, and verify server communication during login.
Set up a rooted Android emulator to explore data security risks, enable super user access, and inspect sensitive app data and API keys stored in device folders.
Set up Burp Suite on Android devices to intercept app traffic by configuring a proxy listener and installing the Burp certificate for encrypted traffic testing.
Analyze an Android app with Burp Suite to map server interactions, uncover login handling, account retrieval, and password reset flaws, including plain text storage and brute-force risks.
Pull an epic file from an Android device or emulator using ADB, locate app path via the package name, and pull the epic file to computer for analysis or compilation.
Decompile Android APK files using Dex2Jar and APK tool, then inspect generated jar and Smali code with Jadick to study Android manifest, permissions, and source for bug bounty analysis.
Install Drozer and connect to your emulator to scan the app and reveal Android-specific attack surfaces in the manifest, such as exported activities, content providers, and broadcast receivers.
Explore how modifying string resources in the login flow can expose admin controls and enable an unprivileged user to create accounts, revealing a critical local vulnerability.
Explore how to examine an Android app's root detection logic, modify smali/assembly code, and recompile to bypass checks, revealing reverse-engineering techniques and vulnerability exploitation.
Read the login workflow in the source code to uncover backdoors and information disclosure, including dev admin login paths and potential hardcoded credentials for easy authentication.
Explore unprotected exported activities in Android apps, demonstrating how unauthenticated users can launch sensitive screens and bypass authentication, and outline remediation for authorization checks.
Investigate insecure data storage in an Android app, reveal hard-coded keys in shared preferences and crypto code, and show how weak cryptography enables decrypting credentials.
Explore how to inspect an application's SQLite storage by listing tables and running select queries to reveal the android_metadata and names tables, and assess for unencrypted login data.
Analyze logcat outputs to reveal information disclosures in Android apps by inspecting logs for credentials and other sensitive data, and leverage bug bounty opportunities.
Demonstrates how a no-permission broadcast receiver can be exploited to send text messages (including premium lines), reveal passwords via shared preferences, and enable phishing, emphasizing the need for proper permissions.
Explore how Android content providers expose data to external apps and how insecure query builders enable SQL injections via projection and selection, revealing vulnerabilities and bug bounty reporting.
Apply CVSS scoring to determine vulnerability severity by evaluating attack vector, complexity, privileges, and user interaction, and produce reproducible bug reports with step-by-step instructions and disclosures.
In this course, I will walk you through the process of penetration testing applications to find vulnerabilities and earn bug bounties. We will analyze a vulnerable Android app, and see how vulnerabilities can be found using tools such as:
Drozer
Dex2Jar
Jadx
ApkTool
Adb
Burp Suite
Learn about dynamic and static analysis to become an expert at finding Android exploits!