Skip to content

This contains a list of tools for security assessments of android applications.

Notifications You must be signed in to change notification settings

rostomzed/Android-Security-Assessment-Tools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 

Repository files navigation

Android-Security-Assessment-Tools

This document is intended to provide a list of tools used for vulnerability analysis and penetration testing of Android applications. This is by no means a comprehensive list and some tools achieve similar goals. As most tools are open projects, some might not be constantly maintained and hence the use of multiple tools for security assessments and penetration testing might be necessary.

Tool Description
Static Analysis Tools
Androwarn Detects and warns the user about potential malicious behaviours developed by an Android application.
ApkAnalyser ApkAnalyser is a static, virtual analysis tool for examining and validating
the development work of your Android app.
APKInspector APKinspector is a powerful GUI tool for analysts to analyse the Android applications.
Droid Intent Data Flow Analysis for Information Leakage Droid Intent Data Flow Analysis for Information Leakage (DidFail) is an analysis method that is designed to identify and expose potential data leaks within Android applications.
DroidLegacy An automated method for extracting familial signatures for Android malware, i.e., signatures that identify malware produced by piggybacking potentially different benign applications with the same (or similar) malicious code.
Several tools from PSU Dare, Ded, Fortify SCA, Kirin and JLift
Smali CFG generator This tool generates Smali Control Flow Graphs which can facilitate the review process.
FlowDroid FlowDroid is a context-, flow-, field-, object-sensitive and lifecycle-aware static taint analysis tool for Android applications.
PSCout A tool that extracts the permission specification from the Android OS source code using static analysis
Amandroid Amandroid is a static analysis framework for Android apps.
SmaliSCA Smali Static Code Analysis
CFGScanDroid Scans and compares CFG against CFG of malicious applications
Madrolyzer Simple framework to extract "actionable" data from Android malware (C&Cs, phone numbers etc.)
SPARTA The SPARTA project (Static Program Analysis for Reliable Trusted Apps) is building a toolset to verify the security of mobile phone applications. It verifies that an app satisfies an information-flow security policy. It is built on the Checker Framework.
ConDroid ConDroid performs concolic execution of Android apps - a combination of pure symbolic and concrete execution of a program. The goal of ConDroid is to drive execution of Android app to specific code locations without requiring any manual interaction with the app. This allows to observe "interesting" behaviour in a dynamic analysis, such as network traffic or dynamic code loading.
DroidRA Android developers heavily use reflection in their apps for legitimate reasons, but also significantly for hiding malicious actions.
RiskInDroid RiskInDroid (Risk Index for Android) is a tool for quantitative risk analysis of Android applications written in Java (used to check the permissions of the apps) and Python (used to compute a risk value based on apps' permissions). The tool uses classification techniques through scikit-learn, a machine learning library for Python, in order to generate a numeric risk value between 0 and 100 for a given app.
SUPER SUPER is a command-line application that can be used in Windows, MacOS X and Linux, that analyses .apk files in search for vulnerabilities. It does this by decompressing APKs and applying a series of rules to detect those vulnerabilities.
ClassyShark ClassyShark is a standalone binary inspection tool for Android developers. It can reliably browse any Android executable and show important info such as class interfaces and members, dex counts and dependencies.
Droidstat-x Python tool that generates an Xmind map with all the information gathered and any evidence of possible vulnerabilities identified via static analysis. The map itself is an Android Application Pentesting Methodology component, which assists Pentesters to cover all important areas during an assessment.
Androwarn Androwarn is a tool whose main aim is to detect and warn the user about potential malicious behaviours developped by an Android application.
The detection is performed with the static analysis of the application's Dalvik bytecode, represented as Smali.
This analysis leads to the generation of a report, according to a technical detail level chosen from the user.
App Vulnerability Scanners
QARK Quick Android Review Kit - This tool is designed to look for several security related Android application vulnerabilities, either in source code or packaged APKs. The tool is also capable of creating "Proof-of-Concept" deployable APKs and/or ADB commands, capable of exploiting many of the vulnerabilities it finds. There is no need to root the test device, as this tool focuses on vulnerabilities that can be exploited under otherwise secure conditions.
AndroBugs AndroBugs Framework is an Android vulnerability analysis system that helps developers or hackers find potential security vulnerabilities in Android applications.
Nogotofail Nogotofail is a network security testing tool designed to help developers and security researchers spot and fix weak TLS/SSL connections and sensitive cleartext traffic on devices and applications in a flexible, scalable, powerful way. It includes testing for common SSL certificate verification issues, HTTPS and TLS/SSL library bugs, SSL and STARTTLS stripping issues, cleartext issues, and more.
Devknox Devknox is a developer friendly Android Studio plugin that helps Android developers detect and resolve security issues in their apps, while writing code.
JAADAS This is Joint Advanced Defect Assessment framework for android applications (JAADS, original name JADE renamed to avoid potential trademark issue), written in 2014. JAADAS is a tool written in Java and Scala with the power of Soot to provide both interprocedure and intraprocedure static analysis for android applications. Its features include API misuse analysis, local-denial-of-service (intent crash) analysis, inter-procedure style taint flow analysis (from intent to sensitive API, i.e. getting a parcelable from intent, and use it to start activity).
Dynamic Analysis Tools
Android DBI frameowork Simple binary instrumentation toolkit for Android ARM + Thumb.
Instrumentation is based on library injection and hooking function entry points (in-line hooking).
The toolkit consists of two main components the hijack tool and the base library.
Androl4b AndroL4b is an android security virtual machine based on ubuntu-mate includes the collection of latest framework, tutorials and labs from different security geeks and researchers for reverse engineering and malware analysis.
Android Malware Analysis Toolkit A Linux distro focused on Mobile Malware Analysis for Android.
Mobile-Security-Framework MobSF Mobile Security Framework (MobSF) is an automated, all-in-one mobile application (Android/iOS/Windows) pen-testing framework capable of performing static, dynamic and malware analysis. It can be used for effective and fast security analysis of Android, iOS and Windows mobile applications and support both binaries (APK, IPA & APPX ) and zipped source code.
AppUse AppUse is a VM (Virtual Machine) developed by AppSec Labs. It is a unique platform for mobile application security testing, Android and iOS applications and includes exclusive custom-made tools and scripts created by AppSec Labs.
Cobradroid CobraDroid is a custom build of the Android operating system geared specifically for application security analysts and for individuals dealing with mobile malware.
Droidbox DroidBox is developed to offer dynamic analysis of Android applications. The following information is described in the results, generated when analysis is complete:

- Hashes for the analyzed package
- Incoming/outgoing network data
- File read and write operations
- Started services and loaded classes through DexClassLoader
- Information leaks via the network, file and SMS
- Circumvented permissions
- Cryptographic operations performed using Android API
- Listing broadcast receivers
- Sent SMS and phone calls
drozer drozer allows you to search for security vulnerabilities in apps and devices by assuming the role of an app and interacting with the Dalvik VM, other apps' IPC endpoints and the underlying OS.
drozer provides tools to help you use, share and understand public Android exploits. It helps you to deploy a drozer Agent to a device through exploitation or social engineering.
Xposed Xposed framework, which gives you the possibility to modify your ROM - without modifying any APK; equivalent of doing Stub based code injection but without any modifications to the binary.
Inspeckage Inspeckage is a tool developed to offer dynamic analysis of Android applications. By applying hooks to functions of the Android API, Inspeckage will help you understand what an Android application is doing at runtime.
Android Hooker Hooker is an opensource project for dynamic analyses of Android applications. This project provides various tools and applications that can be used to automatically intercept and modify any API calls made by a targeted application.
ProbeDroid ProbeDroid is a dynamic Java code instrumentation kit for Android application. It provides APIs for users to craft their own instrumentation tools. Thus, they can trace, profile, or change the runtime behavior of an interested application.
Android Tamer Android Tamer is a Virtual / Live Platform for Android Security professionals.
This Environment allows people to work on large array of android security related task's ranging from Malware Analysis, Penetration Testing and Reverse Engineering.
DECAF DECAF (short for Dynamic Executable Code Analysis Framework) is a binary analysis platform based on QEMU. This is also the home of the DroidScope dynamic Android malware analysis platform. DroidScope is now an extension to DECAF.
CuckooDroid CuckooDroid is an extension of Cuckoo Sandbox the Open Source software for automating analysis of suspicious files, CuckooDroid brings to cuckoo the capabilities of execution and analysis of android application.
Mem Tool used for dumping memory from Android devices. Root access is required.
AuditdAndroid A Fork of Auditd geared specifically for running on the Android platform. Includes system applications, AOSP patches, and kernel patches to maximize the audit experience.
Android Security Evaluation Framework ASEF - Android Security Evaluation Framework: Open Source Project to perform security analysis of Android Apps by various security measures. (no longer under active development)
Android Reverse Engineering ARE (android reverse engineering) is a Virtual Machine for Android Reverse Engineering.
Aurasium Practical security policy enforcement for Android apps via bytecode rewriting and in-place reference monitor.
Android Linux Kernel modules Android Loadable Kernel Modules - mostly used for reversing and debugging on controlled systems/emulators.
Appie Android Pentesting Portable Integrated Environment
Appie is a software package that has been pre-configured to function as an Android Pentesting Environment on any windows-based machine without the need of a Virtual Machine (VM) or dualboot.
StaDynA StaDynA is a system supporting security app analysis in the presence of dynamic code update features (dynamic class loading and reflection).
This tool combines static and dynamic analysis of Android applications in order to reveal the hidden/updated behaviour and extend static analysis results with this information.
Vezir Project Linux Virtual Machine for Mobile Application Pentesting and Mobile Malware Analysis. The Main purpose of Vezir is to provide up-to-date testing environment for mobile security researchers.
MARA MARA is a Mobile Application Reverse engineering and Analysis Framework. It is a tool that puts together commonly used mobile application reverse engineering and analysis tools, to assist in testing mobile applications against the OWASP mobile security threats.
Network Scanning, Vulnerability Assessment and Proxy tools
Burp suite Burp Suite is a graphical tool for testing Web application security. The tool is written in Java and developed by PortSwigger Security.
the HTTP Proxy operates as a web proxy server, and sits as a man-in-the-middle between the browser and destination web servers. This allows the interception, inspection and modification of the raw traffic passing in both directions.
ZAP The OWASP Zed Attack Proxy (ZAP) is one of the world's most popular free security tools and is actively maintained by hundreds of international volunteers. It can be used the same way as Burp Suite in order to intercept traffic from the client and change requests accordingly.,
SSLyze SSLyze is a stand-alone python application that looks for classic SSL misconfigurations, while providing the advanced user with the opportunity to customize the application via a simple plugin interface.
Nmap Nmap ("Network Mapper") is a free and open source (license) utility for network discovery and security auditing. Many systems and network administrators also find it useful for tasks such as network inventory, managing service upgrade schedules, and monitoring host or service uptime.
OpenVAS OpenVAS is a framework of several services and tools offering a comprehensive and powerful vulnerability scanning and vulnerability management solution.
Wireshark Wireshark is the world’s foremost and widely-used network protocol analyser. It is useful to capture and analyse traffic for potential insecure protocols or plaintext data in the payload.
Reverse Engineering
Smali/Baksmali smali/baksmali is an assembler/disassembler for the dex format used by dalvik, Android's Java VM implementation. The syntax is loosely based on Jasmin's/dedexer's syntax, and supports the full functionality of the dex format (annotations, debug info, line info, etc.)
emacs syntax coloring for smali files Smali/Baksmali mode for Emacs.
vim syntax coloring for smali files Syntax highlighting for baksmali (Dalvik disassembler) output.
AndBug AndBug is a debugger targeting the Android platform's Dalvik virtual machine intended for reverse engineers and developers. It uses the same interfaces as Android's Eclipse debugging plugin, the Java Debug Wire Protocol (JDWP) and Dalvik Debug Monitor (DDM) to permit users to hook Dalvik methods, examine process state, and even perform changes.
Androguard Reverse engineering, Malware and goodware analysis of Android applications.
Apktool A tool for reverse engineering 3rd party, closed, binary Android apps. It can decode resources to nearly original form and rebuild them after making some modifications. It also makes working with an app easier because of the project like file structure and automation of some repetitive tasks like building apk, etc
Android Framework for Exploitation AFE (Android Framework for Exploitation) is a framework for exploiting android based devices and applications.
Android-KillPermAndSigChecks This tool leverages Cydia Substrate to bypass signature and permission checks for IPCs.
Android OpenDebug This tool leverages Cydia Substrate to make all applications running on the device debuggable; once installed any application will let a debugger attach to them.
Dare .dex to .class converter
Dex2Jar dex to jar converter
Enjarify dex to jar converter from Google
Dedexer Dedexer is a disassembler tool for DEX files. DEX is a format introduced by the creators of the Android platform.
Fino An Android Dynamic Analysis Tool.
Frida Dynamic instrumentation toolkit for developers, reverse-engineers, and security researchers. Inject your own scripts into black box processes. Hook any function, spy on crypto APIs or trace private application code, no source code needed. Edit, hit save, and instantly see the results. All without compilation steps or program restarts.
diff-gui GUI for Frida -Scripts. Uses flask for a web framework, jinja for templates, redis for message queue, server-side push for real time updates and some js.
Indroid Thread injection kit. The aim of the project is to demonstrate that a simple debugging functionality on *nix systems a.k.a ptrace() can be abused by malware to inject malicious code in remote processes. Indroid provides CreateRemoteThread() equivalent for ARM based *nix devices.
IntentSniffer Intent Sniffer is a tool that can be used on any device using the Google Android operating system (OS).
Introspy Blackbox tool to help understand what an Android application is doing at runtime and assist in the identification of potential security issues.
Jad Java decompiler
JD-GUI Java decompiler
CFR Java decompiler
Krakatau Java decompiler
Procyon Java decompiler
FernFlower Java decompiler
Redexer Redexer is a reengineering tool that manipulates Android app binaries. This tool is able to parse a DEX file into an in-memory data structure; to infer with which parameters the app uses certain permissions (we name this feature RefineDroid); to modify and unparse that data structure to produce an output DEX file (we name these features Dr. Android, which stands for Dalvik Rewriting for Android).
Smali viewer GUI APK analysis software. Manual page shows full process.
Simplify Simplify virtually executes an app to understand its behaviour and then tries to optimize the code so that it behaves identically but is easier for a human to understand. Each optimization type is simple and generic, so it doesn't matter what the specific type of obfuscation is used.
Bytecode viewer Bytecode Viewer is an Advanced Lightweight Java Bytecode Viewer, GUI Java Decompiler, GUI Bytecode Editor, GUI Smali, GUI Baksmali, GUI APK Editor, GUI Dex Editor, GUI APK Decompiler, GUI DEX Decompiler, GUI Procyon Java Decompiler, GUI Krakatau, GUI CFR Java Decompiler, GUI FernFlower Java Decompiler, GUI DEX2Jar, GUI Jar2DEX, GUI Jar-Jar, Hex Viewer, Code Searcher, Debugger and more. It's written completely in Java, and it's open sourced. It's currently being maintained and developed by Konloch.
Radare2 r2 is a rewrite from scratch of radare in order to provide a set of libraries and tools to work with binary files.

Radare project started as a forensics tool, a scriptable commandline hexadecimal editor able to open disk files, but later support for analyzing binaries, disassembling code, debugging programs, attaching to remote gdb servers, ..
Fuzz Testing
IntentFuzzer Intent Fuzzer is a tool that can be used on any device using the Google Android operating system (OS).
Radamsa Fuzzer Radamsa is a test case generator for robustness testing, a.k.a. a fuzzer. It is typically used to test how well a program can withstand malformed and potentially malicious inputs.
Honggfuzz Security oriented fuzzer with powerful analysis options. Supports evolutionary, feedback-driven fuzzing based on code coverage (software- and hardware-based).
Melkor Melkor is a hybrid fuzzer (mutation-based and generation-based).
It mutates the existing data in an ELF sample given to create orcs
(malformed ELFs), however, it does not change values randomly (dumb fuzzing), instead, it fuzzes certain metadata with semi-valid values through the use of fuzzing rules (knowledge base). Written in C, Melkor is a very intuitive and easy-to-use fuzzer to find functional (and security) bugs in ELF parsers.
MFFA Media Fuzzing Framework for Android (Stagefright fuzzer).
AndroFuzz A simple file format fuzzer for android. Used by me to fuzz pdf readers, but should work for any file format.
Market Crawlers
Google play crawler (Java) google-play-crawler is simply for searching android applications on GooglePlay, and also downloading them.
Google play crawler (Python) An unofficial Python API that let you search, browse and download Android apps from Google Play (formerly Android Market).
Google play crawler (Node) Call Google Play APIs from Node. You might want to check out the CLI package as well.
Aptoide downloader (Node) Download APKs from aptoide – third party market place.
Appland downloader (Node) Download APKs from appland – third party market place.
Miscellaneous Tools
smalihook Smalihook's purpose is to provide a "hook" (actually replacement) methods for things like getting device id or signature.
APK-Downloader APK-Downloader downloads APK files from Android Market to desktop.
AXMLPrinter2 AXMLPrinter2 converts binary XML files to human-readable XML files.
adb autocomplete This is a Bash completion script for the android, adb, emulator, fastboot and repo command-line tools from the Google Android SDK.
Dalvik opcodes A page showing all Dalvik opcodes.
ExploitMe Android Labs This is an open source project demonstrating Android mobile hacking.
GoatDroid OWASP GoatDroid is a fully functional and self-contained training environment for educating developers and testers on Android security.
mitmproxy An interactive TLS-capable intercepting HTTP proxy for penetration testers and software developers.
dockerfile/androguard Docker file for building androguard dependencies w/ an optional interactive shell environment.
Android Vulnerability Test Suite This tool is meant to show the end user the attack surface that a given device is susceptible to. In implementing these checks, we attempt to minimize or eliminate both false positives/false negatives without negatively affecting system stability.
AppMon AppMon is an automated framework for monitoring and tampering system API calls of native macOS, iOS and android apps. It is based on Frida.
App Repackaging Detectors
FSquaDRA FSquaDRA is a tool for detection of repackaged Android applications. The approach is based on the idea that repackaged applications want to maintain "look and feel" of the originals.

About

This contains a list of tools for security assessments of android applications.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published