Перейти к содержимому

Troikadumper как пользоваться правильно

  • автор:

Конкурс Troika dumper — бесплатные проезды

Моя первая статья на форуме, так что не съедайте меня. Пишу для конкурса, заодно и поведую вам реально интересное.

Вы все знаете карту Тройка:

triii.jpeg

Она устроена довольно просто. Её начинкой является чип Mifare Plus, именно его уязвимость эксплуатирует данная прошрамм, также карта хранит все данные в себе.

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

Ближе к делу:

Так вот, в далёком 2016 один хороший человек разобрался с этой карточкой и написал приложение о котором я расскажу.
Приложение называется Troika Dumper, GITHUB.
За основу основ для программы взяли мобильное приложение «Мой Проездной», оно было разобрано и переработано в Troika Dumper.

Смысл работы программы:

Troika dumper позволяет читать, сохранять и восстанавливать записанное состояние памяти карты Тройка. Для использования необходим телефон с версией Android ≥ 4.4 и NFC чипом, поддерживающим карты Mifare.

Mifare — считается наиболее распространённой торговой маркой безконтактных карт, не удивительно, что именно на основе этой технологии сделали карту Тройка.

Как сделали:

Раскрыв приложение «Мой Проездной» разработчиком Troika Dumper были внесены изменения в программу, он удалил проверку ssl сертификата, который использовался для соединения с сервиром, что позволило совершить перехват трафика и полнее понять работу карты. Оказалось, что все данные хранятся в карте: баланс, последнее время прохода и прочие данные. Выглядит это примерно так:

IMG_20181219_143917.jpg

Наша программа сохраняет все эти данные а файл, а после этот файл можно использовать для записи на карту.

Как пользоваться программой:

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

_.png

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

Пример использования (что бы вашу карту не заблокировали):

Придуман чисто мной, я не призываю вас его использовать.
1. Сохраняем состояние карты на телефон (Просто подносим карту к телефону)
2. Идём в метро и платим
3. Выползаем на той станции где вам надо
4. Записываем дамп с телефона на карту (Кнопка «карандаш» и прикладываем карту)
5. Идём в автобус и платим там проезд (Только в случае если обратно собираетесь в метро, это нужно для обновления времени проезда, ведь сейчас на карте уже дамп карты до её использования)

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

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

Это очень интересная программа. Но у всего есть свои минусы, например все эти действия попадают под 159.3 УК РФ как махинации с электронными картами. Минимальный срок заключения — 3 года. Так что не стоит этим этим сильно увлекаться.
Из этого можно понять, что не всё слишком хорошо защищено, даже такая известная карта, которая есть у каждого москвича, имеет свои уязвимости.
Всё предоставлено только для ознакомления, если Вы вдруг сделаете нехорошые вещи, то вся ответственность лежит на Вас, не забывайте это!

Что ещё может NFC в вашем телефоне ⁠ ⁠

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

Что ещё может NFC в вашем телефоне NFC, Google pay, Смартфон, Apple Pay, Mir, Фишки, Длиннопост

Сразу опишу, что будет в статье:
1. Как нынче оплачивать с помощью NFC.
2. NFC метки и команды
3. Считывание домофонных ключей и пропусков.

Дисклеймер: автор статьи не рекомендует выполнять действия в пункте 3, т.к. это может попадать под статью о неправомерном доступе к информации. Все, что описывается в статье проводится сугубо с личными данными автора, а так же не используется для извлечения выгоды. Все ниже описанные действия были проверены на android-устройстве, у apple с NFC дела обстоят по другому. Владельцам яблок будет полезен только п. 2

1. Как оплачивать с помощью NFC?
Сейчас оплачивать с помощью Google Pay/Apple Pay не предоставляется возможным. Но есть альтернатива, которая в данный момент работает, но с некоторым НО. Рассмотрим вариант, которым пользуюсь — MirPay

Что ещё может NFC в вашем телефоне NFC, Google pay, Смартфон, Apple Pay, Mir, Фишки, Длиннопост

По порядку:
— Заводим карту платежной системы МИР. Это как раз то самое НО. В приложении банка можно выпустить виртуальную карту, это нам подойдёт. Но зачастую банки дают выпустить только дебетовые карты МИР, с кредитными только visa/mastercard.

— Если все ок, и мы смогли завести карту — скачиваем приложение, заходим в него, жмём снизу «карты» и добавляем наш свежесозданный виртуальный пластик. Если не добавляется после нескольких попыток — попробуйте на следующий день, сам с таким столкнулся.

— И наконец, жмём снизу «настройки» и выбираем это приложение для оплаты по умолчанию

Теперь можете оплачивать покупки как раньше — приложив телефон к терминалу.

2. NFC метки — зачем нужны, что могут, сколько стоят?
Это некие nfc чипы, которые могут быть оформлены в разных форм-факторах и содержат в себе небольшой объём информации — от 144 до 888 байт. Сразу скажу, что читать метку могут и android-телефон, и iphone.
Но писать 100% может андроид, для iphone нет возможности проверить. Однако можете попробовать — NFC tag writer by NXP (ios 13 и выше).

Вот таких 10 штук стоят 100 рублей, метки перезаписываемые, такие себе и взял.

Что ещё может NFC в вашем телефоне NFC, Google pay, Смартфон, Apple Pay, Mir, Фишки, Длиннопост

Что можно сделать с таким объемом информации?
— Добавить текст (1 байт на латиницу/цифры и 2 на русские буквы). При считывании метки любым устройством можно увидеть этот текст.
— Сделать URL метку. При считывании предложит перейти по адресу, можно использовать для соц. сетей или меню в ресторане вместо QR кода.
— Добавить action на е-мейл, номер телефона, геотег. Если прислонить телефон к метке — можно заставить телефон перейти в приложение телефона с уже набранным номером, написать email или открыть карты с маршрутом до геолокации, зашитой в метку.
— Добавить action на подключение wifi сети сразу с паролем или подключение к bluetooth устройству. Фишка с wifi наверняка полезна для отелей или комнат ожидания.
— И ещё несколько функций, на которые не буду заострять внимания. Интерфейс у программы русский, выше перечислил самое основное и полезное.

Как записать метку? Качаем следующее приложение:

