Offensive Mobile Reversing and Exploitation

$4,299.00

Duration

4 days

Delivery Method

in-person

Level

intermediate

Seats Available

20

Duration

4 days

Delivery Method

in-person

Level

intermediate

REGISTRATION CLOSED

DATE: 17-20 April 2023

TIME: 09:00 to 17:00 CEST/GMT+2

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

 


After running sold-out trainings at multiple conferences over the last few years, we are back with an updated version of our course which now covers ARM64, mobile browser security, and detailed Mobile apps and operating system security. The class starts with a basic introduction to the ARM instruction set and calling conventions followed by some reverse engineering exercises. We then learn how to craft simple exploits for the ARM64 environment.

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.

 

Students will be provided with:
  • Videos for some vulnerabilities shared in the class
  • Huge list of good reads and articles for learning mobile application security
  • Source code for vulnerable applications
  • Source code for Exploit PoCs’ that can be used for Bug Bounties
  • Custom VM for hands-on pentesting
  • Students will be provided with access to Corellium for iOS hands-on for the duration of the course
  • Students using machines that do not support virtualization will be provided access to cloud instances for the duration of the course
  • Slack access for the class and after for regular mobile security discussions

 

Topics Covered

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

Agenda

  • 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 5: Android Kernel Exploitation - Introduction to Android Kernel Exploitation - Recreating 1-day Exploits

Why You Should Take This Course

This is a completely hands-on course designed for beginners and intermediate students. Instead of just slides, attendees will get a chance to exploit all of the vulnerabilities taught by the instructors. The attendees will be provided with Cloud based Corellium labs for performing the hands-on iOS and Android exercises without the need to carry physical phones. Slack channel is created before the course for the students so that they can be adequately prepped in terms of hardware and software before the class.
Both the trainers have exceptional background in Mobile Security, IoT and Devops having tested wide range of public facing consumer applications, social media giants, hardware vendors and financial institutions. The trainers have taught sold-out classes on Mobile, IoT and Kernel Security for the last few years around the globe for multiple conferences and privately held organizations. The attacks taught in the class are completely hands-on and based on the learnings from this experience and personal research.

Who Should Attend

This course is for penetration testers, mobile developers or anyone keen to learn mobile application security and wants to get started in OS exploitation.

Key Learning Objectives

  • Get an understanding of latest ARM64 instruction set

  • Understand the Browser Security mitigations on Mobile Devices

  • Understand some common vulnerabilities in Mobile Browsers

  • Learn the internals of iOS and Android Kernel along with several Kernel security mitigations

  • Understand some of the latest bugs and mitigations (PAC, CoreTrust, PPL, etc)

  • Get an intro to some common bug categories UaF, Heap overflow, etc

  • Understand how jailbreaks and exploits are written (including iOS 15-16)

  • Reverse engineer iOS and Android binaries (Apps and system binaries)

  • Do basic fuzz testing on Mobile apps

  • Learn how to audit iOS and Android apps for security vulnerabilities

  • Understand and bypass anti-debugging and obfuscation techniques

  • Get a quick walkthrough on using IDA Pro, Hopper, Frida, etc
  • Prerequisite Knowledge

    The course covers topics ranging from beginners to advance topics. Basic Linux skills is the only requirement for the course. The Android and iOS kernel exploitation modules will require basic exploit development background.

    Hardware / Software Requirements

    • Laptop with: 50+ GB free hard disk space and 8+ GB RAM
    • Students will be provided with access to Corellium for iOS hands-on and as such do not need to carry iOS devices
    • VirtualBox installed on the machine (We can provide you cloud instances if you cannot run VirtualBox, or are on Apple M1)
    • Download and install the latest version of Xcode (We can provide you cloud instances if are not on a Macbook)
    • A MacBook is not mandatory for the class
    • Administrative access on the system
    • External USB access allowed

    Your Instructor

    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