Carder
Professional
- Messages
- 2,619
- Reaction score
- 1,882
- Points
- 113
Содержание
Это не первый и не второй раз, когда SparkFun имеет дело со скиммерами кредитных карт. Разница в том, что на этот раз местное правительственное агентство вежливо попросило о помощи, и мы всегда стараемся остановить плохих актеров.
Нам дали три скиммера, установленных в бензоколонках, с просьбой, чтобы мы попытались удалить данные с платы, чтобы агенты могли сообщить тем, у кого была взломана их кредитная карта, чтобы они могли получить новую карту. Не очень хорошо, но это начало. Вторая задача: можем ли мы создать приспособление или систему, чтобы в будущем им было легче проткнуть эти системы? Мы смогли сделать и то, и другое, а также создать приложение, которое обнаруживает известные скиммеры в этом районе.
Теперь для тех, кто не хочет вдаваться в подробности, вот краткое изложение того, как работает приложение SparkX 'Skimmer Scanner' [1]:
Приложение Skimmer Scanner
Skimmer Scanner - это бесплатное приложение с открытым исходным кодом, которое обнаруживает распространенные скиммеры кредитных карт на основе Bluetooth, которые преимущественно используются в бензоколонках. Приложение сканирует доступные Bluetooth-соединения в поисках устройства с названием HC-05 . В случае обнаружения приложение попытается подключиться, используя пароль по умолчанию 1234. После подключения будет отправлена буква «P». Если ответ «M», очень высока вероятность, что в зоне действия Bluetooth вашего телефона (от 5 до 15 футов) есть скиммер.
Skimmer Scanner является бесплатным, открытым исходным кодом и был доступен для Android [1]. Приложение не получает и не загружает данные с конкретного скиммера и не сообщает никакой информации местным властям.
ИСТОЧНИК СКАНЕРА СКИММЕРА GITHUB
Если вы обнаружите один в поле, сообщите нам об этом! Мы хотели бы услышать об этом.
Читатель Энтони Дэвид Адамс сообщил нам, кто действительно несет ответственность в подобных ситуациях. Вы можете прочитать его ответ здесь.
Вы злитесь на то, что вашу карту снова украли? Свяжитесь с местным конгрессменом или сенатором и попросите их принять закон, который штрафует заправочные станции в размере 100 долларов за каждую карту, обнаруженную на скиммере в одной из их насосов. В конечном итоге заправочные станции и производители насосов должны защищать свои насосы.
[1] Примечание. К сожалению, Google исключил нас из магазина Google Play, так как приложение больше не поддерживает новейшие и лучшие сотовые телефоны. Исходный код является открытым, поэтому мы призываем всех подобрать его и стереть пыль!
Передняя часть топливного насоса для США в комплекте с чрезвычайно труднодоступной защитной пломбой.
По сути, злоумышленник открывает насос, используя один из нескольких мастер-ключей, отсоединяет устройство чтения кредитных карт от главного контроллера насоса, вставляет устройство чтения карт в скиммер и снова включает скиммер в контроллер насоса. Сообщается, что это занимает менее 30 секунд.
Скиммер - это, по сути, человек в средней атаке. Скиммер прослушивает весь последовательный трафик от устройства чтения кредитных карт (открытый текст со скоростью 9600 бит / с), записывает его во внешнюю память (в данном случае флеш-память), а затем передает тот же последовательный трафик на контроллер насоса. Когда вы используете один из этих модифицированных насосов, контроллер помпы заряжает вашу карту, и вы ничего не понимаете, но данные вашей кредитной карты хранятся в памяти.
Спустя несколько часов или дней преступник возвращается на заправочную станцию и подключается через Bluetooth к взломанной насосной станции. После подключения скиммер отправляет содержимое EEPROM (все последние номера кредитных карт) по воздуху на мобильный телефон или ноутбук злоумышленников, где оно регистрируется.
Скиммер такого типа очень распространен. Быстрый поиск изображений позволяет увидеть эту модель по всей Северной Америке.
Настройка очень проста, но имеет некоторые странные варианты дизайна. Микроконтроллер PIC18F4550 обменивается данными с модулем Bluetooth через последовательный порт, а также взаимодействует с SPI Flash. Сигналы (последовательные символы) от устройства чтения кредитных карт записываются PIC в SPI EEPROM. Когда сотовый телефон или планшет подключается к модулю Bluetooth, создается последовательное соединение (называемое профилем последовательного порта или SPP). Какие бы серийные символы ни отправлял сотовый телефон, они отправляются на PIC. Например, когда символ '?' отправляется с нашего планшета с поддержкой Bluetooth в скиммер, скиммер отвечает символом «1».
Передняя часть скиммера
Передней части доски состоит из PIC18F4550 микроконтроллер, с M2P16 SPI EEPROM с 16Mbit флэш - памяти, и стандартный регулятор LM1117 3.3V.
Тонировка различных штифтов при предполагаемом использовании. (Если какие-либо из этих изображений слишком маленькие, чтобы их можно было увидеть, нажмите на них, чтобы увеличить.)
Чтобы вдаваться в подробности:
Основное подключение к считывателю кредитных карт осуществляется через соединение с маркировкой от «1» до «7», показанное справа, с установленным серым кабелем.
Неясно, для чего используется второй разъем (показан слева на изображении выше). Это соединение может использоваться для множества разных вещей, так как контакты на PIC, которые сломаны, могут использоваться как входы или выходы. Я предполагаю, что это соединение с клавиатурой, чтобы скиммер мог записывать пин-коды (для дебетовых карт), когда насос имеет подходящую модель или совместимую клавиатуру.
Тонирование различных штифтов при предполагаемом использовании
Эти модули используют чрезвычайно распространенный модуль Bluetooth под названием HC-06. Это примерно 3 доллара за единицу и, возможно, дешевле в количестве. Bluetooth стал шокирующе дешевым!
Модуль HC-06 с сайта www.hc01.com
Подробнее о модуле Bluetooth ниже.
Эти устройства выглядят хорошо построенными
Сборка основной платы из трех блоков выглядит от разумного до высокого качества. Передняя сторона скиммера (содержащего микроконтроллер PIC) была собрана с использованием стандартных методов SMD с использованием паяльной пасты, трафарета и оплавления. Судя по качеству филе, это было массовое производство.
Прилично впаянный модуль Bluetooth
Модуль Bluetooth и различные компоненты на задней стороне выглядят припаянными вручную, но сделаны кем-то, кто знает, как использовать флюс и как хорошо паять. Модули Bluetooth, скорее всего, были припаяны вручную, чтобы снизить общие производственные затраты (в основном трафарет и оплавление второй стороны обходятся вдвое).
Вот тут какая-то плохая сборка. Многожильные провода замыкают соседние контакты.
Кабели и разъемы добавил кто-то другой, скорее всего, злоумышленник. Это действительно плохо. На двух модулях зачистка провода и припоя настолько слабая, что устройства, вероятно, выйдут из строя из-за короткого замыкания между контактами.
Два устройства имеют 7-контактный поляризованный разъем с отрезанным язычком, возможно, потому, что они не знают, в какую сторону будет подключаться контроллер насоса. Это либо очень на любителя (они догадываются, когда подключают свой блок, что довольно бесцеремонно, потому что может сгореть их блок, считыватель кредитных карт или и то, и другое), либо они обнаружили, что разъемы внутри разных насосов имеют разную (противоположную) ориентацию и они хотят создать устройство, которое может быстро работать с любой поляризацией. Маловероятно, что рынок контроллеров насосов будет стремиться к тому же количеству контактов, использующих один и тот же тип разъема, но использующих две разные ориентации. Поэтому я предполагаю, что производитель этих устройств недостаточно осведомлен, чтобы выяснить, где находится контакт 1 на поляризованном разъеме, и просто прибегает к догадкам и проверке: Подключите его, это работает? Нет? Переключите его в другую сторону.
Распиновка 18F4550
Мозг - это PIC18F4550, работающий на частоте 8 МГц и напряжении 3,3 В. Регулятор 3,3 В имеет одну развязывающую крышку. Очень простая конфигурация и, вероятно, могла бы выдерживать большие напряжения, такие как 12 В, не перегреваясь.
Распиновка и подключение PIC к 25П16ВП. Метки по краям показывают, как ИС обнаруживается подключенной к цепи. Например, Q подключен к MISO / A5 на PIC.
Микросхема с маркировкой 25P16VP, похоже, является флэш-памятью NOR от ST / Micron с полным номером детали M25P16. Любопытно, что эта часть находится в конце жизненного цикла (EOL). EOL уведомление здесь от декабря 2016 с последними датами отгрузки в 2021 Возможно , они используют эту часть , потому что это супер общий и / или супер дешево. VCC EEPROM составляет 3,3 В, поэтому плата работает при 3,3 В (вместе с модулем Bluetooth 3,3 В).
Рекомендуемая распиновка для HC-06
Выше показана рекомендуемая схема подключения модуля с указанием различных контактов. Тонировка соединений с модулем, все довольно стандартно и ожидаемо. PIO11 на скиммере любопытно привязан к GND с помощью 10K. На PIO8 есть светодиод. Вот хорошая разбивка всех различных версий модуля Bluetooth от компании HC-01.
Запрашивая модуль по воздуху, мы обнаружили, что модуль Bluetooth имеет все настройки по умолчанию. Разработчики скиммера не торопились изменять настройки:
Сначала это взорвало меня. Если бы я спроектировал Bluetooth-скиммер, я бы запрограммировал модуль НЕ транслировать свой идентификатор, я бы изменил идентификатор на то, что знал только я, и я бы изменил пароль с 1234 (головной убор). Затем я бы создал приложение, которое знало идентификаторы моих различных идентификаторов Bluetooth, и подключалось к ним конфиденциально (без публичной трансляции их идентификаторов). Но потом меня поразило несколько вещей:
Подключиться к скиммеру с помощью Bluetooth на компьютере очень просто. Мы использовали пароль по умолчанию 1234 и заметили, что светодиод Bluetooth мигает с частотой 2 Гц, а затем гаснет на 2 секунды при подключении.
В нашей настройке COM-6 был Bluetooth SPP, который становился доступным после подключения. Отправка ? к скиммеру заставил его ответить 1 со скоростью 9600 бит / с.
Это похоже на прямую копию серийного номера, который мы ожидаем от последовательного кардридера . T1 указывает данные дорожки 1, T2 - дорожку 2 и т. Д. Записи хранятся в EEPROM в виде открытого текста (помните, сделайте это доказательством идиотизма для пользователя). Похоже, кто-то купил бензин по подарочной карте. Обратите внимание, что эта запись состоит из 113 символов. Допустим, запись составляет 256 байт. С 16 Мбит флеш-памяти это 2 Мб или примерно 7800 записей о кредитных картах, которые могут быть сохранены на устройстве. (Ой.)
На предоставленных нам единицах мы обнаружили в среднем 24 записи на одно устройство. Это кажется низким. Я не уверен, где были расположены эти устройства, но можно было бы ожидать, что в день по крайней мере 24 пользователя кредитных карт. Это может указывать на то, что преступник регулярно посещал насосы и ежедневно собирал записи.
Если вы являетесь сотрудником правоохранительных органов, у вас должен быть физический доступ к устройству. Есть несколько способов получить данные из EEPROM.
Во-первых, вам понадобится считыватель EEPROM. Нам нравится использовать дешевый программатор SPI от Amazon. Программное обеспечение для Windows найти немного сложно. Нам больше всего повезло с версией 1.29 с веб-сайта Тосека Занакова. Мы принимали копию программного обеспечения здесь также. Используйте на свой риск.
Затем вам нужно подключить программатор к EEPROM. Есть два метода: использование зажима SOIC или удаление EEPROM горячим воздухом. Зажим SOIC - наименее разрушительный метод, но требует сноровки и терпения. Доработка горячим воздухом более надежна, но требует снятия ИС с платы и может создать проблемы с происхождением.
Для удержания желтого провода против MCLR / GND прикладывается давление вниз. В то же время зажим SOIC тщательно удерживается на месте. Это сложно.
Мы используем тестовый зажим SOIC для временного электрического подключения к SPI EEPROM. 12 -дюймовые перемычки между гнездом и гнездом соединяют зажим SOIC с считывателем EEPROM. Гнездовые соединительные провода хорошо соединяются с 6 контактами SPI на программаторе EEPROM CH341A. Требуется всего 6 проводов; контакты защиты от записи и удержания можно оставить плавающими. Мы выбрали ES25P16 из программного обеспечения для чтения IC через SPI.
Последнее, что вам нужно сделать, это сбросить PIC18F4550. Это связано с тем, что CH341A обеспечивает питание скиммера. После подачи питания PIC загрузится и попытается подключиться к EEPROM. Если вы одновременно пытаетесь прочитать EEPROM через клип, у вас будет конфликт шины. Это плохо и помешает программисту правильно прочитать EEPROM.
Вывод сброса MCLR (общий сброс) на PIC отображается в заголовке программирования.
Чтобы сбросить PIC, вам нужно либо удерживать, либо припаять провод от MCLR к GND. Это приведет к тому, что PIC останется в состоянии сброса и позволит вам прочитать EEPROM в двоичный файл из программного обеспечения CH341A. Переименование этого двоичного файла в расширение .txt сделает информацию доступной для просмотра в обычном текстовом редакторе.
Проблема с этим методом заключается в том, что зажим SOIC трудно удерживать на месте. Такие вещи, как движение, вызывают выскальзывание зажима из EEPROM. Связь невелика, но после небольшой практики все заработает.
SOIC IC на коммутационной плате
Альтернативный метод - использовать горячий воздух для удаления EEPROM из скиммера, а затем припаять его к коммутационной плате SOIC. Припаяйте штыревые разъемы к этой коммутационной плате, и вы сможете надежно соединить EEPROM с программатором EEPROM и прочитать содержимое. Вам не нужно будет удерживать PIC в состоянии сброса, чтобы этот метод работал (поскольку PIC больше не подключен к EEPROM).
Обновление: несколько читателей указали, что биты предохранителей установлены для защиты и предотвращения чтения прошивки. Следующим шагом будет декапсуляция и очистка взрывателя, но в настоящее время это выходит за рамки наших возможностей.
Одно неизвестно: зачем вообще использовать PIC18F4550? Он более мощный, с большим количеством вспышек, чем необходимо. Вы можете сделать это с помощью устройства меньшего размера, такого как ATtiny, или более дешевого устройства, такого как ARM-M0 (SAMD11 великолепны). Возможно, дополнительные контакты нужны для декодирования клавиатуры. Возможно, PIC18F4550 стоит очень дешево, где бы эти устройства ни производились. Возможно, это устройство было разработано кем-то, и его дизайн никогда не подвергался повторному посещению, чтобы снизить затраты (кого это волнует, когда спецификация этого скиммера уже меньше 5 долларов?).
Я не хакер, просто играю по телевизору (плохо). Если у вас есть возможность декомпилировать HEX-код в сборку и вы можете понять функцию прошивки, сделайте это. Мы уже знаем достаточно о доступных командах для стирания и отключения устройства. Если вам удалось расшифровать дополнительные функции или интересные характеристики, сообщите нам!
Распиновка серого кабеля была обнаружена, но не идентифицирована
7 контактов, идущих к серому кабелю, который подключается к считывателю кредитных карт, были отключены от PIC. Мы знаем, куда они идут, но не знаем, что делают булавки. Например, к чему подключается D3 на считывателе кредитных карт внутри помпы? Мы ожидаем, что вывод D0 будет основным входом данных от устройства чтения карт, поскольку он имеет встроенный токоограничивающий резистор (R1). Но, не имея доступа к настоящему бензонасосу, мы как бы гадаем.
Чтобы определить назначение каждого из 7 контактов, мы попытались отправить серийный номер в скиммер, как если бы мы были считывателем кредитных карт на бензоколонке.
Мы пробовали отправлять серийный номер уровня TTL с разными скоростями передачи, с разными строками, на разные контакты, надеясь, что скиммер будет хранить эти данные вслепую. Ничего не хранилось как запись кредитной карты. Возможно, устройство достаточно умен, чтобы искать хорошо сформированные данные треков, и наши тесты были неправильно отформатированы. Однако некоторые записи, полученные нами из EEPROM, выглядят как тарабарщина, поэтому мы склонны полагать, что скиммер просто записывает вслепую.
Возможно, устройство ожидает сигналов уровня RS232, а не TTL. Мы попытались использовать устройство чтения магнитных карт для отправки сигналов RS232 на устройство, но не смогли заставить его хранить данные карты. Считыватель магнитных карт выводит RS232 со скоростью 9600 бит / с, тогда как бензонасос может работать с другой скоростью передачи.
В конце концов, мы не смогли заставить скиммер записывать наши фальшивые данные и, таким образом, не смогли окончательно определить, для чего предназначен каждый из контактов, идущих к считывателю карт насоса. Функция этих контактов не имеет особого значения, нам просто было любопытно.
- Вступление
- Как работает скиммер с газовым насосом
- Конструкция скиммера
- Составные части
- Характеристики устройства
- Прошивка
- Последовательный ввод
- Ресурсы и дальнейшее развитие
Вступление
Что в первую очередь должно вас напугать? Их трое. А следующий? Этикетка «46». У них так много полевых преступников, что их нужно пронумеровать, чтобы просто отслеживать.
Это не первый и не второй раз, когда SparkFun имеет дело со скиммерами кредитных карт. Разница в том, что на этот раз местное правительственное агентство вежливо попросило о помощи, и мы всегда стараемся остановить плохих актеров.

