mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-22 20:53:37 +00:00
125 lines
12 KiB
Markdown
125 lines
12 KiB
Markdown
# Pentesting RFID
|
|
|
|
{% hint style="success" %}
|
|
Impara e pratica il hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
|
Impara e pratica il hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
|
|
|
<details>
|
|
|
|
<summary>Supporta HackTricks</summary>
|
|
|
|
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
|
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
|
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos su github.
|
|
|
|
</details>
|
|
{% endhint %}
|
|
|
|
## Introduzione
|
|
|
|
**L'Identificazione a Radio Frequenza (RFID)** è la soluzione radio a corto raggio più popolare. Viene solitamente utilizzata per memorizzare e trasmettere informazioni che identificano un'entità.
|
|
|
|
Un tag RFID può fare affidamento su **una propria fonte di alimentazione (attivo)**, come una batteria incorporata, o ricevere la sua energia dall'antenna di lettura utilizzando la corrente **indotta dalle onde radio ricevute** (**passivo**).
|
|
|
|
### Classi
|
|
|
|
EPCglobal divide i tag RFID in sei categorie. Un tag in ciascuna categoria ha tutte le capacità elencate nella categoria precedente, rendendolo retrocompatibile.
|
|
|
|
* I tag **Classe 0** sono tag **passivi** che operano nelle bande **UHF**. Il fornitore **li preprogramma** nella fabbrica di produzione. Di conseguenza, **non puoi cambiare** le informazioni memorizzate nella loro memoria.
|
|
* I tag **Classe 1** possono anche operare nelle bande **HF**. Inoltre, possono essere **scritti solo una volta** dopo la produzione. Molti tag di Classe 1 possono anche elaborare **controlli di ridondanza ciclica** (CRC) dei comandi che ricevono. I CRC sono alcuni byte extra alla fine dei comandi per la rilevazione degli errori.
|
|
* I tag **Classe 2** possono essere **scritti più volte**.
|
|
* I tag **Classe 3** possono contenere **sensori incorporati** che possono registrare parametri ambientali, come la temperatura attuale o il movimento del tag. Questi tag sono **semi-passivi**, perché anche se **hanno** una fonte di alimentazione incorporata, come una **batteria** integrata, **non possono iniziare** comunicazioni wireless con altri tag o lettori.
|
|
* I tag **Classe 4** possono iniziare comunicazioni con altri tag della stessa classe, rendendoli **tag attivi**.
|
|
* I tag **Classe 5** possono fornire **energia ad altri tag e comunicare con tutte le classi di tag precedenti**. I tag di Classe 5 possono agire come **lettori RFID**.
|
|
|
|
### Informazioni Memorizzate nei Tag RFID
|
|
|
|
La memoria di un tag RFID di solito memorizza quattro tipi di dati: i **dati di identificazione**, che **identificano** l'**entità** a cui è attaccato il tag (questi dati includono campi definiti dall'utente, come conti bancari); i **dati supplementari**, che forniscono **ulteriori** **dettagli** riguardo all'entità; i **dati di controllo**, utilizzati per la **configurazione** interna del tag; e i **dati del produttore** del tag, che contengono un Identificatore Unico del tag (**UID**) e dettagli riguardanti la **produzione**, il **tipo** e il **fornitore** del tag. Troverai i primi due tipi di dati in tutti i tag commerciali; gli ultimi due possono differire in base al fornitore del tag.
|
|
|
|
Lo standard ISO specifica il valore dell'Identificatore della Famiglia di Applicazione (**AFI**), un codice che indica il **tipo di oggetto** a cui appartiene il tag. Un altro registro importante, anch'esso specificato dall'ISO, è l'Identificatore del Formato di Memorizzazione dei Dati (**DSFID**), che definisce la **organizzazione logica dei dati utente**.
|
|
|
|
La maggior parte dei **controlli di sicurezza RFID** ha meccanismi che **limitano** le operazioni di **lettura** o **scrittura** su ciascun blocco di memoria utente e sui registri speciali contenenti i valori AFI e DSFID. Questi **meccanismi di blocco** utilizzano dati memorizzati nella memoria di controllo e hanno **password predefinite** preconfigurate dal fornitore, ma consentono ai proprietari del tag di **configurare password personalizzate**.
|
|
|
|
### Confronto tra Tag a Bassa e Alta Frequenza
|
|
|
|
<figure><img src="../.gitbook/assets/image (27).png" alt=""><figcaption></figcaption></figure>
|
|
|
|
## Tag RFID a Bassa Frequenza (125kHz)
|
|
|
|
I **tag a bassa frequenza** sono spesso utilizzati in sistemi che **non richiedono alta sicurezza**: accesso agli edifici, chiavi per citofoni, carte di abbonamento in palestra, ecc. A causa della loro maggiore portata, sono comodi da usare per il parcheggio a pagamento: il conducente non deve avvicinare la carta al lettore, poiché viene attivata da una distanza maggiore. Allo stesso tempo, i tag a bassa frequenza sono molto primitivi, hanno una bassa velocità di trasferimento dati. Per questo motivo, è impossibile implementare un complesso trasferimento di dati bidirezionale per cose come il mantenimento del saldo e la crittografia. I tag a bassa frequenza trasmettono solo il loro breve ID senza alcun mezzo di autenticazione.
|
|
|
|
Questi dispositivi si basano sulla tecnologia **RFID passiva** e operano in un **intervallo di 30 kHz a 300 kHz**, anche se è più comune utilizzare 125 kHz a 134 kHz:
|
|
|
|
* **Lunga distanza** — una frequenza più bassa si traduce in una maggiore portata. Ci sono alcuni lettori EM-Marin e HID, che funzionano da una distanza di fino a un metro. Questi sono spesso utilizzati nei parcheggi.
|
|
* **Protocollo primitivo** — a causa della bassa velocità di trasferimento dati, questi tag possono trasmettere solo il loro breve ID. Nella maggior parte dei casi, i dati non sono autenticati e non sono protetti in alcun modo. Non appena la carta è nel raggio del lettore, inizia semplicemente a trasmettere il suo ID.
|
|
* **Bassa sicurezza** — Queste carte possono essere facilmente copiate, o anche lette dalla tasca di qualcun altro a causa della primitività del protocollo.
|
|
|
|
**Protocollo 125 kHz popolari:**
|
|
|
|
* **EM-Marin** — EM4100, EM4102. Il protocollo più popolare nella CIS. Può essere letto da circa un metro grazie alla sua semplicità e stabilità.
|
|
* **HID Prox II** — protocollo a bassa frequenza introdotto da HID Global. Questo protocollo è più popolare nei paesi occidentali. È più complesso e le carte e i lettori per questo protocollo sono relativamente costosi.
|
|
* **Indala** — protocollo a bassa frequenza molto vecchio introdotto da Motorola, e successivamente acquisito da HID. È meno probabile che tu lo incontri nel mondo reale rispetto ai precedenti due perché sta cadendo in disuso.
|
|
|
|
In realtà, ci sono molti più protocolli a bassa frequenza. Ma utilizzano tutti la stessa modulazione sul livello fisico e possono essere considerati, in un modo o nell'altro, una variazione di quelli elencati sopra.
|
|
|
|
### Attacco
|
|
|
|
Puoi **attaccare questi Tag con il Flipper Zero**:
|
|
|
|
{% content-ref url="../todo/radio-hacking/flipper-zero/fz-125khz-rfid.md" %}
|
|
[fz-125khz-rfid.md](../todo/radio-hacking/flipper-zero/fz-125khz-rfid.md)
|
|
{% endcontent-ref %}
|
|
|
|
## Tag RFID ad Alta Frequenza (13.56 MHz)
|
|
|
|
I **tag ad alta frequenza** sono utilizzati per un'interazione più complessa tra lettore e tag quando hai bisogno di crittografia, un ampio trasferimento di dati bidirezionale, autenticazione, ecc.\
|
|
Si trovano solitamente in carte bancarie, trasporti pubblici e altri passaggi sicuri.
|
|
|
|
I **tag ad alta frequenza da 13.56 MHz sono un insieme di standard e protocolli**. Vengono solitamente chiamati [NFC](https://nfc-forum.org/what-is-nfc/about-the-technology/), ma non è sempre corretto. L'insieme di protocolli di base utilizzato a livello fisico e logico è ISO 14443. I protocolli di alto livello, così come standard alternativi (come ISO 19092), si basano su di esso. Molte persone si riferiscono a questa tecnologia come **Comunicazione a Campo Vicino (NFC)**, un termine per dispositivi che operano sulla frequenza di 13.56 MHz.
|
|
|
|
<figure><img src="../.gitbook/assets/image (22).png" alt=""><figcaption></figcaption></figure>
|
|
|
|
Per dirla semplicemente, l'architettura NFC funziona così: il protocollo di trasmissione è scelto dall'azienda che produce le carte e implementato sulla base del livello ISO 14443. Ad esempio, NXP ha inventato il proprio protocollo di trasmissione di alto livello chiamato Mifare. Ma a livello inferiore, le carte Mifare si basano sullo standard ISO 14443-A.
|
|
|
|
Flipper può interagire sia con il protocollo ISO 14443 a basso livello, sia con il protocollo di trasferimento dati Mifare Ultralight e EMV utilizzato nelle carte bancarie. Stiamo lavorando per aggiungere supporto per Mifare Classic e NFC NDEF. Un'analisi approfondita dei protocolli e degli standard che compongono l'NFC merita un articolo separato che prevediamo di pubblicare in seguito.
|
|
|
|
Tutte le carte ad alta frequenza basate sullo standard ISO 14443-A hanno un ID chip unico. Funziona come il numero di serie della carta, come l'indirizzo MAC di una scheda di rete. **Di solito, l'UID è lungo 4 o 7 byte**, ma può raramente arrivare **fino a 10**. Gli UID non sono un segreto e sono facilmente leggibili, **a volte anche stampati sulla carta stessa**.
|
|
|
|
Ci sono molti sistemi di controllo accessi che si basano sull'UID per **autenticare e concedere accesso**. A volte questo avviene **anche** quando i tag RFID **supportano la crittografia**. Tale **uso improprio** li riduce al livello delle stupide **carte da 125 kHz** in termini di **sicurezza**. Le carte virtuali (come Apple Pay) utilizzano un UID dinamico in modo che i proprietari dei telefoni non possano aprire porte con la loro app di pagamento.
|
|
|
|
* **Bassa portata** — le carte ad alta frequenza sono specificamente progettate per essere posizionate vicino al lettore. Questo aiuta anche a proteggere la carta da interazioni non autorizzate. La massima distanza di lettura che siamo riusciti a raggiungere è stata di circa 15 cm, e questo è stato con lettori ad alta portata realizzati su misura.
|
|
* **Protocolli avanzati** — velocità di trasferimento dati fino a 424 kbps consentono protocolli complessi con trasferimento di dati bidirezionale completo. Che a sua volta **consente la crittografia**, il trasferimento di dati, ecc.
|
|
* **Alta sicurezza** — le carte contactless ad alta frequenza non sono in alcun modo inferiori alle smart card. Ci sono carte che supportano algoritmi crittografici robusti come AES e implementano crittografia asimmetrica.
|
|
|
|
### Attacco
|
|
|
|
Puoi **attaccare questi Tag con il Flipper Zero**:
|
|
|
|
{% content-ref url="../todo/radio-hacking/flipper-zero/fz-nfc.md" %}
|
|
[fz-nfc.md](../todo/radio-hacking/flipper-zero/fz-nfc.md)
|
|
{% endcontent-ref %}
|
|
|
|
Oppure usando il **proxmark**:
|
|
|
|
{% content-ref url="../todo/radio-hacking/proxmark-3.md" %}
|
|
[proxmark-3.md](../todo/radio-hacking/proxmark-3.md)
|
|
{% endcontent-ref %}
|
|
|
|
## Riferimenti
|
|
|
|
* [https://blog.flipperzero.one/rfid/](https://blog.flipperzero.one/rfid/)
|
|
|
|
{% hint style="success" %}
|
|
Impara e pratica il hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
|
Impara e pratica il hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
|
|
|
<details>
|
|
|
|
<summary>Supporta HackTricks</summary>
|
|
|
|
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
|
|
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
|
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos su github.
|
|
|
|
</details>
|
|
{% endhint %}
|