Skip to main content

Introduction

Qwilfish is a Python package for fuzzing various Ethernet-related protocols. It is a work in progress and the first goal is grammar-based generation of LLDP frames (IEEE 802.1AB).

[[TOC]]

Installation

Prerequisites

  • A Linux system
  • Python3.8 (higher versions will probably work too, but no guarantees)
  • Root privileges (for changing the capabilities of Python binary)

Create a virtual environment

It is recommended to create a virtual environment first:

$ python -m venv venv
$ source venv/bin/activate

Install with pip

To install Qwilfish simply type:

$ pip install qwilfish

Install from source

To install Qwilfish from source type:

$ git clone https://gitlab.com/zluudg/qwilfish.git
$ cd qwilfish
$ pip install .

Qwilfish also supports an editable install:

$ pip install -e .

Setting capabilities

Qwilfish writes packets to raw sockets, which is prohibited for normal users. It is not recommended to install or run Qwilfish as root, however. Instead, change the capabilities of your Python binary:

$ sudo setcap cap_net_raw=eip /path/to/python/binary

Usage

Basic usage

Qwilfish can be invoked without any commands:

$ qwilfish

It will then send one fuzzed LLDP packet on the loopback interface.

To send ten packets on the loopback interface, type:

$ qwilfish -c 10

Set logging level to DEBUG:

$ qwilfish -d

Advanced Configuration

There are some possibilities to configure a Qwilfish session beyond what is offered by the CLI. Please refer to this guide for more info.

Writing Plugins

Certain components in Qwilfish can be replaced in a plugin fashion. For more info check out this guide.

Credit

This project is more than heavily inspired by The Fuzzing Book. Be sure to check it out!

Metadata

Release files for qwilfish 0.4.1

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

Source distribution (sdist)

Source distribution for qwilfish 0.4.1
File Size Uploaded
qwilfish-0.4.1.tar.gz 12.6 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for qwilfish 0.4.1
File Interpreter ABI Platform
qwilfish-0.4.1-py3-none-any.whl Python 3 none any Details

Total release size: 12.7 MB

Release files / qwilfish-0.4.1.tar.gz

Download URL qwilfish-0.4.1.tar.gz
Size 12.6 MB
Tags Source
SHA-256 checksum
How to use checksums
a4e0cb8e685f013ca3de58042aa433117d37fa88465938da07c381d922564ba5
BLAKE2b-256 checksum
How to use checksums
80360e5189605caf4543e05b71cb3f79efe7becb512c6228175f026b458b7c6f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.10.7

Release files / qwilfish-0.4.1-py3-none-any.whl

Download URL qwilfish-0.4.1-py3-none-any.whl
Size 31.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b302d7285684523547bcc9d404ba8e71c53552af3c3d5db0bb8386031d0eb5b3
BLAKE2b-256 checksum
How to use checksums
3448127086fd829d229d7b9d47c271946d6621f2aebab722e14dd51991bda4d5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.10.7

Release history Release notifications | RSS feed

This release

0.4.1 This release

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.0.0

2 release files

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