Channel Surfer is a Python tool that allows you to manage multiple Kismet endpoints and control Wi-Fi adapters connected to those endpoints. It provides an interactive command-line interface for adding, removing, and interacting with Kismet's API to control wireless adapter settings.
- Manage multiple Kismet endpoints
- Add and remove endpoints dynamically
- Lock Wi-Fi adapters to specific channels
- Set Wi-Fi adapters to various hopping modes
- Supports 2.4GHz, 5GHz, and dual-band hopping
- Persistent storage of endpoint configurations
- Efficient channel hopping for optimized scanning
- Python 3.6 or higher
- Kismet server(s) with API access
You can install Channel Surfer in several ways:
Install directly using pip:
pip install channel-surfer
For an isolated installation that avoids conflicts with your system Python, use pipx:
pipx install channel-surfer
After installation, simply run:
channel-surfer
If installing directly from the repository:
python -m channel_surfer.main
- Select an endpoint: Choose an existing endpoint to interact with.
- Add a new endpoint: Add a new Kismet endpoint to the configuration.
- Remove an endpoint: Remove an existing endpoint from the configuration.
- Exit: Quit the application.
After selecting an endpoint, you can perform the following actions:
- Lock channel for a device: Set a Wi-Fi adapter to a specific channel.
- Set device to hopping mode: Configure a Wi-Fi adapter to hop between channels.
- 2.4GHz
- 5GHz
- Both 2.4GHz and 5GHz
- Set device to hop between two channels: Configure a Wi-Fi adapter to hop between two specific channels.
- Set device to efficient channels hopping: Configure a Wi-Fi adapter to hop between non-overlapping channels.
- 2.4GHz efficient channels (1,6,11)
- 5GHz efficient channels (36,40,44,48,149,153,157,161)
- Both 2.4GHz and 5GHz efficient channels
- Back to endpoint selection: Return to the endpoint selection menu.
The tool stores endpoint configurations in a JSON file named endpoints.json
in the .channel_surfer
directory within the user's home folder. This file is automatically created and updated as you add or remove endpoints. The configuration file location is consistent regardless of where you run the tool from.
- Connection issues: Ensure your Kismet server is running and accessible from your network.
- Authentication failures: Verify your Kismet username and password are correct.
- No devices shown: Make sure your Wi-Fi adapters are properly connected and recognized by Kismet.
- Permission issues: The tool requires appropriate permissions to interact with the Kismet API.
To set up a development environment:
- Clone the repository
- Create a virtual environment:
python -m venv venv
- Activate the environment:
source venv/bin/activate
(Linux/Mac) orvenv\Scripts\activate
(Windows) - Install dependencies:
pip install -e .
This project is licensed under the MIT License - see the project repository for details.
- Ensure that you have the necessary permissions to interact with the Kismet API on the specified endpoints.
- The tool uses ANSI color codes through the Rich library for a more user-friendly interface.