Newer
Older
BLE_CTF_V2 / lvl_09.py
root on 13 Mar 2022 1 KB completed level 09
#! /usr/bin/python
from __future__ import print_function   # import print from python3: end=""
import time   
import re
import subprocess
import pexpect    # sudo apt-get install python-pexpect
import random
import binascii
import struct
import sys, os, time
import bluepy.btle as btle
  
'''
42  0x2A   READ         Im advertising the flag

MD5OFLOL
'''
deviceMAC = open('ctf_mac.txt').read()  
p = btle.Peripheral(deviceMAC)
svc=p.getServiceByUUID(0x00FF)
print ("Attached to peripheral")

print("Loading level 09")
hex1 = binascii.unhexlify(str('%0*x' % (4,9)))
p.writeCharacteristic(0x30, hex1, withResponse=False)

p.disconnect()

print("Starting advertisement listner")
ps = subprocess.Popen(["btmon"], shell=False, stdout=subprocess.PIPE)
gp = subprocess.Popen(["grep", "Name"], shell=False, stdin=ps.stdout)
ps.stdout.close()
#output = gp.communicate()[0]
#ps.wait()

print("Please wait 5s...")
time.sleep(5)

print("Starting hcitool")
ps2 = subprocess.Popen(['hcitool', 'lescan'], shell=False) 

print("Please wait 5s...")
time.sleep(5)
ps2.terminate()
ps.terminate()