# Pentesting RFID

{% hint style="success" %}
Aprenda e pratique 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">\
Aprenda e pratique 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>Support HackTricks</summary>

* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐩 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositĂłrios do github.

</details>
{% endhint %}

## Introdução

**Identificação por RadiofrequĂȘncia (RFID)** Ă© a solução de rĂĄdio de curto alcance mais popular. Geralmente Ă© usada para armazenar e transmitir informaçÔes que identificam uma entidade.

Uma etiqueta RFID pode depender de **sua prĂłpria fonte de energia (ativa)**, como uma bateria embutida, ou receber sua energia da antena de leitura usando a corrente **induzida pelas ondas de rĂĄdio recebidas** (**passiva**).

### Classes

A EPCglobal divide as etiquetas RFID em seis categorias. Uma etiqueta em cada categoria possui todas as capacidades listadas na categoria anterior, tornando-a retrocompatĂ­vel.

* As etiquetas **Classe 0** sĂŁo etiquetas **passivas** que operam em bandas **UHF**. O fornecedor **prĂ©-programa** elas na fĂĄbrica de produção. Como resultado, vocĂȘ **nĂŁo pode alterar** as informaçÔes armazenadas em sua memĂłria.
* As etiquetas **Classe 1** também podem operar em bandas **HF**. Além disso, elas podem ser **gravadas apenas uma vez** após a produção. Muitas etiquetas Classe 1 também podem processar **verificaçÔes de redundùncia cíclica** (CRCs) dos comandos que recebem. Os CRCs são alguns bytes extras no final dos comandos para detecção de erros.
* As etiquetas **Classe 2** podem ser **gravadas vĂĄrias vezes**.
* As etiquetas **Classe 3** podem conter **sensores embutidos** que podem registrar parùmetros ambientais, como a temperatura atual ou o movimento da etiqueta. Essas etiquetas são **semi-passivas**, porque embora tenham uma fonte de energia embutida, como uma **bateria** integrada, elas **não podem iniciar** a **comunicação** sem fio com outras etiquetas ou leitores.
* As etiquetas **Classe 4** podem iniciar comunicação com outras etiquetas da mesma classe, tornando-as **etiquetas ativas**.
* As etiquetas **Classe 5** podem fornecer **energia para outras etiquetas e se comunicar com todas as classes de etiquetas anteriores**. As etiquetas Classe 5 podem atuar como **leitores RFID**.

### InformaçÔes Armazenadas em Etiquetas RFID

A memĂłria de uma etiqueta RFID geralmente armazena quatro tipos de dados: os **dados de identificação**, que **identificam** a **entidade** Ă  qual a etiqueta estĂĄ anexada (esses dados incluem campos definidos pelo usuĂĄrio, como contas bancĂĄrias); os **dados suplementares**, que fornecem **mais** **detalhes** sobre a entidade; os **dados de controle**, usados para a **configuração** interna da etiqueta; e os **dados do fabricante** da etiqueta, que contĂȘm um Identificador Único da etiqueta (**UID**) e detalhes sobre a **produção**, **tipo** e **fornecedor** da etiqueta. VocĂȘ encontrarĂĄ os dois primeiros tipos de dados em todas as etiquetas comerciais; os Ășltimos dois podem diferir com base no fornecedor da etiqueta.

O padrão ISO especifica o valor do Identificador de Família de Aplicação (**AFI**), um código que indica o **tipo de objeto** ao qual a etiqueta pertence. Outro registro importante, também especificado pela ISO, é o Identificador de Formato de Armazenamento de Dados (**DSFID**), que define a **organização lógica dos dados do usuårio**.

A maioria dos **controles de segurança** RFID possui mecanismos que **restrigem** as operaçÔes de **leitura** ou **gravação** em cada bloco de memĂłria do usuĂĄrio e nos registros especiais que contĂȘm os valores AFI e DSFID. Esses **mecanismos de bloqueio** usam dados armazenados na memĂłria de controle e tĂȘm **senhas padrĂŁo** prĂ©-configuradas pelo fornecedor, mas permitem que os proprietĂĄrios da etiqueta **configurem senhas personalizadas**.

### Comparação de Etiquetas de Baixa e Alta FrequĂȘncia

