Skip to content

V33RU/bluesploit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

52 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

BlueSploit

Bluetooth Exploitation Framework

A Metasploit-style modular framework for Bluetooth Classic and BLE security testing.

I started building this with a purpose. Since it’s an early version, there may be stability issues and false positives. I’m still working on it, so please be patient.

Python License Platform

Features

  • πŸ” Device Discovery - Scan for nearby BLE and Classic Bluetooth devices
  • πŸ“Š GATT Enumeration - Enumerate services, characteristics, and descriptors
  • πŸ”“ Exploit Modules - Ready-to-use exploits for common vulnerabilities
  • πŸ”‘ Credential Testing - Test for default/weak PINs and pairing vulnerabilities
  • πŸ“ Modular Architecture - Easy to extend with custom modules
  • πŸ’Ύ Result Export - Save scan results and loot to JSON

Installation

# Clone the repository
git clone https://github.com/v33ru/bluesploit.git
cd bluesploit

#create python virtual environment
python3 -m venv env
source env/bin/activate

# Install dependencies
pip install -r requirements.txt

# Run BlueSploit
python bluesploit.py

Requirements

  • Python 3.10+
  • Bluetooth adapter (built-in or USB dongle)
  • Linux: bluez stack installed
  • macOS: Works out of the box
  • Windows: Requires Windows 10+ with BLE support

Quick Start

$ python bluesploit.py

    ╔═════════════════════════════════════════════════════════════════════════════════╗
    β•‘                                                                                 β•‘
    β•‘  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•—     β–ˆβ–ˆβ•—   β–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•—      β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β•‘
    β•‘  β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β•β•β•β–ˆβ–ˆβ•”β•β•β•β•β•β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•”β•β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘β•šβ•β•β–ˆβ–ˆβ•”β•β•β• β•‘
    β•‘  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘    β•‘
    β•‘  β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β•  β•šβ•β•β•β•β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β•β• β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘    β•‘
    β•‘  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘    β•‘
    β•‘  β•šβ•β•β•β•β•β• β•šβ•β•β•β•β•β•β• β•šβ•β•β•β•β•β• β•šβ•β•β•β•β•β•β•β•šβ•β•β•β•β•β•β•β•šβ•β•     β•šβ•β•β•β•β•β•β• β•šβ•β•β•β•β•β• β•šβ•β•   β•šβ•β•    β•‘
    β•‘                                                                                 β•‘
    ╠═════════════════════════════════════════════════════════════════════════════════╣
    β•‘                                                                                 β•‘
    β•‘  Bluetooth Exploitation Framework                            v1.0.0             β•‘
    β•‘  ─────────────────────────────────────────────────────────────────────────────  β•‘
    β•‘                                                                                 β•‘
    β•‘  β—‰ Author    : v33ru / Mr-IoT                                                   β•‘
    β•‘  β—‰ Community : IoT Security Research Group (IOTSRG)                             β•‘
    β•‘  β—‰ GitHub    : https://github.com/v33ru                                         β•‘
    β•‘                                                                                 β•‘
    ╠═════════════════════════════════════════════════════════════════════════════════╣
    β•‘                                                                                 β•‘
    β•‘  [+] BLE Scanning & Enumeration    [+] GATT Service Analysis                    β•‘
    β•‘  [+] Bluetooth Classic Attacks     [+] Vulnerability Detection                  β•‘
    β•‘  [+] Exploitation Modules          [+] Protocol Reverse Engineering             β•‘
    β•‘                                                                                 β•‘
    β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•

    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
    β”‚   Type 'help' for commands     Type 'show modules' to list modules          β”‚
    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

bluesploit > help

  Core Commands
  =============
    use <module>      Load a module
    back              Unload current module
    search <keyword>  Search for modules
    show <type>       Show modules/options
    
  Module Commands
  ===============
    set <opt> <val>   Set module option
    unset <option>    Clear module option
    options           Show module options
    info              Show module info
    run / exploit     Execute module
    check             Check if vulnerable
    
  Utility Commands
  ================
    clear             Clear screen
    reload            Reload modules
    setg <opt> <val>  Set global option
    banner            Show banner
    exit / quit       Exit BlueSploit

Usage Examples

Discover BLE Devices

bluesploit > use scanners/ble/discovery
bluesploit (scanners/ble/discovery) > set timeout 15
bluesploit (scanners/ble/discovery) > run

[*] Scanning for BLE devices (15s)...
[+] AA:BB:CC:DD:EE:FF - Smart Lock [-45 dBm] [Nordic Semiconductor]
[+] 11:22:33:44:55:66 - MI Band 7 [-62 dBm] [Xiaomi]
[+] Found 2 devices

