hacktricks/radio-hacking/pentesting-rfid.md

126 lines
11 KiB
Markdown
Raw Normal View History

# Pentesting RFID
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
2022-04-28 16:01:33 +00:00
<details>
<summary>Support HackTricks</summary>
2022-04-28 16:01:33 +00:00
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
2022-04-28 16:01:33 +00:00
</details>
{% endhint %}
2022-04-28 16:01:33 +00:00
## Introduction
2022-02-28 09:13:08 +00:00
**Radio Frequency Identification (RFID)** je najpopularnije rešenje za kratkotalasnu radio komunikaciju. Obično se koristi za skladištenje i prenos informacija koje identifikuju entitet.
2022-02-28 09:13:08 +00:00
RFID oznaka može se oslanjati na **svoj izvor napajanja (aktivna)**, kao što je ugrađena baterija, ili primati napajanje od antene za čitanje koristeći trenutnu **indukovanu iz primljenih radio talasa** (**pasivna**).
2022-02-28 09:13:08 +00:00
### Classes
2022-02-28 09:13:08 +00:00
EPCglobal deli RFID oznake u šest kategorija. Oznaka u svakoj kategoriji ima sve mogućnosti navedene u prethodnoj kategoriji, čineći je unazad kompatibilnom.
2022-02-28 09:13:08 +00:00
* **Klasa 0** oznake su **pasivne** oznake koje rade u **UHF** opsegu. Dobavljač ih **preprogramira** u fabrici. Kao rezultat, **ne možete promeniti** informacije pohranjene u njihovoj memoriji.
* **Klasa 1** oznake takođe mogu raditi u **HF** opsegu. Pored toga, mogu se **pisati samo jednom** nakon proizvodnje. Mnoge oznake klase 1 takođe mogu obraditi **ciklične redundancije** (CRC) komandi koje primaju. CRC su nekoliko dodatnih bajtova na kraju komandi za otkrivanje grešaka.
* **Klasa 2** oznake mogu se **pisati više puta**.
* **Klasa 3** oznake mogu sadržati **ugrađene senzore** koji mogu snimati ekološke parametre, kao što su trenutna temperatura ili kretanje oznake. Ove oznake su **polu-pasivne**, jer iako **imaju** ugrađeni izvor napajanja, kao što je integrisana **baterija**, **ne mogu inicirati** bežičnu **komunikaciju** sa drugim oznakama ili čitačima.
* **Klasa 4** oznake mogu inicirati komunikaciju sa drugim oznakama iste klase, čineći ih **aktivnim oznakama**.
* **Klasa 5** oznake mogu pružiti **napajanje drugim oznakama i komunicirati sa svim prethodnim klasama oznaka**. Oznake klase 5 mogu delovati kao **RFID čitači**.
2022-02-28 09:13:08 +00:00
### Information Stored in RFID Tags
2022-02-28 09:13:08 +00:00
Memorija RFID oznake obično skladišti četiri vrste podataka: **identifikacione podatke**, koji **identifikuju** **entitet** na koji je oznaka pričvršćena (ovi podaci uključuju korisnički definisane oblasti, kao što su bankovni računi); **dodatne podatke**, koji pružaju **dodatne** **detalje** o entitetu; **kontrolne podatke**, koji se koriste za internu **konfiguraciju** oznake; i **proizvođačke podatke** oznake, koji sadrže jedinstveni identifikator oznake (**UID**) i detalje o **proizvodnji**, **vrsti** i **dobavljaču** oznake. Prve dve vrste podataka naći ćete u svim komercijalnim oznakama; poslednje dve mogu se razlikovati u zavisnosti od dobavljača oznake.
2022-02-28 09:13:08 +00:00
ISO standard definiše vrednost identifikatora aplikacione porodice (**AFI**), kod koji označava **vrstu objekta** kojem oznaka pripada. Još jedan važan registar, takođe definisan od strane ISO, je identifikator formata skladištenja podataka (**DSFID**), koji definiše **logičku organizaciju korisničkih podataka**.
2022-02-28 09:13:08 +00:00
Većina **bezbednosnih kontrola** RFID-a ima mehanizme koji **ograničavaju** **čitanje** ili **pisanje** operacija na svakoj korisničkoj memorijskoj jedinici i na posebnim registrima koji sadrže vrednosti AFI i DSFID. Ovi **mehanizmi zaključavanja** koriste podatke pohranjene u kontrolnoj memoriji i imaju **podrazumevane lozinke** koje je prekonfigurisao dobavljač, ali omogućavaju vlasnicima oznaka da **konfigurišu prilagođene lozinke**.
2022-02-28 09:13:08 +00:00
### Low & High frequency tags comparison
2022-02-28 09:13:08 +00:00
2022-12-24 19:34:46 +00:00
<figure><img src="../.gitbook/assets/image (27).png" alt=""><figcaption></figcaption></figure>
2022-02-28 09:13:08 +00:00
## Low-Frequency RFID Tags (125kHz)
2022-02-28 09:13:08 +00:00
**Oznake niske frekvencije** često se koriste u sistemima koji **ne zahtevaju visoku bezbednost**: pristup zgradama, interkom ključevi, članstva u teretanama itd. Zbog svog većeg dometa, pogodne su za korišćenje za plaćeno parkiranje: vozač ne mora da dovede karticu blizu čitača, jer se aktivira iz daljine. U isto vreme, oznake niske frekvencije su vrlo primitivne, imaju nisku brzinu prenosa podataka. Iz tog razloga, nemoguće je implementirati složen dvostrani prenos podataka za stvari kao što su održavanje stanja i kriptografija. Oznake niske frekvencije samo prenose svoj kratki ID bez ikakvih sredstava za autentifikaciju.
2022-02-28 09:13:08 +00:00
2024-02-10 13:11:20 +00:00
Ovi uređaji se oslanjaju na **pasivnu** **RFID** tehnologiju i rade u **opsegu od 30 kHz do 300 kHz**, iako je uobičajenije koristiti 125 kHz do 134 kHz:
2022-02-28 09:13:08 +00:00
* **Dugi domet** — niža frekvencija prevodi se u veći domet. Postoje neki EM-Marin i HID čitači, koji rade na udaljenosti do jednog metra. Ovi se često koriste u parkiranju automobila.
* **Primitivni protokol** — zbog niske brzine prenosa podataka, ove oznake mogu samo prenositi svoj kratki ID. U većini slučajeva, podaci nisu autentifikovani i nisu zaštićeni na bilo koji način. Čim je kartica u dometu čitača, jednostavno počinje da prenosi svoj ID.
* **Niska bezbednost** — Ove kartice se lako mogu kopirati, ili čak čitati iz tuđih džepova zbog primitivnosti protokola.
2022-02-28 09:13:08 +00:00
2024-02-10 13:11:20 +00:00
**Popularni 125 kHz protokoli:**
2022-02-28 09:13:08 +00:00
* **EM-Marin** — EM4100, EM4102. Najpopularniji protokol u CIS-u. Može se čitati sa udaljenosti od oko jednog metra zbog svoje jednostavnosti i stabilnosti.
* **HID Prox II** — niskofrekventni protokol koji je uveo HID Global. Ovaj protokol je popularniji u zapadnim zemljama. Složeniji je i kartice i čitači za ovaj protokol su relativno skupi.
* **Indala** — vrlo stari niskofrekventni protokol koji je uveo Motorola, a kasnije ga je kupio HID. Manje je verovatno da ćete ga sresti u prirodi u poređenju sa prethodna dva jer izlazi iz upotrebe.
U stvarnosti, postoji mnogo više niskofrekventnih protokola. Ali svi koriste istu modulaciju na fizičkom sloju i mogu se smatrati, na jedan ili drugi način, varijacijom onih navedenih iznad.
### Attack
You can **attack these Tags with the Flipper Zero**:
2022-02-28 09:13:08 +00:00
{% content-ref url="../todo/radio-hacking/flipper-zero/fz-125khz-rfid.md" %}
[fz-125khz-rfid.md](../todo/radio-hacking/flipper-zero/fz-125khz-rfid.md)
{% endcontent-ref %}
## High-Frequency RFID Tags (13.56 MHz)
2022-02-28 09:13:08 +00:00
**Oznake visoke frekvencije** koriste se za složeniju interakciju između čitača i oznake kada su potrebni kriptografija, veliki dvostrani prenos podataka, autentifikacija itd.\
Obično se nalaze u bankovnim karticama, javnom prevozu i drugim sigurnim propusnicama.
**Oznake visoke frekvencije 13.56 MHz su skup standarda i protokola**. Obično se nazivaju [NFC](https://nfc-forum.org/what-is-nfc/about-the-technology/), ali to nije uvek tačno. Osnovni skup protokola koji se koristi na fizičkom i logičkom nivou je ISO 14443. Visok nivo protokola, kao i alternativni standardi (poput ISO 19092), zasnivaju se na njemu. Mnogi ljudi ovu tehnologiju nazivaju **Near Field Communication (NFC)**, termin za uređaje koji rade na frekvenciji od 13.56 MHz.
2022-02-28 09:13:08 +00:00
2022-12-24 19:34:46 +00:00
<figure><img src="../.gitbook/assets/image (22).png" alt=""><figcaption></figcaption></figure>
2022-02-28 09:13:08 +00:00
Jednostavno rečeno, arhitektura NFC-a funkcioniše ovako: protokol prenosa bira kompanija koja pravi kartice i implementira se na osnovu niskonivnog ISO 14443. Na primer, NXP je izmislio svoj vlastiti visokonivni protokol prenosa pod nazivom Mifare. Ali na nižem nivou, Mifare kartice se zasnivaju na ISO 14443-A standardu.
2022-02-28 09:13:08 +00:00
Flipper može interagovati i sa niskonivnim ISO 14443 protokolom, kao i sa Mifare Ultralight protokolom prenosa podataka i EMV-om koji se koristi u bankovnim karticama. Radimo na dodavanju podrške za Mifare Classic i NFC NDEF. Temeljno razmatranje protokola i standarda koji čine NFC zaslužuje poseban članak koji planiramo da objavimo kasnije.
2022-02-28 09:13:08 +00:00
Sve visokonivene kartice zasnovane na ISO 14443-A standardu imaju jedinstveni ID čipa. On deluje kao serijski broj kartice, poput MAC adrese mrežne kartice. **Obično, UID je dug 4 ili 7 bajtova**, ali može retko ići **do 10**. UIDs nisu tajna i lako se čitaju, **ponekad čak i odštampani na samoj kartici**.
2022-02-28 09:13:08 +00:00
Postoji mnogo sistema kontrole pristupa koji se oslanjaju na UID za **autentifikaciju i dodeljivanje pristupa**. Ponekad se to dešava **čak i** kada RFID oznake **podržavaju kriptografiju**. Takva **zloupotreba** ih snižava na nivo glupih **125 kHz kartica** u smislu **bezbednosti**. Virtuelne kartice (poput Apple Pay) koriste dinamički UID kako vlasnici telefona ne bi mogli otvarati vrata sa svojom aplikacijom za plaćanje.
2022-02-28 09:13:08 +00:00
* **Mali domet** — visokonivene kartice su posebno dizajnirane tako da moraju biti postavljene blizu čitača. To takođe pomaže u zaštiti kartice od neovlašćenih interakcija. Maksimalni domet čitanja koji smo uspeli da postignemo bio je oko 15 cm, a to je bilo sa čitačima visokog dometa po narudžbini.
* **Napredni protokoli** — brzine prenosa podataka do 424 kbps omogućavaju složene protokole sa punim dvostranim prenosom podataka. Što zauzvrat **omogućava kriptografiju**, prenos podataka itd.
* **Visoka bezbednost** — visokonivene beskontaktne kartice ni na koji način nisu inferiorne u odnosu na pametne kartice. Postoje kartice koje podržavaju kriptografski jake algoritme poput AES i implementiraju asimetričnu kriptografiju.
2022-02-28 09:13:08 +00:00
### Attack
2022-02-28 09:13:08 +00:00
You can **attack these Tags with the Flipper Zero**:
2022-02-28 09:13:08 +00:00
2022-12-24 11:52:08 +00:00
{% content-ref url="../todo/radio-hacking/flipper-zero/fz-nfc.md" %}
[fz-nfc.md](../todo/radio-hacking/flipper-zero/fz-nfc.md)
{% endcontent-ref %}
2022-05-01 16:32:23 +00:00
Or using the **proxmark**:
2022-05-01 16:32:23 +00:00
2022-12-24 11:52:08 +00:00
{% content-ref url="../todo/radio-hacking/proxmark-3.md" %}
[proxmark-3.md](../todo/radio-hacking/proxmark-3.md)
{% endcontent-ref %}
2022-04-28 16:01:33 +00:00
## References
2022-04-28 16:01:33 +00:00
2022-12-24 11:52:08 +00:00
* [https://blog.flipperzero.one/rfid/](https://blog.flipperzero.one/rfid/)
2022-04-28 16:01:33 +00:00
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
2022-12-24 11:52:08 +00:00
<details>
2022-04-28 16:01:33 +00:00
<summary>Support HackTricks</summary>
2022-04-28 16:01:33 +00:00
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
2022-04-28 16:01:33 +00:00
</details>
{% endhint %}