Home

Awesome

              ██╗     ██╗      ███████╗██╗   ██╗███████╗███████╗███████╗██████╗ 
              ██║     ██║      ██╔════╝██║   ██║╚══███╔╝╚══███╔╝██╔════╝██╔══██╗
              ██║     ██║█████╗█████╗  ██║   ██║  ███╔╝   ███╔╝ █████╗  ██████╔╝
              ██║     ██║╚════╝██╔══╝  ██║   ██║ ███╔╝   ███╔╝  ██╔══╝  ██╔══██╗
              ███████╗███████╗ ██║     ╚██████╔╝███████╗███████╗███████╗██║  ██║
              ╚══════╝╚══════╝ ╚═╝      ╚═════╝ ╚══════╝╚══════╝╚══════╝╚═╝  ╚═╝

                   Authors: Chad Spensky (chad.spensky@ll.mit.edu)
                              Hongyi Hu (hongyi.hu@ll.mit.edu)

================================================================================

LL-Fuzzer is a fuzzing framework built to fuzz NFC applications on android devices.

Dependencies

Hardware Requirements

Installation

To install all of the dependencies type:

$ ./install.sh

or follow the individual instructions below:

Usage

For general help try:

$ python fuzzer.py --help

An example of a real use case would be:

$ python fuzzer.py -r tty:usb:0 -s 4d001f274acd31cf -D fuzz-configs/ndef/ -o testing

Phone Setup

There are some settings on android that make fuzzing a much more pleasurable experience.

Examples

Here are some example commands to test NFC functionality (All files in examples-nfc):

Code Architecture

Mail

It might be useful to interface the fuzzer with e-mail for very long jobs.

$ sudo apt-get install sendmail

Complications

Unreliable RF Transmission

During our own fuzzing, we had a very difficult time getting reliable NFC communication. To facilitate this, we used a book with the reader placed inside and the phone tapped to the top to prevent it from moving.
A more elegant setup is certainly possible, but any reliable setup will need a way of tweaking the distance and then holding the reader and phone at that fixed distance for the duration of the fuzzing.

Citation

Please use this DOI number reference, published on Zenodo, when citing the software:
DOI

Disclaimer

This work is sponsored by the Defense Information Systems Agency under Air Force Contract #FA8721-05-C-0002. Opinions, interpretations, conclusions and recommendations are those of the author and are not necessarily endorsed by the United States Government.