Needle- iOS Application Security Testing Framework

Needle iOS Application Security Framework
Needle iOS Application Security Framework

Needle is an open source modular framework for iOS Application Security Testing.

Needle is intended to be useful not only for security professionals, but also for developers looking to secure their code.

A few examples of testing areas covered by Needle include: data storage, inter-process communication, network communications, static code analysis, hooking and binary protections. The only requirement in order to run Needle effectively is a jailbroken device.

Assessing the security of an iOS application typically requires a plethora of tools, each developed for a specific need and all with different modes of operation and syntax. The Android ecosystem has software like “drozer” that have solved this problem and aim to be a ‘one stop shop’ for the majority of use cases, however iOS does not have an equivalent.

Needle is the MWR’s iOS Security Testing Framework, released at Black Hat USA in August 2016. It is an open source modular framework which aims to streamline the entire process of conducting security assessments of iOS applications, and acts as a central point from which to do so.

The release of version 1.0.0 provided a major overhaul of its core and the introduction of a new native agent, written entirely in Objective-C. The new NeedleAgent is an open source iOS app complementary to Needle, that allows to programmatically perform tasks natively on the device, eliminating the need for third party tools.

Needle has been presented at and used by workshops in various international conferences like Black Hat USA/EU, OWASP AppSec and DEEPSEC.

Needle is open source software, now it is owned by Fsecure Labs.

Supported Platforms

  1. Workstation: Needle has been successfully tested on both Kali and macOS
  2. Device: iOS 8, 9, and 10 are currently supported


Usage instructions (for both standard users and contributors) can be found as follow


Workstation Setup

git clone

Install Dependencies


# Unix packages
sudo apt-get install python2.7 python2.7-dev sshpass sqlite3 lib32ncurses5-dev

# Python packages
sudo pip install readline paramiko sshtunnel frida mitmproxy biplist


# Core dependencies
brew install python
brew install libxml2
xcode-select --install

# Python packages
sudo -H pip install --upgrade --user readline
sudo -H pip install --upgrade --user paramiko
sudo -H pip install --upgrade --user sshtunnel
sudo -H pip install --upgrade --user frida
sudo -H pip install --upgrade --user biplist

# sshpass
brew install

# mitmproxy
tar -xvzf mitmproxy-0.17.1-osx.tar.gz
sudo cp mitmproxy-0.17.1-osx/mitm* /usr/local/bin/

Workstation Guide

  • Needle Installation guide here
  • Needle Working guide here

Download Needle

Join Our Club

Enter your Email address to receive notifications | Join over Million Followers

Leave a Reply
Previous Article
Microsoft and Adobe Security Patch

Microsoft And Adobe Patches Remote Code Execution Vulnerabilities

Next Article

OpenSSH 8.2 Released With FIDO/U2F Hardware Authentication

Related Posts