Pentesting RFID

Reading time: 11 minutes

tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Μάθετε & εξασκηθείτε στο Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks

Εισαγωγή

Radio Frequency Identification (RFID) είναι η πιο δημοφιλής λύση μικρής εμβέλειας με ραδιοκύματα. Χρησιμοποιείται συνήθως για την αποθήκευση και μετάδοση πληροφοριών που αναγνωρίζουν μια οντότητα.

Ένα RFID tag μπορεί να βασίζεται σε δική του πηγή ενέργειας (active), όπως μια ενσωματωμένη μπαταρία, ή να λαμβάνει την ενέργειά του από την κεραία ανάγνωσης χρησιμοποιώντας το ρεύμα επαγόμενο από τα ληφθέντα ραδιοκύματα (passive).

Classes

EPCglobal χωρίζει τα RFID tags σε έξι κατηγορίες. Ένα tag σε κάθε κατηγορία έχει όλες τις δυνατότητες που αναφέρονται στην προηγούμενη κατηγορία, καθιστώντας το συμβατό προς τα πίσω.

  • Class 0 tags είναι passive tags που λειτουργούν στις ζώνες UHF. Ο προμηθευτής τα προ-προγραμματίζει στο εργοστάσιο παραγωγής. Ως αποτέλεσμα, δεν μπορείτε να αλλάξετε τις πληροφορίες που είναι αποθηκευμένες στη μνήμη τους.
  • Class 1 tags μπορούν επίσης να λειτουργούν σε ζώνες HF. Επιπλέον, μπορούν να γραφτούν μόνο μία φορά μετά την παραγωγή. Πολλά Class 1 tags μπορούν επίσης να επεξεργάζονται cyclic redundancy checks (CRCs) των εντολών που λαμβάνουν. Τα CRCs είναι μερικά επιπλέον bytes στο τέλος των εντολών για ανίχνευση λαθών.
  • Class 2 tags μπορούν να γραφτούν πολλές φορές.
  • Class 3 tags μπορούν να περιέχουν ενσωματωμένους αισθητήρες που μπορούν να καταγράψουν περιβαλλοντικές παραμέτρους, όπως την τρέχουσα θερμοκρασία ή την κίνηση του tag. Αυτά τα tags είναι semi-passive, επειδή, αν και έχουν ενσωματωμένη πηγή ενέργειας, όπως μια μπαταρία, δεν μπορούν να ξεκινήσουν ασύρματη επικοινωνία με άλλα tags ή readers.
  • Class 4 tags μπορούν να ξεκινήσουν επικοινωνία με άλλα tags της ίδιας κλάσης, καθιστώντας τα active tags.
  • Class 5 tags μπορούν να παρέχουν ενέργεια σε άλλα tags και να επικοινωνούν με όλες τις προηγούμενες κλάσεις. Τα Class 5 tags μπορούν να λειτουργήσουν ως RFID readers.

Πληροφορίες αποθηκευμένες σε RFID Tags

Η μνήμη ενός RFID tag συνήθως αποθηκεύει τέσσερις τύπους δεδομένων: τα identification data, που αναγνωρίζουν την οντότητα στην οποία είναι προσαρτημένο το tag (αυτά τα δεδομένα περιλαμβάνουν πεδία ορισμένα από τον χρήστη, όπως τραπεζικοί λογαριασμοί); τα supplementary data, που παρέχουν περαιτέρω λεπτομέρειες σχετικά με την οντότητα; τα control data, που χρησιμοποιούνται για την εσωτερική διαμόρφωση του tag; και τα manufacturer data του tag, που περιέχουν το Unique Identifier (UID) του tag και λεπτομέρειες σχετικά με την παραγωγή, τον τύπο και τον προμηθευτή του tag. Θα βρείτε τους δύο πρώτους τύπους δεδομένων σε όλα τα εμπορικά tags· οι δύο τελευταίοι μπορεί να διαφέρουν ανάλογα με τον vendor του tag.

Το πρότυπο ISO καθορίζει την τιμή Application Family Identifier (AFI), έναν κωδικό που υποδεικνύει το είδος αντικειμένου στο οποίο ανήκει το tag. Ένας άλλος σημαντικός καταχωρητής, επίσης καθορισμένος από το ISO, είναι το Data Storage Format Identifier (DSFID), που ορίζει την λογική οργάνωση των user data.