<figure><img src="../../.gitbook/assets/image (983).png" alt=""><figcaption></figcaption></figure>

## Etiquetas RFID de Baixa FrequĂȘncia (125kHz)

As **etiquetas de baixa frequĂȘncia** sĂŁo frequentemente usadas em sistemas que **nĂŁo requerem alta segurança**: acesso a prĂ©dios, chaves de intercomunicador, cartĂ”es de associação de academias, etc. Devido ao seu maior alcance, sĂŁo convenientes para uso em estacionamento pago: o motorista nĂŁo precisa trazer o cartĂŁo perto do leitor, pois Ă© acionado de mais longe. Ao mesmo tempo, as etiquetas de baixa frequĂȘncia sĂŁo muito primitivas, tĂȘm uma baixa taxa de transferĂȘncia de dados. Por essa razĂŁo, Ă© impossĂ­vel implementar transferĂȘncias de dados bidirecionais complexas para coisas como manter saldo e criptografia. As etiquetas de baixa frequĂȘncia apenas transmitem seu ID curto sem qualquer meio de autenticação.

Esses dispositivos dependem da tecnologia **RFID** **passiva** e operam em uma **faixa de 30 kHz a 300 kHz**, embora seja mais comum usar 125 kHz a 134 kHz:

* **Longo Alcance** — frequĂȘncia mais baixa se traduz em maior alcance. Existem alguns leitores EM-Marin e HID, que funcionam a uma distĂąncia de atĂ© um metro. Esses sĂŁo frequentemente usados em estacionamentos.
* **Protocolo primitivo** — devido Ă  baixa taxa de transferĂȘncia de dados, essas etiquetas podem apenas transmitir seu ID curto. Na maioria dos casos, os dados nĂŁo sĂŁo autenticados e nĂŁo estĂŁo protegidos de forma alguma. Assim que o cartĂŁo estĂĄ na faixa do leitor, ele começa a transmitir seu ID.
* **Baixa segurança** — Esses cartĂ”es podem ser facilmente copiados ou atĂ© mesmo lidos do bolso de outra pessoa devido Ă  primitividade do protocolo.

**Protocolos populares de 125 kHz:**

* **EM-Marin** — EM4100, EM4102. O protocolo mais popular na CEI. Pode ser lido a cerca de um metro devido à sua simplicidade e estabilidade.
* **HID Prox II** — protocolo de baixa frequĂȘncia introduzido pela HID Global. Este protocolo Ă© mais popular em paĂ­ses ocidentais. É mais complexo e os cartĂ”es e leitores para este protocolo sĂŁo relativamente caros.
* **Indala** — protocolo de baixa frequĂȘncia muito antigo que foi introduzido pela Motorola e, posteriormente, adquirido pela HID. É menos provĂĄvel que vocĂȘ o encontre na natureza em comparação com os dois anteriores, pois estĂĄ caindo em desuso.

Na realidade, existem muitos mais protocolos de baixa frequĂȘncia. Mas todos usam a mesma modulação na camada fĂ­sica e podem ser considerados, de uma forma ou de outra, uma variação dos listados acima.

### Ataque

VocĂȘ pode **atacar essas Etiquetas com o Flipper Zero**:

{% content-ref url="flipper-zero/fz-125khz-rfid.md" %}
[fz-125khz-rfid.md](flipper-zero/fz-125khz-rfid.md)
{% endcontent-ref %}

## Etiquetas RFID de Alta FrequĂȘncia (13.56 MHz)

As **etiquetas de alta frequĂȘncia** sĂŁo usadas para uma interação mais complexa entre leitor e etiqueta quando vocĂȘ precisa de criptografia, uma grande transferĂȘncia de dados bidirecional, autenticação, etc.\
Geralmente sĂŁo encontradas em cartĂ”es bancĂĄrios, transporte pĂșblico e outros passes seguros.

