Buymeacoffee.com-iOS App Penetration Testing 101 Lab Setup
Buymeacoffee.com-iOS App Penetration Testing 101 Lab Setup
buymeacoffee.com/stux/ios-hacking-101-lab-setup
Cesar Calderon
Setting up a proper lab environment is a critical first step for performing iOS application
penetration testing. A well-configured lab allows you to analyze applications safely,
emulate real-world attack scenarios, and uncover vulnerabilities efficiently. Below are the
key components and steps to set up your iOS pentesting lab.
Universal Requirements
To set up an iOS pentesting environment, certain universal tools and components are
essential, regardless of the operating system or specific configuration.
Java is a widely used programming language and platform that powers many
development tools, frameworks, and applications. Whether you're working on software
development, reverse engineering, or running advanced tools, having Java and the Java
Development Kit (JDK) properly installed is essential.
Installation Steps:
Python3
Many pentesting tools and scripts, such as Frida, Objection, and MobSF, are written in
Python and require Python3 for installation and execution.
1/21
Windows:
Linux:
Mac:
Frida-Tools
Key Features:
Objection
2/21
Objection is built on top of Frida and is designed for penetration testers to explore and
analyze mobile applications without needing to write custom scripts.
Key Features:
File System Interaction: Explore app file systems to identify sensitive files.
Runtime Modification: Inject and modify code during runtime without writing
JavaScript.
Security Bypass:
Data Analysis:
Node.js
Windows:
Linux:
3/21
sudo apt-install nodejs
Mac:
Burp Suite
Burp Suite is a leading tool for intercepting and analyzing network traffic between the
mobile app and backend servers.
Setup:
In the Proxy Listeners section, select your listener and click Edit.
Click OK.
Ensure your iOS device is connected to the same Wi-Fi network as your computer.
Tap the information icon ( ℹ️) next to your connected Wi-Fi network.
Scroll down to HTTP Proxy and select Manual.
Enter your computer's IP address as the Server and the Burp Suite listener port
(e.g., 8080) as the Port.
4/21
Install Burp CA Certificate
After downloading, go to Settings > General > VPN & Device Management (or
Profiles & Device Management).
Emulators are suitable for basic testing when a physical device is unavailable.
Physical Device
Use a jailbroken iPhone or iPad for advanced testing. See more in the section
Jailbreaking iOS Devices
Emulator
Types of Jailbreaking:
Tethered Jailbreak:
5/21
Requires the device to be connected to a computer each time it reboots to reapply the
jailbreak.
Without tethering, the device will not function properly after a restart.
Untethered Jailbreak:
Does not require a computer connection after rebooting. The jailbreak is persistent across
device restarts.
Semi-Tethered Jailbreak:
Allows the device to reboot without a computer, but the jailbreak functionality will be
disabled until it is re-enabled manually.
Semi-Untethered Jailbreak:
Similar to semi-tethered but uses an app on the device to reapply the jailbreak after a
reboot.
Dopamine:
A rootless semi-untethered jailbreak for iOS 15.0 - 16.5.1 (arm64e) and iOS 15.0 - 16.6.1
(arm64). More details will follow here soon.
URL: https://github.com/opa334/Dopamine/releases
Soon, we will see how to install an IPA file based on our operating system.
palera1n
Is a developer-oriented jailbreak for checkm8 devices (A8-A11) on iOS 15.0 and above
6/21
URL Linux/MAC: https://docs.website-msw.pages.dev/docs/intro/
Currently, the Palera1n version supports iOS 18, and Winr1an supports iOS 17.
Please read the documentation to jailbreak your device if it is among the compatible
ones.
When a device is jailbroken, package managers are essential tools that allow users to
browse, install, and manage tweaks, apps, and extensions that aren't available on the
official App Store.
These functionalities are installed by default when using some of the previously
mentioned jailbreak alternatives. During this process, the user is prompted to set a
custom password for the default mobile account. This step is essential to secure the
device, as a weak or easily guessable password could expose it to unauthorized access.
Sileo
URL: https://getsileo.app/
Zebra
7/21
Zebra is a lightweight, open-source package manager designed to be fast, reliable, and
simple to use. It offers more control to advanced users while maintaining ease of use for
beginners.
URL: https://getzbra.com/
iOS Tweaks
Once the jailbreak is completed on your device, it is necessary to install some essential
tools, such as OpenSSH to gain access to your device, ElleKit, Frida, among others.
OpenSSH
Usage: Use an SSH client like PuTTY (Windows) or the ssh command
(macOS/Linux) to connect.
8/21
Login:
9/21
ssh mobile@IP
ElleKit
A modern tweak injection library used for running and managing jailbreak tweaks on the
latest iOS versions.
Often installed automatically by modern jailbreak tools, but can be updated via your
package manager.
Frida
Usage: Works with a companion tool on your computer to interact with your device.
A comprehensive file management tool for accessing and editing the filesystem.
PreferenceLoader
Is a core package for jailbroken iOS devices. It is essential for managing the settings of
installed tweaks within the Settings app. Without PreferenceLoader, tweaks that add
configuration options to the Settings app will not display their preferences or function
correctly.
10/21
wget https://github.com/NyaMisty/ssl-kill-
switch3/releases/download/v1.4/moe.misty.sslkillswitch31.4+rootlessiphoneos-
arm64.deb
Note: This is just a list of basic tweaks; there are countless more available.
Jailbreak Bypass
Refers to techniques or tools used to hide the jailbreak status of a device from
applications. Many apps, especially banking, streaming, and secure work-related
applications, implement jailbreak detection to prevent unauthorized access or potential
security risks.
11/21
Use hide jailbreak in dopamine options
TrollStore is a powerful utility for iOS devices that allows the installation of IPA files (iOS
application packages) permanently without requiring a jailbreak. It uses a system exploit
to bypass App Store restrictions and enables users to sideload apps that persist across
reboots. TrollStore works on iOS versions compatible with the CoreTrust bug, typically
between iOS 14.0 and 17.
Cycript have not worked in my environment, but they are tools that allow us to analyze
and interact with iOS applications at a deeper level.
This is a list of applications I use on my device after jailbreaking it. Now, let’s look at
some applications for the most common desktop operating systems. There is a
wide variety, and these are some that I use.
iTunes
iTunes is essential for establishing communication between your iOS device and your
Windows machine. It provides the necessary drivers for device recognition and data
transfer.
3uTools
3uTools is an all-in-one tool for managing iOS devices, offering advanced features for
jailbreaking, firmware management, and system diagnostics.
Download: 3uTools
Sideloadly
12/21
Sideloadly is used for sideloading unsigned or custom apps onto your iOS device without
requiring the App Store.
Download: Sideloadly
igf
Ghidra
13/21
research.
Install: https://ghidra-sre.org/
See IDA in action and get to know the most powerful disassembler and decompiler at no
cost.
Install: https://hex-rays.com/ida-free
libimobiledevice
URL: https://github.com/libimobiledevice/libimobiledevice/
igf
14/21
Note: Nodejs and frida required
Hopper Disassembler
Is reverse engineering tool that lets you disassemble, decompile and debug your
applications.
URL: https://www.hopperapp.com/
Note, the trial version only allows us to run it for 30 minutes, if you want an
alternative install ghidra.
Ghidra
Install: https://ghidra-sre.org/
iblessing
install: https://github.com/Soulghost/iblessing
Is a powerful web interface that helps you to manipulate Android and iOS Apps at
Runtime
15/21
Install: https://github.com/m0bilesecurity/RMS-Runtime-Mobile-Security
Xcode:
Includes simulators for iOS devices, necessary for app testing and debugging.
Installation:
xcode-select --install
Homebrew:
16/21
A versatile package manager for macOS that simplifies installing tools like Python,
OpenSSL, and more.
Installation:
Example usage:
iTunes:
Sideloadly
Sideloadly is used for sideloading unsigned or custom apps onto your iOS device without
requiring the App Store.
Download: Sideloadly
libimobiledevice
URL: https://github.com/libimobiledevice/libimobiledevice/
igf
17/21
Note: Nodejs and frida required
Hopper Disassembler
Is reverse engineering tool that lets you disassemble, decompile and debug your
applications.
URL: https://www.hopperapp.com/
Note, the trial version only allows us to run it for 30 minutes, if you want an
alternative install ghidra.
Ghidra
Install: https://ghidra-sre.org/
iblessing
18/21
Is an iOS security exploiting toolkit, it mainly includes application information gathering,
static analysis and dynamic analysis. It can be used for reverse engineering, binary
analysis and vulnerability mining.
install: https://github.com/Soulghost/iblessing
Is a powerful web interface that helps you to manipulate Android and iOS Apps at
Runtime
Install: https://github.com/m0bilesecurity/RMS-Runtime-Mobile-Security
Simulator
Xcode provides the ability to create and manage simulators programmatically using the
simctl command, which is part of Xcode's command-line tools. This is particularly useful
for automating workflows, setting up environments, or scripting simulator-related tasks.
open -a Simulator
19/21
Additional Commands
Rename a Simulator:
Delete a Simulator:
Automating tasks during iOS penetration testing can significantly speed up the process
and ensure consistent results. Below are some widely used tools tailored for iOS
application security assessment:
20/21
An open-source, all-in-one framework for static and dynamic analysis of mobile
applications.
URL: https://mobsf.github.io/docs/#/runningmobsfdocker?id=static-analysis
AppSweep - ONLINE
URL: https://appsweep.guardsquare.com/
URL: https://www.immuniweb.com/mobile/
Mobexler
URL: https://www.mobexler.com/set-up
Here is a list of the tools I use depending on the operating system I'm working on. If
you know of any others, please feel free to share them.
Introduction
Lab Setup
21/21