Οι περισσότερες security controls στα RFID έχουν μηχανισμούς που περιορίζουν τις λειτουργίες read ή write σε κάθε μπλοκ user μνήμης και στους ειδικούς καταχωρητές που περιέχουν τις τιμές AFI και DSFID. Αυτοί οι lock μηχανισμοί χρησιμοποιούν δεδομένα αποθηκευμένα στην control μνήμη και έχουν προεπιλεγμένους κωδικούς (default passwords) ρυθμισμένους από τον vendor, αλλά επιτρέπουν στους ιδιοκτήτες του tag να διαμορφώσουν προσαρμοσμένους κωδικούς.

Σύγκριση tags χαμηλής & υψηλής συχνότητας

Low-Frequency RFID Tags (125kHz)

Τα χαμηλής συχνότητας tags χρησιμοποιούνται συχνά σε συστήματα που δεν απαιτούν υψηλή ασφάλεια: πρόσβαση σε κτίρια, κλειδιά θυρών intercom, κάρτες γυμναστηρίου κ.λπ. Λόγω της μεγαλύτερης εμβέλειάς τους, είναι βολικά για πληρωμένα πάρκινγκ αυτοκινήτων: ο οδηγός δεν χρειάζεται να φέρει την κάρτα κοντά στον reader, καθώς ενεργοποιείται από μεγαλύτερη απόσταση. Ταυτόχρονα, τα low-frequency tags είναι πολύ πρωτόγονα, έχουν χαμηλό ρυθμό μετάδοσης δεδομένων. Γι' αυτό είναι αδύνατο να εφαρμοστούν πολύπλοκες αμφίδρομες μεταφορές δεδομένων για πράγματα όπως διαχείριση υπολοίπου και κρυπτογραφία. Τα low-frequency tags μεταδίδουν μόνο το σύντομο ID τους χωρίς κανένα μέσο αυθεντικοποίησης.

Αυτές οι συσκευές βασίζονται σε passive RFID τεχνολογία και λειτουργούν σε εύρος 30 kHz έως 300 kHz, αν και είναι πιο συνηθισμένο να χρησιμοποιείται 125 kHz έως 134 kHz:

  • Μεγάλη εμβέλεια — χαμηλότερη συχνότητα σημαίνει μεγαλύτερη εμβέλεια. Υπάρχουν μερικοί αναγνώστες EM-Marin και HID που λειτουργούν από απόσταση έως και ένα μέτρο. Αυτοί χρησιμοποιούνται συχνά σε πάρκινγκ αυτοκινήτων.
  • Πρωτόγονο πρωτόκολλο — λόγω του χαμηλού ρυθμού μετάδοσης δεδομένων αυτά τα tags μπορούν μόνο να μεταδώσουν το σύντομο ID τους. Στις περισσότερες περιπτώσεις, τα δεδομένα δεν αυθεντικοποιούνται και δεν προστατεύονται με κανέναν τρόπο. Μόλις η κάρτα μπει στην εμβέλεια του reader, απλά αρχίζει να μεταδίδει το ID της.
  • Χαμηλή ασφάλεια — αυτές οι κάρτες μπορούν να αντιγραφούν εύκολα, ή ακόμη και να διαβαστούν από την τσέπη κάποιου άλλου λόγω της πρωτόγονης φύσης του πρωτοκόλλου.

Δημοφιλή πρωτόκολλα 125 kHz:

  • EM-Marin — EM4100, EM4102. Το πιο δημοφιλές πρωτόκολλο στην περιοχή CIS. Μπορεί να διαβαστεί από περίπου ένα μέτρο λόγω της απλότητας και της σταθερότητάς του.
  • HID Prox II — πρωτόκολλο χαμηλής συχνότητας που εισήγαγε η HID Global. Αυτό το πρωτόκολλο είναι πιο δημοφιλές στις δυτικές χώρες. Είναι πιο σύνθετο και οι κάρτες και οι readers για αυτό το πρωτόκολλο είναι σχετικά ακριβοί.
  • Indala — πολύ παλιό πρωτόκολλο χαμηλής συχνότητας που εισήγαγε η Motorola και αργότερα αγοράστηκε από την HID. Είναι λιγότερο πιθανό να το συναντήσετε σε φυσικό περιβάλλον σε σύγκριση με τα προηγούμενα δύο γιατί σταδιακά παύει να χρησιμοποιείται.

Στην πραγματικότητα, υπάρχουν πολύ περισσότερα πρωτόκολλα χαμηλής συχνότητας. Αλλά όλα χρησιμοποιούν την ίδια διαμόρφωση στο φυσικό στρώμα και μπορεί να θεωρηθούν, με τον έναν ή τον άλλον τρόπο, παραλλαγές αυτών που αναφέρθηκαν παραπάνω.

Attack

Μπορείτε να επιτεθείτε σε αυτά τα Tags με το Flipper Zero:

