Host Software Setup
The first step in any iOS assessment is building a usable host environment. This page covers the tools to install on a macOS or Parrot (Linux) host and how to get them onto the box.
Prerequisites on macOS
On macOS, Xcode and the Command Line Tools are the foundation. The Command Line Tools bundle clang, git, and other build dependencies required by some tools.
# Install Command Line Tools (prompts a GUI dialog)
xcode-select --install
# Verify the install
xcode-select -p
# Optionally accept the license and install full Xcode from the App Store
# Full Xcode is only required if you build/run Simulators or sign apps
Homebrew
Homebrew is the package manager used for almost everything on macOS. On Linux (Parrot) you can use the Linuxbrew variant, but the packages below are primarily macOS-focused.
# Install Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Add to PATH if not already present (Apple Silicon)
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"
Core Toolset
The core toolset gives you device communication (libimobiledevice), app install/removal, USB tunnel (iproxy), SSH, dynamic instrumentation (Frida), and runtime exploration (Objection).
# libimobiledevice - low-level USB/network communication with iOS devices
brew install libimobiledevice
# ideviceinstaller - install, list, uninstall apps over USB
brew install ideviceinstaller
# usbmuxd - USB multiplexing daemon (usually pulled in as a dependency)
brew install usbmuxd
# OpenSSH - connect to jailbroken devices over SSH
brew install openssh
# Frida - dynamic instrumentation (gadget/server + host tools)
brew install frida
pip3 install frida-tools
# Objection - runtime mobile exploration on top of Frida
pip3 install objection
# iproxy - forward a device TCP port to the host (USB SSH tunnel)
# Comes with libimobiledevice, but install explicitly if you prefer
brew install iproxy
Burp Suite
Burp Suite is the main intercepting proxy. Install the Community or Pro version from PortSwigger.
# macOS: download from the PortSwigger site, or install the pro via brew cask
brew install --cask burp-suite
MobSF
MobSF (Mobile Security Framework) performs static analysis of IPA (and APK) files. Docker is the cleanest way to run it, though a local install is also supported.
# Docker run
docker pull opensecurity/mobile-security-framework-mobsf
docker run -it -p 8000:8000 opensecurity/mobile-security-framework-mobsf:latest
# Or local install (Python 3.8+)
git clone https://github.com/MobSF/Mobile-Security-Framework-MobSF.git
cd Mobile-Security-Framework-MobSF
./setup.sh
./run.sh
Linux (Parrot) Notes
Many idevice* tools work on Parrot too, but a few things differ:
- Homebrew is not the default; use
aptwhere available. libimobiledevice,usbmuxd, andlibimobiledevice-utilsship in Debian/Parrot repos.iproxyandideviceinstallermay need separate packages.- Frida and Objection install the same way via
pip3. - Xcode and the Simulator are macOS-only; on Parrot you test with a physical device or a separate macOS host.
sudo apt update
sudo apt install -y libimobiledevice-utils usbmuxd ideviceinstaller openssh-client
pip3 install frida-tools objection
Sanity Check
After the install, verify the toolchain responds.
idevice_id -l # list connected device UDIDs
ideviceinfo # dump device info (should not error)
frida-ps -U # list processes on a connected device
objection --help