As **etiquetas de alta frequĂȘncia de 13.56 MHz sĂŁo um conjunto de padrĂ”es e protocolos**. Elas sĂŁo geralmente referidas como [NFC](https://nfc-forum.org/what-is-nfc/about-the-technology/), mas isso nem sempre Ă© correto. O conjunto bĂĄsico de protocolos usados nos nĂ­veis fĂ­sico e lĂłgico Ă© o ISO 14443. Protocolos de alto nĂ­vel, bem como padrĂ”es alternativos (como ISO 19092), sĂŁo baseados nele. Muitas pessoas se referem a essa tecnologia como **Comunicação em Campo PrĂłximo (NFC)**, um termo para dispositivos que operam na frequĂȘncia de 13.56 MHz.

<figure><img src="../../.gitbook/assets/image (930).png" alt=""><figcaption></figcaption></figure>

Simplificando, a arquitetura do NFC funciona assim: o protocolo de transmissão é escolhido pela empresa que fabrica os cartÔes e implementado com base no ISO 14443 de baixo nível. Por exemplo, a NXP inventou seu próprio protocolo de transmissão de alto nível chamado Mifare. Mas no nível inferior, os cartÔes Mifare são baseados no padrão ISO 14443-A.

O Flipper pode interagir tanto com o protocolo ISO 14443 de baixo nĂ­vel, quanto com o protocolo de transferĂȘncia de dados Mifare Ultralight e EMV usado em cartĂ”es bancĂĄrios. Estamos trabalhando para adicionar suporte para Mifare Classic e NFC NDEF. Uma anĂĄlise detalhada dos protocolos e padrĂ”es que compĂ”em o NFC merece um artigo separado que planejamos publicar mais tarde.

Todos os cartĂ”es de alta frequĂȘncia baseados no padrĂŁo ISO 14443-A tĂȘm um ID de chip Ășnico. Ele atua como o nĂșmero de sĂ©rie do cartĂŁo, como o endereço MAC de um cartĂŁo de rede. **Normalmente, o UID tem 4 ou 7 bytes de comprimento**, mas pode raramente chegar **a 10**. Os UIDs nĂŁo sĂŁo um segredo e sĂŁo facilmente legĂ­veis, **Ă s vezes atĂ© impressos no prĂłprio cartĂŁo**.

Existem muitos sistemas de controle de acesso que dependem do UID para **autenticar e conceder acesso**. Às vezes isso acontece **mesmo** quando as etiquetas RFID **suportam criptografia**. Tal **uso indevido** as reduz ao nĂ­vel dos **cartĂ”es de 125 kHz** em termos de **segurança**. CartĂ”es virtuais (como Apple Pay) usam um UID dinĂąmico para que os proprietĂĄrios de telefones nĂŁo abram portas com seu aplicativo de pagamento.

* **Baixo alcance** — cartĂ”es de alta frequĂȘncia sĂŁo especificamente projetados para que precisem ser colocados perto do leitor. Isso tambĂ©m ajuda a proteger o cartĂŁo de interaçÔes nĂŁo autorizadas. O alcance mĂĄximo de leitura que conseguimos alcançar foi de cerca de 15 cm, e isso foi com leitores de longo alcance feitos sob medida.
* **Protocolos avançados** — velocidades de transferĂȘncia de dados de atĂ© 424 kbps permitem protocolos complexos com transferĂȘncia de dados bidirecional completa. O que, por sua vez, **permite criptografia**, transferĂȘncia de dados, etc.
* **Alta segurança** — cartĂ”es de contato sem fio de alta frequĂȘncia nĂŁo sĂŁo de forma alguma inferiores aos cartĂ”es inteligentes. Existem cartĂ”es que suportam algoritmos criptograficamente fortes como AES e implementam criptografia assimĂ©trica.

### Ataque

VocĂȘ pode **atacar essas Etiquetas com o Flipper Zero**:

{% content-ref url="flipper-zero/fz-nfc.md" %}
[fz-nfc.md](flipper-zero/fz-nfc.md)
{% endcontent-ref %}

Ou usando o **proxmark**:

{% content-ref url="proxmark-3.md" %}
[proxmark-3.md](proxmark-3.md)
{% endcontent-ref %}

## ReferĂȘncias

* [https://blog.flipperzero.one/rfid/](https://blog.flipperzero.one/rfid/)

{% hint style="success" %}
Aprenda e pratique 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">\
Aprenda e pratique 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>Support HackTricks</summary>

* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐩 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositĂłrios do github.

</details>
{% endhint %}