Skip to main content

ADB (Android Debug Bridge)

Default Port: 5555

The Android Debug Bridge (ADB) is a command-line tool that allows communication with an Android device. If not configured properly, it can be exploited to access sensitive data or even full command of the device.

Connect

To establish a connection to an ADB service, the default TCP/IP port is 5555.

Connect over the network:

adb connect <ip>:<port>

Enlist the devices connected:

adb devices

Recon

Identifying an ADB Server

You can use Nmap to check if there's an ADB server on a target host like this:

nmap -p 5555 X.X.X.X

Attack Vectors

ADB can be exploited in various ways due to misconfiguration or failure to secure the device properly:

Unrestricted shell access: With an ADB shell, you have Linux command-line access which means you can essentially perform any operation on the device.

Ghost Framework: A robust framework for exploiting ADB to gain control of a device. You can clone the repository from GitHub, navigate into the directory, and start using it.

git clone https://github.com/EntySec/ghost
cd ghost
chmod +x install.sh
./install.sh
ghost

You can now connect to a device, control it, see device info, list/transfer files, and more.

# Connect to a device.
ghost> connect <ip>:<port>

# See device info
ghost> deviceinfo

# List files
ghost> ls

Push and Pull data: ADB allows you to transfer data to and from a device. This means you can copy sensitive data or push malicious files.

Post-Exploitation

Common ADB Commands

CommandDescriptionUsage
adb devicesList of connected Android devicesadb devices
adb shellOpen a remote shell to the deviceadb shell
adb install <APK>Install an APK onto the connected deviceadb install example.apk
adb uninstall <PACKAGE>Uninstall an app from the connected deviceadb uninstall com.example.app
adb pull <REMOTE> <LOCAL>Copy a file from the device to your computeradb pull /sdcard/example.txt .
adb push <LOCAL> <REMOTE>Copy a file from your computer to the deviceadb push example.txt /sdcard/
adb logcatView the device log outputadb logcat
adb rebootReboot the deviceadb reboot
adb shell am start <PACKAGE>Launch an app on the deviceadb shell am start -n com.example.app/.MainActivity
adb shell pm list packagesList all installed packages on the deviceadb shell pm list packages
adb shell dumpsysDump system informationadb shell dumpsys
adb shell screencapCapture a screenshot of the device screenadb shell screencap /sdcard/screen.png
adb shell input keyevent <KEY>Simulate a key press on the deviceadb shell input keyevent KEYCODE_POWER