Real-time wireless AP scanner with active reconnaissance for Linux
Project description
AP Scanner
Real-time wireless access point scanner with active reconnaissance for Linux.
Features
Passive Scanning
- Real-time AP discovery with terminal display
- Automatic channel hopping (2.4GHz / 5GHz / 6GHz)
- Security detection: WEP, WPA, WPA2, WPA3
- WiFi standard detection: 802.11 a/b/g/n/ac/ax
- Channel width detection (20/40/80/160 MHz)
- Hidden SSID detection and resolution
- MAC vendor lookup
- Band filtering and sort modes
Active Scanning (New!)
- Interactive AP selection with arrow keys
- Connect to open (OPN) networks for reconnaissance
- DHCP lease acquisition and network info extraction
- ARP scan to discover connected clients
- Gateway port scanning (22, 53, 80, 443, 8080, 8443)
- Client device enumeration with MAC vendor lookup
- Results displayed in overlay panel
Export & Configuration
- CSV / JSON export with active scan results
- Configuration file support
Requirements
- Python 3.10+
- Linux with
iwandipcommands - Root privileges
- WiFi adapter that supports monitor mode
Installation
From PyPI (recommended)
# Using pipx (isolated environment)
pipx install uaf
# Or using pip
pip install uaf
From source
git clone https://github.com/YOUR_USERNAME/ap-scanner.git
cd ap-scanner
pip install -e .
Ubuntu/Debian (.deb package)
# Download from releases
wget https://github.com/YOUR_USERNAME/ap-scanner/releases/download/v1.0.0/ap-scanner_1.0.0_all.deb
sudo dpkg -i ap-scanner_1.0.0_all.deb
sudo apt-get install -f # Install dependencies
Usage
# Basic scan (auto-detect interface)
sudo uaf
# Specify interface
sudo uaf -i wlan0
# Scan specific channels
sudo uaf -c 1,6,11
# Band filter
sudo uaf -b 2.4
# Sort by channel
sudo uaf --sort channel
# Save to specific file
sudo uaf -w output.csv
# Use config file
sudo uaf --config /path/to/config.ini
Keybindings
Normal Mode
| Key | Action |
|---|---|
q |
Quit |
w |
Write CSV |
j |
Write JSON |
b |
Cycle band filter (All / 2.4GHz / 5GHz / 6GHz) |
s |
Cycle sort mode (RSSI / Channel / ESSID / ENC) |
Enter |
Enter AP selection mode |
Selection Mode
| Key | Action |
|---|---|
↑ / ↓ |
Navigate through AP list |
Enter |
Run active scan on selected open AP |
Esc |
Exit selection mode |
Configuration
Default config path: ~/.config/ap-scanner/config.ini
[scanner]
interface = wlan0
band = all
sort = rssi
no_color = false
verbose = false
Development
pip install -e ".[dev]"
pytest tests/ -v
License
GPL-2.0-or-later. See LICENSE for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
uaf-1.0.0.tar.gz
(39.2 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
uaf-1.0.0-py3-none-any.whl
(36.4 kB
view details)
File details
Details for the file uaf-1.0.0.tar.gz.
File metadata
- Download URL: uaf-1.0.0.tar.gz
- Upload date:
- Size: 39.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ab001caf3dcd8d66714d424773f0a8bad7542e1fd4cd0febe166f4f4f250a7f6
|
|
| MD5 |
adc1493171e33c052f353cbe3a378079
|
|
| BLAKE2b-256 |
205f834ceaf27ddc9bfdcef227819351fe2758ba4b60b3f63c34eeafecc4f615
|
File details
Details for the file uaf-1.0.0-py3-none-any.whl.
File metadata
- Download URL: uaf-1.0.0-py3-none-any.whl
- Upload date:
- Size: 36.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3f6bb14e07871935f805cd7ef7a9048304e85944fa360e16f8924ac8b061db6e
|
|
| MD5 |
9b9d7d3011c456a52e72a69f5dd406ca
|
|
| BLAKE2b-256 |
45d7e9655bf376b914fdb9d120857e70f1760698143c504732a4ca0b918de811
|