Взлом
Уважаемые гости! При посещении нашего сайта просим вас ознакомиться с разделами форума, прежде чем оставлять ваши объявления и т.п., а также при обращении за помощью просим быть внимательными: на сайте есть как проверенные специалисты, так и непроверенные. Если вы обратились к специалисту, который проверку НЕ проходил, рекомендуем воспользоваться услугой гарант-сервиса. Спасибо, что посетили XakerPlus!

Атака клонов. Ломаем защиту от подключения USB-флешек

DataSQL

Новый
Пользователь.
Клонирование флешек: полный гайд по обходу систем защиты информации (СЗИ) и подмене USB-устройств.
mqdefault (1).jpg

Ситуация из жизни: ты работаешь в организации, где СЗИ блокирует все USB-накопители, кроме пары «доверенных» флешек с уникальными серийниками. А тебе нужно перенести данные с домашнего компа или, наоборот, вытащить что-то с рабочего. Можно, конечно, искать обходные пути через сеть, почту, облака. А можно просто сделать клон «доверенной» флешки, которая будет выглядеть для системы как оригинал.

Я этим занимался не раз. И не только для обхода блокировок, но и для восстановления старых флешек с убитым контроллером, и для изучения того, как работают DLP-системы. В этой статье расскажу, как Windows идентифицирует флешки, как менять серийные номера, как перепрошивать контроллер и даже как превратить флешку в дискету, чтобы обойти «Касперского».

Всё на реальных примерах, с командами, скриншотами и предупреждениями о рисках. Статья большая, так что запасайся чаем.

---

Как Windows различает флешки: теория для тех, кто хочет понять, а не просто повторить

Когда ты вставляешь флешку в USB-порт, происходит целый ритуал. Контроллер флешки сообщает хосту: «Я здесь, вот мой VID, вот мой PID, вот мой серийный номер». Операционная система на основе VID и PID ищет драйвер, а по серийному номеру идентифицирует конкретное устройство. Если серийный номер не уникален (или его нет), Windows генерирует его сама — часто на основе порта.

Именно эта связка VID + PID + Serial используется большинством систем защиты информации для составления белых и черных списков. Добавил флешку в исключения — она работает. Не добавил — блокируется.

---

Практический способ узнать DeviceID флешки

Подключаем флешку, открываем командную строку (лучше от администратора) и вводим:

Bash:
wmic path win32_usbhub Where (Caption="Запоминающее устройство для USB") get DeviceID

Вывод будет примерно таким:

Код:
USB\VID_13FE&PID_4200\070867948D560839

Где:

· VID_13FE — Vendor ID (производитель). 13FE — это Kingston Technology Company Inc.
· PID_4200 — Product ID (модель устройства). 4200 — Platinum USB drive mini.
· 070867948D560839 — уникальный серийный номер флешки.

VID и PID можно пробить по базе на сайте Linux USB или просто загуглить.

---

Где Windows хранит эту информацию

В реестре, конечно. По адресу:

Код:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\VID_13FE&PID_4200\070867948D560839

Здесь можно найти не только DeviceID, но и другие параметры: FriendlyName, ParentIdPrefix, Class. Иногда СЗИ смотрит именно в реестр, а не только в API.

---

Альтернативные идентификаторы: VSN (Volume Serial Number)

Некоторые системы (и некоторые программы лицензирования) вместо DeviceID используют серийный номер тома (Volume Serial Number, он же UUID в Linux). Это идентификатор файловой системы, а не самого устройства. Его можно посмотреть командой vol или dir в командной строке.

Bash:
vol E:

Вывод:

Код:
Том в устройстве E: — TRANSCEND
Серийный номер тома: 4652-F858

Проблема VSN в том, что он меняется при форматировании. Для жесткого диска форматирование — событие редкое, а для флешки — обычное дело. Поэтому надеяться на VSN как на уникальный идентификатор — плохая идея.

---

Что делать с noname-флешками, у которых серийник «плывет»

Дешевые китайские флешки часто не имеют собственного серийного номера. Вместо этого Windows генерирует его динамически при каждом подключении, причем номер может зависеть от порта.

Пример:

Код:
USB\VID_23A9&PID_EF18\6&45CEA456&0&2  (порт 1)
USB\VID_23A9&PID_EF18\6&45CEA456&0&1  (порт 2)

Символ & в конце — признак динамического номера. Если такую флешку добавить в белый список, она будет работать только на том порту, где её добавили. Переставил в другой порт — всё, доступ закрыт.

Путь к экземпляру устройства у таких флешек тоже меняется:

Код:
USBSTOR\DISK&VEN_AI&PROD_MASS_STORAGE&REV_\7&6266D645&0  (порт 1)
USBSTOR\DISK&VEN_AI&PROD_MASS_STORAGE&REV_\7&977ABD2&0  (порт 2)

У нормальной флешки этот путь стабилен:

Код:
USBSTOR\DISK&VEN_JETFLASH&PROD_TRANSCEND_8GB&REV_1100\BBPIX7EB2VMBFI48&0

Если ваша СЗИ идентифицирует устройства по пути к экземпляру, а не по DeviceID, — это даже лучше для атакующего? Нет, потому что путь к экземпляру тоже можно подделать, если перепрошить контроллер с правильными параметрами.

---

Часть 1. VSN (UUID): меняем, не привлекая внимания

Если в вашей организации используется блокировка на основе VSN, у вас есть несколько вариантов обхода.

Вариант 1. Форматирование (неконтролируемое)

