hacktricks/radio-hacking/pentesting-rfid.md

107 lines
12 KiB
Markdown

# Teste de penetração RFID
<details>
<summary><strong>Aprenda a hackear a AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Especialista em Equipe Vermelha AWS do HackTricks)</strong></a><strong>!</strong></summary>
* Você trabalha em uma **empresa de cibersegurança**? Gostaria de ver sua **empresa anunciada no HackTricks**? ou gostaria de ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
## 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 compatível com versões anteriores.
* As etiquetas da **Classe 0** são etiquetas **passivas** que operam em bandas **UHF**. O fornecedor as **pré-programa** na fábrica de produção. Como resultado, você **não pode alterar** as informações armazenadas em sua memória.
* As etiquetas da **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 da 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 da **Classe 2** podem ser **gravadas várias vezes**.
* As etiquetas da **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 da **Classe 4** podem iniciar a comunicação com outras etiquetas da mesma classe, tornando-as etiquetas **ativas**.
* As etiquetas da **Classe 5** podem fornecer **energia para outras etiquetas e se comunicar com todas as classes de etiquetas anteriores**. As etiquetas da 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 dois últimos podem variar com base no fornecedor da etiqueta.
O padrão ISO especifica o valor do Identificador de Família de Aplicativos (**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** de RFID possui mecanismos que **restringem** 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 (27).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 edifícios, chaves de intercomunicação, cartões de associação de academia, etc. Devido ao seu alcance maior, são convenientes para uso em estacionamentos pagos: o motorista não precisa aproximar o cartão do leitor, pois ele é acionado de 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 esse motivo, é impossível implementar uma transferência de dados bidirecional complexa para coisas como manter o saldo e criptografia. As etiquetas de baixa frequência apenas transmitem seu ID curto sem nenhum 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:
* **Alcance Longo** — a 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. Eles são frequentemente usados em estacionamentos.
* **Protocolo primitivo** — devido à baixa taxa de transferência de dados, essas etiquetas só podem transmitir seu ID curto. Na maioria dos casos, os dados não são autenticados e não são protegidos de forma alguma. Assim que o cartão está dentro do alcance 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 de distância devido à sua simplicidade e estabilidade.
* **HID Prox II** — protocolo de baixa frequência introduzido pela HID Global. Este protocolo é mais popular nos 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 introduzido pela Motorola e posteriormente adquirido pela HID. É menos provável que você encontre isso 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 essas Etiquetas 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 %}
## 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 é necessário criptografia, uma grande transferência de dados bidirecional, autenticação, etc.\
Geralmente são encontradas em cartões bancários, transporte público e outras passagens seguras.
**As etiquetas de alta frequência de 13,56 MHz são um conjunto de padrões e protocolos**. Geralmente são referidas como [NFC](https://nfc-forum.org/what-is-nfc/about-the-technology/), mas nem sempre é correto. O conjunto básico de protocolos usado nos níveis físico e lógico é o ISO 14443. Protocolos de alto nível, bem como padrões alternativos (como o ISO 19092), são baseados nele. Muitas pessoas se referem a essa tecnologia como **Near Field Communication (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>
Para simplificar, a arquitetura do NFC funciona assim: o protocolo de transmissão é escolhido pela empresa que fabrica os cartões e implementado com base no padrão 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 em um nível mais baixo, os cartões Mifare são baseados no padrão ISO 14443-A.
O Flipper pode interagir tanto com o protocolo de baixo nível ISO 14443, quanto com o protocolo de transferência de dados Mifare Ultralight e EMV usado em cartões bancários. Estamos trabalhando para adicionar suporte ao Mifare Classic e NFC NDEF. Uma análise detalhada dos protocolos e padrões que compõem o NFC vale um artigo separado que planejamos publicar posteriormente.
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 raramente pode 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**. Esse **uso indevido** as coloca no mesmo nível das **etiquetas de 125 kHz** em termos de **segurança**. Cartões virtuais (como o Apple Pay) usam um UID dinâmico para que os proprietários de telefones não saiam abrindo portas com seu aplicativo de pagamento.
* **Curto alcance** — os cartões de alta frequência são projetados especificamente para serem colocados perto do leitor. Isso também ajuda a proteger o cartão de interações não autorizadas. A distância máxima 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** — os cartões sem contato 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="../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/)