Что ещё может NFC в вашем телефоне NFC, Google pay, Смартфон, Apple Pay, Mir, Фишки, Длиннопост

Открываем, и видим сверху четыре вкладки:

Что ещё может NFC в вашем телефоне NFC, Google pay, Смартфон, Apple Pay, Mir, Фишки, Длиннопост

Чтение — мы можем получить информацию о метке: чтобы ней записано и сколько байт доступно, а так же много ненужной технической информации.

Запись — можем записать и перезаписать на метку наши действия, описанные выше. Добавляем запись, и когда убедились что все ок — жмём «писать метку»

Что ещё может NFC в вашем телефоне NFC, Google pay, Смартфон, Apple Pay, Mir, Фишки, Длиннопост

Другое — можно заблокировать метку от записи навсегда, поставить пароль на метку от записи, массово копировать, и т.д.

Задачи — можно поставить приложение на телефон и ставить задачи при считывании метки — от регулировки уровня громкости и яркости экрана до вибрации азбукой морзе. Этим не пользуюсь, т.к. доступно только тем, у кого есть это самое приложение, и такая метка будет полезна только вам.

Как я использую метку
Одна метка наклеена на торпеде в машине. Когда сажусь — провожу телефоном и сразу подключаюсь к bluetooth системе. Т.к. машинка древних годов, то блютуз паял самостоятельно в магнитолу, мини-платка за 100 рублей достаточно тупая и сама не коннектится к телефону.

Что ещё может NFC в вашем телефоне NFC, Google pay, Смартфон, Apple Pay, Mir, Фишки, Длиннопост

3. Считывание, а иногда и запись домофонных ключей, пропусков и прочих изделий с полноценным NFC чипом
Начнем со считывания — телефон способен прочитать почти любой NFC тэг с частотой 13.56мгц. Такие используются в беспроводных пропусках (например, в университет или на работу), в некоторых домофонных ключах, а так же в проездных и банковских картах. Что это нам даёт? Вы можете, к примеру, считать ваши домофонные ключи и записать с них серийник и информацию в память телефона. В будущем, если потеряете — можете попросить мастера вбить этот серийник на новый ключ, или купить болванки на каком-нибудь популярном маркетплейсе и записать с помощью ардуинки или телефона (с некоторыми НО) информацию.
Но строго не рекомендую таким образом присваивать себе уникальные ID чужих пропусков, ключей и чего бы там ни было.

Давайте заглянем, что внутри такой карточки.

Что ещё может NFC в вашем телефоне NFC, Google pay, Смартфон, Apple Pay, Mir, Фишки, Длиннопост

Для этого качаем следующее приложение:

Что ещё может NFC в вашем телефоне NFC, Google pay, Смартфон, Apple Pay, Mir, Фишки, Длиннопост

Заходим, жмём кнопку Read tag. Выбираем пак ключей std, прислоняем карту и жмём Start mapping and read tag. Карточку от телефона не отводим пока не откроется следующая кракозябра:

Что ещё может NFC в вашем телефоне NFC, Google pay, Смартфон, Apple Pay, Mir, Фишки, Длиннопост

— Самая первая фиолетовая строчка (далее — блок) — зачастую самая важная. Это именно тот самый id карты, который читают домофоны и турникеты на КПП.
— Каждый четвертый блок — 3, 7, 11. — это параметры сектора (предыдущих трёх блоков). Собственно, где записаны FFFF-ки — это ключи А и Б. Не зная этих ключей вы не сможете прочитать метку. Да и никто не сможет, если их поменять и забыть. Это дефолтные ключи, и если посмотреть в тот самый std файлик, о котором выше шла речь — можно их увидеть. В общем не трогаем.
— То, что находится между ключей в каждом четвертом блоке — параметры чтения/записи/доступа. Есть много конфигураций, их описание можно найти внутри этой программы, вкратце можно сделать так, чтобы зная ключ А можно было только читать, ключ Б только писать. Или зная только ключ Б вы имели полный доступ к тегу, а ключ А не нужен.

Зачем нужны остальные сектора и блоки? В них, например, хранит информацию о балансе и поездках проездные карты, или другую информацию банковская карта. Но естественно без ключей А и Б так просто вы эти сектора не прочитаете. 🙂

С этим понятно, а что насчёт записи? Можно писать любой блок в любом секторе. Кроме блока 0. Связано это с тем, что NFC в телефоне может выполнять простые команды на запись. Нулевой же блок можно записать только с помощью спец. команд, в которые nfc чип в телефоне не умеет.
Есть несколько выходов:
1. Купить тэг с rewriteable block 0, они прямо так и называются.
2. Купить Proxmark3/ACR-122u и подключить к телефону или компьютеру. Или использовать ардуинку с RFID 13.56 — мой вариант.

Когда-нибудь запилю пост, как писать нулевой блок в таких тэгах с помощью ардуинки.
Данный же пост рассказывает о возможностях NFC чипа в телефоне, так что освящать этот аспект тут не буду.

Дополнение: Android позволяет эмулировать тэги, если у вас есть root. То есть вместо эмуляции банковской карты, которая постоянно транслирует свои данные через nfc чип чтобы произвести оплату при поднесении к терминалу — можно эмулировать любой другой тэг. Тот же пропуск, ключ от домофона, проездной. Но автор статьи не имеет телефона с root доступом, т.к. достаточно ленив, да и хрен знает, может ли стороннее ПО получить NFC-tag данные вашей банковской карты и передать третьим лицам.

Исследование защищенности карты Тройка

Карта тройка

Карта Тройка представляет из себя универсальный пополняемый электронный кошелек, широко используемый в системах оплаты общественного транспорта Москвы с 2013 года.

Цель данного исследования — выяснить защищенность системы электронного кошелька от подделки баланса, оценить безопасность инфраструктуры, работающей с картой. Вся работа была выполнена без использования специальных технических средств. Использовался дешевый смартфон на платформе Android и персональный компьютер. Общее время, затраченное на исследование, составило 15 дней.

В ходе работы был успешно проведен реверс­-инжиниринг мобильного приложения «Мой проездной», что позволило получить доступ к памяти карты и изучить структуру хранения данных. Были найдены уязвимости, позволяющие выполнить подделку баланса, записанного на электронном кошельке карты Тройка. В результате чего стало возможным использование систем, поддерживающих карту, без оплаты.

