Перехоплення даних на шині usb практика

Нас цікавлять дані, що передаються по шині USB. Чи можна якось "прослуховувати" цей трафік? Виявляється, можна.

Качаємо програму USBPcap. встановлюємо:

Перехоплення даних на шині usb практика
Установка USB сніффер
Перехоплення даних на шині usb практика
Установка USB сніффер

Перехоплення даних на шині usb практика
Установка USB сніффер
Перехоплення даних на шині usb практика
Установка USB сніффер

Перехоплення даних на шині usb практика
Установка USB сніффер

Тепер запускаємо файл USBPcapCMD.exe з правами адміністратора:

Перехоплення даних на шині usb практика

Запуск USB сніффер

Моніторити ми будемо роботу з флешкою, яку я дбайливо вставив у порт 3 першого кореневого хаба. У програмі він визначився під номером 2. Вводимо цифру 2. Потім вводимо результуючий файл (1.pcap), в нього буде записуватися всі, що відбувається на цій шині.

Трошки модифікуємо вміст текстового файлу на флешці:

Перехоплення даних на шині usb практика

Запишемо наочну послідовність в файл

Після цього завершуємо консольний додаток сніффер натисканням клавіш Ctrl + C і відкриваємо файл 1.pcap (з'явився в каталозі програми) через WireShark:

Перехоплення даних на шині usb практика

Команди обміну даними з USB пристроєм

Перехоплення даних на шині usb практика

Періодичний опитування USB пристрої

Отже, неважко помітити, що періодично (приблизно раз в секунду) відбувається опитування USB пристрої:

Ми це бачимо як Test Unit Ready LUN. Моментально приходить відгук. Таким чином система дізнається, що до хабу він підключений.

Перехоплення даних на шині usb практика

Команда на запис USB пристрої

Перехоплення даних на шині usb практика

Запис кореневого каталогу FAT

Мої очікування виправдалися! Шляхом нескладних арифметичних перетворень отримуємо:

0x000001F0 * 200 = 0x0003E000

Перехоплення даних на шині usb практика

Кореневої каталог FAT

Перехоплення даних на шині usb практика

Очищений кореневий каталог

Перехоплення даних на шині usb практика

Запис даних у файл на флешці

Наступна команда на запис - в блок 0x00000210. Бачимо, що записується послідовність 0x31. 0x31. 0x31. 0x32. 0x32, ... Ага!

Множимо блок на 200:

Перехоплення даних на шині usb практика

Вміст файлу на флешці

Ну точно! Це як раз кластер, які займає файл 1.txt. і з цього зміщення починається його вміст 111222333444. Саме ASCII коди цих символів і виглядають як 0x31, 0x31, 0x31, 0x32, .... Все зійшлося!

Дивимося наступну команду на запис:

Перехоплення даних на шині usb практика

Запис в таблицю FAT

Цікаво. Звичайно, у мене є гіпотеза, але краще б її перевірити. Бачимо LBA 0x00000004.

Перехоплення даних на шині usb практика

Пояснюю, F8 - ідентифікатор носія (жорсткий диск). Далі йде два байта заповнювач FFFF. А далі - FFFF - це запис нашого файлу. Це означає, що в таблиці розміщення файлів наш файл займає один єдиний кластер і це перший запис FAT. Подивіться посилання, щоб розібратися.

Наступне зсув на попередньому скрині - 0x0000000FA. Розбирати не будемо, просто скажу, що це друга копія FAT-таблиці (резервна).

Ось, загалом-то і все. Треба сказати, я до цього не зовсім розумів, як відбувається запис на носії типу USB. Тепер це стає зрозумілим. Існують методичні матеріали з програмування USB пристроїв і драйверів, у мене ж є одна чудова ідейка, яку я хочу втілити в життя. Для цього потрібно написати невелику програмку, на зразок цього сніффер.

Вам так само сподобається:

Перехоплення даних на шині usb практика
Книга: Інтерфейс USB (практика використання і програмування)
Перехоплення даних на шині usb практика
Стандарти видалення даних
Перехоплення даних на шині usb практика
Як заховати файл в Альтернативний потік даних в NTFS
Перехоплення даних на шині usb практика
Уроки WireShark: перехоплення файлів
Перехоплення даних на шині usb практика
Атака ARP Spoofing, перехоплення пошти та пароля в локальній мережі Налаштування Postfix на Debian з користувачами в базі даних