Нам дали три скиммера, установленных в бензоколонках, с просьбой, чтобы мы попытались удалить данные с платы, чтобы агенты могли сообщить тем, у кого была взломана их кредитная карта, чтобы они могли получить новую карту. Не очень хорошо, но это начало. Вторая задача: можем ли мы создать приспособление или систему, чтобы в будущем им было легче проткнуть эти системы? Мы смогли сделать и то, и другое, а также создать приложение, которое обнаруживает известные скиммеры в этом районе.
Теперь для тех, кто не хочет вдаваться в подробности, вот краткое изложение того, как работает приложение SparkX 'Skimmer Scanner' [1]:
- Эти скиммеры дешевы и становятся все более распространенными и доставляют все больше неудобств в Северной Америке.
- Скиммер передает по Bluetooth как HC-05 с паролем 1234. Если вы оказались у бензоколонки и случайно сканируете устройства Bluetooth и случайно видите HC-05 в списке как доступное соединение, то вы, вероятно, не хочу использовать этот насос.
- Модуль Bluetooth, используемый в этих скиммерах, чрезвычайно распространен и используется во всех типах законных продуктов и учебных комплектов. Если вы обнаружите один в поле, вы можете подтвердить, что это скиммер (а не какое-либо другое устройство), отправив символ «P» в модуль через терминал. Если вы получили в ответ букву «М», значит, вы, вероятно, нашли скиммер и вам следует связаться с местными властями.
Как работает приложение Skimmer Scanner

