Mobile Hacking

Andrill – Vulnerable Mobile Application with Various Levels

Andrill is an android mobile application interacting with a back-end API that is vulnerable with various levels of difficulty. It provides a test environment for security professionals, security enthusiast and the programmers who are eager to learn about mobile security.

Easy to Setup

Andrill back-end server can be easily setup by a docker command. The APK is compiled by a bash script in the server-side. Each Andrill level has its own installation. However, Almost all installations are similar. The installations don’t have any dependencies, fews lines edit and few commands are needed to setup the server and the application.

Attack Scenarios

The scenarios are vary from simplest vulnerabilities to a conpeptual desging flaws. The following table shows the scenarios designed so far.

Number Options Description Goal
Andrill 1 SSL Pin: False, Extra Encryption Layer: False, HTTP An Android application connecting to a back-end through HTTP Capturing application traffic, Reading administrator’s note
Andrill 2 SSL Pin: False, Extra Encryption Layer: False, HTTPs An Android application connecting to a back-end through self-signed SSL certificate Capturing application traffic, Reading administrator’s note
3 SSL Pin: False, Extra Encryption Layer: False, HTTPs An Android application connecting to a back-end through signed SSL certificate Capturing application traffic + Discovering vulnerabilities in back-end
Andrill 4 SSL Pin: False, Extra Encryption Layer: Yes, HTTPs An Android application connecting to a back-end through signed SSL certificate – Hard-coded AES Key + IV Capturing application traffic + IDOR discovery
Andril-5 SSL Pin: False, Extra Encryption Layer: Yes, HTTPs, debuggable: True && False An android application connecting to a back-end through signed SSL certificate – Receiving AES Key + IV and storing in a file Capturing application traffic + IDOR discovery
6 SSL Pin: False, Extra Encryption Layer: Yes, HTTPs, debuggable: False An android application connecting to a back-end through signed SSL certificate – Receiving AES Key + IV and storing in a file Capturing application traffic
7 SSL Pin: False, Extra Encryption Layer: Yes, HTTPs An Android application connecting to a back-end through signed SSL certificate – Receiving AES Key + IV and storing in a file encrypted by a key stored in Android key-store Capturing application traffic + Discovering vulnerabilities in back-end
8 SSL Pin: True, Extra Encryption Layer: False, HTTPs An Android application connecting to a back-end through signed SSL certificate – SSL certificate has Pinned, method 1 Capturing application traffic
9 SSL Pin: True, Extra Encryption Layer: False, HTTPs An Android application connecting to a back-end through signed SSL certificate – SSL certificate has Pinned, method 2 Capturing application traffic
10 SSL Pin: True, Extra Encryption Layer: False, HTTPs An Android application connecting to a back-end through signed SSL certificate – SSL certificate has Pinned, method 3 Capturing application traffic + Discovering vulnerabilities in back-end
11 SSL Pin: True, Extra Encryption Layer: YES, HTTPs An Android application connecting to a back-end through signed SSL certificate – SSL certificate has Pinned – Receiving AES Key + IV and storing in a file encrypted by a key stored in Android key-store Capturing application traffic + Discovering vulnerabilities in back-end
12 SSL Pin: True, Extra Encryption Layer: YES, HTTPs An Android application connecting to a back-end through signed SSL certificate – SSL certificate has Pinned – AES Key hard-coded and encrypted by another key = (hash of Android sign) Capturing application traffic + Discovering vulnerabilities in back-end
13 SSL Pin: True, Extra Encryption Layer: False, HTTPs, Root Detection: True An Android application connecting to a back-end through signed SSL certificate Capturing application traffic + Discovering vulnerabilities in back-end
14 SSL Pin: True, Extra Encryption Layer: False, HTTPs, Root Detection: True, VM Detection: True An Android application connecting to a back-end through signed SSL certificate Capturing application traffic + Discovering vulnerabilities in back-end

To Top

Pin It on Pinterest

Share This