FZ - 125kHz RFID

High-Frequency RFID Tags (13.56 MHz)

Τα υψηλής συχνότητας tags χρησιμοποιούνται για πιο σύνθετη αλληλεπίδραση reader-tag όταν χρειάζεστε κρυπτογραφία, μεγάλη αμφίδρομη μεταφορά δεδομένων, αυθεντικοποίηση κ.λπ.
Συνήθως τα βρίσκουμε σε τραπεζικές κάρτες, μέσα μαζικής μεταφοράς και άλλα ασφαλή περάσματα.

Τα high-frequency 13.56 MHz tags είναι ένα σύνολο προτύπων και πρωτοκόλλων. Συνήθως αναφέρονται ως NFC, αλλά αυτό δεν είναι πάντα σωστό. Το βασικό σύνολο πρωτοκόλλων που χρησιμοποιείται σε φυσικά και λογικά επίπεδα είναι το ISO 14443. Πρωτόκολλα υψηλού επιπέδου, καθώς και εναλλακτικά πρότυπα (όπως το ISO 19092), βασίζονται πάνω σε αυτό. Πολλοί άνθρωποι αναφέρονται σε αυτήν την τεχνολογία ως Near Field Communication (NFC), ένας όρος για συσκευές που λειτουργούν στη συχνότητα 13.56 MHz.

Για να το απλοποιήσουμε, η αρχιτεκτονική του NFC λειτουργεί έτσι: το πρωτόκολλο μετάδοσης επιλέγεται από την εταιρεία που κατασκευάζει τις κάρτες και υλοποιείται με βάση το χαμηλότερο επίπεδο ISO 14443. Για παράδειγμα, η NXP επινόησε το δικό της πρωτόκολλο υψηλού επιπέδου που ονομάζεται Mifare. Αλλά σε χαμηλότερο επίπεδο, οι κάρτες Mifare βασίζονται στο πρότυπο ISO 14443-A.

Το Flipper μπορεί να αλληλεπιδράσει τόσο με το χαμηλού επιπέδου πρωτόκολλο ISO 14443, όσο και με το Mifare Ultralight data transfer protocol και το EMV που χρησιμοποιείται σε τραπεζικές κάρτες. Εργαζόμαστε για την προσθήκη υποστήριξης για Mifare Classic και NFC NDEF. Μια λεπτομερής ματιά στα πρωτόκολλα και τα πρότυπα που αποτελούν το NFC αξίζει ξεχωριστό άρθρο που σκοπεύουμε να δημοσιεύσουμε αργότερα.

Όλες οι κάρτες υψηλής συχνότητας βασισμένες στο πρότυπο ISO 14443-A έχουν ένα μοναδικό chip ID. Λειτουργεί ως σειριακός αριθμός της κάρτας, όπως η MAC διεύθυνση σε μια κάρτα δικτύου. Συνήθως, το UID έχει μήκος 4 ή 7 bytes, αλλά σπάνια μπορεί να φτάσει έως 10. Τα UID δεν είναι μυστικά και είναι εύκολα αναγνώσιμα, μερικές φορές ακόμη και εκτυπωμένα πάνω στην κάρτα.

Υπάρχουν πολλά συστήματα ελέγχου πρόσβασης που βασίζονται στο UID για αυθεντικοποίηση και παροχή πρόσβασης. Μερικές φορές αυτό συμβαίνει ακόμη και όταν τα RFID tags υποστηρίζουν κρυπτογραφία. Τέτοια κακή χρήση τα φέρνει στο επίπεδο των dumb 125 kHz καρτών όσον αφορά την ασφάλεια. Εικονικές κάρτες (όπως το Apple Pay) χρησιμοποιούν δυναμικό UID ώστε οι κάτοχοι τηλεφώνων να μην ανοίγουν πόρτες με την εφαρμογή πληρωμών τους.

  • Μικρή εμβέλεια — οι κάρτες υψηλής συχνότητας είναι σχεδιασμένες ώστε να τοποθετούνται κοντά στον reader. Αυτό βοηθά επίσης στην προστασία της κάρτας από μη εξουσιοδοτημένες αλληλεπιδράσεις. Η μέγιστη εμβέλεια ανάγνωσης που καταφέραμε να επιτύχουμε ήταν περίπου 15 cm, και αυτό με custom-made high-range readers.
  • Προηγμένα πρωτόκολλα — ταχύτητες μετάδοσης δεδομένων έως 424 kbps επιτρέπουν σύνθετα πρωτόκολλα με πλήρη αμφίδρομη μεταφορά δεδομένων. Αυτό με τη σειρά του επιτρέπει κρυπτογραφία, μεταφορά δεδομένων κ.λπ.
  • Υψηλή ασφάλεια — οι contactless κάρτες υψηλής συχνότητας δεν υστερούν σε τίποτα σε σχέση με τις smart cards. Υπάρχουν κάρτες που υποστηρίζουν κρυπτογραφικά ισχυρούς αλγόριθμους όπως το AES και υλοποιούν ασύμμετρη κρυπτογραφία.

