Skip to main content

A python3 wrapper around libsniff

Project description

libsniffpy

libsniff.png

Motivation

I wanted to have a nice cython/python wrapper around libsniff. This name might confuse you, I just care about sniffing wifi packets from a nic in monitor mode.

Installation

pip install libsniffpy

Usage

Simple: Low level usage

from sniff import get_socket

# You might have to adjust 
s = get_socket("wlan0mon")
# or whatever big number, forgot how big those frames are lel
raw = s.recv(3000)

Advanced: Iterate over the Radiotap frames

from sniff import get_socket, type_predicate, subtype_predicate, loop
from sys import stderr
from dpkt import ieee80211
from dpkt.radiotap import Radiotap

if __name__ == "__main__":
    mgmt_predicate = type_predicate(ieee80211.MGMT_TYPE)
    probe_request_predicate = subtype_predicate(ieee80211.M_PROBE_REQ)

    mgmt_packets = filter(mgmt_predicate, loop("wlan0mon"))
    probe_requests = filter(probe_request_predicate, mgmt_packets)
    
    for pkg in probe_requests:
        print(pkg)

Guidance for n00bs

This lib opens a raw socket for a monitor mode enabled interface. It needs privs that your user probably don't have.

Either you run this stuff as root or you do sth like this:

sudo setcap cap_net_raw,cap_net_admin=eip

on a wrapper script that calls your python interpreter.

License

This project is licensed under the GPL-3 license.

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

libsniffpy-0.3.2.tar.gz (3.7 kB view hashes)

Uploaded Source

Built Distribution

libsniffpy-0.3.2-cp39-cp39-manylinux_2_31_x86_64.whl (81.5 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.31+ x86-64

Supported by

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