Enumerate GATT Services

bluesploit > use scanners/ble/gatt_enum
bluesploit (scanners/ble/gatt_enum) > set target AA:BB:CC:DD:EE:FF
bluesploit (scanners/ble/gatt_enum) > run

[+] Connected to AA:BB:CC:DD:EE:FF
[*] Enumerating GATT services...

  [Service] 00001800-0000-1000-8000-00805f9b34fb
  Generic Access (Handle: 0x0001)
    β”œβ”€β”€ [Char] 00002a00-0000-1000-8000-00805f9b34fb
    β”‚   Device Name
    β”‚   Properties: read
    β”‚   Value: Smart Lock

  [Service] 0000fee0-0000-1000-8000-00805f9b34fb
  Custom Service (Handle: 0x0010)
    β”œβ”€β”€ [Char] 0000fee1-0000-1000-8000-00805f9b34fb ⚠ VULN
    β”‚   Properties: write-without-response, notify
    β”‚   ⚠ UNAUTH_WRITE_POSSIBLE: Write-without-response enabled

Exploit Unauthenticated Write

bluesploit > use exploits/ble/unauth_write
bluesploit (exploits/ble/unauth_write) > set target AA:BB:CC:DD:EE:FF
bluesploit (exploits/ble/unauth_write) > set char_uuid 0000fee1-0000-1000-8000-00805f9b34fb
bluesploit (exploits/ble/unauth_write) > set payload 0601  # Unlock command
bluesploit (exploits/ble/unauth_write) > check

[*] Checking AA:BB:CC:DD:EE:FF for vulnerability...
[+] Found characteristic: 0000fee1-0000-1000-8000-00805f9b34fb
[+] VULNERABLE: Write-without-response enabled!

bluesploit (exploits/ble/unauth_write) > run

[+] Connected to AA:BB:CC:DD:EE:FF
[+] Payload delivered!

Module Structure

modules/
β”œβ”€β”€ scanners/           # Discovery & enumeration
β”‚   β”œβ”€β”€ ble/
β”‚   β”‚   β”œβ”€β”€ discovery.py       # BLE device discovery
β”‚   β”‚   └── gatt_enum.py       # GATT service enumeration
β”‚   └── classic/
β”‚       └── sdp_enum.py        # SDP service discovery
β”œβ”€β”€ exploits/           # Vulnerability exploits
β”‚   β”œβ”€β”€ ble/
β”‚   β”‚   └── unauth_write.py    # Unauthenticated GATT write
β”‚   └── classic/
β”‚       └── ...
β”œβ”€β”€ creds/              # Credential attacks (this is not right folder fixing soon full release)
β”‚   └── ...
β”œβ”€β”€ auxiliary/          # Support modules
β”‚   └── ...
└── payloads/           # Payload generators
    └── ...

Writing Custom Modules

Create a new module in the appropriate directory:

# modules/scanners/ble/my_scanner.py

from core.base import ScannerModule, ModuleInfo, ModuleOption, BTProtocol, Severity

class Module(ScannerModule):
    info = ModuleInfo(
        name="scanners/ble/my_scanner",
        description="My custom BLE scanner",
        author=["your_name"],
        protocol=BTProtocol.BLE,
        severity=Severity.INFO
    )
    
    def _setup_options(self):
        self.options = {
            "target": ModuleOption("target", True, "Target BD_ADDR"),
            "timeout": ModuleOption("timeout", False, "Scan timeout", default=10)
        }
    
    def run(self) -> bool:
        # Your scanning logic here
        target = self.get_option("target")
        print(f"Scanning {target}...")
        return True

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/new-module)
  3. Commit your changes (git commit -am 'Add new module')
  4. Push to the branch (git push origin feature/new-module)
  5. Open a Pull Request

Roadmap

  • Bluetooth Classic support (BR/EDR)
  • PIN bruteforce module
  • BTSnoop log analyzer (GhostWrite integration)
  • Replay attack module
  • Database for session/loot storage
  • Ubertooth integration
  • BTLEJuice integration

Legal Disclaimer

This tool is provided for educational and authorized security testing purposes only. Unauthorized access to computer systems is illegal. Users are responsible for complying with all applicable laws. The authors assume no liability for misuse.

Author

v33ru / Mr-IoT - IoT Security Research Group (IOTSRG)

  • GitHub: @v33ru
  • Research: Pre-Pairing Attack Surface in BLE

License

MIT License - See LICENSE for details.

Acknowledgments

  • Inspired by RouterSploit and Metasploit
  • Built with Bleak for cross-platform BLE support
  • Thanks to the Bluetooth security research community

About

another bluetooth pentesting framework

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published