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.0.tar.gz (82.9 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.0-py2.py3-none-any.whl (107.3 kB view details)

Uploaded Python 2Python 3

File details

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

File metadata

  • Download URL: adbhoneypot-3.0.0.tar.gz
  • Upload date:
  • Size: 82.9 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.0.tar.gz
Algorithm Hash digest
SHA256 3a11e15897ac900493356ec12e4439adcad7d994442c3e636071f2c93d497dba
MD5 04ce52dd5a4272fbc13a2211ab5096b7
BLAKE2b-256 0b87b492b43ee5eaef07a926454017c1d8307ecaf68c2751fb670cb1c2fd6adf

See more details on using hashes here.

File details

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

File metadata

  • Download URL: adbhoneypot-3.0.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 107.3 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.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 2f00133b64e865dfc30d48a9b03a1efbabbe2aea670d44a094d3a07242808b4a
MD5 1a2f83967cefc8a81bbf15ab9f09e405
BLAKE2b-256 bbcfbe7600c5bc93452a2d08538d16a0f88b6de975ab5e727d152671eef7c665

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