Skip to main content

ADBHoneypot: an Android Debug Bridge Honeypot

ADBHoneypot is a honeypot simulating an Android device accessible via the Android Debug Bridge (ADB) protocol over TCP. It is a complete rewrite of the original ADBHoney project, built on the Twisted event-driven networking framework.

The honeypot records all incoming ADB connections, captures shell commands issued by attackers, and saves any files they attempt to push to the fake device. It supports a rich set of output plugins for storing and forwarding events to a variety of backends.

ADB (Android Debug Bridge)

ADB (Android Debug Bridge) and its protocol is what a computer uses to communicate with Android devices (like phones and TVs). The protocol itself is an application layer protocol, which can be on the top of TCP or USB. ADB implements various control commands (e.g. "adb shell", "adb pull", etc.) for the benefit of clients (like command-line users). These commands are called 'services' in ADB. ADB usually communicates with the device over USB, but it is also possible to use ADB over Wi-Fi after some initial setup over USB. The device can be set to listen for a TCP/IP connection on port 5555 by issuing the command adb tcpip 5555. Devices that do not support authentication can be accessed and attacked remotely, allowing the attacker to take full control of the device by using combination of the following commands.

For now the honeypot accepts:

  • adb connect host[:port] - Connect to a device over TCP/IP. If you do not specify a port, 5555 is used by default.

  • adb disconnect [host | host:port] - Disconnect from the specified TCP/IP device running on the specified port. If you do not specify a host or a port, then all devices are disconnected from all TCP/IP ports. If you specify a host, but not a port, the default port 5555 is used.

  • adb shell command - Issue a shell command in the target device and then exit the remote shell.

  • adb push local_filepath remote_fiepath - Copy files and directories from the local device (computer) to a remote location on the device.

Features

  • Full Twisted-based async I/O, scales to many simultaneous connections.
  • Captures shell commands, file pushes, and wget/curl download attempts.
  • Saves uploaded files to disk, named by their SHA-256 hash.
  • Optionally downloads files referenced in wget/curl commands.
  • Configurable fake device identity string (model, features, etc.).
  • Works on Linux and Windows, with Python 2.7 and Python 3.6+.
  • Rich set of output plugins.
  • adbhoneypot CLI command for init/run/start/stop/restart/status.
  • Installable from PyPI.

Prerequisites

  • Python 2.7 or Python 3.6+
  • A working database server (only if you use a database output plugin)

Usage

Check the Linux installation guide or the Windows installation guide for complete instructions on how to install, configure, and run the honeypot.

Android Open Source Project - ADB Overview

Android Developer - ADB Documentation

Reverse-engeenered documentation - ADB Protocol

Geir Sporsheim - protocol.py

Metadata

Release files for adbhoneypot 3.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for adbhoneypot 3.0.2
File Size Uploaded Provenance Actions
adbhoneypot-3.0.2.tar.gz 94.9 kB Without provenance Details for adbhoneypot-3.0.2.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for adbhoneypot 3.0.2
File Interpreter ABI Platform Actions
adbhoneypot-3.0.2-py2.py3-none-any.whl Python 3, Python 2 none any Details for adbhoneypot-3.0.2-py2.py3-none-any.whl

Total release size: 214.5 kB

Release files / adbhoneypot-3.0.2.tar.gz

Download URL adbhoneypot-3.0.2.tar.gz
Size 94.9 kB
Tags Source
SHA-256 checksum
How to use checksums
e86dc842194feeca7931b7ae66fc30440f906c86387defa5c31dbdb2c07bc343
BLAKE2b-256 checksum
How to use checksums
05fdb4ad894c648c5287ff08a0cd9d221663e72df8a2508e80ce93a01a90b6d1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.4

Release files / adbhoneypot-3.0.2-py2.py3-none-any.whl

Download URL adbhoneypot-3.0.2-py2.py3-none-any.whl
Size 119.6 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
4cad12d8e90258ecc54745e776212fdcaa6221b481ad31e91650d5d0c779b226
BLAKE2b-256 checksum
How to use checksums
07adc12664be5ee28c46c25904603d010c362aecae46c9832fcb07aa7467ad8b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.4

Security for adbhoneypot 3.0.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page