LIMB
Вход Регистрация

тема

Ломаем чужой шкафчик и изучаем как работает Русский СКУД, RFID.

adrenaline · · 2 ответов · 938 просмотров

Не удалось прогрузить медиа


Всем привет! Спустя длительное время своего отсутствия на LIMB (учеба, ирл дела, отдых, немножко дел в интернете) я вспомнил что быть хацкером - не только взламывать чужие бд и админки сайтов, попутно мониторя что вытащил твой стиллак у бедных американцев. В этой статье мы разберем:

Что такое RFID, его частоты и где его используют?
Открываем чужой шкафчик, словно дверь домой
Сравниваем железки для работы с RFID и раскуриваем возможные векторы атак, рассматриваем уже ныне существующие

Сначала база, потом "Вау!!!" и размышления куда можно еще потыкать девайсом :)​


RFID и все-все-все

RFID
 (англ. Radio Frequency IDentification, радиочастотная идентификация) — способ автоматической идентификации объектов, в котором посредством радиосигналов считываются или записываются данные, хранящиеся в так называемых транспондерах, или RFID-метках.  А если по простому, то RFID - способ прочитать катушку с данными и с ней повзаимодействовать. Возьмем для примера вашу банковскую карту. Когда она лежит у вас в кошельке - на нее не воздействует никакая магнитная/радиоволна, значит электричества на ней нет, значит и никаких вычислений тоже. Но когда вы подносите карточку к терминалу, терминал заставляет карточку работать, читает с нее данные (одноразовый платежный токен), проводит транзу и.. все? Да, на банковскую карту уже давно ничего не пишется, ее задача лишь генерировать токен и отдавать свои данные (номер + дата действия). Но если мы возьмем пропуск в фитнес-зал, то тут уже целый пакет взаимодействий. Вы проходите через турникет - система читает метку, спрашивает систему можно ли вам пройти и делает отметку что вы зашли (если вы попытаетесь войти не приложив метку на выходе - ничего не получится, защита от абуза) - прикладываете метку к шкафчику и тут два варианта развития событий. Если зал мега супер дупер премиум, то скорее всего каждый замок шкафчика привязан к интернету и выступает лишь охранником, которому свыше говорят пропускать или нет, Но! в большинстве случаев замков куча, они "тупые" и могут лишь читать/записывать вашу метку. Моя статья будет про русскую СКУД (Система контроля и управления доступом) - pocketkey. Сама скуд реализована скучно - вход на турникете завязан полностью на системе, в метку ничего не пишется, поэтому войти вы сможете даже по копии, просто сэмулировав ее, там ничего интересного нет, потому что вход проверяется по ID метки. Но вот замки на шкафчиках - отдельный страх любого ИБшника.

Какие типы RFID есть?
Сам RFID имеет кучу частот, самые популярные 13,56 Мгц и 125 Кгц.
На 13,56 МГц работают все современные карты, стандарт имеет больше устойчивости к копированию и больше защищен, но дороже.
На 125 КГц работает все, что не жалко. Пропуски, чипы копеечные, в общем все то, чему не надо много памяти. Легко скопировать, часто можно встретить в отелях.
Узнать какой тип у вас карты можно просто просветив ее, у 13,56 МГц карт - катушка по всему периметру карты, у 125 КГц - катушка кругая.

Медиа заблокировано
Этот домен не входит в список разрешённых для медиа.
Формат: изображения / GIFДомен: forum.LIMB.cc
Разрешённые домены
  • imgur.com
  • ru.imgbb.com
  • prnt.sc
  • imgbb.com
  • ibb.co
  • i.imgur.com
  • i.ibb.co
  • darklimb.vip
  • i.pinimg.com
  • img3.teletype.in
  • img4.teletype.in
  • teletype.in
  • pikabu.ru
  • cs15.pikabu.ru
  • img2.teletype.in
  • lh7-rt.googleusercontent.com
  • duty-files.cc
  • blogger.googleusercontent.com


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


Открываем чужой шкафчик, словно дверь домой

Ну штош, приступим! Для начала нам нужно снять дамп с пустого браслета ака метки, делал я это с помощью Flipper Zero. Почему флиппер? На нем все работает из коробки, ну и просто он у меня есть :)
Дампим метку (можете сделать дамп своей метки через NFC Tools), открываем и видит следующую картину:
Спойлер: Дамп метки
Block 0: F1 6F 28 12 A4 08 04 00 62 63 DC 69 AB 48 68 69

Block 1: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Block 2: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Block 3: FF FF FF FF FF FF FF 07 80 69 FF FF FF FF FF FF

Block 4: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Block 5: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Block 6: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Block 7: FF FF FF FF FF FF FF 07 80 69 FF FF FF FF FF FF

Block 8: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Block 9: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Block 10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Block 11: FF FF FF FF FF FF FF 07 80 69 FF FF FF FF FF FF

