Links

Basic Mobile Testing guide

Guide for setting up a mobile app test

Download IPA from IOS

Install app from the app store.
Login via ssh to the jailbroken iphone
cd /var/containers/Bundle/Application
Find the application on the phone
ls * | grep -B 2 -i 'applicationname'
cd long-string
Now install zip
apt update
apt install zip
Now compress the app folder as a zip file and name it .ipa
mkdir Payload
cp applicationname.app Payload/
zip -r /tmp/applicationname.ipa /var/containers/Bundle/Application/longstring/Payload/applicationname.app/
Then copy to your attacker machine
~# scp [email protected]:/tmp/applicationname.ipa .
Unzip and review the contents
unzip applicationname.zip
Now you are free to send through mobSF etc.

Static Analysis

Check for bad strings

grep -iRf thickclient-basic.txt /root/Downloads/_decompileapkname_

Docker

First install docker on whichever system you are using.
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
echo 'deb https://download.docker.com/linux/debian stretch stable' > /etc/apt/sources.list.d/docker.list
apt-get update
apt-get install docker-ce
Install MOBSF
docker pull opensecurity/mobile-security-framework-mobsf
docker run -it -p 8000:8000 opensecurity/mobile-security-framework-mobsf:latest
Upload .ipa/.apk and review results.
Check permissions and review all MOBSF findings
  • Review static files
  • Review permissions

Dynamic Analysis

Android

Open burpsuite
Add proxy listener on all interfaces
Modify the proxy settings on the Android device to point to your Burp listening machine.
Ensure you save the settings.
Now you can intercept traffic to and from the app.
  • Walk the app and capture all of the traffic, once completed review proxy history and test accordingly.
  • Review data storage of app.

Endpoint Analysis

Review proxy history and follow typical API/ web application methodology to test.

Reverse Engineering IOS

$ strings appname | grep “<?xml”
$ strings appname | grep “SELECT” (or select, insert, update… etc)
$ strings appname | grep “http”
$ strings appname | grep “cydia” (and others, to check for jailbreak tests)
$ strings appname | grep “.com” (you never know, email addresses might be interesting)
$ strings appname | grep “Crypt” (this will also show AESCrypt, for example)