SVATTT 2016 Quals – Forensics 200 Write-up

Năm này mình không thi nữa, nên chỉ được xem đề sau khi cuộc thi kết thúc. Kết thúc cuộc thi thì phần Misc/Forensics có 1 bài chưa ai giải ra (for 200 pts) :

Someone broadcasts something. Dare you find it?boobooboo.pcapng
https://en.wikipedia.org/wiki/Eddystone_Lighthouse

Ấn tượng đầu tiên khi mở file pcap là không có thiện cảm lắm đối với các packet PPI này :v

screen-shot-2016-11-06-at-00-19-14

Để ý dòng chữ warning màu vàng, sử dụng Google ta biết được đây là traffic BLE. Để Wireshark parse được đúng format, làm theo hướng dẫn ở ĐÂY

Sau khi cấu hình cho Wireshark, các packet trông có vẻ đã dễ nhìn hơn một chút

screen-shot-2016-11-06-at-00-23-58

Sau khi coi qua 1 lượt các packet, ta sẽ để ý có các packet “đặc biệt”, có chứa dãy các kí tự in được và có chữ “svattt” 🙂

Sử dụng hint của đề, Eddystone Lighthouse, kết hợp từ khóa BLE, Google đưa chúng ta đến với một định dạng cho các gói tin BLE broadcast của họ 😀 (Link)

Việc tiếp theo cần làm là cần tìm thông tin về chuẩn giao thức Eddystone này, tất cả được mô tả rõ ràng ở ĐÂY

Nói ngắn gọn, giao thức Eddystone hỗ trợ 4 định dạng broadcast messages, trong đó có Eddystone-URL là để broadcast 1 địa chỉ URL. Trong 4 loại broadcast này thì chỉ có Eddystone-URL là có thể broadcast dữ liệu tùy chọn (URL). Flag phần nhiều là ở trong đây 🙂

Ta tiếp tục xem qua định dạng của Eddystone-URL ở ĐÂY. Từ đó xác định được địa chỉ URL sẽ được encode trước khi broadcast. Byte đầu tiên trong gói data broadcast đối với các gói tin này sẽ bắt đầu bằng 0x10. Ví dụ đối với packet này :

screen-shot-2016-11-06-at-00-33-28

Ta sẽ decode như sau:

Byte offset Giá trị Mô tả
0 0x10 Frame type (Bỏ qua)
1 0xbb TX power (Bỏ qua)
2 0x02 URL scheme, tra trong bảng ta được http://
3..4 9t URL hiện tại : http://9t
5 0x00 URL encode, tra trong bảng ta được .com/ => URL hiện tại : http://9t.com/
6..13 AzGiHoOJ URL cuối cùng : http://9t.com/AzGiHoOJ

Và …

Flag : SVATTT{n0_id3a_wh4t_i5_b33rcon}

Leave a Reply

Your email address will not be published. Required fields are marked *