Итогом исследования стала разработка приложения TroikaDumper, позволяющего эксплуатировать уязвимости системы электронного кошелька.

Внимание! Данные материалы представлены исключительно в ознакомительных целях. Подделка проездных билетов является уголовным преступлением и преследуется по закону.

Введение

Бесконтактные платежи становятся все более популярны. На текущий момент общественный транспорт в Москве полностью переведен на бесконтактную систему оплаты. Самым популярным платежным средством становится универсальная карта Тройка, которая активно интегрируется в различные системы помимо общественного транспорта. Картой уже можно оплатить билет в московский зоопарк, планетарий, каток, арендовать велосипед и прочее. Недавно Тройка была интегрирована в SIM-карты всех мобильных операторов города — услуга Мобильный билет. Очевидно, что распространение карты будет только увеличиваться. Транспортная сеть города обслуживает территорию с населением свыше 20 млн человек и обеспечивает перевозку более 350 млн пассажиров в месяц. В свете этого становится важным вопрос защищенности карты.

Целью данного исследования было выяснить насколько защищена карта от подделки баланса электронного кошелька, изучить принцип работы карты. Проверить защищенность инфраструктуры работающей с картой Тройка.

Карта Тройка введена в эксплуатацию в 2013 году. Представляет из себя универсальный пополняемый электронный кошелек. Согласно сайту troika.mos.ru, продано более 7 миллионов карт.

Поставщиком чипов для карты Тройка является (являлась?) компания NXP. Согласно пресс-релизу компании NXP, чипы выполнены по технологии MIFARE Plus. На данный момент сайт компании NXP более не доступен на русском языке и оригинал пресс-релиза удален.

карта тройка

    Чип Mifare Plus в режиме совместимости с Mifare Classic (SL1)

Несмотря на то, что спецификация технологии Mifare Plus недоступна публично, известно что данные чипы могут работать в нескольких режимах. Карта Тройка работает в режиме совместимости с устаревшими чипами Mifare Classic (SL1). Спецификация на данную технологию доступна публично. При этом чип Mifare Plus избавлен от известных уязвимостей технологии Mifare Classic. Поэтому известные оффлайн-атаки на данный чип не применимы.

Система Описание
Московское метро Стоимость проезда 32 рубля, можно записать билеты
Наземный транспорт Троллейбус, Автобус, Трамвай.
Стоимость проезда 31 рубль.
Пригородные поезда Стоимость зависит от дальности поездки. Можно записать абонементы.
Аэроэкспресс 450 рублей
Прокат велосипедов Стоимость не уточнялась
Московский зоопарк 500 рублей
Планетарий 450 рублей
Каток в парке горького Стоимость не уточнялась

Возможные цели атаки

Был проведен обзор инфраструктуры, работающей с картой Тройка, для установления наиболее привлекательных целей для атаки. Рассмотрены системы, позволяющие производить запись и считывание баланса электронного кошелька. Из основных критериев оценки была доступность для изучения без риска быть задержанным, простота и низкая стоимость.
Требовалось найти наиболее простую цель для проведения атаки, не требующую использования специальных технических средств и дорогостоящего оборудования.

Турникеты в метро

Турникет метро


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

Потенциальный вектор атаки: проникновение в сеть, MitM.
_
_
_
_
_
_

Валидаторы в наземном транспорте

Валидатор в наземном транспорте

Предположительно, работают локально, без подключения к сети. Поэтому должны содержать в памяти все необходимые данные для выполнения записи баланса на карту. Электронная часть может быть отсоединена с помощью замка снизу. Замечено, что водитель автобуса в конце рабочего дня отсоединяет валидаторы.

Потенциальный вектор атаки: физическое извлечение прошивки и данных из памяти устройства.
_
_
_
_
_
_

Валидаторы в метро

Валидатор в метро

Служат для проверки состояния проездных билетов и записи баланса на электронный кошелек карты Тройка. Подключены к сети. Предположительно, работают на базе x86-компьютера и операционной системы Windows.

Потенциальный вектор атаки: проникновение во внутреннюю сеть, эксплуатация уязвимостей операционной системы.
_
_
_
_
_

Автоматы продажи билетов метро

Автомат продажи билетов метро

Служат для продажи проездных билетов и пополнения электронного кошелька карты Тройка. Возможна оплата наличными и кредитными картами с помощью систем PayPass/PayWave.
Работают на базе x86 компьютера под управлением операционной системы Windows. В момент сбоя управляющей программы можно видеть интерфейс операционной системы и служебные программы.
Подключены к сети по технологии Ethernet, замечен UTP кабель, идущий к автомату.

Потенциальный вектор атаки: проникновение во внутреннюю сеть, эксплуатация уязвимостей операционной системы.
_

Приложения для смартфонов

В Google Play Market было найдено несколько приложений, позволяющих работать с электронным кошельком карты Тройка. Наиболее популярным по числу установок является приложение «Мой проездной», позволяющее напрямую пополнять карту с помощью смартфона с функцией NFC. Это означает, что приложение содержит данные, позволяющие производить запись в память карты.

Потенциальный вектор атаки: реверс-инжиниринг приложения.
_
_
_
_

Приложение «Мой проездной»

Из всех рассмотренных целей было решено остановиться на реверс-инжиниринге приложения «Мой проездной», как на более простом и безопасном варианте. Для этого достаточно было приобрести смартфон на платформе Android с поддержкой функции NFC. Выбор данной цели обусловлен еще и тем, что для исследования не требовалось иметь доступ к объектам общественного транспорта, и все операции по поиску уязвимостей можно было произвести не выходя из дома.

Приложение «Мой проездной» предназначено для самостоятельного пополнения карты Тройка. Работает на смартфонах с операционной системой Android и функцией NFC. Приложение бесплатное и доступно для загрузки через Google Play Market (каталог приложений Android). Так как приложение позволяет производить непосредственную запись баланса на карту, очевидно, что оно содержит ключи для чтения и записи. Далее будут описаны шаги реверс-инжиниринга приложения для получения требуемых данных.

Загрузка APK-архива

