Perimeter
4/5/2012
06:41 PM
John H. Sawyer
John H. Sawyer
Commentary
Connect Directly
RSS
E-Mail
50%
50%
Repost This

Quick-Start Guide: Compiling Mac-Robber For iOS Vuln Research

How to compile, copy, and run mac-robber on jailbroken iOS devices

In the first part of this series, I covered an introductory approach to mobile device security research using some of the same tools and techniques I've used over the years as a forensic investigator. At the end, I mentioned using mac-robber directly on Android and iOS devices followed by mactime to generate a timeline of the filesystem as a basic method of identifying system activity that can find mobile app vulnerabilities. I followed that up with how to get mac-robber compiled for Android, how to run it on an Android device, and how to process the resulting file into a timeline. Today, I'll be digging into how to do the same thing for iOS and detailing the extra hoops we have to jump through for iOS.

Warning: The following steps require a familiarity and comfort with using Linux or a similar Unix-based operating system, which you really and truly need if you're going to be analyzing iOS--a BSD-based operating.

First, you'll need a jailbroken iOS device. How to actually perform the jailbreaking and any jailbreaking-related issues are beyond the scope of this series, but there are plenty of resources on the Internet with detailed steps. The important part is that you must have root access on the device to use mac-robber.

Second, you'll need a way to get files onto your device. One of the first things I install after jailbreaking my device is an SSH server. It comes in handy for several reasons such as copying files using scp.

Where things deviate from the previous process we followed for Android is that we'll actually be compiling mac-robber on the iOS device. This requires we install a few necessary pre-requisites in addition to copying the actual mac-robber source code to the device. Note that I'm using aptitude to install some of the prerequisites and it must be installed using Cydia.

First, copy the mac-robber archive via SSH (or another method), and then, log into the device as root using SSH. Next, decompress the archive, change directories into the mac-robber folder, and run the following commands:

  1. aptitude install make automake ldid wget
  2. wget http://iphone-gcc-full.googlecode.com/files/libgcc.deb
  3. wget http://iphone-gcc-full.googlecode.com/files/headers-libs.deb
  4. dpkg -i libgcc.deb
  5. aptitude install iphone-gcc
  6. dpkg -i --force-overwrite headers-libs.deb
  7. gcc -o mac-robber mac-robber.c

The first command installs a few tools that are helpful for later tasks. The next three commands download some necessary pre-requisite libraries and install them. The fifth command actually installs GCC while the sixth installs some necessary C libraries and headers needed during compilation of certain C programs. The final command is where we finally compile mac-robber into an executable we can run on iOS.

I typically run mac-robber using SSH like so:

  • ssh root@IP_of_iOS_device "mac-robber /" > AttachmentOpen.body

The resulting file can then be processed into a timeline using mactime from the Sleuth Kit.

mactime -b AttachmentOpen.body > AttachmentOpen.timeline

At this point, you have the basics to start creating timelines of the iOS filesystem. In the next part, I'll cover some of the interesting things you can find and actual vulnerabilities you can uncover using timeline analysis.

John Sawyer is a Senior Security Analyst with InGuardians, Inc. The views and opinions expressed in this blog are his own and do not represent those of his employer. He can be reached at johnhsawyer@gmail.com and found on Twitter @johnhsawyer.

Comment  | 
Print  | 
More Insights
Register for Dark Reading Newsletters
White Papers
Flash Poll
Current Issue
Video
Slideshows
Twitter Feed
Dark Reading - Bug Report
Bug Report
Enterprise Vulnerabilities
From DHS/US-CERT's National Vulnerability Database
CVE-2008-3277
Published: 2014-04-15
Untrusted search path vulnerability in a certain Red Hat build script for the ibmssh executable in ibutils packages before ibutils-1.5.7-2.el6 in Red Hat Enterprise Linux (RHEL) 6 and ibutils-1.2-11.2.el5 in Red Hat Enterprise Linux (RHEL) 5 allows local users to gain privileges via a Trojan Horse p...

CVE-2010-2236
Published: 2014-04-15
The monitoring probe display in spacewalk-java before 2.1.148-1 and Red Hat Network (RHN) Satellite 4.0.0 through 4.2.0 and 5.1.0 through 5.3.0, and Proxy 5.3.0, allows remote authenticated users with permissions to administer monitoring probes to execute arbitrary code via unspecified vectors, rela...

CVE-2011-3628
Published: 2014-04-15
Untrusted search path vulnerability in pam_motd (aka the MOTD module) in libpam-modules before 1.1.3-2ubuntu2.1 on Ubuntu 11.10, before 1.1.2-2ubuntu8.4 on Ubuntu 11.04, before 1.1.1-4ubuntu2.4 on Ubuntu 10.10, before 1.1.1-2ubuntu5.4 on Ubuntu 10.04 LTS, and before 0.99.7.1-5ubuntu6.5 on Ubuntu 8.0...

CVE-2012-0214
Published: 2014-04-15
The pkgAcqMetaClearSig::Failed method in apt-pkg/acquire-item.cc in Advanced Package Tool (APT) 0.8.11 through 0.8.15.10 and 0.8.16 before 0.8.16~exp13, when updating from repositories that use InRelease files, allows man-in-the-middle attackers to install arbitrary packages by preventing a user fro...

CVE-2013-4768
Published: 2014-04-15
The web services APIs in Eucalyptus 2.0 through 3.4.1 allow remote attackers to cause a denial of service via vectors related to the "network connection clean up code" and (1) Cloud Controller (CLC), (2) Walrus, (3) Storage Controller (SC), and (4) VMware Broker (VB).

Best of the Web