Date | Day | Time | Duration |
17 Apr | Monday | 09:00 to 17:00 CEST/GMT+2 | 8 Hours – Presentations & Hands-on exercises |
18 Apr | Tuesday | 09:00 to 17:00 CEST/GMT+2 | 8 Hours – Presentations & Hands-on exercises |
19 Apr | Wednesday | 09:00 to 17:00 CEST/GMT+2 | 8 Hours – Presentations & Hands-on exercises |
20 Apr | Thursday | 09:00 to 17:00 CEST/GMT+2 | 8 Hours – Presentations & Hands-on exercises |
Next, we move to Mobile browser security, understand some of the browser mitigations followed by writing some simple exploits for the mobile browser. We then cover iOS and Android internals in further detail. We then discuss some of the exploitation techniques using real-world vulnerabilities (e.g., voucher_swap, checkm8, etc) followed by a walkthrough of how jailbreaks are written. We also discuss some of the common vulnerability types (Heap Overflows, Use-after-free, Uninitialized Stack variable, Race conditions).
The training then moves on to application security based on exploiting the Damn Vulnerable iOS app, Android-InsecureBankv2, and InsecurePass application written by the authors of this course in addition to a broad range of other real-world applications. We also cover a variety of mitigations deployed in real-world apps and discuss how to bypass them.
Slides, videos and detailed documentation on the labs will be provided to the students for practice after the class. Corellium access will be provided to students during the duration of the training course.
Part 1 – ARM and Browser Security
Module 1:
– Exploring the ARM64 instruction set
– ARM calling conventions
– ARM memory management
– Reversing ARM binaries
– Reversing the XNU kernel
– Exploiting a simple Heap Overflow
– Building a simple ROP chain
– Exploiting a simple Race Condition vuln
– Exploiting uninitialized stack variable vulnerability
– Breaking ASLR with Info leaks/Brute force
– Exploit mitigations (ASLR, Heap Poisoning, PAN, etc)
Module 2:
– Setting up WebKit environment
– Debugging WebKit
– WebCore and JavaScriptCore internals
– Browser Mitigations – IsoHeaps, Gigacage, StructureID randomness, Site Isolation, etc
– JSC Side effects
– UaF, TypeConfusion etc
– Exploiting a DOM UaF
– Getting addrof() and fakeobj() primitive
– Getting arbitrary r/w
– Creating Stage 2
– SOP Bypass, Impact of PAC
Part 2 – iOS Exploitation
Module 1: Getting Started with iOS Security
– iOS security model
– App Signing, Sandboxing, and Provisioning
– Primer to iOS 15 security
– Exploring the iOS filesystem
– Intro to Objective-C and Swift5
– Setting up the testing environment
– Jailbreaking your device
– Cydia, Mobile Substrate
– Sideloading apps
– Binary protection
– Checking for PIE, ARC
– Decrypting IPA files
– Self-signing IPA files
Module 2: iOS exploitation basics
– The Boot Chain – Bootrom, LLB, iBoot
– Keybags, firmware keys
– Decrypting iBoot
– Reversing the Kernel
– Symbolicating the kernel
– ARM Pointer authentication
– KPP and KTRR
– Intro to Mach IPC, Port spraying
– XNU zones
– Discussion of the voucher_swap and checkm8 exploit
– How are jailbreak exploits written?
– Diffing for Patches
– CoreTrust, PPL
– Sandbox escape
– Chaining exploits
– Applying Kernel Patches
– Achieving persistence
Module 3: Static and Dynamic Analysis of iOS Apps
– Static Analysis of iOS applications
– Finding Secrets in Code
– Lint Testing
– Dumping class information
– Insecure local data storage
– Dumping Keychain
– Exploiting URL schemes
– Dynamic Analysis of iOS applications
– Method Swizzling
– Debugging apps using lldb
– Modifying ARM registers
– Basic App Exploitation techniques using Frida
– Advance App Exploitation techniques using Frida
– Testing React Native and Flutter Apps
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
Part 3 – Android Exploitation
Module 1: Intro to Android Security
– Why Android
– Android Security Architecture
– Extracting APK files from Google Play
– Understanding Android application structure
– Signing Android applications
– ADB – Non-Root
– Rooting Android devices
– ADB – Rooted
– Understanding the Android file system
– Permission Model Flaws
– Attack Surfaces for Android applications
Module 2: Components
– Understanding Android Components
– Introducing Android Emulator
– Introducing Android AVD
– Setting up Android Pentest Environment
Module 3: Reversing Android apps
– Process of Android Apps Engineering
– Reverse Engineering for Android Apps
– Smali Learning Labs
– Examining Smali files
– Smali vs Java
– Dex Analysis and Obfuscation
– Reversing Obfuscated Android Applications
– Patching Android Applications
– Android App Hooking
Module 4: Static and Dynamic analysis
– Proxying Android Traffic
– Exploiting Local Storage
– Exploiting Weak Cryptography
– Exploiting Side Channel Data Leakage
– Multiple Manual and Automated Root Detection and Bypass Techniques
– Exploiting Weak Authorization mechanism
– Identifying and Exploiting Android Components
– Analysing Proguard, DexGuard, and other Obfuscation Techniques
– Exploiting Android NDK
– Android Game Hacking
– Multiple Manual and Automated SSL Pinning Bypass techniques
– Writing One-Click Remote Code execution exploits for Android applications
– Exploiting Android Google Play Billing
– Firebase Exploitation
– Exploiting Android Games
– In-memory tampering
Module 5: Frida and Automated Exploitation
– Exploiting Crypto using Frida
– Basic App Exploitation techniques using Frida
– Dumping Class Information using Frida
– Dumping Method Information using Frida
– Viewing and Changing Information using Frida
– Tracing using Frida
– Advance App Exploitation techniques using Frida
– Frida on non-rooted Android
Module 6: Android Kernel Exploitation
– Introduction to Android Kernel Exploitation
– Recreating 1-day Exploits
Module 1: - Exploring the ARM64 instruction set - ARM calling conventions - ARM memory management - Reversing ARM binaries - Reversing the XNU kernel - Exploiting a simple Heap Overflow - Building a simple ROP chain - Exploiting a simple Race Condition vuln - Exploiting uninitialized stack variable vulnerability - Breaking ASLR with Info leaks/Brute force - Exploit mitigations (ASLR, Heap Poisoning, PAN, etc) Module 2: - Setting up WebKit environment - Debugging WebKit - WebCore and JavaScriptCore internals - Browser Mitigations - IsoHeaps, Gigacage, StructureID randomness, Site Isolation, etc - JSC Side effects - UaF, TypeConfusion etc - Exploiting a DOM UaF - Getting addrof() and fakeobj() primitive - Getting arbitrary r/w - Creating Stage 2 - SOP Bypass, Impact of PAC
Module 1: Getting Started with iOS Security - iOS security model - App Signing, Sandboxing, and Provisioning - Primer to iOS 15 security - Exploring the iOS filesystem - Intro to Objective-C and Swift5 - Setting up the testing environment - Jailbreaking your device - Cydia, Mobile Substrate - Sideloading apps - Binary protection - Checking for PIE, ARC - Decrypting IPA files - Self-signing IPA files Module 2: iOS exploitation basics - The Boot Chain - Bootrom, LLB, iBoot - Keybags, firmware keys - Decrypting iBoot - Reversing the Kernel - Symbolicating the kernel - ARM Pointer authentication - KPP and KTRR - Intro to Mach IPC, Port spraying - XNU zones - Discussion of the voucher_swap and checkm8 exploit - How are jailbreak exploits written? - Diffing for Patches - CoreTrust, PPL - Sandbox escape - Chaining exploits - Applying Kernel Patches - Achieving persistence Module 3: Static and Dynamic Analysis of iOS Apps - Static Analysis of iOS applications - Finding Secrets in Code - Lint Testing - Dumping class information - Insecure local data storage - Dumping Keychain - Exploiting URL schemes - Dynamic Analysis of iOS applications - Method Swizzling - Debugging apps using lldb - Modifying ARM registers - Basic App Exploitation techniques using Frida - Advance App Exploitation techniques using Frida - Testing React Native and Flutter Apps 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
Module 1: Intro to Android Security - Why Android - Android Security Architecture - Extracting APK files from Google Play - Understanding Android application structure - Signing Android applications - ADB – Non-Root - Rooting Android devices - ADB – Rooted - Understanding the Android file system - Permission Model Flaws - Attack Surfaces for Android applications Module 2: Components - Understanding Android Components - Introducing Android Emulator - Introducing Android AVD - Setting up Android Pentest Environment Module 3: Reversing Android apps - Process of Android Apps Engineering - Reverse Engineering for Android Apps - Smali Learning Labs - Examining Smali files - Smali vs Java - Dex Analysis and Obfuscation - Reversing Obfuscated Android Applications - Patching Android Applications - Android App Hooking Module 4: Static and Dynamic analysis - Proxying Android Traffic - Exploiting Local Storage - Exploiting Weak Cryptography - Exploiting Side Channel Data Leakage - Multiple Manual and Automated Root Detection and Bypass Techniques - Exploiting Weak Authorization mechanism - Identifying and Exploiting Android Components - Analysing Proguard, DexGuard, and other Obfuscation Techniques - Exploiting Android NDK - Android Game Hacking - Multiple Manual and Automated SSL Pinning Bypass techniques - Writing One-Click Remote Code execution exploits for Android applications - Exploiting Android Google Play Billing - Firebase Exploitation - Exploiting Android Games - In-memory tampering Module 5: Frida and Automated Exploitation - Exploiting Crypto using Frida - Basic App Exploitation techniques using Frida - Dumping Class Information using Frida - Dumping Method Information using Frida - Viewing and Changing Information using Frida - Tracing using Frida - Advance App Exploitation techniques using Frida - Frida on non-rooted Android Module 5: Android Kernel Exploitation - Introduction to Android Kernel Exploitation - Recreating 1-day Exploits
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 has spoken at conferences like Black Hat, Bsides, Def Con, BruCon, AppsecUSA, AppsecEU, HackFest and many more. 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 Mitigating Risk in IoT systems that covers techniques on security IoT devices and Hacking iOS Applications that covers all of the known techniques of exploiting iOS applications.
8ksec is a foremost cyber security research company offering exceptional training and consulting services to aid clients in enhancing their security stance. Our experts possess extensive experience in delivering specialized cybersecurity training and consulting to several commercial and defense organizations across the United States, Europe, and the Middle East and North Africa region
Prateek Gianchandani is currently working as the Head of Product & Application Security at Careem – An Uber Company.
He has more than 10 years of experience in security research and penetration testing. His core focus area is mobile exploitation, reverse engineering and embedded device security.
He is also the author of the open source vulnerable application named Damn Vulnerable iOS app. He has presented and trained at many international conferences including Defcon, POC, TyphoonCon, Blackhat USA, Brucon, Hack in Paris, Phdays, Appsec USA etc. In his free time, he blogs at https://highaltitudehacks.com/.
8ksec is a foremost cyber security research company offering exceptional training and consulting services to aid clients in enhancing their security stance. Our experts possess extensive experience in delivering specialized cybersecurity training and consulting to several commercial and defense organizations across the United States, Europe, and the Middle East and North Africa region