Topics Included:1. Review of Common Flaws in Source Code
2. Modification of App Behavior Through Code/Configuration Changes
3. Interception of Network Communication Aka Mitm
4. Jailbreak/Root Detection Bypasses and App Review from A Privileged Standpoint
5. Instrumentation (Review and Modification of App Behavior)
6. CFT Challenges for Attendants to Test Their Skills
Attendees will be provided with:- Digital copies of all training material
- Lab VM
- Test apps
- Source code for test apps
Outline:This course has been prepared after years of research and experience gained through pentesting mobile applications. It is structured to follow the OWASP Mobile Top Ten and the OWASP Mobile Security Testing Guide. This is a hands-on practical course, the skills gained can be applied to mobile security assessments immediately.
Each day starts with a brief introduction to the mobile platform for that day and then continues with a look at the static analysis, moves on to dynamic checks finishing off with a nice CTF session to test the skills gained.
Day 1 includes but is not limited to a brief introduction to Android security, a series of techniques focused on static analysis, followed by dynamic analysis covering both monitoring and modifying app behavior at runtime. The day ends with beautiful CTF challenges to entertain even advanced mobile app penetration testers.
Day 2 begins with a brief iOS security crash course, static analysis techniques, followed by dynamic analysis including both monitoring and modifying app behavior at runtime. The day ends with more lovely CTF challenges.
Day 3 takes a deeper look at instrumentation on both Android and iOS, with a special focus on app behavior modification at runtime. Learn more about Frida scripts, Objection, and Xposed modules. Bypass jailbreak detection and much more. End the day by testing your skills, more CTF time!
This is a basic outline of the course; it contains various other components and details that will help the students understand and perform better. This will be a learning experience from which people relatively new to the ever-growing world of mobile security will benefit, while the advanced students will polish their skills in specific areas and perhaps complete more or the CTF challenges.
Course Details:Day 1: Attacking Android apps by ExamplePart 0 - Android Security Crash Course
- The state of Android Security
- Android security architecture and its components
- Android apps and the filesystem
- Android app signing, sandboxing and provisioning
Part 1 – Emphasis on Static Analysis with Runtime Checks
- Tools and techniques to retrieve/decompile/reverse and review APKs
- Identification of the attack surface of Android apps and general information gathering
- Identification of common vulnerability patterns in Android apps: hardcoded secrets, logic bugs, access control flaws, intents, cool injection attacks, and more
- The art of repackaging: Tips to get around not having root, Manipulating the Android Manifest, defeating pinning, defeating root detection, translating APKs in funny languages and more
Part 2 - Focus on Dynamic Analysis
- Monitoring data: LogCat, Insecure file storage, Android Keystore, etc
- The art of MitM: Intercepting Network Communications
- The art of Instrumentation: Hooking with Xposed
- App behavior monitoring at runtime
- Defeating Certificate Pinning and root detection at runtime
- Modifying app behavior at runtime
Part 3 - Test Your Skills
Day 2: Attacking iOS apps by ExamplePart 0 - iOS Security Crash Course
- The state of iOS Security
- iOS security architecture and its components
- iOS app signing, sandboxing and provisioning
- iOS apps and the filesystem Recommended lab setup tips
Part 1 - Focus on Static Analysis with runtime check
- Tools and techniques to retrieve/decompile/reverse and review IPAs
- Identification of the attack surface of iOS apps and general information gathering_
- Identification of common vulnerability patterns in iOS apps: hardcoded secrets, logic bugs, access, control flaws, URL handlers, cool injection attacks, and more
- Patching and Resigning iOS binaries to alter app behavior
- Tips to test without a jailbreak
Part 2 - Focus on Dynamic Analysis
- Monitoring data: caching, logs, app files, insecure file storage, iOS keychain, etc.
- Crypto flaws
- The art of MitM: Intercepting Network Communications
- Defeating certificate pinning and jailbreak detection at runtime
- The art of Instrumentation: Introduction to Cycript, Frida, Objection
- App behavior monitoring at runtime
- Modifying app behavior at runtime
Part 3 - Test your Skills
Day 3: Leveling up your Instrumentation Kung-fuPart 1: In-depth instrumentation on Android
- Focus on Dynamic Analysis
- Useful Xposed modules and labs
- Practical Frida scripts and labs
- Defeating certificate pinning with instrumentation
- Jailbreak detection bypasses with instrumentation
Part 2: In-depth instrumentation on iOS
- Focus on Dynamic Analysis
- Hooking with Cycript
- Practical Frida scripts and labs
- Useful Objection labs and modules_
- Defeating certificate pinning with instrumentation
- Jailbreak detection bypasses with instrumentation
Part 3: Test your Skills
A laptop with the following specifications:- Ability to connect to wireless and wired networks.
- Ability to read PDF files
- Administrative rights: USB allowed, the ability to deactivate AV, firewall, install tools, etc.
- Minimum 8GB of RAM (recommended: 16GB+)
- 60GB+ of free disk space (to copy a lab VM and other goodies)
- Latest VirtualBox, including the “VirtualBox Extension Pack”
- Genymotion (can be the free version)
- A jailbroken iPhone / iDevice with iOS >=9 (ideally: iOS 12) for the iOS labs
- Optional but useful: One of the following BurpSuite, ZAP or Fiddler (for MitM)
- Optional but useful: A Mac/Hackintosh with the latest XCode installed, for iOS code review & labs