From 47e7b8cc513e7e1243682f37070d06cc9e4125e0 Mon Sep 17 00:00:00 2001 From: Translator Date: Mon, 29 Sep 2025 12:53:16 +0000 Subject: [PATCH] Translated ['src/todo/radio-hacking/proxmark-3.md', 'src/todo/radio-hack --- src/todo/radio-hacking/pentesting-rfid.md | 133 +++++++++++++++------- src/todo/radio-hacking/proxmark-3.md | 55 +++++++-- 2 files changed, 138 insertions(+), 50 deletions(-) diff --git a/src/todo/radio-hacking/pentesting-rfid.md b/src/todo/radio-hacking/pentesting-rfid.md index 506fb798e..adf1e814d 100644 --- a/src/todo/radio-hacking/pentesting-rfid.md +++ b/src/todo/radio-hacking/pentesting-rfid.md @@ -4,83 +4,85 @@ ## 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. +**Radio Frequency Identification (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**). +Uma tag RFID pode depender de **sua própria fonte de energia (ativa)**, como uma bateria embutida, ou receber sua energia da antena leitora 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. +A EPCglobal divide as tags RFID em seis categorias. Uma tag em cada categoria tem todas as capacidades listadas na categoria anterior, tornando-a compatível retroativamente. -- As etiquetas **Classe 0** são etiquetas **passivas** que operam em bandas de **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 **Classe 1** também podem operar em bandas de **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**. +- **Class 0** tags são **passivas** que operam em bandas **UHF**. O fabricante **as pré-programa** na fábrica. Como resultado, você **não pode alterar** as informações armazenadas na sua memória. +- **Class 1** tags também podem operar em bandas **HF**. Além disso, elas podem ser **escritas apenas uma vez** após a produção. Muitas Class 1 podem também processar **cyclic redundancy checks** (CRCs) dos comandos que recebem. CRCs são alguns bytes extras no final dos comandos para detecção de erros. +- **Class 2** tags podem ser **escritas várias vezes**. +- **Class 3** tags podem conter **sensores embutidos** que registram parâmetros ambientais, como a temperatura atual ou o movimento da tag. Essas tags são **semi-passivas**, pois, embora **tenham** uma fonte de energia embutida, como uma **bateria** integrada, **não podem iniciar** comunicação **sem fio** com outras tags ou leitores. +- **Class 4** tags podem iniciar comunicação com outras tags da mesma classe, tornando-as **tags ativas**. +- **Class 5** tags podem fornecer **energia para outras tags e comunicar-se com todas as classes anteriores**. Class 5 podem atuar como **leitores RFID**. -### Informações Armazenadas em Etiquetas RFID +### Informação Armazenada em Tags 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. +A memória de uma tag RFID geralmente armazena quatro tipos de dados: os **dados de identificação**, que **identificam** a **entidade** à qual a tag está anexada (estes 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 tag; e os **dados do fabricante**, que contêm o Identificador Único da tag (**UID**) e detalhes sobre a **produção**, **tipo** e **fornecedor** da tag. Você encontrará os dois primeiros tipos de dados em todas as tags comerciais; os dois últimos podem variar conforme o fornecedor da tag. -A norma 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 norma ISO especifica o valor Application Family Identifier (**AFI**), um código que indica o **tipo de objeto** ao qual a tag pertence. Outro registrador importante, também especificado pela ISO, é o Data Storage Format Identifier(**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**. +A maioria dos **controles de segurança** de RFID tem mecanismos que **restrigem** as operações de **leitura** ou **escrita** em cada bloco de memória do usuário e nos registradores especiais que contêm os valores AFI e DSFID. Esses **mecanismos de bloqueio** usam dados armazenados na memória de controle e possuem **senhas padrão** pré-configuradas pelo fornecedor, mas permitem que os proprietários das tags **configurem senhas personalizadas**. -### Comparação de Etiquetas de Baixa e Alta Frequência +### Comparação entre tags de baixa e alta frequência
-## Etiquetas RFID de Baixa Frequência (125kHz) +## Tags 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 ginásio, etc. Devido ao seu maior alcance, são convenientes para uso em estacionamento pago: o motorista não precisa aproximar o cartão 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 uma transferência de dados bidirecional complexa para coisas como manter saldo e criptografia. As etiquetas de baixa frequência apenas transmitem seu ID curto sem qualquer meio de autenticação. +As **tags de baixa frequência** são frequentemente usadas em sistemas que **não exigem alta segurança**: acesso a edifícios, chaves de interfone, cartões 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 a uma distância maior. Ao mesmo tempo, as tags de baixa frequência são muito primitivas, têm baixa taxa de transferência de dados. Por essa razão, é impossível implementar uma transferência complexa bidirecional para coisas como manutenção de saldo e criptografia. 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: +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. +- **Long Range** — frequência mais baixa se traduz em maior alcance. Existem alguns leitores EM-Marin e HID que funcionam a até um metro. Estes são frequentemente usados em estacionamentos. +- **Protocolo primitivo** — devido à baixa taxa de transferência de dados, essas tags só podem transmitir seu ID curto. Na maioria dos casos, os dados não são autenticados e não são protegidos de nenhuma forma. Assim que o cartão está no alcance do leitor, ele simplesmente começa a transmitir seu ID. +- **Baixa segurança** — Esses cartões podem ser facilmente copiados, ou mesmo lidos do bolso de outra pessoa devido à primitividade do protocolo. -**Protocolos populares de 125 kHz:** +Protocolos populares de 125 kHz: -- **EM-Marin** — EM4100, EM4102. O protocolo mais popular na CIS. 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. +- **EM-Marin** — EM4100, EM4102. O protocolo mais popular na CIS. Pode ser lido a cerca de um metro por causa de sua simplicidade e estabilidade. +- **HID Prox II** — protocolo de baixa frequência introduzido pela HID Global. Esse protocolo é mais popular em países ocidentais. É mais complexo e os cartões e leitores para esse 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 encontrá-lo em uso atualmente comparado aos dois anteriores, pois está saindo de uso. -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. +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 das listadas acima. ### Ataque -Você pode **atacar essas Etiquetas com o Flipper Zero**: +Você pode **atacar essas Tags com o Flipper Zero**: + {{#ref}} flipper-zero/fz-125khz-rfid.md {{#endref}} -## Etiquetas RFID de Alta Frequência (13.56 MHz) +## Tags 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.\ +As **tags de alta frequência** são usadas para uma interação leitor-tag mais complexa quando você precisa de criptografia, 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, assim 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. +**As tags de alta frequência de 13.56 MHz são um conjunto de normas e protocolos**. Elas costumam ser referidas como [NFC](https://nfc-forum.org/what-is-nfc/about-the-technology/), mas isso nem sempre está correto. O conjunto básico de protocolos usado nos níveis físico e lógico é o ISO 14443. Protocolos de alto nível, assim como padrões alternativos (como 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.
-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. +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 nível baixo ISO 14443. 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. +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 para Mifare Classic e NFC NDEF. Um exame aprofundado dos protocolos e padrões que compõem o NFC merece um artigo separado que planejamos publicar mais adiante. -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**. +Todos os cartões de alta frequência baseados no padrão ISO 14443-A têm um ID de chip único. Ele funciona como o número de série do cartão, semelhante ao endereço MAC de uma placa de rede. **Normalmente, o UID tem 4 ou 7 bytes de comprimento**, mas raramente pode chegar **até 10**. UIDs não são 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. +Há muitos sistemas de controle de acesso que dependem do UID para **autenticar e conceder acesso**. Às vezes isso ocorre **mesmo** quando as tags RFID **suportam criptografia**. Esse **uso indevido** as coloca no mesmo 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 donos de telefones não abram portas com seu app 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 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. +- **Alcance baixo** — cartões de alta frequência são especificamente projetados para que precisem ser colocados próximos ao 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 cerca de 15 cm, e isso 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 bidirecional completa. O que por sua vez **permite criptografia**, transferência de dados, etc. +- **Alta segurança** — cartões contactless de alta frequência não ficam a dever aos smart cards. 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**: +Você pode **atacar essas Tags com o Flipper Zero**: + {{#ref}} flipper-zero/fz-nfc.md @@ -88,13 +90,61 @@ flipper-zero/fz-nfc.md Ou usando o **proxmark**: + {{#ref}} proxmark-3.md {{#endref}} -### Construindo um Clonador Móvel HID MaxiProx 125 kHz Portátil +### Manipulação offline de saldo armazenado em MiFare Classic (Crypto1 quebrado) + +Quando um sistema armazena um saldo monetário diretamente em um cartão MiFare Classic, você frequentemente pode manipulá-lo porque o Classic usa o algoritmo obsoleto Crypto1 da NXP. Crypto1 foi quebrado há anos, permitindo a recuperação das chaves de setor e leitura/escrita completas da memória do cartão com hardware comum (por exemplo, Proxmark3). + +Fluxo de trabalho ponta a ponta (abstrato): + +1) Fazer o dump do cartão original e recuperar as chaves +```bash +# Attempt all built-in Classic key recovery attacks and dump the card +hf mf autopwn +``` +Isso normalmente recupera os sector keys (A/B) e gera um full-card dump na pasta client dumps. + +2) Localize e entenda os campos de value/integrity + +- Realize recargas legítimas no cartão original e faça múltiplos dumps (antes/depois). +- Faça um diff entre os dois dumps para identificar os blocos/bytes que mudam e que representam o saldo e quaisquer campos de integridade. +- Muitas implementações Classic usam a codificação nativa de "value block" ou implementam seus próprios checksums (ex.: XOR do saldo com outro campo e uma constante). Após alterar o saldo, recompute os bytes de integridade e garanta que todos os campos duplicados/complementares estejam consistentes. + +3) Grave o dump modificado em uma tag Classic “Chinese magic” gravável +```bash +# Load a modified binary dump onto a UID-changeable Classic tag +hf mf cload -f modified.bin +``` +4) Clone o UID original para que os terminais reconheçam o cartão +```bash +# Set the UID on a UID-changeable tag (gen1a/gen2 magic) +hf mf csetuid -u +``` +5) Uso em terminais + +Leitores que confiam no saldo no cartão e no UID irão aceitar o cartão manipulado. Observações de campo mostram que muitas implantações limitam saldos com base na largura do campo (por exemplo, ponto fixo de 16 bits). + +Notes + +- If the system uses native Classic value blocks, remember the format: value (4B) + ~value (4B) + value (4B) + block address + ~address. All parts must match. +- For custom formats with simple checksums, differential analysis is the fastest way to derive the integrity function without reversing firmware. +- Only UID-changeable tags ("Chinese magic" gen1a/gen2) allow writing block 0/UID. Normal Classic cards have read-only UIDs. + +For hands-on Proxmark3 commands, see: + + +{{#ref}} +proxmark-3.md +{{#endref}} + +### Building a Portable HID MaxiProx 125 kHz Mobile Cloner + +If you need a **long-range**, **battery-powered** solution for harvesting HID Prox® badges during red-team engagements you can convert the wall-mounted **HID MaxiProx 5375** reader into a self-contained cloner that fits in a backpack. The full mechanical and electrical walk-through is available here: -Se você precisar de uma solução **de longo alcance**, **alimentada por bateria** para coletar crachás HID Prox® durante engajamentos de red team, você pode converter o leitor **HID MaxiProx 5375** montado na parede em um clonador autônomo que cabe em uma mochila. O guia completo mecânico e elétrico está disponível aqui: {{#ref}} maxiprox-mobile-cloner.md @@ -105,6 +155,9 @@ maxiprox-mobile-cloner.md ## Referências - [https://blog.flipperzero.one/rfid/](https://blog.flipperzero.one/rfid/) -- [Vamos Clonar um Clonador – Parte 3 (TrustedSec)](https://trustedsec.com/blog/lets-clone-a-cloner-part-3-putting-it-all-together) +- [Let's Clone a Cloner – Part 3 (TrustedSec)](https://trustedsec.com/blog/lets-clone-a-cloner-part-3-putting-it-all-together) +- [NXP statement on MIFARE Classic Crypto1](https://www.mifare.net/en/products/chip-card-ics/mifare-classic/security-statement-on-crypto1-implementations/) +- [MIFARE security overview (Wikipedia)](https://en.wikipedia.org/wiki/MIFARE#Security) +- [NFC card vulnerability exploitation in KioSoft Stored Value (SEC Consult)](https://sec-consult.com/vulnerability-lab/advisory/nfc-card-vulnerability-exploitation-leading-to-free-top-up-kiosoft-payment-solution/) {{#include ../../banners/hacktricks-training.md}} diff --git a/src/todo/radio-hacking/proxmark-3.md b/src/todo/radio-hacking/proxmark-3.md index 843a0fcac..71e5536ef 100644 --- a/src/todo/radio-hacking/proxmark-3.md +++ b/src/todo/radio-hacking/proxmark-3.md @@ -2,15 +2,15 @@ {{#include ../../banners/hacktricks-training.md}} -## Atacando Sistemas RFID com Proxmark3 +## Atacando sistemas RFID com Proxmark3 -A primeira coisa que você precisa fazer é ter um [**Proxmark3**](https://proxmark.com) e [**instalar o software e suas dependências**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux)[**s**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux). +A primeira coisa que você precisa fazer é ter um [**Proxmark3**](https://proxmark.com) e [**install the software and it's dependencie**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux)[**s**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux). ### Atacando MIFARE Classic 1KB -Ele tem **16 setores**, cada um deles tem **4 blocos** e cada bloco contém **16B**. O UID está no setor 0 bloco 0 (e não pode ser alterado).\ -Para acessar cada setor, você precisa de **2 chaves** (**A** e **B**) que estão armazenadas no **bloco 3 de cada setor** (trailer do setor). O trailer do setor também armazena os **bits de acesso** que dão as permissões de **leitura e escrita** em **cada bloco** usando as 2 chaves.\ -2 chaves são úteis para dar permissões de leitura se você souber a primeira e de escrita se souber a segunda (por exemplo). +Possui **16 setores**, cada um com **4 blocos** e cada bloco contém **16B**. O UID está no setor 0 bloco 0 (e não pode ser alterado).\ +Para acessar cada setor você precisa de **2 chaves** (**A** e **B**) que são armazenadas no **bloco 3 de cada setor** (trailer do setor). O trailer do setor também armazena os **bits de acesso** que definem as permissões de **leitura e escrita** em **cada bloco** usando as 2 chaves.\ +Duas chaves são úteis para dar permissão de leitura se você souber a primeira e permissão de escrita se souber a segunda (por exemplo). Vários ataques podem ser realizados ```bash @@ -31,11 +31,39 @@ proxmark3> hf mf eset 01 000102030405060708090a0b0c0d0e0f # Write those bytes to proxmark3> hf mf eget 01 # Read block 1 proxmark3> hf mf wrbl 01 B FFFFFFFFFFFF 000102030405060708090a0b0c0d0e0f # Write to the card ``` -O Proxmark3 permite realizar outras ações, como **escutar** uma **comunicação de Tag para Leitor** para tentar encontrar dados sensíveis. Neste cartão, você poderia apenas espionar a comunicação e calcular a chave utilizada porque as **operações criptográficas usadas são fracas** e conhecendo o texto simples e o texto cifrado, você pode calculá-la (ferramenta `mfkey64`). +O Proxmark3 permite realizar outras ações como **eavesdropping** de uma **Tag to Reader communication** para tentar encontrar dados sensíveis. Neste cartão você poderia apenas sniff the communication e calcular a chave usada porque as **cryptographic operations used are weak** e, conhecendo o plain and cipher text, você pode calculá-la (`mfkey64` tool). -### Comandos Brutos +#### MiFare Classic quick workflow for stored-value abuse -Sistemas IoT às vezes usam **tags não marcadas ou não comerciais**. Neste caso, você pode usar o Proxmark3 para enviar **comandos brutos personalizados para as tags**. +Quando terminais armazenam saldos em Classic cards, um fluxo típico ponta a ponta é: +```bash +# 1) Recover sector keys and dump full card +proxmark3> hf mf autopwn + +# 2) Modify dump offline (adjust balance + integrity bytes) +# Use diffing of before/after top-up dumps to locate fields + +# 3) Write modified dump to a UID-changeable ("Chinese magic") tag +proxmark3> hf mf cload -f modified.bin + +# 4) Clone original UID so readers recognize the card +proxmark3> hf mf csetuid -u +``` +Notas + +- `hf mf autopwn` orquestra ataques estilo nested/darkside/HardNested, recupera chaves e cria dumps na pasta client dumps. +- A escrita do block 0/UID funciona apenas em cartões magic gen1a/gen2. Cartões Classic normais têm UID somente leitura. +- Muitas implantações usam Classic "value blocks" ou checksums simples. Garanta que todos os campos duplicados/complementados e checksums estejam consistentes após a edição. + +See a higher-level methodology and mitigations in: + +{{#ref}} +pentesting-rfid.md +{{#endref}} + +### Comandos Raw + +IoT systems sometimes use **nonbranded or noncommercial tags**. In this case, you can use Proxmark3 to send custom **raw commands to the tags**. ```bash proxmark3> hf search UID : 80 55 4b 6c ATQA : 00 04 SAK : 08 [2] @@ -45,7 +73,7 @@ No chinese magic backdoor command detected Prng detection: WEAK Valid ISO14443A Tag Found - Quiting Search ``` -Com essas informações, você pode tentar buscar informações sobre o cartão e sobre a forma de se comunicar com ele. Proxmark3 permite enviar comandos brutos como: `hf 14a raw -p -b 7 26` +Com essas informações você pode tentar buscar informações sobre o cartão e sobre a forma de comunicar-se com ele. O Proxmark3 permite enviar comandos raw como: `hf 14a raw -p -b 7 26` ### Scripts @@ -53,6 +81,13 @@ O software Proxmark3 vem com uma lista pré-carregada de **scripts de automaçã ``` proxmark3> script run mfkeys ``` -Você pode criar um script para **fuzz tag readers**, então copiando os dados de um **cartão válido** basta escrever um **script Lua** que **randomize** um ou mais **bytes** aleatórios e verifique se o **leitor trava** com qualquer iteração. +Você pode criar um script para fuzz tag readers — copiando os dados de um cartão válido, basta escrever um script em Lua que randomize um ou mais bytes e verifique se o reader trava em alguma iteração. + +## Referências + +- [Proxmark3 wiki: HF MIFARE](https://github.com/RfidResearchGroup/proxmark3/wiki/HF-Mifare) +- [Proxmark3 wiki: HF Magic cards](https://github.com/RfidResearchGroup/proxmark3/wiki/HF-Magic-cards) +- [NXP statement on MIFARE Classic Crypto1](https://www.mifare.net/en/products/chip-card-ics/mifare-classic/security-statement-on-crypto1-implementations/) +- [NFC card vulnerability exploitation in KioSoft Stored Value (SEC Consult)](https://sec-consult.com/vulnerability-lab/advisory/nfc-card-vulnerability-exploitation-leading-to-free-top-up-kiosoft-payment-solution/) {{#include ../../banners/hacktricks-training.md}}