Приложение Skimmer Scanner
Skimmer Scanner - это бесплатное приложение с открытым исходным кодом, которое обнаруживает распространенные скиммеры кредитных карт на основе Bluetooth, которые преимущественно используются в бензоколонках. Приложение сканирует доступные Bluetooth-соединения в поисках устройства с названием HC-05 . В случае обнаружения приложение попытается подключиться, используя пароль по умолчанию 1234. После подключения будет отправлена буква «P». Если ответ «M», очень высока вероятность, что в зоне действия Bluetooth вашего телефона (от 5 до 15 футов) есть скиммер.
Skimmer Scanner является бесплатным, открытым исходным кодом и был доступен для Android [1]. Приложение не получает и не загружает данные с конкретного скиммера и не сообщает никакой информации местным властям.
ИСТОЧНИК СКАНЕРА СКИММЕРА GITHUB
Если вы обнаружите один в поле, сообщите нам об этом! Мы хотели бы услышать об этом.
Что-нибудь с этим сделать
Эти скиммеры очень страшны, потому что никто не несет ответственности за профилактику. Если номер вашей кредитной карты украден, вы просто обратитесь к провайдеру, и он (обычно) возместит любые мошеннические платежи и отправит вам новую карту. В свою очередь, компании, выпускающие кредитные карты, просто возвращают деньги продавцу, у которого были совершены мошеннические платежи (забирая деньги у продавца и возвращая их клиенту, карта которого была украдена). На заправочных станциях редко есть сигнализация или индикаторы на насосах, поэтому неясно, знают ли они когда-либо, что насосы были открыты. А производители топливных насосов не заинтересованы в установке цифровых или звуковых сигналов тревоги на насосах. (Это стоит денег.)Читатель Энтони Дэвид Адамс сообщил нам, кто действительно несет ответственность в подобных ситуациях. Вы можете прочитать его ответ здесь.
Вы злитесь на то, что вашу карту снова украли? Свяжитесь с местным конгрессменом или сенатором и попросите их принять закон, который штрафует заправочные станции в размере 100 долларов за каждую карту, обнаруженную на скиммере в одной из их насосов. В конечном итоге заправочные станции и производители насосов должны защищать свои насосы.
[1] Примечание. К сожалению, Google исключил нас из магазина Google Play, так как приложение больше не поддерживает новейшие и лучшие сотовые телефоны. Исходный код является открытым, поэтому мы призываем всех подобрать его и стереть пыль!
Как работает скиммер с газовым насосом

