Pentesting RFID

Reading time: 11 minutes

tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks

Einführung

Radiofrequenz-Identifikation (RFID) ist die verbreitetste Kurzstrecken-Funklösung. Sie wird üblicherweise verwendet, um Informationen zu speichern und zu übertragen, die eine Entität identifizieren.

Ein RFID-Tag kann auf eine eigene Stromquelle (active) angewiesen sein, wie etwa eine eingebaute Batterie, oder seine Energie von der Lesegeräte-Antenne über den aus den empfangenen Funkwellen induzierten Strom beziehen (passive).

Klassen

EPCglobal unterteilt RFID-Tags in sechs Kategorien. Ein Tag in jeder Kategorie besitzt alle Fähigkeiten der vorherigen Kategorie und ist damit abwärtskompatibel.

  • Class 0 Tags sind passive Tags, die in UHF-Bändern arbeiten. Der Hersteller programmiert sie im Werk vor. Daher kann man die in ihrem Speicher gespeicherten Informationen nicht ändern.
  • Class 1 Tags können auch in HF-Bändern arbeiten. Zusätzlich können sie nur einmal nach der Produktion beschrieben werden. Viele Class 1 Tags können außerdem zyklische Redundanzprüfungen (CRCs) der empfangenen Befehle verarbeiten. CRCs sind ein paar zusätzliche Bytes am Ende der Befehle zur Fehlererkennung.
  • Class 2 Tags können mehrfach beschrieben werden.
  • Class 3 Tags können eingebettete Sensoren enthalten, die Umweltparameter aufzeichnen können, wie z. B. die aktuelle Temperatur oder die Bewegung des Tags. Diese Tags sind semi-passive, da sie zwar über eine eingebaute Stromquelle wie eine integrierte Batterie verfügen, sie aber keine drahtlose Kommunikation mit anderen Tags oder Lesegeräten initiieren können.
  • Class 4 Tags können die Kommunikation mit anderen Tags derselben Klasse initiieren, wodurch sie zu active tags werden.
  • Class 5 Tags können anderen Tags Energie liefern und mit allen vorherigen Klassen kommunizieren. Class 5 Tags können als RFID readers fungieren.

In RFID-Tags gespeicherte Informationen

Der Speicher eines RFID-Tags enthält üblicherweise vier Arten von Daten: die identification data, die die Entität identifiziert, an die das Tag angebracht ist (diese Daten schließen benutzerdefinierte Felder wie Bankkonten ein); die supplementary data, die weitere Details zur Entität liefert; die control data, die für die interne Konfiguration des Tags verwendet wird; und die manufacturer data des Tags, die die eindeutige Kennung (UID) und Details zur Produktion, zum Typ und zum Vendor des Tags enthält. Die ersten beiden Datentypen findet man in allen kommerziellen Tags; die letzten beiden können je nach Vendor des Tags variieren.

Die ISO-Norm spezifiziert den Application Family Identifier (AFI) Wert, einen Code, der die Art des Objekts angibt, zu dem das Tag gehört. Ein weiteres wichtiges Register, ebenfalls von ISO spezifiziert, ist der Data Storage Format Identifier(DSFID), der die logische Organisation der Nutzerdaten definiert.

Die meisten RFID-Sicherheitsmechanismen verfügen über Verfahren, die die Lese- oder Schreiboperationen auf jeden Benutzer-Speicherblock und auf die speziellen Register, die AFI- und DSFID-Werte enthalten, einschränken. Diese Sperrmechanismen verwenden Daten, die im Kontrollspeicher gespeichert sind, und enthalten vom Hersteller vorkonfigurierte Standardpasswörter, erlauben es aber den Tag-Besitzern, benutzerdefinierte Passwörter zu konfigurieren.

Vergleich Nieder- & Hochfrequenz-Tags

Niederfrequente RFID-Tags (125kHz)

Niederfrequente Tags werden oft in Systemen eingesetzt, die keine hohe Sicherheit erfordern: Gebäudezugang, Sprechanlagen-Schlüssel, Fitnessstudio-Mitgliedskarten usw. Aufgrund ihrer größeren Reichweite eignen sie sich gut für bezahlte Parkplätze: Der Fahrer muss die Karte nicht nah an den Leser halten, da sie aus größerer Entfernung ausgelöst wird. Gleichzeitig sind niederfrequente Tags sehr primitiv und haben eine geringe Datenübertragungsrate. Aus diesem Grund ist es unmöglich, komplexe bidirektionale Datenübertragungen für Dinge wie Guthabenverwaltung und Kryptographie zu implementieren. Niederfrequente Tags übertragen nur ihre kurze ID ohne irgendeine Authentifizierung.

