hacktricks/radio-hacking/pentesting-rfid.md

125 lines
12 KiB
Markdown

# 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.
Um tag 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 os tags RFID em seis categorias. Um tag em cada categoria possui todas as capacidades listadas na categoria anterior, tornando-o retrocompatível.
* Os tags da **Classe 0** são tags **passivas** que operam em bandas de **UHF**. O fornecedor **pré-programa** eles na fábrica de produção. Como resultado, você **não pode alterar** as informações armazenadas em sua memória.
* Os tags da **Classe 1** também podem operar em bandas de **HF**. Além disso, eles podem ser **gravados apenas uma vez** após a produção. Muitos tags da Classe 1 também podem processar **verificações de redundância cíclica** (CRCs) dos comandos que recebem. CRCs são alguns bytes extras no final dos comandos para detecção de erros.
* Os tags da **Classe 2** podem ser **gravados várias vezes**.
* Os tags da **Classe 3** podem conter **sensores embutidos** que podem registrar parâmetros ambientais, como a temperatura atual ou o movimento do tag. Esses tags são **semi-passivos**, porque embora eles **tenham** uma fonte de energia embutida, como uma **bateria** integrada, eles **não podem iniciar** a **comunicação** sem fio com outros tags ou leitores.
* Os tags da **Classe 4** podem iniciar comunicação com outros tags da mesma classe, tornando-os **tags ativos**.
* Os tags da **Classe 5** podem fornecer **energia para outros tags e se comunicar com todas as classes de tags anteriores**. Os tags da Classe 5 podem atuar como **leitores RFID**.
### Informações Armazenadas em Tags RFID
A memória de um tag RFID geralmente armazena quatro tipos de dados: os **dados de identificação**, que **identificam** a **entidade** à qual o tag está anexado (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 do tag; e os **dados do fabricante** do tag, que contêm um Identificador Único do tag (**UID**) e detalhes sobre a **produção**, **tipo** e **fornecedor** do tag. Você encontrará os dois primeiros tipos de dados em todos os tags comerciais; os últimos dois podem diferir com base no fornecedor do tag.
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 o tag 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 do tag **configurem senhas personalizadas**.
### Comparação de Tags de Baixa e Alta Frequência
<figure><img src="../.gitbook/assets/image (27).png" alt=""><figcaption></figcaption></figure>
## Tags RFID de Baixa Frequência (125kHz)
Os **tags de baixa frequência** são frequentemente usados em sistemas que **não requerem alta segurança**: acesso a prédios, chaves de intercomunicador, cartões de associação de academia, 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, os tags de baixa frequência são muito primitivos, 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. Os tags 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, esses tags 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 eles 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 esses Tags com o 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 %}
## Tags RFID de Alta Frequência (13.56 MHz)
Os **tags de alta frequência** são usados para uma interação mais complexa entre leitor e tag quando você precisa de criptografia, uma grande transferência de dados bidirecional, autenticação, etc.\
Geralmente, são encontrados em cartões bancários, transporte público e outros passes seguros.
Os **tags de alta frequência de 13.56 MHz são um conjunto de padrões e protocolos**. Eles são geralmente referidos como [NFC](https://nfc-forum.org/what-is-nfc/about-the-technology/), mas isso nem sempre é correto. O conjunto de protocolos básico usado 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 (22).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 **até 10**. 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 os tags RFID **suportam criptografia**. Tal **uso indevido** os rebaixa 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 máximo de alcance 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 esses Tags com o 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 %}
Ou usando o **proxmark**:
{% content-ref url="../todo/radio-hacking/proxmark-3.md" %}
[proxmark-3.md](../todo/radio-hacking/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 %}