Передняя часть топливного насоса для США в комплекте с чрезвычайно труднодоступной защитной пломбой.
По сути, злоумышленник открывает насос, используя один из нескольких мастер-ключей, отсоединяет устройство чтения кредитных карт от главного контроллера насоса, вставляет устройство чтения карт в скиммер и снова включает скиммер в контроллер насоса. Сообщается, что это занимает менее 30 секунд.
Скиммер - это, по сути, человек в средней атаке. Скиммер прослушивает весь последовательный трафик от устройства чтения кредитных карт (открытый текст со скоростью 9600 бит / с), записывает его во внешнюю память (в данном случае флеш-память), а затем передает тот же последовательный трафик на контроллер насоса. Когда вы используете один из этих модифицированных насосов, контроллер помпы заряжает вашу карту, и вы ничего не понимаете, но данные вашей кредитной карты хранятся в памяти.

Спустя несколько часов или дней преступник возвращается на заправочную станцию и подключается через Bluetooth к взломанной насосной станции. После подключения скиммер отправляет содержимое EEPROM (все последние номера кредитных карт) по воздуху на мобильный телефон или ноутбук злоумышленников, где оно регистрируется.
Конструкция скиммера
Давайте разберемся, как устроены эти скиммеры.
Скиммер такого типа очень распространен. Быстрый поиск изображений позволяет увидеть эту модель по всей Северной Америке.
Настройка очень проста, но имеет некоторые странные варианты дизайна. Микроконтроллер PIC18F4550 обменивается данными с модулем Bluetooth через последовательный порт, а также взаимодействует с SPI Flash. Сигналы (последовательные символы) от устройства чтения кредитных карт записываются PIC в SPI EEPROM. Когда сотовый телефон или планшет подключается к модулю Bluetooth, создается последовательное соединение (называемое профилем последовательного порта или SPP). Какие бы серийные символы ни отправлял сотовый телефон, они отправляются на PIC. Например, когда символ '?' отправляется с нашего планшета с поддержкой Bluetooth в скиммер, скиммер отвечает символом «1».
Передняя часть скиммера

