13 KiB
Pentesting RFID
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
Introducción
La identificación por radiofrecuencia (RFID) es la solución de radio de corto alcance más popular. Se utiliza generalmente para almacenar y transmitir información que identifica a una entidad.
Una etiqueta RFID puede depender de su propia fuente de energía (activa), como una batería integrada, o recibir su energía de la antena lectora utilizando la corriente inducida por las ondas de radio recibidas (pasiva).
Clases
EPCglobal divide las etiquetas RFID en seis categorías. Una etiqueta en cada categoría tiene todas las capacidades listadas en la categoría anterior, lo que la hace compatible hacia atrás.
- Las etiquetas de Clase 0 son etiquetas pasivas que operan en bandas de UHF. El proveedor las preprograma en la fábrica de producción. Como resultado, no se puede cambiar la información almacenada en su memoria.
- Las etiquetas de Clase 1 también pueden operar en bandas de HF. Además, pueden ser escritas solo una vez después de la producción. Muchas etiquetas de Clase 1 también pueden procesar comprobaciones de redundancia cíclica (CRC) de los comandos que reciben. Los CRC son unos pocos bytes adicionales al final de los comandos para la detección de errores.
- Las etiquetas de Clase 2 pueden ser escritas múltiples veces.
- Las etiquetas de Clase 3 pueden contener sensores integrados que pueden registrar parámetros ambientales, como la temperatura actual o el movimiento de la etiqueta. Estas etiquetas son semi-pasivas, porque aunque tienen una fuente de energía integrada, como una batería integrada, no pueden iniciar la comunicación inalámbrica con otras etiquetas o lectores.
- Las etiquetas de Clase 4 pueden iniciar comunicación con otras etiquetas de la misma clase, lo que las convierte en etiquetas activas.
- Las etiquetas de Clase 5 pueden proporcionar energía a otras etiquetas y comunicarse con todas las clases de etiquetas anteriores. Las etiquetas de Clase 5 pueden actuar como lectores RFID.
Información Almacenada en Etiquetas RFID
La memoria de una etiqueta RFID generalmente almacena cuatro tipos de datos: los datos de identificación, que identifican la entidad a la que está adjunta la etiqueta (estos datos incluyen campos definidos por el usuario, como cuentas bancarias); los datos suplementarios, que proporcionan más detalles sobre la entidad; los datos de control, utilizados para la configuración interna de la etiqueta; y los datos del fabricante de la etiqueta, que contienen el Identificador Único de la etiqueta (UID) y detalles sobre la producción, tipo y proveedor de la etiqueta. Encontrarás los dos primeros tipos de datos en todas las etiquetas comerciales; los últimos dos pueden diferir según el proveedor de la etiqueta.
La norma ISO especifica el valor del Identificador de Familia de Aplicación (AFI), un código que indica el tipo de objeto al que pertenece la etiqueta. Otro registro importante, también especificado por ISO, es el Identificador de Formato de Almacenamiento de Datos (DSFID), que define la organización lógica de los datos del usuario.
La mayoría de los controles de seguridad RFID tienen mecanismos que restringen las operaciones de lectura o escritura en cada bloque de memoria de usuario y en los registros especiales que contienen los valores AFI y DSFID. Estos mecanismos de bloqueo utilizan datos almacenados en la memoria de control y tienen contraseñas predeterminadas preconfiguradas por el proveedor, pero permiten a los propietarios de las etiquetas configurar contraseñas personalizadas.
Comparación de Etiquetas de Baja y Alta Frecuencia
Etiquetas RFID de Baja Frecuencia (125 kHz)
Las etiquetas de baja frecuencia se utilizan a menudo en sistemas que no requieren alta seguridad: acceso a edificios, llaves de intercomunicador, tarjetas de membresía de gimnasio, etc. Debido a su mayor rango, son convenientes para usar en estacionamientos de pago: el conductor no necesita acercar la tarjeta al lector, ya que se activa desde más lejos. Al mismo tiempo, las etiquetas de baja frecuencia son muy primitivas, tienen una baja tasa de transferencia de datos. Por esa razón, es imposible implementar transferencias de datos bidireccionales complejas para cosas como mantener el saldo y la criptografía. Las etiquetas de baja frecuencia solo transmiten su ID corta sin ningún medio de autenticación.
Estos dispositivos dependen de la tecnología RFID pasiva y operan en un rango de 30 kHz a 300 kHz, aunque es más habitual usar 125 kHz a 134 kHz:
- Largo alcance — una frecuencia más baja se traduce en un mayor alcance. Hay algunos lectores EM-Marin y HID, que funcionan a una distancia de hasta un metro. Estos se utilizan a menudo en estacionamientos.
- Protocolo primitivo — debido a la baja tasa de transferencia de datos, estas etiquetas solo pueden transmitir su ID corta. En la mayoría de los casos, los datos no están autenticados y no están protegidos de ninguna manera. Tan pronto como la tarjeta está en el rango del lector, comienza a transmitir su ID.
- Baja seguridad — Estas tarjetas pueden ser fácilmente copiadas, o incluso leídas desde el bolsillo de otra persona debido a la primitividad del protocolo.
Protocolos populares de 125 kHz:
- EM-Marin — EM4100, EM4102. El protocolo más popular en la CEI. Puede ser leído desde aproximadamente un metro debido a su simplicidad y estabilidad.
- HID Prox II — protocolo de baja frecuencia introducido por HID Global. Este protocolo es más popular en los países occidentales. Es más complejo y las tarjetas y lectores para este protocolo son relativamente caros.
- Indala — protocolo de baja frecuencia muy antiguo que fue introducido por Motorola, y más tarde adquirido por HID. Es menos probable que lo encuentres en la naturaleza en comparación con los dos anteriores porque está cayendo en desuso.
En realidad, hay muchos más protocolos de baja frecuencia. Pero todos utilizan la misma modulación en la capa física y pueden considerarse, de una forma u otra, una variación de los listados anteriormente.
Ataque
Puedes atacar estas etiquetas con el Flipper Zero:
{% content-ref url="../todo/radio-hacking/flipper-zero/fz-125khz-rfid.md" %} fz-125khz-rfid.md {% endcontent-ref %}
Etiquetas RFID de Alta Frecuencia (13.56 MHz)
Las etiquetas de alta frecuencia se utilizan para una interacción más compleja entre el lector y la etiqueta cuando se necesita criptografía, una gran transferencia de datos bidireccional, autenticación, etc.
Se encuentra generalmente en tarjetas bancarias, transporte público y otros pases seguros.
Las etiquetas de alta frecuencia de 13.56 MHz son un conjunto de estándares y protocolos. Se suelen denominar NFC, pero eso no siempre es correcto. El conjunto de protocolos básico utilizado en los niveles físico y lógico es ISO 14443. Los protocolos de alto nivel, así como los estándares alternativos (como ISO 19092), se basan en él. Muchas personas se refieren a esta tecnología como Comunicación de Campo Cercano (NFC), un término para dispositivos que operan en la frecuencia de 13.56 MHz.
Para simplificar, la arquitectura de NFC funciona así: el protocolo de transmisión es elegido por la empresa que fabrica las tarjetas y se implementa basado en el nivel bajo ISO 14443. Por ejemplo, NXP inventó su propio protocolo de transmisión de alto nivel llamado Mifare. Pero a nivel inferior, las tarjetas Mifare se basan en el estándar ISO 14443-A.
Flipper puede interactuar tanto con el protocolo de nivel bajo ISO 14443, como con el protocolo de transferencia de datos Mifare Ultralight y EMV utilizado en tarjetas bancarias. Estamos trabajando en agregar soporte para Mifare Classic y NFC NDEF. Un análisis exhaustivo de los protocolos y estándares que componen NFC merece un artículo separado que planeamos publicar más adelante.
Todas las tarjetas de alta frecuencia basadas en el estándar ISO 14443-A tienen un ID de chip único. Actúa como el número de serie de la tarjeta, como la dirección MAC de una tarjeta de red. Por lo general, el UID tiene 4 o 7 bytes de longitud, pero rara vez puede llegar hasta 10. Los UIDs no son un secreto y son fácilmente legibles, a veces incluso impresos en la propia tarjeta.
Hay muchos sistemas de control de acceso que dependen del UID para autenticar y otorgar acceso. A veces esto sucede incluso cuando las etiquetas RFID soportan criptografía. Tal mal uso las reduce al nivel de las tarjetas de 125 kHz en términos de seguridad. Las tarjetas virtuales (como Apple Pay) utilizan un UID dinámico para que los propietarios de teléfonos no puedan abrir puertas con su aplicación de pago.
- Bajo alcance — las tarjetas de alta frecuencia están diseñadas específicamente para que deban ser colocadas cerca del lector. Esto también ayuda a proteger la tarjeta de interacciones no autorizadas. El rango máximo de lectura que logramos alcanzar fue de aproximadamente 15 cm, y eso fue con lectores de alto rango hechos a medida.
- Protocolos avanzados — las velocidades de transferencia de datos de hasta 424 kbps permiten protocolos complejos con transferencia de datos bidireccional completa. Lo que a su vez permite criptografía, transferencia de datos, etc.
- Alta seguridad — las tarjetas de contacto sin contacto de alta frecuencia no son inferiores a las tarjetas inteligentes. Hay tarjetas que soportan algoritmos criptográficamente fuertes como AES e implementan criptografía asimétrica.
Ataque
Puedes atacar estas etiquetas con el Flipper Zero:
{% content-ref url="../todo/radio-hacking/flipper-zero/fz-nfc.md" %} fz-nfc.md {% endcontent-ref %}
O usando el proxmark:
{% content-ref url="../todo/radio-hacking/proxmark-3.md" %} proxmark-3.md {% endcontent-ref %}
Referencias
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.