With my last article(Android Application Penetration testing Part 1) we had look at the basic architecture of the Android device. Now Let’s collect some Android Application Pentesting tools and build setup for hacking:
There are many tools for an android application penetration test, But which tools are used for which purpose and which details we can extract from it is the most important thing.
We can also use a set of all tools built in some framework. They all are available as open source
Appuse, Appie, Santoku, Pentestbox, MobSF etc.
Also, we recommend you to take the best Android Hacking and Penetration Testing Course online to enhance your Android hacking &Pentesting skills.
Let’s start with Appuse
AppUse is a VM (Virtual Machine) developed by AppSec Labs. It is a unique platform for mobile application security testing in the Android environment and includes exclusive custom-made tools created by AppSec Labs. The free version is sufficient
https://appsec-labs.com/appuse-pro/ Appuse dashboard-
It is built in Appuse framework or else external rooted mobile device can be attached and tested. Launching emulator will give you virtual device.
Root Device: It will root emulator device and give sudo access by using superuser.apk
Open ADB shell: It will open ADB shell
The mobile device can be connected to App use if you don’t want to use an emulator
Step1: On mobile device enable USB debugging and connect to the machine
Step2: adb devices will show you attached devices
Android Application Pentesting Tools:
Some basic tools for pentesting which will be useful in many test cases are already there for you. You just have to click on the tool
- Burp Suite Burp Suite is the leading software for web security testing. It is a proxy tool which will help to intercept request between client and server.
- Wireshark It is network traffic capture tool which will give a clear picture on packets on the network.
- IDA – IDA is a Windows, Linux or Mac OS X hosted multi-processor disassembler and debugger
- Eclipse – Eclipse provides IDEs and platforms for nearly every language and architecture
- Firefox browser– because its hackers browser ????
- SQLite browser – It uses to see database files
- Nmap – network scanner we can install it as it is an open source
Reversing of .apk file
For reverse engineering and many Pentest tools are already built in App use.
Click on load APK if you want to load .apk file which is already installed in device/emulator. Else you can select .apk file from Local i.e. from the base machine. Google play option is also available.
- Mainly we will be decoding an APK file for that we need to run apktool d filename.apk. After running that, it will create a folder in the same directory with decompiled files in it. Or another way, in app, use it all linked up with the dashboard which we can use directly.
Apk file is a zip file. Zip file consists of XML and other android application resources. Apktools decodes the resource files and converts the android bytecode into assembly level small files. Dex2jar converts the dex files into java bytecode file archived inside the jar file. JD GUI and Luyten decompiles java byte code to java source code file.
- After installing or selecting .apk file, we can View android manifest file by clicking view Manifest.
Dalvik Virtual Machine does not use java bytecode. Instead, it uses its own file format called dex (Dalvik Executable Format). It holds the definition of multiple classes and relative data.
- Smali /Baksmali is reassembler / disassembler for dex file format respectively.
- Save java sources – The dex2jar tool is used to decode the .dex file to a .jar file
- JD-GUI is a standalone graphical utility that displays Java source codes of “.class” files.
It is not in built-in app use you can install with guidance of below link
Drozer allows you to assume the role of an Android app and interact with other apps. It can do anything that an installed application can do, such as make use of Android’s Inter-Process Communication (IPC) mechanism and interact with the underlying operating system.