Diese Geräte basieren auf passiver RFID-Technologie und arbeiten in einem Frequenzbereich von 30 kHz bis 300 kHz, üblicherweise aber zwischen 125 kHz und 134 kHz:

  • Long Range — niedrigere Frequenz bedeutet größere Reichweite. Es gibt einige EM-Marin- und HID-Leser, die aus einer Entfernung von bis zu einem Meter funktionieren. Diese werden oft in Parkhäusern eingesetzt.
  • Primitives Protokoll — aufgrund der niedrigen Datenrate können diese Tags nur ihre kurze ID übertragen. In den meisten Fällen sind die Daten nicht authentifiziert und nicht geschützt. Sobald sich die Karte im Lesebereich befindet, beginnt sie einfach, ihre ID zu übertragen.
  • Geringe Sicherheit — Diese Karten können leicht kopiert oder aufgrund der Primitivität des Protokolls sogar aus der Tasche einer anderen Person ausgelesen werden.

Beliebte 125 kHz Protokolle:

  • EM-Marin — EM4100, EM4102. Das populärste Protokoll in der CIS-Region. Kann aufgrund seiner Einfachheit und Stabilität aus etwa einem Meter Entfernung gelesen werden.
  • HID Prox II — niederfrequentes Protokoll von HID Global. Dieses Protokoll ist in westlichen Ländern populärer. Es ist komplexer und die Karten und Leser für dieses Protokoll sind relativ teuer.
  • Indala — sehr altes niederfrequentes Protokoll, ursprünglich von Motorola eingeführt und später von HID übernommen. Man trifft es in freier Wildbahn seltener an als die beiden vorherigen, da es aus der Nutzung verschwindet.

In der Realität existieren viele weitere niederfrequente Protokolle. Aber sie alle verwenden dieselbe Modulation auf der physikalischen Schicht und können in gewisser Weise als Varianten der oben genannten betrachtet werden.

Angriff

Du kannst diese Tags mit dem Flipper Zero angreifen:

FZ - 125kHz RFID

Hochfrequente RFID-Tags (13.56 MHz)

Hochfrequente Tags werden eingesetzt, wenn eine komplexere Leser-Tag-Interaktion erforderlich ist — z. B. für Kryptographie, umfangreiche bidirektionale Datenübertragung, Authentifizierung usw.
Man findet sie üblicherweise in Bankkarten, im öffentlichen Nahverkehr und in anderen sicheren Zutrittslösungen.

Hochfrequente 13.56 MHz Tags sind ein Bündel von Standards und Protokollen. Sie werden oft als NFC bezeichnet, was nicht immer korrekt ist. Das grundlegende Protokoll-Set auf physikalischer und logischer Ebene ist ISO 14443. Höhere Protokollebenen sowie alternative Standards (wie ISO 19092) basieren darauf. Viele Leute sprechen von dieser Technologie als Near Field Communication (NFC), einem Begriff für Geräte, die auf der Frequenz 13.56 MHz arbeiten.

Vereinfacht funktioniert NFC-Architektur so: Das Übertragungsprotokoll wird vom Kartenhersteller gewählt und basierend auf der low-level ISO 14443 implementiert. Zum Beispiel hat NXP sein eigenes High-Level-Übertragungsprotokoll namens Mifare erfunden. Auf der unteren Ebene basieren Mifare-Karten jedoch auf dem ISO 14443-A Standard.

Flipper kann sowohl mit dem low-level ISO 14443 Protokoll interagieren als auch mit dem Mifare Ultralight Datenübertragungsprotokoll und EMV, das in Bankkarten verwendet wird. Wir arbeiten daran, Unterstützung für Mifare Classic und NFC NDEF hinzuzufügen. Ein detaillierter Blick auf die Protokolle und Standards, die NFC ausmachen, wäre einen eigenen Artikel wert, den wir später veröffentlichen wollen.

Alle hochfrequenten Karten, die auf dem ISO 14443-A Standard basieren, haben eine eindeutige Chip-ID. Sie fungiert als Seriennummer der Karte, ähnlich der MAC-Adresse einer Netzwerkkarte. In der Regel ist die UID 4 oder 7 Byte lang, kann aber selten bis zu 10 Byte betragen. UIDs sind kein Geheimnis und lassen sich leicht auslesen, manchmal sogar direkt auf der Karte aufgedruckt.

