12 KiB
Pentesting RFID
{% hint style="success" %}
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
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 das etiquetas configurem senhas personalizadas.
Comparação de Etiquetas de Baixa e Alta Frequência
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 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, 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 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="flipper-zero/fz-125khz-rfid.md" %} 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, 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 de Campo Próximo (NFC), um termo para dispositivos que operam na frequência de 13.56 MHz.
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. 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 projetados especificamente 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 {% endcontent-ref %}
Ou usando o proxmark:
{% content-ref url="proxmark-3.md" %} proxmark-3.md {% endcontent-ref %}
Referências
{% hint style="success" %}
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.