GithubHelp home page GithubHelp logo

5l1v3r1 / introspy-ios Goto Github PK

View Code? Open in Web Editor NEW

This project forked from isecpartners/introspy-ios

0.0 1.0 0.0 1.53 MB

Security profiling for blackbox iOS

Home Page: http://isecpartners.github.io/Introspy-iOS/

License: GNU General Public License v2.0

Objective-C 99.37% Makefile 0.63%

introspy-ios's Introduction

Introspy-iOS

Blackbox tool to help understand what an iOS application is doing at runtime and assist in the identification of potential security issues.

See http://isecpartners.github.io/Introspy-iOS/ for a quick introduction.

Description

This is the repository for the Introspy-iOS tracer.

The tracer can be installed on a jailbroken device to hook and log security-sensitive iOS APIs called by applications running on the device. The tool records details of relevant API calls, including arguments and return values and persists them in a database. Additionally, the calls are also sent to the Console for real-time analysis.

The database can then be fed to Introspy-Analyzer, a Python script to generate HTML reports containing the list of logged function calls as well as a list of potential vulnerabilities affecting the application. Introspy-Analyzer is hosted on a separate repository: https://github.com/iSECPartners/Introspy-Analyzer

Installation

Users should first download the latest pre-compiled Debian package available in the release section of the project page at: https://github.com/integrity-sa/Introspy-iOS/releases or for older releases at https://github.com/iSECPartners/Introspy-iOS/releases

Dependencies

The tracer will only run on a jailbroken device. Using Cydia, make sure the following packages are installed:

  • dpkg
  • Cydia Substrate
  • PreferenceLoader
  • Applist

How to install

Download and copy the Debian package to the device; install it:

scp <package.deb> root@<device_ip>:~
ssh root@<device_ip>
dpkg -i <package.deb>

Respring the device:

killall -HUP SpringBoard

There should be two new menus in the device's Settings. The Apps menu allows you to select which applications will be profiled while the Settings menu defines which API groups are being hooked.

Finally, kill and restart the App you want to monitor.

How to uninstall

dpkg -r com.isecpartners.introspy

Generating HTML Reports

The tracer will store data about API calls made by applications in a database stored on the device (actually one in each application's folder). This database can be fed to a Python script call Introspy-Analyzer in order to generate HTML reports that make it a lot easier to review the data collected by the tracer. The script will also analyze and flag dangerous API calls in order to facilitate the process of identifying vulnerabilities within iOS applications.

Introspy-Analyzer is hosted on a separate repository: https://github.com/iSECPartners/Introspy-Analyzer

Building Introspy-iOS

Most users should just download and install the pre-compiled Debian package. However, if you want to modify the library's functionality you will have to build the Debian package yourself.

The build requires the Theos suite, available at https://github.com/theos/theos. For general instructions on how to install Theos, see https://github.com/theos/theos/wiki/Installation.

You must also set the $THEOS variable in your environment, and export it so make will see its value when you run it

export THEOS=/absolute/path/to/theos
export PATH=$THEOS/bin:$PATH

Then, the package can be built using:

make package

Once you've successfully created the debian package, you can use Theos to automatically install the package and re-spring the device by specifying the device's IP address in the THEOS_DEVICE_IP environment variable:

export THEOS_DEVICE_IP=192.168.1.127
make install

License

See ./LICENSE.

Authors

  • Tom Daniels
  • Alban Diquet

Maintainers

  • Herman Duarte

introspy-ios's People

Contributors

lxcode avatar nabla-c0d3 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.