Skip to main content

An ADB Honeypot

Project description

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.

Links

Android Open Source Project - ADB Overview

Android Developer - ADB Documentation

Reverse-engeenered documentation - ADB Protocol

Geir Sporsheim - protocol.py

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

adbhoneypot-3.0.1.tar.gz (85.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

adbhoneypot-3.0.1-py2.py3-none-any.whl (109.8 kB view details)

Uploaded Python 2Python 3

File details

Details for the file adbhoneypot-3.0.1.tar.gz.

File metadata

  • Download URL: adbhoneypot-3.0.1.tar.gz
  • Upload date:
  • Size: 85.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.4

File hashes

Hashes for adbhoneypot-3.0.1.tar.gz
Algorithm Hash digest
SHA256 0f0816159da8c21645bc1ebc0f927156126d2f45104b8644e1ea8639c9c10c7c
MD5 43e853f68bcb1f9aabd529c8b27a6835
BLAKE2b-256 aaebfdf25e4bee74befa7fcfcbbf75c4497972341145158a79621634846fd795

See more details on using hashes here.

File details

Details for the file adbhoneypot-3.0.1-py2.py3-none-any.whl.

File metadata

  • Download URL: adbhoneypot-3.0.1-py2.py3-none-any.whl
  • Upload date:
  • Size: 109.8 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.4

File hashes

Hashes for adbhoneypot-3.0.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 e5e8d5e9ac02dc5ecf237a80ce8ca9bd5a4bdf4280ff1b6ecf8a0b8c69014ce7
MD5 6e3a737e9ef671bc0e0c8127d0f207a3
BLAKE2b-256 63859ca44b5a5530636c1072c5566115c8304b7d588f220cc765a0ad02e1c731

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page