WS - 3
Attacking Android and iOS apps
Workshop Objective:
This course is ideal for those intending to expand their knowledge about mobile app security as it covers a large number of topics: People relatively new to mobile security will benefit from the practical deep dive while more advanced students can polish their skills in specific areas and perhaps complete more CTF challenges.
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 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 behaviour at runtime. The day ends with more lovely CTF challenges.
This is a basic outline of the course; it will contain 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 Content (ToC):
-
- Part 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
- Recommended lab setup tips
- Part 0 - Android Security Crash Course
-
- 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 1 – Emphasis on Static Analysis with Runtime Checks
-
- 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 and Frida
- App behaviour monitoring at runtime
- Defeating Certificate Pinning and root detection at runtime
- Modifying app behaviour at runtime
- Part 2 - Focus on Dynamic Analysis
-
- Part 3 - Test Your Skills - CTF time
-
- Part 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 0 - iOS Security Crash Course
-
- Part 1 - Focus on Static Analysis with runtime checks
- 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 behaviour
- Tips to test without a jailbreak
- Part 1 - Focus on Static Analysis with runtime checks
-
- 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: Hooking with Cycript, Frida, Objection
- App behaviour monitoring at runtime
- Modifying app behaviour at runtime
- Part 2 - Focus on Dynamic Analysis
-
- Part 3 - Test your Skills - CTF time
Day 1: Attacking Android apps by Example
Day 2: Attacking iOS apps by Example
What to expect:
This is a hands-on practical course, the skills gained can be applied to mobile security assessments immediately. A much greater proficiency in mobile assessments should be expected
Attendees will be provided with
- Lifetime access to training portal
- Unlimited access to future updates and step-by-step video recordings
- Government-mandated and police apps in various countries
- Many other excitingly vulnerable real-world apps
- IoT apps controlling Toys, Drones, etc.
- Digital copies of all training material
- Custom Build Lab VMs
- Purpose Build Vulnerable Test apps
- Source code for test apps
What not to expect:
While nobody is going to become a mobile security ninja in 2 days, our goal is to start from the basics and ensure that each student comes out of the training with a significantly higher level of proficiency in the artistry of mobile pentesting
Hardware/Software Prerequisites
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
- Knowledge of the BIOS password, in case VT is disabled.
- Minimum 8GB of RAM (recommended: 16GB+)
- 60GB+ of free disk space (to copy a lab VM and other goodies)
- Latest VirtualBox 6.0 or greater, including the “VirtualBox Extension Pack”
- Genymotion (can be the free version)
- A mobile phone capable of receiving text messages
- 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
Speaker Profile:
Anirudh Anand is a security researcher with a primary focus on Web and Mobile Application Security. He has been submitting bugs and contributing to security tools for over 7 years. In his free time, he participates in CTF competitions along with team bi0s (#1 security team in India according to CTFtime). His bounties involve vulnerabilities in Google, Microsoft, LinkedIn, Zendesk, Sendgrid, Gitlab, Gratipay and Flipboard. Anirudh also has contributed to several OWASP projects with notable contributions being in OWTF and Hackademic Challenges Project. He has presented in a multitude of conferences including BlackHat Arsenal 2019, BlackHat Europe Arsenal 2018, HITB Dubai 2018, Offzone Moscow 2018, Ground Zero Summit Delhi 2015 and Xorconf 2015.
Abhishek J M is a mobile security enthusiast and has been focusing on security for more than 5 years. He is the mobile security team lead for Team bi0s, a CTF team from Amrita Vishwa Vidyapeetham (ranked #1 CTF team in India as per CTFTime).
He is also the author of Android security tools like Adhrit, an Android application security tool emphasizing compactness and flexibility along with speed and ease of setup. Adhrit offers features like source code extraction, manifest analysis, URL extraction and automated ADB payload generation. The tool is widely accepted in the community and presented at conferences like OWASP Seasides, Threatcon and Cysinfo. EVABS is another project by him for Android security beginners where the users can have extensively hands-on experience with various real-world Android application vulnerabilities, with interactive features like a beginner-friendly storyline, active flag checking and CTF-style approach. He is an open source evangelist and spends time in automating and building learning platforms for mobile security.
After 13 years in itsec and 20 in IT Abraham is now the CEO of 7ASecurity (7asecurity.com), a company specializing in penetration testing of web/mobile apps, infrastructure, code reviews and training. Former senior penetration tester / team lead at Cure53 (cure53.de) and Version 1 (www.version1.com). Creator of “Practical Web Defense” - a hands-on eLearnSecurity attack / defense course (www.elearnsecurity.com/PWD), OWASP OWTF project leader, an OWASP flagship project (owtf.org), Major degree and Diploma in Computer Science, some certs: CISSP, OSCP, GWEB, OSWP, CPTS, CEH, MCSE:Security, MCSA:Security, Security+. As a shell scripting fan trained by unix dinosaurs, Abraham wears a proud manly beard. He writes on Twitter as @7asecurity @7a_ @owtfp or http://7-a.org. Some presentations, pentest reports and recordings can be found at https://7asecurity.com/#publications , https://7asecurity.com/abraham-bio