Передняя часть скиммера
Передней части доски состоит из PIC18F4550 микроконтроллер, с M2P16 SPI EEPROM с 16Mbit флэш - памяти, и стандартный регулятор LM1117 3.3V.

Тонировка различных штифтов при предполагаемом использовании. (Если какие-либо из этих изображений слишком маленькие, чтобы их можно было увидеть, нажмите на них, чтобы увеличить.)
Чтобы вдаваться в подробности:
- При необходимости R1 и R2 выглядят как делители напряжения (R2 не заполняется) для снижения напряжения сигналов, поступающих от устройства чтения кредитных карт. Я предполагаю, что считыватель выдает сигналы 12 В, а R1 (1,5 кОм) предназначен для ограничения тока на приемном контакте, тем самым защищая PIC от повреждений.

- Вверху изображения показаны три последовательных контакта. Слева направо: GND, RX, TX. Кажется, это простое последовательное соединение с PIC. Возможно, используется для загрузки новой прошивки. Эти контакты подключаются к контактам RX и TX модуля Bluetooth (соответственно) и позволяют очень легко подключить логический анализатор для прослушивания последовательного трафика. (Спасибо разработчику скиммера!)

- Регулятор напряжения очень распространен в большом корпусе, чтобы (вероятно) выдерживать нагрев при различных входных напряжениях (регулировка с 12 В до 3,3 В может привести к небольшому нагреву).
- D5 - индикатор состояния.
- J4 - это супер-общий заголовок PIC ICSP (в последовательном программировании схем). Он используется для загрузки прошивки на PIC18F4550.

- C1 и C7 - это загрузочные конденсаторы для кристалла 8 МГц. Это имеет смысл, поскольку большинство серий PIC18F не могут работать выше 10 МГц при напряжении 3,3 В.

- C2 выглядит как развязывающий конденсатор емкостью 0,1 мкФ.

- R15 - это подтяжка 10k на линии сброса (MCLR)

- C13 - большая крышка на RA4 / T0CKI / C1OUT / RCV. Это может быть цифровой ввод / вывод, вход внешнего тактового сигнала Timer0, выход компаратора 1 или вход RCV внешнего USB-приемопередатчика. Ни у одного из них нет явных причин для подключения к большой развязывающей крышке. Этот вывод не подключен ни к какой другой части схемы.

Основное подключение к считывателю кредитных карт осуществляется через соединение с маркировкой от «1» до «7», показанное справа, с установленным серым кабелем.

Неясно, для чего используется второй разъем (показан слева на изображении выше). Это соединение может использоваться для множества разных вещей, так как контакты на PIC, которые сломаны, могут использоваться как входы или выходы. Я предполагаю, что это соединение с клавиатурой, чтобы скиммер мог записывать пин-коды (для дебетовых карт), когда насос имеет подходящую модель или совместимую клавиатуру.

Задняя часть скиммера
Примечание: HC-05 и HC-06 имеют одно и то же оборудование и отличаются только прошивкой. HC-05 может быть запрограммирован как ведущий или ведомый, тогда как HC-06 только ведомый. Оба упомянуты в этой статье.
Тонирование различных штифтов при предполагаемом использовании
Эти модули используют чрезвычайно распространенный модуль Bluetooth под названием HC-06. Это примерно 3 доллара за единицу и, возможно, дешевле в количестве. Bluetooth стал шокирующе дешевым!