Для изучения кода необходимо получить приложение в виде установочного архива APK (Android application package). Проще всего это сделать, используя один из многочисленных онлайн-сервисов для загрузки APK, например apkpure.com. С помощью данного сервиса можно загрузить любые приложения из Google Play Market на компьютер.

image

Декомпиляция приложения

APK-файл приложения Android является архивом, внутри которого находятся файлы ресурсов, конфигурации, графика и другие мультимедиа данные, а также файл classes.dex, который является скомпилированным кодом приложения.
С помощью утилиты ibotpeaches.github.io/Apktool/ APK-файл может быть распакован. Вместе с этим файл classes.dex будет разложен на множество файлов формата *.smali.

Smali — это формат исходных текстов для Dalvik, виртуальной машины Android. Это низкоуровневый язык, язык ассемблера Dalvik. Файлы будут иметь порядковые имена вроде a.smali, b.smali, и т.д., внутри них объявления классов, методов, и инструкции виртуальной машины. Структура папок будет развернута в соответствии с названием пакетов классов.

image

Таким образом было получено развернутое по составляющим и готовое для анализа и модификации приложение. Однако анализировать smali-код довольно сложно. Во-первых, код содержит большое количество вспомогательных инструкций и не удобен для чтения человеком. Во-вторых, не существует доступных инструментов для работы с кодом (подсветка синтаксиса, рефакторинг, навигация по классам и методам).

Намного удобнее было бы использовать для анализа высокоуровневый исходный код на языке Java, далее будет рассмотрен процесс его получения из того же APK-файла.

Конвертация Dalvik Executable (dex) в Java Archive (jar)

Для анализа кода приложения необходимо сконвертировать .dex файлы, полученные из APK архива, в .jar файлы, которые далее могут быть декомпилированы в исходные тексты на языке Java. Это можно сделать с помощью программы dex2jar github.com/pxb1988/dex2jar. Как очевидно из названия, она конвертирует .dex файлы в формат .jar. Поскольку конвертируется только код, без ресурсов, конфигурационных и медиафайлов, .jar-файл на выходе обычно будет меньше по размеру, чем исходный APK.

image

Декомпиляция jar в исходные тексты Java

Полученные jar файлы теперь можно декомпилировать в исходные тексты языка Java.
Для этого можно использовать любой из доступных Java декомпиляторов, например JD-GUI

image

Анализ исходного кода

Полученные с помощью Java Decompiler исходные тексты могут быть загружены в любую IDE (Integrated Development Environment) для более удобного изучения. Например, Android Studio.

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

image

Беглый анализ исходных текстов позволил найти основные классы и методы работы приложения: регистрацию, работу с кредитной картой, запрос баланса и прочее. Однако ключей для доступа к карте Тройка в исходных текстах обнаружено не было. Было решено не тратить время на подробное изучение исходных текстов, а вместо этого исследовать данные, которыми обменивается приложение с сервером во время работы.

image

классы в коде приложения «Мой проездной»

Отключение проверки TLS-сертификата

Во время работы приложение «Мой проездной» устанавливает соединение с сервером bmmobile.bm.ru. Для защиты от прослушивания и модификации данных все передаваемые данные между приложением и сервером зашифрованы с помощью протокола TLS. Для проверки подлинности ключа сервера используются TLS сертификаты.

В приложение «Мой проездной» встроена проверка отпечатка сертификата для предотвращения подмены сертификата и прослушивания передаваемых данных на сетевом уровне. Так называемый Certificate Pinning.

image

функция проверки отпечатка TLS сертификата

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

image

цепочка сертификатов и отпечаток сертификата bmmobile.bm.ru

Для перехвата данных необходимо было подменить сертификат, используемый для установления зашифрованного соединения. Наиболее простым решением этой задачи оказалось отключение проверки TLS сертификата. Вернее, модификация условия проверяющего отпечаток таким образом, чтобы любой сертификат проходил проверку успешно.
Функция проверки отпечатка циклично проверяет отпечаток каждого сертификата в цепочке сертификатов, и в случае, если найдено совпадение, проверка завершается успешно. Таким образом, в цепочке всегда присутствуют сертификаты, отпечатки которых не совпадают с заданным в коде.

image

цикл проверки отпечатка TLS сертификатов

Для обхода данной проверки достаточно модифицировать условный оператор сравнения отпечатка в smali-файле, заменив if-eqz на if-neq, что означает обратное условие «не равно».
В результате проверка проходит успешно для любого сертификата, как поддельного, так и оригинального, достаточно чтобы в цепочке сертификатов присутствовал хотя бы один сертификат с отличным от заданного отпечатком.
Примечательно, что это единственная модификация кода, которая потребовалась для отключения защиты от подделки сертификата.

image

изменение условного оператора в цикле проверки отпечатка сертификата

Сборка модифицированного приложения

Чтобы применить внесенные в исходный код изменения, необходимо скомпилировать APK.
С помощью утилиты apktool можно собрать распакованный APK архив обратно.

image

сборка APK из исходных текстов

Подписание APK

APK-файлы имеют подпись, которая позволяет убедиться, что файл был корректно загружен и выпущен конкретным разработчиком. Без подписи APK-файл установить не получится, но можно использовать самоподписанный сертификат (в этом случае нужно включить опцию “установка из недоверенных источников” в настройках телефона). В результате подписи будет получен APK-файл, готовый для установки на смартфон.

image

создание сертификата для подписи

image

подписание APK-файла

Перехват трафика приложения

Перехват защищенного трафика выполняется методом проксирования SSL-подключений с подменой сертификата сервера. Для этого существуют инструменты, вроде Mitmproxy или Fiddler, позволяющие выполнять подмену сертификата и запись расшифрованных данных автоматически. В данном случае, mitmproxy запущен на сервере, к которому по WiFi подключен смартфон с установленным приложением «Мой проездной». В приложении выполнена аутентификация по PIN-коду и произведена проверка баланса на карте Тройка. Все передаваемые в этот момент данные между сервером и приложением были записаны и проанализированы.

Аутентификация

В теле запроса передается номер телефона, PIN-код и информация об устройстве.

