mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-23 13:13:41 +00:00
106 lines
12 KiB
Markdown
106 lines
12 KiB
Markdown
# Pentestowanie RFID
|
|
|
|
<details>
|
|
|
|
<summary><strong>Naucz się hakować AWS od zera do bohatera z</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
|
|
|
* Pracujesz w **firmie zajmującej się cyberbezpieczeństwem**? Chcesz zobaczyć swoją **firmę reklamowaną w HackTricks**? A może chcesz mieć dostęp do **najnowszej wersji PEASS lub pobrać HackTricks w formacie PDF**? Sprawdź [**PLAN SUBSKRYPCJI**](https://github.com/sponsors/carlospolop)!
|
|
* Odkryj [**Rodzinę PEASS**](https://opensea.io/collection/the-peass-family), naszą kolekcję ekskluzywnych [**NFT**](https://opensea.io/collection/the-peass-family)
|
|
* Zdobądź [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com)
|
|
* **Dołącz do** [**💬**](https://emojipedia.org/speech-balloon/) [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** mnie na **Twitterze** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
|
* **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do** [**repozytorium hacktricks**](https://github.com/carlospolop/hacktricks) **i** [**repozytorium hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
|
|
|
</details>
|
|
|
|
## Wprowadzenie
|
|
|
|
**Radio Frequency Identification (RFID)** to najpopularniejsze rozwiązanie radiowe krótkiego zasięgu. Zazwyczaj służy do przechowywania i przesyłania informacji identyfikujących jednostkę.
|
|
|
|
Etykieta RFID może polegać na **własnym źródle zasilania (aktywna)**, takim jak wbudowana bateria, lub otrzymywać zasilanie z anteny odczytującej za pomocą prądu **indukowanego przez otrzymane fale radiowe** (**pasywna**).
|
|
|
|
### Klasy
|
|
|
|
EPCglobal dzieli etykiety RFID na sześć kategorii. Etykieta w każdej kategorii ma wszystkie możliwości wymienione w poprzedniej kategorii, co czyni ją wstecznie kompatybilną.
|
|
|
|
* Etykiety **klasy 0** to etykiety **pasywne**, które działają w pasmach **UHF**. Producent **preprogramowuje** je w fabryce produkcyjnej. W rezultacie **nie można zmienić** informacji przechowywanych w ich pamięci.
|
|
* Etykiety **klasy 1** mogą również działać w pasmach **HF**. Ponadto, można je **zapisać tylko raz** po produkcji. Wiele etykiet klasy 1 może również przetwarzać **cykliczne sumy kontrolne** (CRC) otrzymywanych poleceń. CRC to kilka dodatkowych bajtów na końcu poleceń służących do wykrywania błędów.
|
|
* Etykiety **klasy 2** można **zapisywać wielokrotnie**.
|
|
* Etykiety **klasy 3** mogą zawierać **wbudowane sensory**, które mogą rejestrować parametry środowiskowe, takie jak aktualna temperatura lub ruch etykiety. Te etykiety są **półpasywne**, ponieważ chociaż **posiadają** wbudowane źródło zasilania, takie jak zintegrowana **bateria**, **nie mogą inicjować** bezprzewodowej **komunikacji** z innymi etykietami lub czytnikami.
|
|
* Etykiety **klasy 4** mogą inicjować komunikację z innymi etykietami tej samej klasy, co czyni je **aktywnymi etykietami**.
|
|
* Etykiety **klasy 5** mogą dostarczać **zasilanie innym etykietom i komunikować się ze wszystkimi poprzednimi klasami etykiet**. Etykiety klasy 5 mogą działać jako **czytniki RFID**.
|
|
|
|
### Informacje przechowywane w etykietach RFID
|
|
|
|
Pamięć etykiety RFID zazwyczaj przechowuje cztery rodzaje danych: **dane identyfikacyjne**, które **identyfikują** jednostkę, do której przyczepiona jest etykieta (dane te obejmują pola zdefiniowane przez użytkownika, takie jak konta bankowe); **dane uzupełniające**, które dostarczają **dodatkowych** **informacji** dotyczących jednostki; **dane kontrolne**, używane do **konfiguracji** wewnętrznej etykiety; oraz **dane producenta** etykiety, które zawierają unikalny identyfikator etykiety (**UID**) oraz szczegóły dotyczące **produkcji**, **typu** i **producenta** etykiety. Pierwsze dwa rodzaje danych znajdują się we wszystkich komercyjnych etykietach; ostatnie dwa mogą się różnić w zależności od producenta etykiety.
|
|
|
|
Standard ISO określa wartość identyfikatora rodziny aplikacji (**AFI**), kodu wskazującego **rodzaj obiektu**, do którego należy etykieta. Innym ważnym rejestratorem, również określonym przez ISO, jest identyfikator formatu przechowywania danych (**DSFID**), który definiuje **logiczną organizację danych użytkownika**.
|
|
|
|
Większość **kontroli bezpieczeństwa** RFID ma mechanizmy, które **ograniczają** operacje **odczytu** lub **zapisu** na każdym bloku pamięci użytkownika oraz na specjalnych rejestrach zawierających wartości AFI i DSFID. Te **mechanizmy blokady** używają danych przechowywanych w pamięci kontrolnej i mają **prekonfigurowane domyślne hasła** dostawcy, ale pozwalają właścicielom etykiety na **konfigurację niestandardowych haseł**.
|
|
|
|
### Porównanie tagów o niskiej i wysokiej częstotliwości
|
|
|
|
<figure><img src="../.gitbook/assets/image (27).png" alt=""><figcaption></figcaption></figure>
|
|
|
|
## Tagi RFID o niskiej częstotliwości (125kHz)
|
|
|
|
**Tagi o niskiej częstotliwości** są często używane w systemach, które **nie wymagają wysokiego poziomu bezpieczeństwa**: dostęp do budynków, klucze do domofonów, karty członkowskie siłowni, itp. Ze względu na większy zasięg są wygodne w przypadku płatnego parkowania samochodów: kierowca nie musi przybliżać karty do czytnika, ponieważ jest ona aktywowana z większej odległości. Jednocześnie tagi o niskiej częstotliwości są bardzo prymitywne, mają niską szybkość transferu danych. Z tego powodu niemożliwe jest zaimplementowanie złożonego dwukierunkowego transferu danych, takiego jak utrzymanie salda i kryptografia. Tagi o niskiej częstotliwości przesyłają tylko swoje krótkie ID bez żadnych środków uwierzytelniania.
|
|
|
|
Te urządzenia polegają na technologii **pasywnej** **RFID** i działają w **zakresie od 30 kHz do 300 kHz**, chociaż zazwyczaj używa się 125 kHz do 134 kHz:
|
|
|
|
* **Długi zasięg** — niższa częstotliwość przekłada się na większy zasięg. Istnieją niektóre czytniki EM-Marin i HID, które działają z odległości do jednego metra. Są one często stosowane w parkingu samochodowym.
|
|
* **Protokół prymitywny** — ze względu na niską szybkość transferu danych te tagi mogą przesyłać tylko swoje krótkie ID. W większości przypadków dane nie są uwierzytelniane i nie są w żaden sposób chronione. Jak tylko karta znajduje się w zasięgu czytnika, zaczyna przesyłać swoje ID.
|
|
* **Niskie bezpieczeństwo** — te karty można łatwo skopiować lub nawet odczytać z kieszeni innej osoby ze względu na prymitywność protokołu.
|
|
|
|
**Popularne protokoły 125 kHz:**
|
|
|
|
* **EM-Marin** — EM4100
|
|
## Tagi RFID o wysokiej częstotliwości (13,56 MHz)
|
|
|
|
**Tagi o wysokiej częstotliwości** są używane do bardziej złożonej interakcji między czytnikiem a tagiem, gdy potrzebna jest kryptografia, duża dwukierunkowa transmisja danych, uwierzytelnianie itp.\
|
|
Zazwyczaj są one stosowane w kartach bankowych, transporcie publicznym i innych bezpiecznych przepustkach.
|
|
|
|
**Tagi o wysokiej częstotliwości 13,56 MHz to zestaw standardów i protokołów**. Zazwyczaj są one określane jako [NFC](https://nfc-forum.org/what-is-nfc/about-the-technology/), ale nie zawsze jest to poprawne. Podstawowy zestaw protokołów używanych na poziomie fizycznym i logicznym to ISO 14443. Protokoły na wyższym poziomie, a także alternatywne standardy (takie jak ISO 19092), są oparte na nim. Wielu ludzi odnosi się do tej technologii jako **komunikacji w polu zbliżeniowym (NFC)**, terminu używanego dla urządzeń działających w częstotliwości 13,56 MHz.
|
|
|
|
<figure><img src="../.gitbook/assets/image (22).png" alt=""><figcaption></figcaption></figure>
|
|
|
|
W skrócie, architektura NFC działa w ten sposób: protokół transmisji jest wybierany przez firmę produkującą karty i implementowany na podstawie niskopoziomowego ISO 14443. Na przykład, NXP wynalazł własny protokół transmisji na wyższym poziomie, zwany Mifare. Ale na niższym poziomie karty Mifare są oparte na standardzie ISO 14443-A.
|
|
|
|
Flipper może współpracować zarówno z protokołem ISO 14443 na niskim poziomie, jak i z protokołem transmisji danych Mifare Ultralight i EMV używanym w kartach bankowych. Pracujemy nad dodaniem obsługi dla Mifare Classic i NFC NDEF. Dokładne omówienie protokołów i standardów, które tworzą NFC, warto przeczytać w osobnym artykule, który planujemy opublikować wkrótce.
|
|
|
|
Wszystkie karty o wysokiej częstotliwości oparte na standardzie ISO 14443-A mają unikalny identyfikator chipa. Działa on jako numer seryjny karty, podobnie jak adres MAC karty sieciowej. **Zazwyczaj UID ma długość 4 lub 7 bajtów**, ale czasami może sięgać **aż do 10**. UID nie jest tajemnicą i jest łatwo odczytywalny, **czasami nawet wydrukowany na samej karcie**.
|
|
|
|
Istnieje wiele systemów kontroli dostępu, które polegają na UID do **uwierzytelniania i przyznawania dostępu**. Czasami dzieje się tak **nawet** w przypadku, gdy tagi RFID **obsługują kryptografię**. Takie **niewłaściwe** wykorzystanie obniża je do poziomu **kart 125 kHz** pod względem **bezpieczeństwa**. Wirtualne karty (takie jak Apple Pay) używają dynamicznego UID, aby właściciele telefonów nie otwierali drzwi za pomocą aplikacji płatniczej.
|
|
|
|
* **Krótki zasięg** - karty o wysokiej częstotliwości są specjalnie zaprojektowane tak, aby musiały być umieszczone blisko czytnika. Pomaga to również chronić kartę przed nieautoryzowanymi interakcjami. Maksymalny zasięg odczytu, który udało nam się osiągnąć, wynosił około 15 cm, a to dzięki specjalnie wykonanym czytnikom o dużym zasięgu.
|
|
* **Zaawansowane protokoły** - prędkości transferu danych do 424 kbps umożliwiają złożone protokoły z pełną dwukierunkową transmisją danych. Co z kolei **umożliwia kryptografię**, transfer danych itp.
|
|
* **Wysokie bezpieczeństwo** - bezstykowe karty o wysokiej częstotliwości nie ustępują w żaden sposób kartom inteligentnym. Istnieją karty, które obsługują silne algorytmy kryptograficzne, takie jak AES, i implementują kryptografię asymetryczną.
|
|
|
|
### Atak
|
|
|
|
Możesz **zaatakować te tagi za pomocą Flipper Zero**:
|
|
|
|
{% content-ref url="../todo/radio-hacking/flipper-zero/fz-nfc.md" %}
|
|
[fz-nfc.md](../todo/radio-hacking/flipper-zero/fz-nfc.md)
|
|
{% endcontent-ref %}
|
|
|
|
Lub używając **proxmarka**:
|
|
|
|
{% content-ref url="../todo/radio-hacking/proxmark-3.md" %}
|
|
[proxmark-3.md](../todo/radio-hacking/proxmark-3.md)
|
|
{% endcontent-ref %}
|
|
|
|
## Odwołania
|
|
|
|
* [https://blog.flipperzero.one/rfid/](https://blog.flipperzero.one/rfid/)
|
|
|
|
<details>
|
|
|
|
<summary><strong>Naucz się hakować AWS od zera do bohatera z</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
|
|
|
* Pracujesz w **firmie zajmującej się cyberbezpieczeństwem**? Chcesz zobaczyć swoją **firmę reklamowaną w HackTricks**? A może chcesz mieć dostęp do **najnowszej wersji PEASS lub pobrać HackTricks w formacie PDF**? Sprawdź [**PLAN SUBSKRYPCJI**](https://github.com/sponsors/carlospolop)!
|
|
* Odkryj [**Rodzinę PEASS**](https://opensea.io/collection/the-peass-family), naszą kolekcję ekskluzywnych [**NFT**](https://opensea.io/collection/the-peass-family)
|
|
* Zdobądź [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com)
|
|
* **Dołącz do** [**💬**](https://emojipedia.org/speech-balloon/) [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** mnie na **Twitterze** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
|
* **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR do repozytorium** [**hacktricks**](https://github.com/carlospolop/hacktricks) **i** [**hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
|
|
|
</details>
|