Block 12: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Block 13: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Block 14: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Block 15: FF FF FF FF FF FF FF 07 80 69 FF FF FF FF FF FF

Block 16: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Block 17: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Block 18: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Block 19: FF FF FF FF FF FF FF 07 80 69 FF FF FF FF FF FF

Block 20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Block 21: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Block 22: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Block 23: FF FF FF FF FF FF FF 07 80 69 FF FF FF FF FF FF

Block 24: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Block 25: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Block 26: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Block 27: FF FF FF FF FF FF FF 07 80 69 FF FF FF FF FF FF

Block 28: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Block 29: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Block 30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Block 31: FF FF FF FF FF FF FF 07 80 69 FF FF FF FF FF FF

Block 32: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Block 33: 00 00 00 00 1C 00 00 00 48 4E 31 38 AF 06 00 00

Block 34: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Block 35: 0B 8E 34 DA 29 9F FF 07 80 69 FF FF FF FF FF FF

Block 36: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Block 37: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Block 38: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Block 39: FF FF FF FF FF FF FF 07 80 69 FF FF FF FF FF FF

Block 40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Block 41: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Block 42: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Block 43: FF FF FF FF FF FF FF 07 80 69 FF FF FF FF FF FF

Block 44: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Block 45: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Block 46: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Block 47: 0B 8E 34 DA 29 9F FF 07 80 69 FF FF FF FF FF FF

Block 48: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Block 49: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Block 50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Block 51: FF FF FF FF FF FF FF 07 80 69 FF FF FF FF FF FF

Block 52: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Block 53: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Block 54: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Block 55: FF FF FF FF FF FF FF 07 80 69 FF FF FF FF FF FF

Block 56: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Block 57: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Block 58: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Block 59: FF FF FF FF FF FF FF 07 80 69 FF FF FF FF FF FF

Block 60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Block 61: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Block 62: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Block 63: 0B 8E 34 DA 29 9F FF 07 80 69 FF FF FF FF FF FF

Куча пустых блоков, в первом блоке 4 первых байта - это UID карты, короче manufacture data, оно нас не интересует. Система pocketkey работает очень примитивно - видит UID, проверяет UID и разрешает/запрещает проход, там все завязано на сети. Но где же блок шкафчика, который должен отвечать за доступ?? Неужели мы ошиблись и шкафчики запоминают UID карты, что делает взлом невозможным...? Нет! ПЗУ замков либо слишком скудное, либо разработчики решили что это безопаснее, потому что если вдруг замок сядет/уйдет в ребут/космическая частица залетит в ПЗУ или не дай бог ОЗУ (Привет из Бельгии!) то клиент не сможет открыть шкаф, ведь данные о клиенте лежат не у клиента, а у замка. Посмотрите внимательно на 33 блок. Мы увидим вот это:

00 00 00 00 1C 00 00 00 48 4E 31 38 AF 06 00 00
​
Если вас в школе учили переводить из 16 с/с в 10 с/с, то вы заметите что байт 1C в 10с/с означает 28, а это как раз мой прошлый шкафчик, который я открывал. Замок не пишет нули после открытия (видимо для сохранения ресурса перезаписи у метки, хотя в этом и смысла особо нет, а в МК любой байт памяти дорог), а просто оставляет значение. Окей, мы нашли указатель на наш шкаф, а где блокировка? Неужели замок просто видит свой номер и открывается? Давайте разберем строчку:

1C (5 байт) - номер шкафа в 16 с/с
48 4E 31 - служебная инфа, в инете о ней инфы ноль, поэтому будем считать ее как идентификатор что метка не из другой системы/клуба (потому что на всех метках из клуба что я читал - байты те же)
38 - индикатор состояния, в данном случае 38 - метка свободна, 39 - метка занята (замок меняет значения, чтобы можно было узнать номер шкафа на стенде, если ты вдруг забыл, ну и на турникете в случае чего показать)
AF 06 - CRC, просто контрольная сумма.

Как же нам открыть чужой шкафчик?! Все мега просто. Для этого мы берем нужный номер шкафа, пускай это будет 27, переводим в 16 с/с, получаем 1B, 12 байт (38) оставляем, его менять будет замок (помним про состояние открыто/закрыто), 4E 31 38 - служебная инфа, она у вас будет своя, а вот AF 06 (13 и 14 байты) - CRC сумма. Поскольку шанс нарватся на карманника или любителя обнюхивать чужое никогда не равен нулю, а замки pocketkey стоят везде где можно, то про получение хэша расскажу лишь в общих чертах, кому надо - сам раскурит какой алгоритм счета хэша у его центра/клуба/зала, потому что у всех они разные (не забываем что ИИ уже многое умеет, может даже вам хэш посчитать ;) ). По факту хэш считается в моем клубе по простой схеме - наш 33 блок со всеми его байтами + соль = CRC. Я отредактировал дамп, залил его на флиппер и с помощью эмуляции успешно открыл дверцу соседнего шкафа. Из этого можно сделать вывод что замок проверяет лишь хэш сумму, статус метки (свободна/нет), служебку (те самые 48 4E 31), а на UID ему видимо, фиолетово. Вот так можно и открыть чужой шкаф!

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