▼ Request Headers Request URL: https://bmmobile.bm.ru/bm/3.3/troyka/authenticate.do Method: POST Accept-Encoding: gzip, deflate Content-Type: application/x-www-form-urlencoded Content-Length: 192 Host: bmmobile.bm.ru Connection: Keep-Alive User-Agent: Apache-HttpClient/UNAVAILABLE (java 1.4) ▼ Request Body username=9853828069 password=12345 imei=null uniqueDeviceId=81f4d23b3a1973da deviceModel=samsung+SM-G900 timeZone=%2B3 osType=Android osVersion=20 appVersion=2.0.4 isMobile=true passwordType=PIN 

В ответе сервера содержится ID пользователя и сессионный ключ.

Получение ключей от карты Тройка

В запросе на чтение карты Тройка передается сессионный ключ, полученный в момент аутентификации, и серийный номер карты в формате base64.

▼ Request Headers Request URL: https://bmmobile.bm.ru/bm/3.3/troyka/providers.do Method: POST Accept-Encoding: gzip, deflate Content-Type: Content-Type: application/x-www-form-urlencoded Host: bmmobile.bm.ru User-Agent: Apache-HttpClient/UNAVAILABLE (java 1.4) ▼ Request Body sessionId=3A2F134FA60F26180AF6A7ABD35A20F4 serial=MTIzNA== isMobile=true 

В ответе содержатся ключи A и B от секторов 2,4,7,8 в формате base64.
Примечательно, что здесь так же присутствуют ключи B, которые используются для записи данных на карту, хотя для запроса баланса достаточно было бы ключей А, разрешающих только чтение секторов памяти.

< "linkId":"F52D771F3048AFA411AF2A42198D43C2", "rpcSectors":[ < "number":4, "keys":[ < "keyId":1, "type":"B", "value":"K38yU/rF">, < "keyId":2, "type":"A", "value":"cwaPEYwT">]>, < "number":7, "keys":[ < "keyId":1, "type":"B", "value":"DxxjAT26">]>, < "number":8, "keys":[ < "keyId":1, "type":"B", "value":"41FzSUqB">]>], "rpcIsDown":false, "cppkSectors":[ < "number":2, "keys":[ < "type":"A", "value":"KqBe0YVv">, < "type":"A", "value":"KrqVGfV0">]>], "cppkIsDown":false, "errorCode":0> 
Запрос баланса

После получения ключей с сервера, происходит считывание необходимых секторов памяти с карты и отправка содержимого памяти на сервер. В данном примере видны сектора 0,4,7,8.

 <"sector":[ <"blocks":[ < "number":0, "data":"3q26usD/7hD6ytp6EEgJEQ==\n">, < "number":1, "data":"AAAAAAAAAAAAAAAAAAAAAA==\n">, < "number":2, "data":"AAAAAAAAAAAAAAAAAAAAAA==\n">], "number":4, "keyId":1>, < "blocks":[ < "number":0, "data":"wP7auspfgjOvA0QiPV0tzw==\n">, < "number":1, "data":"AAAAAAAAAAAAAAAAAAAAAA==\n">, < "number":2, "data":"AAAAAAAAAAAAAAAAAAAAAA==\n">], "number":7, "keyId":1>, < "blocks":[ < "number":0, "data":"3q26usD/7hD6ytp6EEgJEQ==\n">, < "number":1, "data":"wP7auspfgjOvA0QiPV0tzw==\n">, < "number":2, "data":"wP7auspfgjOvA0QiPV0tzw==\n">], "number":8, "keyId":1>]> 

