├── .gitignore ├── .toolskey.enc ├── .travis.yml ├── Documentation ├── Development │ ├── Application │ │ └── basics.md │ └── ROM Development │ │ ├── fastboot.md │ │ └── heimdall.md ├── Examples │ ├── adb.md │ └── fastboot.md ├── General │ ├── decompile.md │ ├── multi_devices.md │ ├── packages.md │ ├── python_packages.md │ ├── repo_configure.md │ ├── running_emulator.md │ ├── screenshot.md │ └── tools_mindmap.md ├── Security Assessment │ ├── Automated Analysis │ │ ├── MobSF.md │ │ └── drozer.md │ ├── Manual Analysis │ │ └── APKTool.md │ └── Pentesting │ │ ├── Burpsuite.md │ │ ├── nikto.md │ │ └── nmap.md ├── Training │ ├── DIVA │ │ ├── 00_Home.md │ │ ├── 01_Insecure_Logging.md │ │ ├── 02_Hardcoding_Issues.md │ │ ├── 03_Insecure_Data_Storage_P1.md │ │ ├── 04_Insecure_Data_Storage_P2.md │ │ ├── 05_Insecure_Data_Storage_P3.md │ │ ├── 06_Insecure_Data_Storage_P4.md │ │ ├── 07_Input_Validation_Issues_P1.md │ │ ├── 08_Input_Validation_Issues_P2.md │ │ ├── 09_Access_Control_Issues_P1.md │ │ └── 10_Access_Control_Issues_P2.md │ └── index.md ├── images │ ├── APKTool.jpg │ ├── Readme.txt │ ├── adb_list.jpg │ ├── adb_list_cat.jpg │ ├── apk2java.jpg │ ├── burp-eula.png │ ├── burp-title.jpg │ ├── burp.png │ ├── decompiled_apk.jpg │ ├── drozer_check.jpg │ ├── emulator_install │ │ ├── 1-sdk.jpg │ │ ├── 2-accept_license.jpg │ │ ├── 3-loaded.jpg │ │ ├── 4-status_installed.jpg │ │ ├── 5-avd_options.jpg │ │ ├── 6-vm_created.jpg │ │ ├── 7-launch_vm.jpg │ │ └── 8-emulator_running.jpg │ ├── fastboot.png │ ├── heimdall-icon.png │ ├── heimdall.png │ ├── install_open_vm_tools.jpg │ ├── mobsf_running.jpg │ ├── mobsf_running_90.jpg │ ├── nikto-icon.png │ ├── nikto.jpg │ ├── nmap-icon.png │ ├── nmap.jpg │ ├── repo_androidtamer.jpg │ ├── repo_androidtamer_home.jpg │ ├── synaptic.jpg │ ├── vmware_import_error_linux.jpg │ ├── vmware_import_error_mac.jpg │ └── vuln_apps │ │ └── DIVA │ │ ├── Challenge_10a.png │ │ ├── Challenge_10b.png │ │ ├── Challenge_10c.png │ │ ├── Challenge_10d.png │ │ ├── Challenge_10e.png │ │ ├── Challenge_10f.png │ │ ├── Challenge_10g.png │ │ ├── Challenge_10h.png │ │ ├── Challenge_10i.png │ │ ├── Challenge_10j.png │ │ ├── Challenge_10k.png │ │ ├── Challenge_10l.png │ │ ├── Challenge_1a.png │ │ ├── Challenge_1b.png │ │ ├── Challenge_1c.png │ │ ├── Challenge_2a.png │ │ ├── Challenge_2b.png │ │ ├── Challenge_2c.png │ │ ├── Challenge_2d.png │ │ ├── Challenge_2e.png │ │ ├── Challenge_2f.png │ │ ├── Challenge_3a.png │ │ ├── Challenge_3b.png │ │ ├── Challenge_3c.png │ │ ├── Challenge_3d.png │ │ ├── Challenge_3e.png │ │ ├── Challenge_3f.png │ │ ├── Challenge_4a.png │ │ ├── Challenge_4b.png │ │ ├── Challenge_4c.png │ │ ├── Challenge_4d.png │ │ ├── Challenge_4e.png │ │ ├── Challenge_4f.png │ │ ├── Challenge_4g.png │ │ ├── Challenge_4h.png │ │ ├── Challenge_4i.png │ │ ├── Challenge_4y.png │ │ ├── Challenge_4z.png │ │ ├── Challenge_5a.png │ │ ├── Challenge_5b.png │ │ ├── Challenge_5c.png │ │ ├── Challenge_5d.png │ │ ├── Challenge_5e.png │ │ ├── Challenge_6a.png │ │ ├── Challenge_6b.png │ │ ├── Challenge_6c.png │ │ ├── Challenge_6d.png │ │ ├── Challenge_6e.png │ │ ├── Challenge_7a.png │ │ ├── Challenge_7b.png │ │ ├── Challenge_7c.png │ │ ├── Challenge_7d.png │ │ ├── Challenge_7e.png │ │ ├── Challenge_7f.png │ │ ├── Challenge_8a.png │ │ ├── Challenge_8b.png │ │ ├── Challenge_8c.png │ │ ├── Challenge_8d.png │ │ ├── Challenge_8e.png │ │ ├── Challenge_8f.png │ │ ├── Challenge_9a.png │ │ ├── Challenge_9b.png │ │ ├── Challenge_9c.png │ │ ├── Challenge_9d.png │ │ ├── Challenge_9e.png │ │ ├── Challenge_9y.png │ │ ├── Challenge_9z.png │ │ ├── diva1.png │ │ └── diva2.png ├── img │ └── favicon.ico └── index.md └── mkdocs.yml /.gitignore: -------------------------------------------------------------------------------- 1 | site/ 2 | .DS_Store 3 | .toolskey 4 | .toolskey.pub 5 | *.pyc -------------------------------------------------------------------------------- /.toolskey.enc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TamerPlatform/Tools/a2332857a760193732e7c196879d041b639613b8/.toolskey.enc -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: python 2 | python: 3 | - '2.7' 4 | 5 | before_install: 6 | - openssl aes-256-cbc -K $encrypted_48b5285fe911_key -iv $encrypted_48b5285fe911_iv -in .toolskey.enc -out .toolskey -d 7 | 8 | branches: 9 | except: 10 | - gh-pages 11 | 12 | install: 13 | - pip install mkdocs 14 | - pip install mkdocs-tamerdocs 15 | - pip install python-markdown-oembed 16 | - pip install markdown-newtab 17 | - pip install markdown-checklist 18 | - pip install linkchecker 19 | - pip install requests 20 | 21 | 22 | before_script: 23 | # Replace with the line that travis encrypt-file printed out 24 | - git config remote.origin.url git@github.com:${TRAVIS_REPO_SLUG} 25 | - COMMIT_MESSAGE="Test Commit `date "+%Y-%m-%d %H:%M:%S"` from `git log -n 1 --format='commit %h - %s'`" 26 | 27 | script: 28 | - mkdocs build --clean 29 | 30 | after_success: > 31 | echo $TRAVIS_BRANCH; echo $TRAVIS_PULL_REQUEST; 32 | if [[ $TRAVIS_BRANCH == 'master' && $TRAVIS_PULL_REQUEST == 'false' ]]; then 33 | echo "Will Deploy From Here" 34 | rm -rf .git ; 35 | chmod go-rwx .toolskey 36 | eval `ssh-agent -s` 37 | ssh-add .toolskey 38 | cd site 39 | python -m SimpleHTTPServer & 40 | PID=$! 41 | echo PID 42 | ps aux | grep SimpleHTTPServer 43 | linkchecker http://127.0.0.1:8000/ 44 | kill -KILL $PID 45 | ps aux | grep SimpleHTTPServer 46 | echo "tools.androidtamer.com" > ./CNAME 47 | git init ; 48 | git add . ; 49 | git config --global user.name "Anant Shrivastava via Travis-CI"; 50 | git config --global user.email "anant+travisci@anantshri.info"; 51 | git commit -m "Deploy Travis CI build $TRAVIS_BUILD_NUMBER to GitHub pages"; 52 | git push -v -f git@github.com:${TRAVIS_REPO_SLUG} master:gh-pages 53 | echo "Deployed"; 54 | fi -------------------------------------------------------------------------------- /Documentation/Development/Application/basics.md: -------------------------------------------------------------------------------- 1 | # Basic Development Tools 2 | 3 | AndroidTamer does not only comprise of offensive tools and scripts for Android security testing, but also frameworks for Android app development. Some development tools which come with AndroidTamer are: 4 | - Android Studio 5 | - Android SDK 6 | - Android AVD Management 7 | 8 | ### Android-Studio 9 | 10 | Android Studio is the official Integrated Development Environment (IDE) for the Android platform. You can code, compile and debug Android apps using Android Studio. Know more about the IDE in its [official website](https://developer.android.com/studio/index.html). 11 | 12 | It is by default installed and configured in your terminal path. All you need to do is just type the following command: 13 | 14 | ``` 15 | android@tamer ~> android-studio 16 | ``` 17 | 18 | ### Android SDK 19 | 20 | Android Software Development Kit (SDK) comes with the Android Studio package. The latest version of Android SDK gets downloaded and installed on the first run of Android Studio. It is a set of development tools used to develop applications for Android platform. The Android SDK includes the following: 21 | 22 | - Required libraries 23 | - Debugger 24 | - An emulator 25 | - Relevant documentation for the Android application program interfaces (APIs) 26 | - Sample source code 27 | - Tutorials for the Android OS 28 | 29 | Each version of Android has its own SDK. It provides the ability to create an application for particular version(s) of Android. For example, if you have installed SDK for Android Nougat, you can create Android apps for that version. Similarly, you need to install the SDK of all the versions for which you want to create the Android apps. 30 | 31 | Android SDK Manager allows you to install, manage and delete SDKs. In AndroidTamer, it is installed on the path `/opt/Arsenal/android-sdk-linux`. You could start the Android SDK Manager with ease using the following command: 32 | 33 | ``` 34 | android@tamer ~> android sdk 35 | ``` 36 | 37 | ### Android AVD Management 38 | 39 | An Android Virtual Device (AVD) is an emulator configuration that allows developers to test the application by simulating the real device capabilities. Not only does it help with compatibility testing after the Android app development but also helps in dynamic analysis of the apps. 40 | 41 | As AndroidTamer is a virtual machine environment hence **its recommended to run emulator only when you have alocated more then 2 GB of RAM** to the virtual machine. 42 | 43 | To directly launch AVD manager type following command: 44 | 45 | ``` 46 | android@tamer ~> android avd 47 | ``` 48 | 49 | ### Develop an Application 50 | 51 | #### Launch Android Studio 52 | 53 | A custom bash script named `studio.sh` is packaged with AndroidTamer to help the CLI lovers. The script is configured on the terminal path and is located at `/opt/Arsenal/android-studio/bin/studio.sh`. Instead of manually clicking Android Studio in the `Development` drop-down sublist, it allows the user to launch Android Studio using the terminal with just one command. This script basically checks if JRE, JDK and IDE are properly installed and configured. If anyone is failing then the script doesnt invoke Android Studio and displays the error. 54 | 55 | To launch Android Studio from terminal, type the following command: 56 | 57 | ``` 58 | android@tamer ~> studio.sh 59 | ``` 60 | -------------------------------------------------------------------------------- /Documentation/Development/ROM Development/fastboot.md: -------------------------------------------------------------------------------- 1 | ## fastboot 2 | 3 | ### Overview 4 | 5 | Android device has 3 important partitions: 6 | 7 | - Boot loader 8 | - Recovery 9 | - Android ROM 10 | 11 | Boot loader loads first and decides the next partition to be loaded (which is usually the *Android ROM*). Recovery is the mode that is used by device to install updates to Android ROM partition. It is also used while factory resetting the phone. The recovery that comes by default usually has less options and that is why custom recovery modules are available. 12 | 13 | Fastboot on the other hand is a protocol that can be used to connect to the device from a computer over USB and issue updates to the partitions of the device. For example, while I'm in fastboot I can update by recovery partition. 14 | 15 | From [kingoapp.com](http://www.kingoapp.com/help/fastboot-mode.htm), fastboot is defined as: 16 | 17 | > Fastboot is a protocol that can be used to re-flash partitions on your device (update the flash file system in Android devices). It is this small tool that comes with the Android SDK (Software Developer Kit), which is an alternative to the Recovery Mode for doing installations and updates. 18 | 19 | > Not all phones have a fastboot mode that the user can access. It’s turned on with Nexus devices by default as well as a few other phones and tablets and has been enabled by independent Android developers and enthusiasts on some other phones. 20 | 21 | ### What is Fastboot for? 22 | 23 | While in fastboot, you can *modify the file system images* from a computer over a USB connection. Fastboot mode can start on your device even before Android loads, even under the circumstance when Android isn’t installed at all. And because of that, fastboot mode is useful for quick-updating the firmware, without having to use a recovery mode. 24 | 25 | You can read more about the basic commands of fastboot [here](../../Examples/fastboot.md). 26 | 27 | ### Is fastboot the same as adb ? 28 | 29 | Even though both `fastboot` and `adb` send terminal commands to phone from computer via USB, they both serve different functions. Both the tools come with the huge Android SDK but Google recently made a standalone version of these tools available to the users. 30 | 31 | Some basic differences between fastboot and adb : 32 | 33 | - fastboot is used to modify phone’s firmware and sends commands directly to the bootloader, whereas, adb sends commands to the phone after it is turned on and booted (or in recovery mode) 34 | - fastboot works without the debugging mode enabled, whereas, adb requires Debugging enabled on the phone 35 | - fastboot isn't available for all devices whereas adb can be used with almost all devices 36 | 37 | ### fastboot in AndroidTamer 38 | 39 |
40 | ![image](../../images/fastboot.png) 41 |
42 | 43 | > **Usage :** 44 | 45 | > **android@tamer:~$** `fastboot [