This post will teach you how you can use Kali Linux on Android.
Kali Linux is a Debian-derived Linux distribution designed for digital forensics and penetration testing. It is maintained and funded by Offensive Security.
It is a highly used OS for pen-testing and other network-based operations.
And it is officially supported on Android.
Why Kali Linux on Android
For a beginner, Kali Linux is the best OS to learn simple hacking tools on, but not everyone has access to a machine that can run it.
However, with over 2 billion Android smartphones around the world, chances are you already have a device capable of running Kali.
Hence, this guide will teach you how to use Kali Linux on Android.
This guide will be covering two methods, One for Rooted Users and another for Non-Rooted Users
If you don’t know what “rooted device” is, you are a non-rooted user
If you are concerned about choosing whether to use SSL or VNC on Kali Linux on Android, I will break it down for easy understanding
SSH or VNC
In short terms of explanation, in SSH you will only be able to use command-line tools, while in VNC Connection, you will get a GUI (Graphical User Interface)
While it may seem better to go with VNC, It is recommended to go with SSH while using Kali Linux on Android.
Because VNC is not guaranteed to connect everytime and SSH is much more widely supported
Method #1 (for Rooted Devices)
- A device running Android 2.1 and above, rooted.
- At least 5 GB free space on internal or external storage.
- A fast, wireless internet connection.
- Patience to wait for a distribution to bootstrap from the network.
Download and Install Linux Deploy
Configure Linux Deploy
Choose Kali Linux in the “Distribution” tab.
Optionally, you can choose your architecture, verify that the Kali mirror is correct, set your installation type and location on your Android device, etc.
Generally speaking, the defaults provided by Linux Deploy are good to begin with.
Build the Kali Image
Once you are happy with all the settings, hitting the “install” button will start a Kali Linux bootstrap directly from the official Kali Linux repositories.
Depending on your Internet connection speed, this process could take a while. You’ll be downloading a base install of Kali Linux (with no tools) at minimum.
Start Your Chrooted Kali
Once the installation is complete, you can have Linux Deploy automatically mount and load up your Kali Linux chroot image by hitting the “start” button. You should see Linux Deploy setting up your image with output similar to the following:
Logging in to your chrooted Kali
Now you can use either a SSH or VNC client to access your Kali instance. The VNC password is “changeme” and the SSH credentials are “android” for the username (configured via Linux Deploy) and “changeme” as the password.
Image Size Considerations
If left unchanged, Linux Deploy will automatically set an image size of around 4 GB, for a “naked” installation of Kali. If you would like to install additional Kali tools down the road, you might want to consider using a larger image size, which is configurable via the settings in Linux Deploy.
These are the steps that you need to follow to get a working instance of Kali Linux on Android for Rooted Devices
Method #2 (For Non-Rooted Devices)
Create a New Filesystem
Open UserLAnd, and view the “Apps” tab.
Select “Kali”, a prompt regarding credentials. Create a Username, Password and VNC Password.
The “Password” will allow access to the SSH server started when the filesystem is finished installing.
You will be asked for an SSH or VNC connection.
This tutorial will use a SSH connection.
Update the OS
This instance of Kali Linux will not have most of its tools installed.
Hence it will be needed to be updated.
You can do this by using the command
sudo apt update
This process may take some time depending on the packages and the speed of your internet.
This makes the complete step-by-step guide on how you can use Kali Linux on Android, whether rooted on non-rooted
Do consider that Kali Linux on Android may not be as functional as Kali Linux on PC but it will still be able to provide the most basic functions that you’d want from it.