Attack

Μπορείτε να επιτεθείτε σε αυτά τα Tags με το Flipper Zero:

FZ - NFC

Ή χρησιμοποιώντας το proxmark:

Proxmark 3

MiFare Classic offline stored-value tampering (broken Crypto1)

Όταν ένα σύστημα αποθηκεύει υπόλοιπο χρημάτων απευθείας σε μια κάρτα MiFare Classic, συχνά μπορείτε να το χειραγωγήσετε επειδή η Classic χρησιμοποιεί τον obsolete αλγόριθμο Crypto1 της NXP. Το Crypto1 έχει καταρριφθεί εδώ και χρόνια, επιτρέποντας την ανάκτηση των sector keys και την πλήρη ανάγνωση/εγγραφή της μνήμης της κάρτας με commodity hardware (π.χ., Proxmark3).

End-to-end workflow (abstracted):

  1. Dump της αρχικής κάρτας και ανάκτηση των κλειδιών
bash
# Attempt all built-in Classic key recovery attacks and dump the card
hf mf autopwn

Αυτό συνήθως ανακτά τα sector keys (A/B) και δημιουργεί ένα full-card dump στον φάκελο client dumps.

  1. Εντοπίστε και κατανοήστε τα value/integrity fields
  • Κάντε νόμιμες top-ups στην αρχική κάρτα και πάρτε πολλαπλά dumps (πριν/μετά).
  • Κάντε diff των δύο dumps για να εντοπίσετε τα blocks/bytes που αλλάζουν και αντιπροσωπεύουν το balance και τυχόν integrity fields.
  • Πολλές Classic εγκαταστάσεις είτε χρησιμοποιούν την εγγενή "value block" κωδικοποίηση είτε υλοποιούν δικά τους checksums (π.χ. XOR του balance με άλλο πεδίο και μια σταθερά). Μετά την αλλαγή του balance, επαναϋπολογίστε τα integrity bytes ανάλογα και βεβαιωθείτε ότι όλα τα duplicated/complemented πεδία είναι συνεπή.
  1. Εγγράψτε το τροποποιημένο dump σε ένα εγγράψιμο “Chinese magic” Classic tag
bash
# Load a modified binary dump onto a UID-changeable Classic tag
hf mf cload -f modified.bin
  1. Κλωνοποιήστε το αρχικό UID ώστε τα τερματικά να αναγνωρίσουν την κάρτα
bash
# Set the UID on a UID-changeable tag (gen1a/gen2 magic)
hf mf csetuid -u <original_uid>
  1. Χρήση σε τερματικά

Οι αναγνώστες που εμπιστεύονται το υπόλοιπο στην κάρτα και το UID θα αποδεχθούν την παραποιημένη κάρτα. Παρατηρήσεις από το πεδίο δείχνουν ότι πολλές εγκαταστάσεις θέτουν όρια στα υπόλοιπα με βάση το πλάτος του πεδίου (π.χ., 16-bit fixed-point).

Notes

  • If the system uses native Classic value blocks, remember the format: value (4B) + ~value (4B) + value (4B) + block address + ~address. All parts must match.
  • For custom formats with simple checksums, differential analysis is the fastest way to derive the integrity function without reversing firmware.
  • Only UID-changeable tags ("Chinese magic" gen1a/gen2) allow writing block 0/UID. Normal Classic cards have read-only UIDs.

Για πρακτικές εντολές Proxmark3, δείτε:

Proxmark 3

Κατασκευή Φορητού HID MaxiProx 125 kHz Mobile Cloner

Αν χρειάζεστε μια μεγάλης εμβέλειας, τροφοδοτούμενη από μπαταρία λύση για τη συλλογή HID Prox® badges κατά τη διάρκεια red-team engagements, μπορείτε να μετατρέψετε τον τοιχωμένο αναγνώστη HID MaxiProx 5375 σε έναν αυτοδύναμο cloner που χωράει σε σακίδιο. Η πλήρης μηχανική και ηλεκτρική περιήγηση είναι διαθέσιμη εδώ:

Maxiprox Mobile Cloner


References

tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Μάθετε & εξασκηθείτε στο Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks