Course Outline
---------------------
Part 1 - iOS Exploitation
Module 1 : Getting Started with iOS Pentesting
- iOS security model
- App Signing, Sandboxing and Provisioning
- Setting up XCode 8
- Changes in iOS 11
- Primer to iOS 11 security
- Exploring the iOS filesystem
- Intro to Objective-C and Swift4
- What's new in Swift 4 ?
- Setting up the pentesting environment
- Jailbreaking your device
- Cydia, Mobile Substrate
- Getting started with Damn Vulnerable iOS app
- Binary analysis
- Finding shared libraries
- Checking for PIE, ARC
- Decrypting ipa files
- Self signing IPA files
Module 2: iOS exploitation basics
- How jailbreak exploits are written ?
- Diffing for Patches
- Intro to ARM assembly
- ROP, KASLR and KPP
- Use after free, Heap overflow basics
- Reversing the Kernel
- Code signing bypass techniques
- Sanbox bypass techniques
- Exploiting Mach Ports
- Chaining exploits
- Patching the Kernel
- Achieving persistence
Module 3 : Static and Dynamic Analysis of iOS Apps
- Static Analysis of iOS applications
- Dumping class information
- Insecure local data storage
- Dumping Keychain
- Finding url schemes
- Dynamic Analysis of iOS applications
- Cycript basics
- Advanced Runtime Manipulation using Cycript
- Method Swizzling
- GDB basic usage
- Modifying ARM registers
- Basic App Exploitation techniques using Frida
- Advance App Exploitation techniques using Frida
Module 4 : iOS application vulnerabilities
- Exploiting iOS applications
- Broken Cryptography
- Side channel data leakage
- Sensitive information disclosure
- Exploiting URL schemes
- Client side injection
- Bypassing jailbreak, piracy checks
- Inspecting Network traffic
- Traffic interception over HTTP, HTTPs
- Manipulating network traffic
- Bypassing SSL pinning
Module 5 : Reversing iOS Apps
- Introduction to Hopper
- Disassembling methods
- Modifying assembly instructions
- Patching App Binary
- Logify
Module 6 : Securing iOS Apps
- Securing iOS applications
- Where to look for vulnerabilities in code?
- Code obfuscation techniques
- Piracy/Jailbreak checks
- iMAS, Encrypted Core Data
Part 2 - Android Exploitation
Module 1
- Why Android
- Intro to Android
- Android Security Architecture
- Android application structure
- Signing Android applications
- ADB – Non Root
- Rooting Android devices
- ADB – Rooted
- Understanding Android file system
- Permission Model Flaws
- Attack Surfaces for Android applications
Module 2
- Understanding Android Components
- Introducing Android Emulator
- Introducing Android AVD
Module 3
- Proxying Android Traffic
- Reverse Engineering for Android Apps
- Smali Learning Labs
- Smali vs Java
- Dex Analysis and Obfuscation
- Android App Hooking
Module 4
- Exploiting Local Storage
- Exploiting Weak Cryptography
- Exploiting Side Channel Data Leakage
- Manual and Automated Root Detection and Bypass
- Exploiting Weak Authorization mechanism
- Identifying and Exploiting flawed Broadcast Receivers
- Identifying and Exploiting flawed Intents
- Identifying and Exploiting Vulnerable Activity Components
- Exploiting Backup and Debuggable apps
- Analysing Proguard, DexGuard and other Obfuscation Techniques
- Exploiting Android NDK
- Manual and Automated SSL Pinning Bypass techniques
Module 5
- App Exploitation using Drozer
- Basic App Exploitation techniques using Frida
- Advance App Exploitation techniques using Frida
- App Exploitation using AppMon
- Automated source code analysis
- Detecting Leaks in Android Apps
This course is for penetration testers, mobile developers or anyone keen to learn mobile application security
The course covers topics ranging from beginners to advance topics. Basic Linux skills is the only requirement for the course.
Dinesh leads the Mobile Security Testing Center of Excellence at Security Innovation. His core area of expertise is Mobile and Embedded application pentesting and exploitation. He is an accomplished author and speaker, and his research has been published in multiple security zines and sites like Packet Storm, Exploit-DB, PenTest Magazine, SecurityXploded, ClubHACK Magazine, and Exploit-Id amongst others. Dinesh Shetty has previously presented his work at security conferences around USA, Europe, Southeast Asia, Australia, India and a bunch of Middle East countries, and continues to enhance his knowledge by undergoing security trainings and certifications around the world. He maintains an open source intentionally vulnerable Android application named InsecureBankv2 for use by developers and security enthusiasts. He has also authored the guide to Hacking iOS Applications that covers all of the known techniques of exploiting iOS applications.