Skip to main content

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 apt where available.
  • libimobiledevice, usbmuxd, and libimobiledevice-utils ship in Debian/Parrot repos.
  • iproxy and ideviceinstaller may 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