bluetooth의 전송을 캡처한 패킷 데이터가 문제로 주어졌습니다. 데이터는 connection information, send, recv 등 있고 패킷내용을 보면 SCO라는 것이 적혀있습니다. SCO란 Connection의 종류 중 하나인데 주로 음성데이터 전송할때 SCO방식을 사용합니다. 그럼 해당 패킷은 음성데이터들이 있을 것이고, 블루투스로 음성을 전송하려면 일반 format(*.wav, *.mp3 등)이 아닌 *.raw형식으로 데이터가 전송됩니다.
*.raw파일의 내용을 패킷으로 보면 아래의 이미지처럼 표시되어 있어요! 4byte+48byte. 여기서 필요한 값은 헤더를 제외한 48byte인데 모든 패킷에서 무작정 parsing을 하게되면 잡음이 심하고 제대로 들리지 않습니다.
패킷에는 Sent와 Recv가 있는데, Sent파일만 Filter해서 *.pcap으로 save를 합니다. 그 후 parsing을 하는데 parsing하는 code는 간단합니다!
#!/usr/bin/env python
#parser.py
f = open("./send.pcap", "rb")
f2 = open("./send.raw", "wb")
data = f.read()
pos = 0
data2 = ''
while pos != -1:
pos = data.find("\x03\x06\x00\x30")
data = data[pos+4:]
f2.write(data[:0x30])
f.close()
f2.close()
raw파일을 wav로 convert해줘야됨!
$sox -b 16 -s -c 1 -r 8100 -t raw [in.raw] [out.wav]
Answer for task is bluetooth_hacked
'Security > [게임] CTF 풀이' 카테고리의 다른 글
[EMBEDDED] backdoor2014 MISC200 writetup (0) | 2014.03.24 |
---|---|
[Network] backdoor2014 MISC10 writetup (0) | 2014.03.24 |
[Reversing] DEFKTHON 2014 Reversing200 (0) | 2014.03.05 |
[Reversing] DEFKTHON 2014 Reversing100 (0) | 2014.03.04 |
[MISC] DEFKTHON 2014 MISC200 (0) | 2014.03.04 |