Самый простой способ — просто отформатировать флешку. VSN изменится на случайный. Если в системе используется черный список (то есть заблокированы только известные VSN), этого может быть достаточно.

Пример для FAT32:

Код:
До: 4652-F858
После быстрого форматирования: 76DA-6C78

Пример для NTFS — аналогично.

Вариант 2. Смена VSN через утилиты

Если нужно не просто изменить VSN, а задать конкретное значение, используем специальные инструменты.

VolumeID от Sysinternals (консольная):

Bash:
VolumeID.exe E: 1234-5678

Volume Serial Number Changer (графическая) — запускаем, выбираем диск, вводим новый номер, жмем "Change". После этого флешку нужно извлечь и подключить заново.

Вариант 3. Смена VSN в HEX-редакторе

Для тех, кто хочет понять, как это работает на уровне байтов.

· Открываем флешку в любом HEX-редакторе (например, HxD).
· Для FAT32 VSN находится по смещению 0x43. Четыре байта.
· Для NTFS — по смещению 0x48.

Порядок байтов — little-endian, то есть в файле они записаны справа налево. Например, VSN 6666-6666 в файле будет выглядеть как 66 66 66 66.

Меняем байты на нужные, сохраняем. Флешка переподключается — новый VSN активен.

---

Часть 2. VID, PID, Serial: полное клонирование через перепрошивку контроллера

Это уже серьезный уровень. Мы не просто меняем VSN, а полностью подменяем идентификационные данные флешки на уровне контроллера. Риски: при ошибке флешка может превратиться в кирпич. Но если всё сделать правильно, система не отличит клон от оригинала.

Шаг 1. Собираем данные об оригинале

Нам нужны:

· VID, PID
· Серийный номер
· Номер ревизии (bcdDevice)
· Название производителя (Manufacturer String) и продукта (Product String)
· Путь к экземпляру устройства (Instance Path)

Проще всего это сделать через свойства флешки в диспетчере устройств: «Свойства → Оборудование → Сведения». В выпадающем списке выбираем нужный параметр.

Записываем всё.

Шаг 2. Определяем контроллер флешки-клона (фейка)

Вставляем флешку, которую будем перепрошивать. Запускаем ChipGenius (или Flash Drive Information Extractor).

Программа покажет:

· Vendor ID, Product ID (текущие)
· Контроллер (например, SMI SM3257ENBA)
· Модель чипа памяти
· Версию прошивки

Нам нужно именно название контроллера. От него зависит, какой прошивальщик искать.

Шаг 3. Ищем прошивальщик

Для SMI SM3257ENBA есть два основных варианта:

· SMI MPTool (быстро, но сложнее в настройке)
· Dyna Mass Storage Production Tool (медленнее, но надежнее)

Качаем с USBDev или с профильных форумов (mydigit.cn, usbdev.ru). Важно: версия прошивальщика должна подходить к вашему контроллеру. Не всегда последняя версия работает с конкретным чипом.

Шаг 4. Настраиваем прошивальщик

Запускаем прошивальщик от администратора. Убеждаемся, что флешка определилась. Жмем Settings (если просит пароль — пробуем оставить пустым или гуглим пароль для конкретной версии). Выбираем конфигурационный файл NDefault.INI.

Вкладка DeviceConfig:

· SN Method → Static SN (фиксированный серийный номер)
· VID → вводим VID оригинала
· PID → вводим PID оригинала
· bcdDevice (номер ревизии) → вводим как у оригинала

Вкладка USB:

· Vendor String → если у оригинала есть производитель, вводим
· Product String → название устройства

Серийный номер: в поля SN Begin, SN End, SN Mask вводим серийник оригинала.

Вкладка Inquiry:

· Vendor → обычно оставляем пустым (или как у оригинала)
· Product → USB DISK 2.0 или как указано в оригинале

Сохраняем настройки. В главном окне жмем Start. Процесс прошивки может занять от 5 до 35 минут.

Шаг 5. Проверяем результат

После прошивки флешку нужно извлечь и вставить заново. Запускаем ChipGenius — VID, PID, серийный номер должны совпадать с оригиналом.

Проверяем путь к экземпляру устройства — он тоже должен стать идентичным.

Вставляем флешку-клон в систему с включенным белым списком для оригинала. Если всё сделано правильно — флешка работает.

Важно: оригинал и клон нельзя подключать одновременно. Будет конфликт, работать будет только первая вставленная.

---

Часть 3. Извращения: превращаем флешку в дискету

Некоторые СЗИ (например, Kaspersky Endpoint Security) блокируют съемные диски, но по умолчанию не блокируют дисководы. Этим можно воспользоваться.

Берем флешку (желательно не очень большую, 8-16 ГБ). Контроллер — например, SMI SM3267AB. Прошивальщик — SMI MPTool.

В настройках переходим на вкладку Multi-Lun Settings. Включаем галочки:

· Floppy
· Format

Прошиваем. После переподключения флешка определяется как дисковод на 1.38 МБ. В KES она не блокируется, даже если запрещены все съемные диски.

Если же в настройках KES включена блокировка дискет — этот метод не сработает.

---

Способы идентификации флешек в Windows — это целая наука. VSN (серийный номер тома) ненадежен и легко меняется. DeviceID (VID+PID+Serial) можно скопировать, если перепрошить контроллер флешки-клона. Это рискованно, но выполнимо.

Для пентестера клонирование флешек — это способ обойти физические ограничения и получить доступ к данным. Для администратора — повод задуматься: действительно ли ваша система защиты от съемных носителей так надежна, как кажется?
 


Сверху