A modular IoT penetration testing toolkit for security researchers
Features • Installation • Modules • Usage • Requirements
⚠️ LEGAL DISCLAIMER: This toolkit is designed ONLY for authorized security testing, educational purposes, and research on devices you own or have explicit permission to test. Unauthorized use is illegal.
| Protocol | Capabilities |
|---|---|
| Wi-Fi | WPA/WPA2 handshake capture, deauth attacks, password cracking (Hashcat/John) |
| Bluetooth LE | Device discovery, GATT enumeration, characteristic read/write |
| Bluetooth Classic | Service enumeration, vulnerability testing |
| NFC | Tag identification, Mifare key testing, card cloning & emulation |
Additional Features:
- 🖥️ Cross-platform: Linux, Windows (WSL), macOS
- 🔧 ARM optimized for Raspberry Pi
- 📦 Auto dependency management
- 🛡️ Dry-run mode for safe testing
# Clone the repository
git clone https://github.com/trefeon/Prototype-IoT-Pentester.git
cd Prototype-IoT-Pentester
# Set permissions
chmod +x */**/*.sh */**/*.py
# Run the main toolkit
sudo ./wifi_audit/wifipen_main.shFull-featured Wi-Fi penetration testing framework.
sudo ./wifi_audit/wifipen_main.sh| Feature | Description |
|---|---|
| Network Scanning | Discover nearby networks and clients |
| Handshake Capture | Capture WPA/WPA2 4-way handshakes |
| Deauth Attack | Force client reconnection for handshake capture |
| Password Cracking | GPU (Hashcat) or CPU (John) based cracking |
| Wordlist Generator | Create custom wordlists with crunch |
Modern BLE security testing with async Python.
# Python BLE framework
sudo python3 bl_audit/ble_poc.py
# Classic Bluetooth testing
sudo ./bl_audit/bl_audit.shDependencies:
pip install bleak colorama| Feature | Description |
|---|---|
| Device Discovery | Scan and identify BLE devices |
| GATT Enumeration | List services and characteristics |
| Read/Write | Interact with device characteristics |
NFC tag security testing, optimized for Raspberry Pi with PN532.
# Python NFC tool
sudo python3 nfc_audit/nfc_audit.py
# Shell-based NFC operations
sudo ./nfc_audit/NFCpen.sh| Feature | Description |
|---|---|
| Tag Identification | Read UID and tag type |
| Key Testing | Test Mifare Classic keys |
| Card Dump | Create .mfd dump files |
| Clone & Emulate | Write to blank cards or emulate UIDs |
Hardware: PN532 module (I2C) or USB NFC reader
┌─────────────────────────────────────────────────────────┐
│ 1. Start → sudo ./wifi_audit/wifipen_main.sh │
│ 2. Deps → Option 1: Check/Install Dependencies │
│ 3. Interface→ Option 4: Select wireless adapter │
│ 4. Capture → Option 6: Scan & capture handshakes │
│ 5. Crack → Option 7: Attack with wordlist │
└─────────────────────────────────────────────────────────┘
- Check dependencies — Auto-installs missing tools
- Select interface — Switches adapter to monitor mode
- Scan networks — Discovers available targets
- Capture handshake — Uses deauth to force reconnection
- Crack password — Uses Hashcat (GPU) or John (CPU)
| Module | Required Hardware |
|---|---|
| Wi-Fi | Wireless adapter with monitor mode support |
| BLE | Bluetooth adapter (built-in or USB) |
| NFC | PN532 module (I2C) or USB NFC reader |
| Requirement | Version |
|---|---|
| OS | Linux (Kali/Ubuntu/Debian), Windows (WSL2), macOS |
| Python | 3.7+ |
| Bash | 4.0+ |
- Wi-Fi: aircrack-ng, hcxtools, hashcat, john
- Bluetooth: bluez, btscanner
- NFC: libnfc, mfoc, nfcutils
Permission Issues
sudo chmod +x */**/*.sh */**/*.py
sudo -v # Check sudo accessMissing Dependencies
# Run dependency checker
sudo ./wifi_audit/wifipen_main.sh
# Select Option 1Wireless Adapter Issues
# Check monitor mode support
iw list | grep -A 5 "Supported interface modes"Raspberry Pi Setup
# Enable I2C for NFC
sudo raspi-config # → Interface Options → I2C
# Check I2C devices
i2cdetect -y 1- Fork the repository
- Create feature branch (
git checkout -b feature/amazing-feature) - Follow code standards:
- Bash: Use
set -Eeuo pipefail, proper quoting - Python: Follow PEP 8, add type hints
- Bash: Use
- Test on multiple platforms
- Submit a Pull Request
MIT License — see LICENSE for details.
Developed by Abi Kurniawan
⭐ Star this repo if you find it useful!
Remember: Always test responsibly and only on systems you own or have permission to test.