Viele Zutrittskontrollsysteme verlassen sich auf die UID zur Authentifizierung und zur Gewährung von Zugang. Manchmal geschieht dies selbst dann, wenn RFID-Tags Kryptographie unterstützen. Eine solche Fehlanwendung reduziert sie in puncto Sicherheit auf das Niveau der einfachen 125 kHz Karten. Virtuelle Karten (wie Apple Pay) verwenden eine dynamische UID, sodass Telefonbesitzer nicht mit ihrer Zahlungs-App Türen öffnen können.

  • Kurze Reichweite — hochfrequente Karten sind so ausgelegt, dass sie nahe am Leser platziert werden müssen. Das schützt die Karte zusätzlich vor unbefugten Interaktionen. Die maximale Lesereichweite, die wir erreicht haben, betrug etwa 15 cm — und das mit maßgefertigten High-Range-Lesern.
  • Fortgeschrittene Protokolle — Datenübertragungsraten bis zu 424 kbps erlauben komplexe Protokolle mit vollständiger bidirektionaler Datenübertragung. Das ermöglicht Kryptographie, Datenübertragung usw.
  • Hohe Sicherheit — hochfrequente kontaktlose Karten sind Smartcards in nichts nachstehend. Es gibt Karten, die kryptographisch starke Algorithmen wie AES unterstützen und asymmetrische Kryptographie implementieren.

Angriff

Du kannst diese Tags mit dem Flipper Zero angreifen:

FZ - NFC

Oder mit dem proxmark:

Proxmark 3

MiFare Classic Offline-Manipulation gespeicherter Guthaben (broken Crypto1)

Wenn ein System ein Geldguthaben direkt auf einer MiFare Classic-Karte speichert, kann man es häufig manipulieren, da Classic NXPs veralteten Crypto1-Cipher verwendet. Crypto1 ist seit Jahren gebrochen, wodurch die Wiederherstellung von Sektor-Schlüsseln und das vollständige Lesen/Schreiben des Karten-Speichers mit handelsüblicher Hardware (z. B. Proxmark3) möglich ist.

End-to-end-Workflow (abstrahiert):

  1. Karte auslesen (Dump) und Schlüssel rekonstruieren
bash
# Attempt all built-in Classic key recovery attacks and dump the card
hf mf autopwn

Dies stellt typischerweise die sector keys (A/B) wieder her und erzeugt einen full-card dump im client dumps folder.

  1. Lokalisieren und Verstehen der value/integrity fields
  • Führe legitime top-ups auf der Originalkarte durch und erstelle mehrere dumps (vor/nach).
  • Führe einen diff der beiden dumps durch, um die sich ändernden blocks/bytes zu identifizieren, die den balance und etwaige integrity fields repräsentieren.
  • Viele Classic-Deployments verwenden entweder die native "value block"-Kodierung oder implementieren eigene checksums (z. B. XOR des balance mit einem anderen Feld und einer Konstanten). Nach Änderung des balance müssen die integrity bytes entsprechend neu berechnet werden und alle duplicated/complemented fields konsistent sein.
  1. Schreibe den modifizierten dump auf einen beschreibbaren “Chinese magic” Classic tag
bash
# Load a modified binary dump onto a UID-changeable Classic tag
hf mf cload -f modified.bin
  1. Klone die originale UID, damit Terminals die Karte erkennen
bash
# Set the UID on a UID-changeable tag (gen1a/gen2 magic)
hf mf csetuid -u <original_uid>
  1. Einsatz an Terminals

Lesegeräte, die dem auf der Karte gespeicherten Guthaben und der UID vertrauen, akzeptieren die manipulierte Karte. Feldbeobachtungen zeigen, dass viele Installationen Guthaben basierend auf der Feldbreite begrenzen (z. B. 16-Bit Festkomma).

Hinweise

  • Wenn das System native Classic value blocks verwendet, merke dir das Format: value (4B) + ~value (4B) + value (4B) + block address + ~address. Alle Teile müssen übereinstimmen.
  • Bei benutzerdefinierten Formaten mit einfachen Checksummen ist Differentialanalyse der schnellste Weg, die Integritätsfunktion abzuleiten, ohne die Firmware zu reverse-engineeren.
  • Nur UID-änderbare Tags ("Chinese magic" gen1a/gen2) erlauben das Schreiben von block 0/UID. Normale Classic-Karten haben schreibgeschützte UIDs.

Für praktische Proxmark3-Befehle siehe:

Proxmark 3

Bau eines tragbaren HID MaxiProx 125 kHz Mobile Cloners

Wenn Sie eine mit großer Reichweite, batteriebetriebene Lösung zum Sammeln von HID Prox® Badges bei Red-Team-Einsätzen benötigen, können Sie das wandmontierte HID MaxiProx 5375 Lesegerät in einen eigenständigen Cloner umbauen, der in einen Rucksack passt. Die vollständige mechanische und elektrische Schritt-für-Schritt-Anleitung ist hier verfügbar:

Maxiprox Mobile Cloner


Referenzen

tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks