#! /usr/bin/python import binascii import struct import sys, os, time import bluepy.btle as btle ''' 42 0x2A READ find a valid write value in this pcap to use below 44 0x2C READ WRITE https://github.com/hackgnar/ble_ctf_infinity/blob/master/gatt_servers/pcap_write/write_sample.pcap 46 0x2E READ WRITE write here to goto to scoreboard 84cf61c35b2d9c92217d ''' deviceMAC = open('ctf_mac.txt').read() p = btle.Peripheral(deviceMAC) svc=p.getServiceByUUID(0x00FF) print ("Attached to peripheral") print("Loading level 05") hex1 = binascii.unhexlify(str('%0*x' % (4,5))) p.writeCharacteristic(0x30, hex1, withResponse=False) print("Sending \"121212121222\" to 0x2c") services=p.getServices() hexlif2 = binascii.unhexlify("121212121222") hexlif2 = str(hexlif2) response = p.writeCharacteristic(0x2C, hexlif2, True) print("Reading value") hex1 = p.readCharacteristic(0x2C) hex2 = binascii.b2a_hex(hex1) hexlif2 = str(binascii.unhexlify(hex2)) print("Flag: %s" % hexlif2) p.disconnect()