В ответе содержится информация о билетах, записанных на карте и баланс электронного кошелька.

 < "providerCode":"1", "ticketCode":"3", "ticketName":"Электронный кошелек", "ticketNo":"8553535", "statusCode":"0", "currentServices":[ ], "type":"TRK_EK", "topUpType":"CASH">], "availableServices":[

Итог анализа API

Из перехваченных сообщений видно, что ключи для чтения карты Тройка загружаются с сервера каждый раз во время чтения карты. Были получены ключи от секторов 2,3,4,6,7,8,15. Найдены сектора памяти, содержащие данные электронного кошелька и информацию о билетах, записанных на карте. Все эти данные получены за одну операцию считывания баланса. Платежные реквизиты в приложение добавлены не были, никаких платежных операций не производилось. Примечательно, что для операции чтения баланса с сервера загружаются одновременно A и B ключи, хотя ключи B используются для записи данных в память карты. В результате, атакующий может получить возможность записи данных на карту, выполняя только операции чтения.

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

Анализ памяти карты Тройка

Перехваченные из приложения «Мой проездной» ключи доступа к секторам карты Тройка используем для локального чтения памяти карты с помощью Android приложения MCT — Mifare Classic Tool. Приложение позволяет найти все сектора, к которым подходят перехваченные ключи, так называемый перебор по словарю.

image

данные в памяти карты в шестнадцатеричном формате

Формат данных в секторе электронного кошелька

Чтобы понять структуру хранения данных в памяти карты, была использована чистая карта, купленная в кассе, по которой не было выполнено ни одной поездки. Далее карта была пополнена 10 раз на 1 рубль через автомат. После каждого пополнения состояние памяти сохранялось. В конце все сохраненные данные были сравнены и установлено, что изменения происходят только в двух блоках 8 сектора.

image

дампы памяти восьмого сектора после пополнений на 1 рубль

Видно, что данные изменяются в первом блоке (нумерация от нуля) с 9 по 15 байт. Очевидно, что в данном месте содержится баланс электронного кошелька. Путем подбора возможных форматов хранения данных было выяснено, что значение баланса электронного кошелька хранится в области памяти от младших 4 бит 8 байта до старших 3 бит 10 байта и рассчитывается по формуле

image

Где 137B8 значение в памяти карты в шестнадцатеричном формате, а 399 сумма в рублях.
Таким образом можно рассчитать значения из предыдущей таблицы.

image

расчет баланса в секторе электронного кошелька

Номер турникета, дата и время прохода

Аналогичная методика была применена для изучения формата остальных данных в секторе. Было выполнено несколько проходов через турникеты метро и сохранено состояние памяти после каждого прохода. Проходы были выполнены с интервалом времени в 1 минуту попеременно на двух различных турникетах.

image

Путем подбора значений было установлено, что нулевой и первый байт в первом секторе хранит идентификатор последнего турникета, через который осуществлялся проход. Далее второй и третий байты содержат дату последнего прохода в виде количества дней от 1.1.1992.
Соответственно, 0x2260 = 8800, где 8800 число дней от 1.1.1992, что с учетом високосных лет приходится на дату 5 февраля 2016 и соответствует действительной дате прохода.

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

image

для расчета часов

image

и для расчета минут

Таким образом получим время 15:30, что соответствует действительному времени прохода.

На основе полученных сведений можно расшифровать данные представленные в предыдущей таблице

image

Каждая карта Тройка имеет уникальный серийный номер, отличный от UID. Этот номер нанесен на самой карте и используется для удаленного пополнения карты. Он хранится в нулевом блоке восьмого сектора с третьего байта по младшие четыре бита седьмого байта.

Несмотря на то, что все данные хранятся в открытом виде, на их расшифровку было потрачено больше всего времени. При этом некоторые данные остались нерасшифрованными.
Предположительно, последние пять байт в первом блоке восьмого сектора содержат криптографическую подпись (т.н. имитовставка, MAC), которая генерируется с использованием приватного ключа в памяти турникета. Данная подпись, вероятно, служит для верификации подлинности данных, записанных в секторе электронного кошелька. Однако попыток взлома алгоритма имитовставки не производилось.

Запись данных на карту Тройка

Права доступа к секторам карт типа Mifare определяются битами доступа в третьем блоке каждого сектора. Биты доступа, установленные в восьмом секторе, разрешают чтение сектора ключом А и запись ключом B. Полученные из приложения «Мой проездной» ключи, позволяют выполнить запись любых данные в сектор электронного кошелька.

Атака повторного воспроизведения

В результате экспериментов было установлено, что сектор памяти, хранящий информацию о балансе электронного кошелька, содержит криптографическую подпись для подтверждения подлинности данных, так называемую имитовставку. Данный механизм служит для защиты данных от подделки. Подпись обновляется каждый раз в момент изменения баланса электронного кошелька. Это может быть операция списания при проходе через турникет, либо операция пополнения кошелька через терминал или приложение «Мой проездной».
Все устройства, работающие с балансом электронного кошелька (турникеты, терминал), проверяют достоверность подписи, и, в случае несоответствия подписи, возвращают ошибку “карта неисправна”.
Установлено, что подпись формируется на основе уникального идентификационного номера карты (UID), поэтому клонирование сектора памяти электронного кошелька из одной карты на другую с отличным UID, всегда дает недействительную подпись.

Несмотря на то, что области памяти электронного кошелька защищены с помощью имитовставки, система оказалась уязвима для атаки повторного воспроизведения.
Было сохранено состояние памяти сектора электронного кошелька до прохода через турникет, после чего выполнен проход и операция списания 31 рубля с баланса карты. После чего состояние памяти карты было возвращено к исходному состоянию. В результате, на карте была восстановлена сумма баланса до прохода через турникет. Данную операцию удалось повторить несколько раз. Из этого следует вывод, что система не защищена от подобного вида атак.

image

шаги атаки повторного воспроизведения

Для установления возможности реальной эксплуатации уязвимости было выполнено продолжительное тестирование атаки повторного воспроизведения на инфраструктуре общественного транспорта Москвы.
Первым был протестирован наземный транспорт: троллейбусы, автобусы, трамваи. Электронный кошелек был пополнен единожды на сумму 50 рублей и все проходы через турникеты были выполнены с помощью атаки повторного воспроизведения.
В течение пяти дней было совершено 57 поездок в наземном транспорте на общую сумму 1767 рублей. После чего карта была возвращена в кассу метрополитена и был получен возврат залоговой суммы в 50 рублей.

Для тестирования систем метрополитена была куплена новая карта и пополнена на 50 рублей. Все проходы через турникеты были выполнены с помощью атаки повторного воспроизведения. Было выполнено 12 поездок в течение 2 дней на общую сумму 384 рубля. На третий день карта была заблокирована на всех турникетах метро и наземного транспорта. После полного восстановления состояния памяти карты до состояния на момент приобретения, карта продолжила работать в наземном транспорте, но блокировалась при проходе в метро.
Из этого следует, что турникеты в метро имеют защиту от данного вида атак, однако срабатывает она с задержкой в несколько дней.

Обход блокировки карты

Экспериментально были найдены способы избегать блокировки карты при использовании атаки повторного воспроизведения. Основные факторы срабатывания блокировки:

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

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

Приложение TroikaDumper

TroikaDumper

В рамках данного исследования, для удобства эксплуатации атаки повторного воспроизведения было создано приложение TroikaDumper. Оно позволяет локально (без подключения к интернету) просматривать записанные в памяти карты данные, такие как: баланс электронного кошелька, время последнего прохода через турникет, идентификатор последнего турникета, имитовставку, серийный номер карты Тройка, идентификационный номер карты (UID).
Приложение позволяет сохранять состояние памяти и записывать его на карту.
Приложение доступно в исходных текстах github.com/gshevtsov/TroikaDumper и в скомпилированном виде TroikaDumper.apk. Для работы нужен смартфон на платформе Android с NFC модулем производства NXP.
_
_

image

интерфейс приложения TroikaDumper

Заключение

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

Относительно легко был осуществлен реверс-инжиниринг приложения «Мой проездной», что позволило обойтись без взлома физических систем транспортной инфраструктуры.

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

Итогом исследования стало написание приложения TroikaDumper, позволяющее легко эксплуатировать уязвимости в системе карты Тройка, имея смартфон с поддержкой функции NFC. Приложение просто в использовании и может быть использовано массово.

Для исправления найденных уязвимостей необходимо усовершенствование формата хранения данных в памяти карты и обновление программного обеспечения всех систем, работающих с картой.

  • Информационная безопасность
  • Разработка под Android

Все хитрости карты «Тройка»

Favorite

В закладки

Все хитрости карты «Тройка»

Каждый день сотни тысяч москвичей прикладывают к терминалу карту. Но не банковскую. Это «Тройка» – главная транспортная карта Москвы, без которой жить и передвигаться в городе неудобно и как минимум невыгодно.

Рассказываем, как она устроена, и что с ней можно сделать.

Зачем нужна карта «Тройка»

Карта «Тройка» – это универсальный проездной для московского общественного транспорта. На неё можно записать любой бумажный билет или билет «Кошелек».

«Тройка» позволяет прокатиться на наземном пассажирском транспорте и метро, поездах «Аэроэкспресс», пригородных электричках, канатной дороге на Воробьёвых горах, велосипедах проката «Велобайк».

Кроме того, ей можно пользоваться для оплаты прохода к достопримечательностям, в зоопарк, на каток.

Что внутри карты

Так выглядит самая главная часть карты. Остальное – просто прессованный картон.

Основа «Тройки» (карты, брелока, кольца) — чип NFC (Near Field Communication). В элемент размером 2х2 мм встроены модуль флеш-памяти, радиомодуль и система беспроводного питания. К чипу присоединена антенна из тонкой медной проволоки.

Чип с антенной работает на частоте 13,56 МГц. Питание он получает посредством радиоволн. Активная часть, которая генерирует импульсы, находится в турникете, валидаторе пополнений или смартфоне с NFC.

Для «Тройки» производители выбрали NFC-чипы Mifare Plus производства компании NXP. Они совместимы со старым стандартом Mifare Classic (SL1) и стоят от 2 рублей за штуку, если брать оптом.

Технологию MasterCard PayPass эти чипы не поддерживают. Поэтому, к примеру, пополнить «Тройку» в банковском терминале невозможно.

Но есть нюанс. В социальные карты «Банка Москвы» встроены функции «Тройки». Эти карты с чипами стандарта EMV можно пополнить в банковских терминалах с PayPass.

Какие бывают «Тройки»

Транспортные карты выпускаются в виде карт, браслетов, брелоков и колец.

Карты

Рисунки разные, но основной – синий.

Карты «Тройка» есть с разным рисунком. Стоят 50 рублей.

На редкие карты идёт настоящая охота. К примеру, карту с цифрой «10 000 000», которая символизировала количество выпущенных «Троек», хотели продать за 1,8 млн рублей, но покупателей не нашлось. Впрочем, часто можно купить редкую карту с рук за 5-10 тыс. рублей.

Все остальные варианты считаются сувенирной продукцией, но функции свои исправно выполняют. Продаются браслеты, брелоки и кольца в сувенирных киосках.

Брелоки

Удобная вещь с хорошей дальностью срабатывания. И потерять тяжелее.

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

Фишка: брелок можно сточить и положить под чехол iPhone, а затем удобно «платить смартфоном» на турникетах. Подробнее – в нашей статье.

Браслеты

Чем-то похожи на браслеты от Apple Watch. Жаль, что несовместимы.

Браслеты «Тройка» впервые показали 10 сентября 2017 года. Тогда волонтёры раздавали их бесплатно в честь дня города. Позднее браслеты стали продавать по 450 рублей.

Кольца

Самый странный аксессуар, а цену вообще ничем не объяснить.

Кольца «Тройка» – самый странный вариант. Обойдётся в 2200 рублей. Водонепроницаемое: выдерживает до 20 атмосфер.

Увы, сделано фактически из пластика. Турникеты реагируют на него медленно. Есть жалобы, что в автобусах не срабатывает с первого раза.

Сколько стоит карта «Тройка»

«Тройка» недорогая, и её можно теоретически вернуть, получив всю стоимость назад.

Карта обойдётся в 50 рублей. Но это не цена, а залог за пользование.

Если срочно нужны будут деньги, вы можете вернуть «Тройку» в кассу и получить свои 50 рублей обратно. И деньги с баланса «Кошелька» тоже. Минус: формально деньги возвращают в течение месяца.

«Тройка» практически вечная, действует 5 лет с момента последнего использования. Даже если редко ездите в метро, она вам пригодится.

Принцип работы и тарифы

В тарифах легко запутаться, это факт.

На карту «Тройка» можно записывать билеты трех тарифов: «Единый» и «90 минут» и «ТАТ». Также есть тариф «Кошелек»: это скорее баланс, с которого могут списываться разные суммы, в зависимости от вида поездки.

«Кошелек»

Начнем с самого простого. «Кошелек» можно пополнить, а затем тратить деньги на проезд. За поездку на метро, монорельсе или наземном транспорте спишется 36 рублей (со 2 января – уже 38 рублей!).

За билет «90 минут» (один проход в метро + любое количество пересадок на трамвае, автобусе, троллейбусе в течение 90 минут) – 56 рублей (58 рублей со 2 января).

«Единый»

Здесь есть два варианта: на количество поездок или на количество дней. Чтобы не запутаться, приводим сразу новые тарифы, которые будут действовать со 2 января.

На карту можно записать 1, 2 или 60 поездок (билеты на 20 и 40 поездок больше продавать не будут). После покупки билетов на 1 и 2 поездки есть 5 дней на их активацию, на 60 поездок – 90 дней (пока не закончатся поездки). Оптом дешевле:

Можно также записать билеты, которые действуют определенное время (количество поездок может быть любым). Есть варианты на разное количество дней, а также на календарный месяц. Билет на 7 дней из сетки убрали. Если брать «Единый» на год и ездить каждый день, выходит совсем дешево:

Красное – «Зона А», серое – «Зона Б».

Билеты на 1 и 3 дня нужно активировать не позднее 10 дней с момента продажи. Остальные билеты начинают действовать сразу после покупки.

«ТАТ»

Если вы редко пользуетесь метро и монорельсом, имеет смысл купить билет «ТАТ» на трамвай, автобус и троллейбус. Билеты будут продаваться 1 поездку или на 30 дней, вариант на 60 поездок отменяют.

Цена на одну поездку разная в зонах А и Б:

  • Зона А: «старая Москва» в пределах МКАД и Новомосковский административный округ. Одна поездка обойдётся в 38 рублей
  • Зона Б: Троицкий и Зеленоградский административные округа. Одна поездка здесь стоит 45 рублей

Безлимитный билет на 30 дней стоит 1194 рубля. Если ездить два раза в день, то одна поездка в среднем обойдётся в 20 рублей.

«90 минут»

По билету «90 минут» вы можете один раз пройти через турникет метро или монорельса, а также совершить любое количество поездок на трамвае, автобусе и троллейбусе за 90 минут.

Из метро на МЦК можно выйти, дополнительно деньги не спишутся. Одна поездка стоит 59 рублей.

Как пополнить карту «Тройка»

Пример терминала пополнения «Тройки» в метро.

Пополнить карту «Тройка» можно без комиссии на сумму от 1 до 3000 рублей.

Кассы и терминалы: на станциях метро, в «Аэроэкспрессе», банкоматах МКБ, «Элекснет», EuroPlat, «Мегафон», Velobike.

В терминалах и кассах метро записывают на карту билеты «Единый» и «90 минут», а билеты «ТАТ» – только в терминалах.

Абонементы на электрички записывают в кассах станций пригородного сообщения, в билетных автоматах на вокзалах, в терминалах «Электричка» и РЖД.

Проще всего пополнять «Тройку» в банковских приложениях.

Cо смартфона: в приложении «Метро Москвы», на официальном сайте Тройки, в приложениях банков (Тинькофф, Сбербанк, Альфа-Банк и другие) и платёжных систем («Портмоне», Qiwi, «Яндекс.Денгьги» и другие).

Важно. При пополнении с iPhone нужно активировать операцию с помощью жёлтого валидатора в турникетах метро. NFC-чипы производства NXP в iPhone конфликтуют с чипами из карты «Тройка», поэтому вы не сможете пополнить её напрямую.

А вот на Android-смартфонах пополнение можно совершать встроенным NFC, приложив карту к задней панели девайса.

Как платить «Тройкой» со смартфона

Если у вас Android-смартфон с NFC, вы можете не носить с собой карту «Тройка», браслеты или брелоки, а записать данные прямо в гаджет. Для этого есть сервис Мобильный билет».

Что нужно сделать:

1. Поменять у оператора свою SIM-карту на совместимую с сервисом — она будет с NFC-чипом.

2. После того, как вы вставите карту и выйдете в мобильную сеть, на смартфон придет SMS от «Мобильного билета».

3. Отправьте в ответ «1», и с вашего баланса на баланс сервиса спишутся 150 рублей. Их можно будет использовать для оплаты проезда.

4. Сервис автоматически пополняет свой баланс с баланса мобильного, когда на проезд остаётся меньше 90 рублей. Все операции подтверждаются SMS с номера 3210.

Если отправить «0» на номер 3210 и выключить «Мобильный билет» через SIM-меню, сервис деактивируется. Но деньги с баланса никуда не денутся — как только активируете сервис снова, можно будет их тратить.

Список поддерживаемых смартфонов есть здесь. iPhone в нём, понятное дело, нет, но можно « заколхозить» и ни в чем себе не отказывать.

Теоретически можно и подложить карту под чехол. Правда, срабатывать она будет редко. Но вот здесь есть лайфхак, который это исправит.

Где можно платить «Тройкой», кроме транспорта

Да, заплатить «Тройкой» можно даже в Третьяковской галерее.

Оплатить проход к достопримечательностям также можно «Тройкой». Средства спишутся с «Кошелька». Это удобно: в очереди за билетом стоять не нужно, сильно экономит время и нервы.

Список достопримечательностей внушительный — в него, к примеру, входят Третьяковская галерея в Лаврушинском переулке, и Музей «Лунариум» Московского Планетария, а также Музей советских игровых автоматов, ЦПКиО им. Горького и каток в нём, Московский зоопарк.

В парке «Зарядье» на проход на объекты и мероприятия Медиацентра, Заповедного посольства и Подземного музея при оплате картой «Тройка» дадут скидку 5%, также можно будет оплатить парковку. В «Экспериментариуме» и интерактивном музее «Живые системы» карта дает скидку 10%.

Но и минусы есть: в Третьяковке и «Лунариуме» оплатить картой «Тройка» можно только один входной билет. Так что если идёте компанией, позаботьтесь, чтобы «Тройки» были у всех.

В остальных случаях можно купить любое количество входных билетов, на которые хватит лимита «Кошелька». Не забудьте заранее его пополнить!

А ещё «Тройку» можно подарить на новый год

Это лимитированная коллекция к Новому году.

Специально к празднику метрополитен выпустил брелоки с новогодним дизайном. Стоит такой брелок 300 рублей, функции — такие же, как и у обычной карты «Тройка».

Купить брелоки можно в сувенирных витринах на стойках «Живое общение» московского метро (они работают с 8:00 до 20:00 на некоторых станциях метро) и в сувенирных магазинах на станциях «Маяковская» и «Трубная». Полезный подарок каждому по карману, пополнить можно на любую комфортную сумму.

Но стоит поторопиться! Брелоков всего 2 тыс., на всех может не хватить 🙂

Можно ли ездить по «Тройке» бесплатно?

Мы не поддерживаем любые операции по взлому «Тройки». Текст ниже размещен исключительно в информационных целях.

По сети гуляет инструкция по взлому «Тройки». Оригинал лежит здесь.

Суть в следующем: с помощью Android-смартфона с NFC-чипом производства NXP и приложения TroikaDumper, созданного Ильёй Шевцовым, можно получить доступ к памяти карты и изменить данные в ней.

Разработчик выяснил, что данные в памяти карты хранятся в незашифрованном виде, и научился подделывать баланс.

Но это чревато: если пополняете карту больше, чем на 100 рублей, система обнаруживает подделку и блокирует «Тройку». Да и вообще это уголовная статья за мошенничество в сфере компьютерной информации.

P.S. Карту «Тройка» даже встраивали под кожу

Куда встроен чип карты «Тройка», не имеет значения. Если антенна работает стабильно и соблюдается небольшое расстояние между чипом и считыватель, всё ок.

Инженер Влад Зайцев, к примеру, решил вшить чип от карты «Тройка» в руку. А заодно и настроить дверной замок в офисе на открытие с помощью этого чипа.

Карту Зайцев растворил в ацетоне, чтобы аккуратно извлечь чип. Затем он залил компонент биосовместимым силиконом и вшил под кожу на тыльной стороне кисти.

Но что-то пошло не так. Зайцев неправильно рассчитал параметры антенны, и карта срабатывала не на всех станциях.

В итоге инженер вынул «Тройку» из-под кожи. А на её место имплантировал чип от банковской карты — дескать, так полезнее и удобнее.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

https://czena.narkolog-na-dom-voronezh-11.ru/