Доброе время суток всем странникам! Сегодня мы разберемся в передаче данных по USB!
В данном задании нам предоставляется pcapng файл для Wireshark при просмотре которого мы видим только данные исходящие от Usb на Host.
Так как с протоколом USB я работал 1 раз я не знал что гуглить и наткнулся на статью на GitHub где человек решал примерно задание того же типа.
На статье человек для работы с данными в USB протоколе использовал tshark черех консоль с выводом только data блока
tshark -r data.pcap -V | grep "Leftover Capture Data"
Далее м получаем огромный блок данных которые не умещаются в консоль, поэтому записываем в файл для дальнейшей обработки.
tshark -r chall.pcapng -V | grep "Leftover Capture Data" > ctfusb.txt
Мы получаем блок данных которые имеют HEX вид. Для их расшифровки мы должны обратиться к документации USB HID Usage Tables и найти там Keyboard/Keypad Page на 53 странице.
На данной странице мы наблюдаем начало большой таблицы, (которая примерно на 4-5 страниц) которая описывает hex код в нашей дате.
Например:
20002f0000000000 --> [ and { 0000220000000000-->5 and % 20002d0000000000-->- and _
Как видно для получения значения нужно знать 3 байт строки. Но мы имеем 2 значения, и какое выбирать нам подсказывает 1 байт данных. В случае сверху мы получаем значения {, 5, _.
В нашем же случае мы получаем такой блок данных. (Это часть)
Как вы уже поняли, после расшифровки мы получаем наш ключ!
TFCCTF{w4lt3r_y0u_su55y_b4k4!Why_ar3_y0u_h1d1ng_und3rn34th_my_d3sk}
Мне кажется это задание считается сложным так как мало кто работал с данными в USB и нахождение каких либо документов это главная проблема в данном таске.
Удачи вам и до встречи на играх! 🙂