# Pentesting RFID
Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)! * Werk jy in 'n **cybersekerheidsmaatskappy**? Wil jy jou **maatskappy geadverteer sien in HackTricks**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks aflaai in PDF-formaat**? Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)! * Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family) * Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com) * **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** * **Deel jou haktruuks deur PR's in te dien by die** [**hacktricks-opslag**](https://github.com/carlospolop/hacktricks) **en** [**hacktricks-cloud-opslag**](https://github.com/carlospolop/hacktricks-cloud).
## Inleiding **Radiofrekwensie-identifikasie (RFID)** is die mees gewilde kortafstand radio-oplossing. Dit word gewoonlik gebruik om inligting te stoor en oor te dra wat 'n entiteit identifiseer. 'n RFID-etiket kan staatmaak op **sy eie kragbron (aktief)**, soos 'n ingeboude battery, of kry sy krag van die leesantenne deur die huidige **wat geïnduseer word deur die ontvang radio-golwe** (**passief**). ### Klasse EPCglobal verdeel RFID-etikette in ses kategorieë. 'n Etiket in elke kategorie het al die vermoëns wat in die vorige kategorie gelys is, wat dit agteruitversoenbaar maak. * **Klas 0** etikette is **passiewe** etikette wat in **UHF** bande werk. Die verkoper **programmeer** hulle by die produksiefabriek. As gevolg hiervan **kan jy nie** die inligting wat in hul geheue gestoor is, **verander nie**. * **Klas 1** etikette kan ook in **HF** bande werk. Daarbenewens kan hulle **slegs een keer na produksie geskryf word**. Baie Klas 1 etikette kan ook **sikliese redundansie kontroles** (CRC's) van die opdragte wat hulle ontvang, verwerk. CRC's is 'n paar ekstra byte aan die einde van die opdragte vir foutopsporing. * **Klas 2** etikette kan **meerdere kere geskryf word**. * **Klas 3** etikette kan **ingebedde sensors** bevat wat omgewingsparameters kan opneem, soos die huidige temperatuur of die etiket se beweging. Hierdie etikette is **semi-passief**, omdat alhoewel hulle 'n ingeboude kragbron het, soos 'n geïntegreerde **batterye**, hulle nie draadlose **kommunikasie** met ander etikette of lesers **kan inisieer nie**. * **Klas 4** etikette kan kommunikasie met ander etikette van dieselfde klas inisieer, wat hulle **aktiewe etikette** maak. * **Klas 5** etikette kan **krag aan ander etikette voorsien en met al die vorige etiketklasse kommunikeer**. Klas 5 etikette kan as **RFID-lesers** optree. ### Inligting Gestoor in RFID Etikette 'n RFID-etiket se geheue stoor gewoonlik vier soorte data: die **identifikasie data**, wat die **entiteit** identifiseer waaraan die etiket geheg is (hierdie data sluit gebruiker-gedefinieerde velde in, soos bankrekeninge); die **aanvullende data**, wat **verdere** **besonderhede** oor die entiteit verskaf; die **beheerdata**, wat gebruik word vir die etiket se interne **konfigurasie**; en die etiket se **vervaardigerdata**, wat 'n etiket se Unieke Identifiseerder (**UID**) en besonderhede oor die etiket se **produksie**, **tipe**, en **verkoper** bevat. Jy sal die eerste twee soorte data in alle kommersiële etikette vind; die laaste twee kan verskil op grond van die etiket se verkoper. Die ISO-standaard spesifiseer die Aansoekfamilie-identifiseerder (**AFI**) waarde, 'n kode wat die **soort voorwerp** aandui waaraan die etiket behoort. 'n Ander belangrike register, ook deur ISO gespesifiseer, is die Data Bergingsformaat Identifiseerder (**DSFID**), wat die **logiese organisasie van die gebruikersdata** definieer. Meeste RFID **sekuriteitskontroles** het meganismes wat die **lees** of **skryf**-operasies op elke gebruikersgeheueblok en op die spesiale registers wat die AFI- en DSFID-waardes bevat, **beperk**. Hierdie **sluitingsmeganismes** gebruik data wat in die beheergeheue gestoor is en het **standaard wagwoorde** wat deur die verkoper voorgesit is, maar laat die etiket eienaars toe om **aangepaste wagwoorde te konfigureer**. ### Lae- en Hoëfrekwensie-etikette vergelyking
## Lae-Frekwensie RFID Etikette (125kHz) **Lae-frekwensie etikette** word dikwels gebruik in stelsels wat **nie hoë sekuriteit benodig nie**: gebou-toegang, interkom sleutels, gimnasium-lidmaatskapskaarte, ens. As gevolg van hul hoër reikwydte, is dit gerieflik om dit te gebruik vir betaalde motorparkering: die bestuurder hoef nie die kaart naby aan die leser te bring nie, omdat dit van verder af geaktiveer word. Terselfdertyd is lae-frekwensie etikette baie primitief, hulle het 'n lae data-oordragtempo. Om hierdie rede is dit onmoontlik om komplekse tweerigting data-oordrag te implementeer vir sulke dinge soos balans hou en kriptografie. Lae-frekwensie etikette stuur slegs hul kort ID oor sonder enige vorm van outentifikasie. Hierdie toestelle staatmaak op **passiewe** **RFID**-tegnologie en werk in 'n **reeks van 30 kHz tot 300 kHz**, alhoewel dit meer gewoonlik is om 125 kHz tot 134 kHz te gebruik: * **Lang Reikwydte** — laer frekwensie vertaal na hoër reikwydte. Daar is 'n paar EM-Marin en HID lesers wat werk van 'n afstand tot 'n meter. Hierdie word dikwels in motorparkering gebruik. * **Primitiewe protokol** — as gevolg van die lae data-oordragtempo kan hierdie etikette slegs hul kort ID oordra. In die meeste gevalle word data nie geoutentifiseer en dit is op geen manier beskerm nie. Sodra die kaart binne die reik van die leser is, begin dit net sy ID oordra. * **Laer sekuriteit** — Hierdie kaarte kan maklik gekopieer word, of selfs van iemand anders se sak gelees word as gevolg van die primitiwiteit van die protokol. **Gewilde 125 kHz protokolle:** * **EM-Marin** — EM4100, EM4102. Die mees gewilde protokol in die GOS. Kan gelees word vanaf ongeveer 'n meter as gevolg van sy eenvoudigheid en stabiliteit. * **HID Prox II** — lae-frekwensie protokol wat deur HID Global bekendgestel is. Hierdie protokol is meer gewild in die westerse lande. Dit is meer kompleks en die kaarte en lesers vir hierdie protokol is relatief duur. * **Indala** — baie ou lae-frekwensie protokol wat deur Motorola bekendgestel is, en later deur HID verkry is. Jy is minder geneig om dit in die natuur te vind in vergelyking met die vorige twee omdat dit uit gebruik raak. In werklikheid is daar baie meer lae-frekwensie protokolle. Maar hulle gebruik almal dieselfde modulasie op die fisiese laag en kan, op een of ander manier, as 'n variasie van die bogenoemde beskou word. ### Aanval Jy kan **hierdie Etikette aanval met die Flipper Zero**: {% content-ref url="flipper-zero/fz-125khz-rfid.md" %} [fz-125khz-rfid.md](flipper-zero/fz-125khz-rfid.md) {% endcontent-ref %} ## Hoë Frekwensie RFID-etikette (13.56 MHz) **Hoë frekwensie etikette** word gebruik vir 'n meer komplekse leser-etiket interaksie wanneer jy kriptografie, 'n groot tweerigting data-oordrag, verifikasie, ens. benodig. Dit word gewoonlik gevind in bankkaarte, openbare vervoer, en ander veilige toegangspasse. **Hoë frekwensie 13.56 MHz etikette is 'n stel standaarde en protokolle**. Hulle word gewoonlik verwys as [NFC](https://nfc-forum.org/what-is-nfc/about-the-technology/), maar dit is nie altyd korrek nie. Die basiese protokolstel wat op fisiese en logiese vlakke gebruik word, is ISO 14443. Hoëvlak protokolle, sowel as alternatiewe standaarde (soos ISO 19092), is daarop gebaseer. Baie mense verwys na hierdie tegnologie as **Near Field Communication (NFC)**, 'n term vir toestelle wat op die 13.56 MHz frekwensie werk.
Om dit eenvoudig te stel, werk die argitektuur van NFC soos volg: die oordragprotokol word deur die maatskappy wat die kaarte maak gekies en geïmplementeer op grond van die laevlak ISO 14443. Byvoorbeeld, NXP het sy eie hoëvlak oordragprotokol genaamd Mifare uitgevind. Maar op die laer vlak is Mifare-kaarte gebaseer op die ISO 14443-A standaard. Flipper kan met beide die laevlak ISO 14443 protokol, sowel as Mifare Ultralight data-oordragprotokol en EMV wat in bankkaarte gebruik word, interaksie hê. Ons werk daaraan om ondersteuning vir Mifare Classic en NFC NDEF by te voeg. 'n Deeglike kyk na die protokolle en standaarde wat NFC uitmaak, is die moeite werd van 'n aparte artikel wat ons later beplan om te publiseer. Alle hoë frekwensie kaarte gebaseer op die ISO 14443-A standaard het 'n unieke chip-ID. Dit tree op as die kaart se serienommer, soos 'n netwerkkaart se MAC-adres. **Gewoonlik is die UID 4 of 7 byte lank**, maar kan selde **tot 10** gaan. UIDs is nie 'n geheim nie en hulle is maklik leesbaar, **soms selfs op die kaart self gedruk**. Daar is baie toegangsbeheerstelsels wat op UID staatmaak om **verifikasie te doen en toegang te verleen**. Soms gebeur dit **selfs** wanneer RFID-etikette **kriptografie ondersteun**. Sulke **misbruik** bring hulle na die vlak van die domme **125 kHz kaarte** in terme van **sekuriteit**. Virtuele kaarte (soos Apple Pay) gebruik 'n dinamiese UID sodat foneienaars nie deure met hul betalingsprogram sal oopmaak nie. * **Lae reeks** — hoë frekwensie kaarte is spesifiek ontwerp sodat hulle naby die leser geplaas moet word. Dit help ook om die kaart teen ongemagtigde interaksies te beskerm. Die maksimum leesafstand wat ons kon bereik was ongeveer 15 cm, en dit was met op maat gemaakte hoë-reik leser. * **Gevorderde protokolle** — data-oordrag spoed tot 424 kbps maak komplekse protokolle met volwaardige tweerigting data-oordrag moontlik. Dit **maak kriptografie**, data-oordrag, ens. moontlik. * **Hoë sekuriteit** — hoë frekwensie kontaklose kaarte is geensins minderwaardig aan slim kaarte nie. Daar is kaarte wat kriptografies sterk algoritmes soos AES ondersteun en asimmetriese kriptografie implementeer. ### Aanval Jy kan **hierdie Etikette aanval met die Flipper Zero**: {% content-ref url="flipper-zero/fz-nfc.md" %} [fz-nfc.md](flipper-zero/fz-nfc.md) {% endcontent-ref %} Of deur die **proxmark** te gebruik: {% content-ref url="proxmark-3.md" %} [proxmark-3.md](proxmark-3.md) {% endcontent-ref %} ## Verwysings * [https://blog.flipperzero.one/rfid/](https://blog.flipperzero.one/rfid/)