Модуль HC-06 с сайта www.hc01.com
Подробнее о модуле Bluetooth ниже.
Качество сборки
Интересно, что между тремя предоставленными нам модулями мы обнаружили три степени сборки: отлично, хорошо и мусор.
Эти устройства выглядят хорошо построенными
Сборка основной платы из трех блоков выглядит от разумного до высокого качества. Передняя сторона скиммера (содержащего микроконтроллер PIC) была собрана с использованием стандартных методов SMD с использованием паяльной пасты, трафарета и оплавления. Судя по качеству филе, это было массовое производство.

Прилично впаянный модуль Bluetooth
Модуль Bluetooth и различные компоненты на задней стороне выглядят припаянными вручную, но сделаны кем-то, кто знает, как использовать флюс и как хорошо паять. Модули Bluetooth, скорее всего, были припаяны вручную, чтобы снизить общие производственные затраты (в основном трафарет и оплавление второй стороны обходятся вдвое).

Вот тут какая-то плохая сборка. Многожильные провода замыкают соседние контакты.
Кабели и разъемы добавил кто-то другой, скорее всего, злоумышленник. Это действительно плохо. На двух модулях зачистка провода и припоя настолько слабая, что устройства, вероятно, выйдут из строя из-за короткого замыкания между контактами.

Два устройства имеют 7-контактный поляризованный разъем с отрезанным язычком, возможно, потому, что они не знают, в какую сторону будет подключаться контроллер насоса. Это либо очень на любителя (они догадываются, когда подключают свой блок, что довольно бесцеремонно, потому что может сгореть их блок, считыватель кредитных карт или и то, и другое), либо они обнаружили, что разъемы внутри разных насосов имеют разную (противоположную) ориентацию и они хотят создать устройство, которое может быстро работать с любой поляризацией. Маловероятно, что рынок контроллеров насосов будет стремиться к тому же количеству контактов, использующих один и тот же тип разъема, но использующих две разные ориентации. Поэтому я предполагаю, что производитель этих устройств недостаточно осведомлен, чтобы выяснить, где находится контакт 1 на поляризованном разъеме, и просто прибегает к догадкам и проверке: Подключите его, это работает? Нет? Переключите его в другую сторону.
Составные части
Рассмотрим подробнее каждый из основных компонентов.Микроконтроллер

Распиновка 18F4550
Мозг - это PIC18F4550, работающий на частоте 8 МГц и напряжении 3,3 В. Регулятор 3,3 В имеет одну развязывающую крышку. Очень простая конфигурация и, вероятно, могла бы выдерживать большие напряжения, такие как 12 В, не перегреваясь.
EEPROM

Распиновка и подключение PIC к 25П16ВП. Метки по краям показывают, как ИС обнаруживается подключенной к цепи. Например, Q подключен к MISO / A5 на PIC.
Микросхема с маркировкой 25P16VP, похоже, является флэш-памятью NOR от ST / Micron с полным номером детали M25P16. Любопытно, что эта часть находится в конце жизненного цикла (EOL). EOL уведомление здесь от декабря 2016 с последними датами отгрузки в 2021 Возможно , они используют эту часть , потому что это супер общий и / или супер дешево. VCC EEPROM составляет 3,3 В, поэтому плата работает при 3,3 В (вместе с модулем Bluetooth 3,3 В).
Bluetooth

Рекомендуемая распиновка для HC-06
Выше показана рекомендуемая схема подключения модуля с указанием различных контактов. Тонировка соединений с модулем, все довольно стандартно и ожидаемо. PIO11 на скиммере любопытно привязан к GND с помощью 10K. На PIO8 есть светодиод. Вот хорошая разбивка всех различных версий модуля Bluetooth от компании HC-01.
Запрашивая модуль по воздуху, мы обнаружили, что модуль Bluetooth имеет все настройки по умолчанию. Разработчики скиммера не торопились изменять настройки:
- Скорость передачи = 9600
- Пароль подключения = 1234
- nl / cr окончания строк не требуются
- AT-команды должны быть в верхнем регистре.
- Версия прошивки = hc01.comV2.0
- Имя = HC-06
- Нет паритета
- ПОДЧИНЕННЫЙ режим
- Модуль передает свой идентификатор как HC-06, поэтому мы можем легко их обнаружить.
- Пароль - 1234, поэтому мы можем легко подключиться к ним.
Сначала это взорвало меня. Если бы я спроектировал Bluetooth-скиммер, я бы запрограммировал модуль НЕ транслировать свой идентификатор, я бы изменил идентификатор на то, что знал только я, и я бы изменил пароль с 1234 (головной убор). Затем я бы создал приложение, которое знало идентификаторы моих различных идентификаторов Bluetooth, и подключалось к ним конфиденциально (без публичной трансляции их идентификаторов). Но потом меня поразило несколько вещей:
- Эти устройства дешевы. Спецификация (спецификация) составляет менее 4 долларов США. Таким образом, ориентировочная розничная цена этого устройства составляет 10 долларов.
- Хотя качество сборки SMD является профессиональным, пайка ленты (серый кабель, который подключается к считывателю кредитных карт) ужасно плохая, что указывает на то, что у злоумышленника очень мало опыта пайки и, вероятно, нулевой опыт работы с электроникой.
Характеристики устройства
Запитали скиммер 5В от USB. При включении основной светодиодный индикатор состояния мигает 3 раза. Светодиод Bluetooth быстро мигает с частотой 4 Гц при включении питания, но не подключении.Подключиться к скиммеру с помощью Bluetooth на компьютере очень просто. Мы использовали пароль по умолчанию 1234 и заметили, что светодиод Bluetooth мигает с частотой 2 Гц, а затем гаснет на 2 секунды при подключении.
В нашей настройке COM-6 был Bluetooth SPP, который становился доступным после подключения. Отправка ? к скиммеру заставил его ответить 1 со скоростью 9600 бит / с.
Известные команды
Вот что мы смогли почерпнуть, забивая скиммер различными последовательными струнами.- Подайте питание на скиммер от 5 В до 12 В от серого кабеля (или 3,3 В в VCC)
- Подключитесь к HC-06 с паролем 1234 с помощью ноутбука
- Откройте программу терминала на 9600 бит / с
- '?' это хороший способ узнать, отвечает ли модуль. (Числа сами по себе ничего не делают.)
- Строчные буквы ничего не делают
- ? - возвращает 1
- P - возвращает M
- D - ожидает 6 символов и сохраняет их. Первоначально «123456», и мы думали, что это идентификатор устройства или пароль. Однако изменение этого параметра не оказывает никакого влияния.
- C - отображает 6 символов, которые хранятся на D
- @ - Найдите место в памяти. После @ с еще двумя символами в двоичной форме возвращает данные кредитной карты, хранящиеся в памяти. Например, @ [00] [01] (shift + 2, Ctrl + shift + 2, Ctrl + a) возвращает второй байт, хранящийся в EEPROM. См. Таблицу ascii для получения информации о том, как отправлять двоичные символы из комбинаций клавиатуры.
- % - ждет персонажа и ничего не делает
- E - заставляет последовательный порт перестать отвечать на последовательные команды. BT все еще открыт / подключен. Выключите и снова включите устройство, чтобы вернуть его к работе. Возможно, это может быть использовано для отключения устройства в полевых условиях.
- ~ - Стереть все вспышки SPI. Вот как стереть все номера кредитных карт. На устройстве мигает светодиодный индикатор состояния в течение ~ 20 секунд (на стирание EEPROM требуется время). Устройство будет буферизовать любые входящие последовательные символы в течение времени, необходимого для стирания EEPROM (используются последовательные прерывания и буфер).
Code:
T1 %B374328830305879^YOU/A GIFT FOR ^20042221330999242?
T2 ;374328830305879=200912211090924100000?
Это похоже на прямую копию серийного номера, который мы ожидаем от последовательного кардридера . T1 указывает данные дорожки 1, T2 - дорожку 2 и т. Д. Записи хранятся в EEPROM в виде открытого текста (помните, сделайте это доказательством идиотизма для пользователя). Похоже, кто-то купил бензин по подарочной карте. Обратите внимание, что эта запись состоит из 113 символов. Допустим, запись составляет 256 байт. С 16 Мбит флеш-памяти это 2 Мб или примерно 7800 записей о кредитных картах, которые могут быть сохранены на устройстве. (Ой.)
На предоставленных нам единицах мы обнаружили в среднем 24 записи на одно устройство. Это кажется низким. Я не уверен, где были расположены эти устройства, но можно было бы ожидать, что в день по крайней мере 24 пользователя кредитных карт. Это может указывать на то, что преступник регулярно посещал насосы и ежедневно собирал записи.
Получение данных от скиммера
Мы не собираемся предоставлять пример приложения, которое извлекает данные с устройства. Если вы достаточно сообразительны, чтобы создать приложение на основе информации, представленной в этом руководстве, вы, вероятно, заработаете больше денег, используя свои безумные навыки во благо, а не во зло.Если вы являетесь сотрудником правоохранительных органов, у вас должен быть физический доступ к устройству. Есть несколько способов получить данные из EEPROM.
Во-первых, вам понадобится считыватель EEPROM. Нам нравится использовать дешевый программатор SPI от Amazon. Программное обеспечение для Windows найти немного сложно. Нам больше всего повезло с версией 1.29 с веб-сайта Тосека Занакова. Мы принимали копию программного обеспечения здесь также. Используйте на свой риск.
Затем вам нужно подключить программатор к EEPROM. Есть два метода: использование зажима SOIC или удаление EEPROM горячим воздухом. Зажим SOIC - наименее разрушительный метод, но требует сноровки и терпения. Доработка горячим воздухом более надежна, но требует снятия ИС с платы и может создать проблемы с происхождением.
Метод зажима SOIC

Для удержания желтого провода против MCLR / GND прикладывается давление вниз. В то же время зажим SOIC тщательно удерживается на месте. Это сложно.
Мы используем тестовый зажим SOIC для временного электрического подключения к SPI EEPROM. 12 -дюймовые перемычки между гнездом и гнездом соединяют зажим SOIC с считывателем EEPROM. Гнездовые соединительные провода хорошо соединяются с 6 контактами SPI на программаторе EEPROM CH341A. Требуется всего 6 проводов; контакты защиты от записи и удержания можно оставить плавающими. Мы выбрали ES25P16 из программного обеспечения для чтения IC через SPI.
Последнее, что вам нужно сделать, это сбросить PIC18F4550. Это связано с тем, что CH341A обеспечивает питание скиммера. После подачи питания PIC загрузится и попытается подключиться к EEPROM. Если вы одновременно пытаетесь прочитать EEPROM через клип, у вас будет конфликт шины. Это плохо и помешает программисту правильно прочитать EEPROM.

Вывод сброса MCLR (общий сброс) на PIC отображается в заголовке программирования.
Чтобы сбросить PIC, вам нужно либо удерживать, либо припаять провод от MCLR к GND. Это приведет к тому, что PIC останется в состоянии сброса и позволит вам прочитать EEPROM в двоичный файл из программного обеспечения CH341A. Переименование этого двоичного файла в расширение .txt сделает информацию доступной для просмотра в обычном текстовом редакторе.
Проблема с этим методом заключается в том, что зажим SOIC трудно удерживать на месте. Такие вещи, как движение, вызывают выскальзывание зажима из EEPROM. Связь невелика, но после небольшой практики все заработает.
Удаление горячего воздуха

SOIC IC на коммутационной плате
Альтернативный метод - использовать горячий воздух для удаления EEPROM из скиммера, а затем припаять его к коммутационной плате SOIC. Припаяйте штыревые разъемы к этой коммутационной плате, и вы сможете надежно соединить EEPROM с программатором EEPROM и прочитать содержимое. Вам не нужно будет удерживать PIC в состоянии сброса, чтобы этот метод работал (поскольку PIC больше не подключен к EEPROM).
Прошивка
Мы смогли вытащить прошивку с PIC с помощью PICKit 3. Вы можете получить копию файла HEX здесь. Прошивки на всех трех платах были идентичны. Прошивка на удивление мала, занимает от 0x0000 до 0x07F0 (около 2000 байт). Я чихаю эскизы Arduino, которые больше, чем это.Обновление: несколько читателей указали, что биты предохранителей установлены для защиты и предотвращения чтения прошивки. Следующим шагом будет декапсуляция и очистка взрывателя, но в настоящее время это выходит за рамки наших возможностей.
Одно неизвестно: зачем вообще использовать PIC18F4550? Он более мощный, с большим количеством вспышек, чем необходимо. Вы можете сделать это с помощью устройства меньшего размера, такого как ATtiny, или более дешевого устройства, такого как ARM-M0 (SAMD11 великолепны). Возможно, дополнительные контакты нужны для декодирования клавиатуры. Возможно, PIC18F4550 стоит очень дешево, где бы эти устройства ни производились. Возможно, это устройство было разработано кем-то, и его дизайн никогда не подвергался повторному посещению, чтобы снизить затраты (кого это волнует, когда спецификация этого скиммера уже меньше 5 долларов?).
Я не хакер, просто играю по телевизору (плохо). Если у вас есть возможность декомпилировать HEX-код в сборку и вы можете понять функцию прошивки, сделайте это. Мы уже знаем достаточно о доступных командах для стирания и отключения устройства. Если вам удалось расшифровать дополнительные функции или интересные характеристики, сообщите нам!
Последовательный ввод

Распиновка серого кабеля была обнаружена, но не идентифицирована
7 контактов, идущих к серому кабелю, который подключается к считывателю кредитных карт, были отключены от PIC. Мы знаем, куда они идут, но не знаем, что делают булавки. Например, к чему подключается D3 на считывателе кредитных карт внутри помпы? Мы ожидаем, что вывод D0 будет основным входом данных от устройства чтения карт, поскольку он имеет встроенный токоограничивающий резистор (R1). Но, не имея доступа к настоящему бензонасосу, мы как бы гадаем.
Чтобы определить назначение каждого из 7 контактов, мы попытались отправить серийный номер в скиммер, как если бы мы были считывателем кредитных карт на бензоколонке.
Мы пробовали отправлять серийный номер уровня TTL с разными скоростями передачи, с разными строками, на разные контакты, надеясь, что скиммер будет хранить эти данные вслепую. Ничего не хранилось как запись кредитной карты. Возможно, устройство достаточно умен, чтобы искать хорошо сформированные данные треков, и наши тесты были неправильно отформатированы. Однако некоторые записи, полученные нами из EEPROM, выглядят как тарабарщина, поэтому мы склонны полагать, что скиммер просто записывает вслепую.
Возможно, устройство ожидает сигналов уровня RS232, а не TTL. Мы попытались использовать устройство чтения магнитных карт для отправки сигналов RS232 на устройство, но не смогли заставить его хранить данные карты. Считыватель магнитных карт выводит RS232 со скоростью 9600 бит / с, тогда как бензонасос может работать с другой скоростью передачи.
В конце концов, мы не смогли заставить скиммер записывать наши фальшивые данные и, таким образом, не смогли окончательно определить, для чего предназначен каждый из контактов, идущих к считывателю карт насоса. Функция этих контактов не имеет особого значения, нам просто было любопытно.
Ресурсы и дальнейшее развитие
Надеемся, вам понравилось читать этот подробный разбор этих устрашающих устройств. Если вы хотите помочь нам, нам интересно ответить на следующие вопросы:- Сколько на самом деле стоят эти устройства? Мы еще не исследовали даркнет достаточно, чтобы найти его.
- На каких типах топливных насосов работают скиммеры? Неясно, работает ли эта модель скиммера по полю или только с определенными типами насосов.
- Какие еще методы обнаружения и предотвращения? Мы провели мозговой штурм по всем вопросам. В конце концов, просто шокирует то, как легко открыть бензоколонку. Самым быстрым методом предотвращения, который мы могли придумать, был клаксон, прикрепленный к листовому выключателю, который срабатывает при каждом открытии насоса. Обеспечьте всех специалистов по ремонту насосов средствами защиты слуха, и проблема скиммеров будет решена.
- Репозиторий GitHub для сканера скиммера [1]
- Средний - Скиммеры для кредитных карт и SparkFun
- HC-05, HC-06 Разбивка
- HEX файл
Last edited by a moderator: