riverloopsec / killerbee

IEEE 802.15.4/ZigBee Security Research Toolkit
http://www.riverloopsecurity.com
Other
742 stars 215 forks source link

KillerBee

KillerBee is a Framework and Tools for Testing & Auditing ZigBee and IEEE 802.15.4 Networks

Notice

  • usb0.x support is being deprecated/removed
  • Apimote v1 support is being deprected/removed

If you require these features please create an issue to explain your usecase and requirements.

KillerBee 3.0.0-beta Update

Hi everyone, thank you for your continued support and interest in KillerBee.

As we are putting new effort into cleaning up the code, migrating to Python 3, adding features, functionality, and consistency, we're using this overhaul as an opportunity to revisit the goals and uses for the project and the best way to accomplish those.

This effort will result in a major version update as we deprecate old functions and dependencies and restructure the code to help organize features and enable funcitonality to be extended.

This is also an attempt to define the pieces that make up KillerBee, aiming to draw more distinct lines around features in KillerBee and treating it as library. See ARCHITECTURE.md for details about this and future goals.

MAINTAINERS/LICENSE

Distributed under a BSD license, see LICENSE.txt for details. All Rights Reserved.

The main toolkit was/is authored by:

We appreciate the many contributers to the framework, including the following who have contributed capabilities:

REQUIREMENTS

KillerBee is developed and tested on Linux systems. MacOS usage is possible but not supported.

We have striven to use a minimum number of software dependencies, however, it is necessary to install the following Python modules before installation. The install will detect and prompt you for what is needed.

On Ubuntu systems, you can install the needed dependencies with the following commands:

# apt-get install python-usb python-crypto python-serial python-dev libgcrypt-dev

On Mac OS, you can install the dependencies with the following commands

# brew install libusb libgcrypt
# pip3 install pyusb scapy

The python-dev and libgcrypt are required for the Scapy Extension Patch.

Also note that this is a fairly advanced and un-friendly attack platform. This is not Cain & Abel. It is intended for developers and advanced analysts who are attacking ZigBee and IEEE 802.15.4 networks. I recommend you gain some understanding of the ZigBee protocol (the book ZigBee Wireless Networks and Transceivers by Shahin Farahani is reasonable, though still not great) and familiarity with the Python language before digging into this framework.

INSTALLATION

KillerBee uses the standard Python 'setup.py' installation file, once dependencies are installed.

Install KillerBee with the following command:

# python3 setup.py install

DIRECTORIES

The directory structure for the KillerBee code is described as follows:

REQUIRED HARDWARE

The KillerBee framework is being expanded to support multiple devices. Currently there is support for the River Loop ApiMote, Atmel RZ RAVEN USB Stick, MoteIV Tmote Sky, TelosB mote, Sewino Sniffer, and various hardware running Silicon Labs Node Test firmware.

See firmware/README.md for details on hardware support and firmware programming.

Support for Freaklab's Freakduino with added hardware & the Dartmouth arduino sketch and Zigduino boards are available but are not listed as they are not maintained. You must enable these to be searched for in killerbee/config.py and then reinstall KillerBee.

TOOLS

KillerBee includes several tools designed to attack ZigBee and IEEE 802.15.4 networks, built using the KillerBee framework. Each tool has its own usage instructions documented by running the tool with the "-h" argument, and summarized below.

Additional tools, that are for special cases or are not stable, are stored in the Api-Do project repository: http://code.google.com/p/zigbee-security/ and at https://github.com/riverloopsec/beekeeperwids.

FRAMEWORK

KillerBee is designed to simplify the process of sniffing packets from the air interface or a supported packet capture file (libpcap), and for injecting arbitrary packets. Helper functions including IEEE 802.15.4, ZigBee NWK and ZigBee APS packet decoders are available as well.

The KillerBee API is documented in epydoc format, with HTML documentation in the doc/ directory of this distribution. If you have epydoc installed, you can also generate a convenient PDF for printing, if desired, as shown:

$ cd killerbee
$ mkdir pdf
$ epydoc --pdf -o pdf killerbee/

The pdf/ directory will have a file called "api.pdf" which includes the framework documentation.

To get started using the KillerBee framework, take a look at the included tools (zbdump and zbreplay are good examples to get started).

Since KillerBee is a Python library, it integrates well with other Python software as well. For example, the Sulley library is a fuzzing framework written in Python by Pedram Amini. Using the Sulley mutation features and KillerBee's packet injection features, it is staightforward to build a mechanism for generating and transmitting malformed ZigBee data to a target.

QUESTIONS/COMMENTS/CONCERNS

Please use the ticketing system at https://github.com/riverloopsec/killerbee/issues.

The original version was written by: jwright@willhackforsushi.com. The current version, fixes, etc are handled by: killerbee@riverloopsecurity.com. (See the list above for all contributors/credits.)

For contributors/developers, see DEVELOPMENT.md for details and guidance.