mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/todo/radio-hacking/proxmark-3.md', 'src/todo/radio-hack
This commit is contained in:
parent
8f6bff40eb
commit
47e7b8cc51
@ -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
|
||||
|
||||
<figure><img src="../../images/image (983).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
## 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.
|
||||
|
||||
<figure><img src="../../images/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.
|
||||
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 <original_uid>
|
||||
```
|
||||
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}}
|
||||
|
@ -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 <original_uid>
|
||||
```
|
||||
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}}
|
||||
|
Loading…
x
Reference in New Issue
Block a user