mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
100 lines
9.9 KiB
Markdown
100 lines
9.9 KiB
Markdown
# Pentesting RFID
|
|
|
|
{{#include ../../banners/hacktricks-training.md}}
|
|
|
|
## Einführung
|
|
|
|
**Radio Frequency Identification (RFID)** ist die beliebteste Kurzstrecken-Radio-Lösung. Sie wird normalerweise verwendet, um Informationen zu speichern und zu übertragen, die eine Entität identifizieren.
|
|
|
|
Ein RFID-Tag kann auf **seine eigene Stromquelle (aktiv)**, wie eine eingebaute Batterie, angewiesen sein oder seine Energie von der Lesantenne über den **induzierten Strom aus den empfangenen Radiowellen** beziehen (**passiv**).
|
|
|
|
### Klassen
|
|
|
|
EPCglobal unterteilt RFID-Tags in sechs Kategorien. Ein Tag in jeder Kategorie hat alle Funktionen, die in der vorherigen Kategorie aufgeführt sind, was es rückwärtskompatibel macht.
|
|
|
|
- **Klasse 0**-Tags sind **passive** Tags, die in **UHF**-Bändern arbeiten. Der Anbieter **programmiert** sie bereits in der Produktionsfabrik. Daher **kannst du** die in ihrem Speicher gespeicherten Informationen **nicht ändern**.
|
|
- **Klasse 1**-Tags können ebenfalls in **HF**-Bändern arbeiten. Darüber hinaus können sie **nur einmal** nach der Produktion **beschrieben** werden. Viele Klasse 1-Tags können auch **zyklische Redundanzprüfungen** (CRCs) der empfangenen Befehle verarbeiten. CRCs sind einige zusätzliche Bytes am Ende der Befehle zur Fehlererkennung.
|
|
- **Klasse 2**-Tags können **mehrmals beschrieben** werden.
|
|
- **Klasse 3**-Tags können **eingebettete Sensoren** enthalten, die Umweltparameter wie die aktuelle Temperatur oder die Bewegung des Tags aufzeichnen können. Diese Tags sind **semi-passiv**, da sie zwar eine eingebaute Stromquelle, wie eine integrierte **Batterie**, **haben**, aber **keine** drahtlose **Kommunikation** mit anderen Tags oder Lesegeräten **initiieren können**.
|
|
- **Klasse 4**-Tags können die Kommunikation mit anderen Tags derselben Klasse initiieren, wodurch sie **aktive Tags** werden.
|
|
- **Klasse 5**-Tags können **Strom an andere Tags liefern und mit allen vorherigen Tag**-Klassen kommunizieren. Klasse 5-Tags können als **RFID-Leser** fungieren.
|
|
|
|
### Informationen, die in RFID-Tags gespeichert sind
|
|
|
|
Der Speicher eines RFID-Tags speichert normalerweise vier Arten von Daten: die **Identifikationsdaten**, die die **Entität** identifizieren, an die das Tag angehängt ist (diese Daten umfassen benutzerdefinierte Felder wie Bankkonten); die **zusätzlichen Daten**, die **weitere** **Details** zur Entität bereitstellen; die **Steuerdaten**, die für die interne **Konfiguration** des Tags verwendet werden; und die **Herstellerdaten** des Tags, die die eindeutige Kennung des Tags (**UID**) und Details zur **Produktion**, **Typ** und **Anbieter** des Tags enthalten. Die ersten beiden Datenarten findest du in allen kommerziellen Tags; die letzten beiden können je nach Anbieter des Tags variieren.
|
|
|
|
Der ISO-Standard legt den Wert des Application Family Identifier (**AFI**) fest, einen Code, der die **Art des Objekts** angibt, zu dem das Tag gehört. Ein weiteres wichtiges Register, das ebenfalls von ISO festgelegt wird, ist der Data Storage Format Identifier (**DSFID**), der die **logische Organisation der Benutzerdaten** definiert.
|
|
|
|
Die meisten RFID-**Sicherheitskontrollen** verfügen über Mechanismen, die die **Lese**- oder **Schreib**-Operationen auf jedem Benutzerspeicherblock und auf den speziellen Registern, die die AFI- und DSFID-Werte enthalten, **einschränken**. Diese **Sperr**-**mechanismen** verwenden Daten, die im Steuerungsspeicher gespeichert sind, und haben **vorkonfigurierte Standardpasswörter** des Anbieters, erlauben es den Tag-Besitzern jedoch, **benutzerdefinierte Passwörter** zu **konfigurieren**.
|
|
|
|
### Vergleich von Low- und High-Frequency-Tags
|
|
|
|
<figure><img src="../../images/image (983).png" alt=""><figcaption></figcaption></figure>
|
|
|
|
## Low-Frequency RFID Tags (125kHz)
|
|
|
|
**Niedrigfrequente Tags** werden häufig in Systemen verwendet, die **keine hohe Sicherheit** erfordern: Gebäudezugang, Gegensprechanlagen, Fitnessstudio-Mitgliedskarten usw. Aufgrund ihrer höheren Reichweite sind sie praktisch für kostenpflichtige Parkplätze: Der Fahrer muss die Karte nicht nah an den Leser bringen, da sie aus größerer Entfernung aktiviert wird. Gleichzeitig sind niedrigfrequente Tags sehr primitiv und haben eine niedrige Datenübertragungsrate. Aus diesem Grund ist es unmöglich, komplexe bidirektionale Datenübertragungen für Dinge wie Kontostände und Kryptografie zu implementieren. Niedrigfrequente Tags übertragen nur ihre kurze ID ohne Authentifizierung.
|
|
|
|
Diese Geräte basieren auf **passiver** **RFID**-Technologie und arbeiten in einem **Bereich von 30 kHz bis 300 kHz**, obwohl es üblicher ist, 125 kHz bis 134 kHz zu verwenden:
|
|
|
|
- **Lange Reichweite** — niedrigere Frequenzen führen zu höherer Reichweite. Es gibt einige EM-Marin- und HID-Leser, die aus einer Entfernung von bis zu einem Meter arbeiten. Diese werden häufig in Parkhäusern verwendet.
|
|
- **Primitives Protokoll** — aufgrund der niedrigen Datenübertragungsrate können diese Tags nur ihre kurze ID übertragen. In den meisten Fällen sind die Daten nicht authentifiziert und nicht geschützt. Sobald die Karte im Bereich des Lesers ist, beginnt sie einfach, ihre ID zu übertragen.
|
|
- **Niedrige Sicherheit** — Diese Karten können leicht kopiert oder sogar aus der Tasche eines anderen gelesen werden, aufgrund der Primitivität des Protokolls.
|
|
|
|
**Beliebte 125 kHz-Protokolle:**
|
|
|
|
- **EM-Marin** — EM4100, EM4102. Das beliebteste Protokoll in der GUS. Kann aufgrund seiner Einfachheit und Stabilität aus etwa einem Meter gelesen werden.
|
|
- **HID Prox II** — Niedrigfrequenzprotokoll, das von HID Global eingeführt wurde. Dieses Protokoll ist in den westlichen Ländern beliebter. Es ist komplexer und die Karten und Leser für dieses Protokoll sind relativ teuer.
|
|
- **Indala** — sehr altes Niedrigfrequenzprotokoll, das von Motorola eingeführt und später von HID übernommen wurde. Du wirst es weniger wahrscheinlich in freier Wildbahn antreffen als die vorherigen beiden, da es aus der Nutzung fällt.
|
|
|
|
In Wirklichkeit gibt es viele weitere Niedrigfrequenzprotokolle. Aber sie alle verwenden dieselbe Modulation auf der physikalischen Ebene und können in einer oder anderen Weise als Variation der oben aufgeführten betrachtet werden.
|
|
|
|
### Angriff
|
|
|
|
Du kannst **diese Tags mit dem Flipper Zero angreifen**:
|
|
|
|
{{#ref}}
|
|
flipper-zero/fz-125khz-rfid.md
|
|
{{#endref}}
|
|
|
|
## High-Frequency RFID Tags (13.56 MHz)
|
|
|
|
**Hochfrequente Tags** werden für eine komplexere Interaktion zwischen Leser und Tag verwendet, wenn du Kryptografie, eine große bidirektionale Datenübertragung, Authentifizierung usw. benötigst.\
|
|
Sie sind normalerweise in Bankkarten, im öffentlichen Verkehr und anderen sicheren Pässen zu finden.
|
|
|
|
**Hochfrequente 13.56 MHz-Tags sind eine Reihe von Standards und Protokollen**. Sie werden normalerweise als [NFC](https://nfc-forum.org/what-is-nfc/about-the-technology/) bezeichnet, aber das ist nicht immer korrekt. Das grundlegende Protokollset, das auf physikalischer und logischer Ebene verwendet wird, ist ISO 14443. Hochlevelprotokolle sowie alternative Standards (wie ISO 19092) basieren darauf. Viele Menschen beziehen sich auf diese Technologie als **Near Field Communication (NFC)**, ein Begriff für Geräte, die über die Frequenz von 13.56 MHz arbeiten.
|
|
|
|
<figure><img src="../../images/image (930).png" alt=""><figcaption></figcaption></figure>
|
|
|
|
Einfach gesagt funktioniert die Architektur von NFC so: Das Übertragungsprotokoll wird von dem Unternehmen gewählt, das die Karten herstellt, und basiert auf dem Low-Level-ISO 14443. Zum Beispiel erfand NXP sein eigenes Hochlevel-Übertragungsprotokoll namens Mifare. Aber auf der unteren Ebene basieren Mifare-Karten auf dem ISO 14443-A-Standard.
|
|
|
|
Flipper kann sowohl mit dem Low-Level-ISO 14443-Protokoll als auch mit dem Mifare Ultralight-Datenübertragungsprotokoll und EMV, das in Bankkarten verwendet wird, interagieren. Wir arbeiten daran, die Unterstützung für Mifare Classic und NFC NDEF hinzuzufügen. Ein gründlicher Blick auf die Protokolle und Standards, die NFC ausmachen, ist einen separaten Artikel wert, den wir später veröffentlichen möchten.
|
|
|
|
Alle hochfrequenten Karten, die auf dem ISO 14443-A-Standard basieren, haben eine eindeutige Chip-ID. Sie fungiert als die Seriennummer der Karte, ähnlich der MAC-Adresse einer Netzwerkkarte. **In der Regel ist die UID 4 oder 7 Bytes lang**, kann aber selten **bis zu 10** gehen. UIDs sind kein Geheimnis und sie sind leicht lesbar, **manchmal sogar auf der Karte selbst gedruckt**.
|
|
|
|
Es gibt viele Zugangskontrollsysteme, die sich auf die UID verlassen, um **zu authentifizieren und Zugang zu gewähren**. Manchmal geschieht dies **sogar**, wenn RFID-Tags **Kryptografie unterstützen**. Solche **Missbräuche** bringen sie in Bezug auf **Sicherheit** auf das Niveau der dummen **125 kHz-Karten**. Virtuelle Karten (wie Apple Pay) verwenden eine dynamische UID, damit die Telefonbesitzer nicht mit ihrer Zahlungs-App Türen öffnen.
|
|
|
|
- **Geringe Reichweite** — hochfrequente Karten sind speziell so konzipiert, dass sie nah am Leser platziert werden müssen. Dies hilft auch, die Karte vor unbefugten Interaktionen zu schützen. Die maximale Leseentfernung, die wir erreichen konnten, betrug etwa 15 cm, und das war mit speziell angefertigten Hochreichweitenlesern.
|
|
- **Fortgeschrittene Protokolle** — Datenübertragungsgeschwindigkeiten von bis zu 424 kbps ermöglichen komplexe Protokolle mit vollwertiger bidirektionaler Datenübertragung. Was wiederum **Kryptografie**, Datenübertragung usw. **ermöglicht**.
|
|
- **Hohe Sicherheit** — hochfrequente kontaktlose Karten sind in keiner Weise den Smartcards unterlegen. Es gibt Karten, die kryptografisch starke Algorithmen wie AES unterstützen und asymmetrische Kryptografie implementieren.
|
|
|
|
### Angriff
|
|
|
|
Du kannst **diese Tags mit dem Flipper Zero angreifen**:
|
|
|
|
{{#ref}}
|
|
flipper-zero/fz-nfc.md
|
|
{{#endref}}
|
|
|
|
Oder mit dem **proxmark**:
|
|
|
|
{{#ref}}
|
|
proxmark-3.md
|
|
{{#endref}}
|
|
|
|
## Referenzen
|
|
|
|
- [https://blog.flipperzero.one/rfid/](https://blog.flipperzero.one/rfid/)
|
|
|
|
{{#include ../../banners/hacktricks-training.md}}
|