Что купить и какие векторы атак есть?

Сразу стоит сказать - вам вообще флиппер для этих задач не нужен. Для работы с RFID больше сойдет proxmark3 или chameleon ultra/v2.0/v3.0, все девайсы до 3к рублей. Проксмарк - ориентирован на работу с пк, chameleon - "достал, сдампил, записал", советую лично хамелеона, стоит дешевле, да и вопросов вы будете вызывать меньше. Позже добавлю в комменты как сделать копирку самому на ESP32 + PN532 (в некоторых аспектах лучше флиппера, но стоит дешевле + умеет все то же самое).

Рассмотрим векторы атак (если их так можно назвать) RFID:
  • СКУДные СКУДы. Да, большинство скудов (особенно в разных школах и прочих заведениях, где на системы безопасности тратят просто потому что так сказали свыше) очень-очень скудные, читают только UID, на тайминги не смотрят и легко поддаются эмуляции с рутированного телефона (Card Emulator Pro). Бывают случаи, когда пропускают FF FF FF FF, установщики просто прошляпили уроки, что нельзя оставлять сервисные ключи и пустышки в памяти :)
  • Проездные. Думаю глупо поднимать такую тему, но все же стоит. Возьмем Московскую тройку, когда-то очень давно, выпустили приложение TroikaDumper, позволяющее снимать дамп с тройки, полностью опустошать баланс и записывать его по новой! Система работает до сих пор, вы можете записать свой дамп, оплатить ею в автобусе, а потом уже кататься на метро. Из минусов: тройки стали чаще отлетать даже за эмуляцию.
  • Ноль защиты. Большинство ваших RFID меток -  Mifare classic 1k. Ее защита строится на двух ключах - A и B, но архитектура построена так, что зная лишь один ключ ты можешь расшифровать остальные сектора памяти. Также в большинстве случаев у таких меток ключи уже есть в публичном доступе, что позволяет сдампить ее за секунду тем же Проксмарком, но иногда их шифруют кастомными ключами, которые опять же можно узнать через Nested атаку, приложив сканер несколько раз к ридеру. Ридер будет пытаться прочитать сектора памяти с помощью своих ключей, которые сканер перехватывает и расшифровывает метку
Медиа заблокировано
Этот домен не входит в список разрешённых для медиа.
Формат: изображения / GIFДомен: forum.LIMB.cc
Разрешённые домены
  • imgur.com
  • ru.imgbb.com
  • prnt.sc
  • imgbb.com
  • ibb.co
  • i.imgur.com
  • i.ibb.co
  • darklimb.vip
  • i.pinimg.com
  • img3.teletype.in
  • img4.teletype.in
  • teletype.in
  • pikabu.ru
  • cs15.pikabu.ru
  • img2.teletype.in
  • lh7-rt.googleusercontent.com
  • duty-files.cc
  • blogger.googleusercontent.com


Терминал сам по себе выполняет роль проводника, он лишь читает метку, кидает запрос к 1С:Предприятие/Напрямую к БД (зависит от конфига, мое расследование остановилось на таком варианте) и дает проход. Сам терминал - устройство на 10 андройде. Старые версии андройда плевали на защиту от вредных меток, поэтому стоит считать метку с веб-сайтом или Wi-Fi - они сразу выполняют целевое действие. Добавим это в копилку векторов атак RFID (Рассказывать здесь про JS-эксплойты и прочее смысла не вижу, т.к на эту тему нужна отдельная статья).
​

Небольшая затравка

Сами pocketkey пишут что БД работает на PostgreSQL, так еще и HTTP API. Думаю что следущая статья будет с разбором их сетевой внутрянки ;)
​

Вот такая достаточно короткая, но ёмкая статья вышла, теперь вы знаете что пластиковая карточка умеет не только открывать вам подъезд, но и открывать дорогу к чужим вещам :)
​
👍46 👏14 😢12 💯9
Интересно было почитать. Давайте следующую статью про взломы ворот, шлакбаумов и домофонов))
Ответzobiak

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

Благодарю! Про радио статья тоже будет, шире чем про RFID, т.к одни rolling-code чего стоят, шлагбаумы будут включены в статью про радио. Домофоны - сомнительно, не вижу смысла, т.к достаточно подождать любого жителя дома, сдампить ключ и гулять (либо любимые ключи-вездеходы, ну или сервисные коды, бывает на них забивают).

Гостевой просмотр. Чтобы отвечать и ставить реакции, войдите или зарегистрируйтесь.