Problemas dos sistemas autónomos de controlo de acessos – Onde não eram esperados

Bom Dia a todos. Começarei pelos antecedentes sobre o que me levou a realizar esta investigação, mas antes vou avisar: todas as ações práticas foram realizadas com o consentimento das estruturas governamentais. Qualquer tentativa de usar este material para entrar em uma área restrita sem o direito de estar lá é crime.

Tudo começou quando eu estava limpando minha mesa e acidentalmente coloquei minha chave RFID da entrada no leitor NFC ACR122 - imagine minha surpresa quando... Windows O dispositivo emitiu um som de detecção de novo dispositivo e o LED acendeu em verde. Até então, eu presumia que essas teclas funcionavam apenas com o padrão de proximidade.
Problemas dos sistemas autónomos de controlo de acessos – Onde não eram esperados
Mas como o leitor viu, significa que a chave atende a um dos protocolos do padrão ISO 14443 (também conhecido como Near Field Communication, 13,56 MHz). A limpeza foi imediatamente esquecida, pois vi uma oportunidade de me desfazer completamente do molho de chaves e guardar a chave da entrada no meu telefone (o apartamento já está equipado com fechadura eletrónica). Começando a estudar, descobri que escondida embaixo do plástico está uma etiqueta Mifare 1k NFC - o mesmo modelo dos crachás empresariais, cartões de transporte, etc. As tentativas de acessar o conteúdo dos setores não trouxeram sucesso a princípio, e quando a chave foi finalmente quebrada, descobriu-se que apenas o 3º setor foi utilizado, e o próprio UID do chip estava duplicado nele. Parecia muito simples, mas acabou sendo, e não haveria artigo se tudo corresse exatamente como planejado. Então recebi os miúdos da chave, e não há problema se precisar copiar a chave para outra do mesmo tipo. Mas a tarefa era transferir a chave para um dispositivo móvel, e foi o que fiz. Foi aqui que a diversão começou - temos um telefone - iPhone SE com instalado iOS 13.4.5 versão beta 17F5044d e alguns componentes personalizados para operação NFC perfeita — não entrarei em detalhes por uma série de razões objetivas. Se preferir, tudo o que for discutido abaixo também se aplica ao sistema. Android, mas com algumas simplificações.

Lista de tarefas a resolver:

  • Acesse o conteúdo da chave.
  • Implemente a capacidade de emular uma chave pelo dispositivo.

Embora a primeira fosse relativamente simples, a segunda apresentou problemas. A primeira versão do emulador não funcionava. O problema foi rapidamente descoberto — em dispositivos móveis (tanto iOS quanto AndroidNo modo de emulação, o UID é dinâmico e flutua independentemente do que está escrito na imagem. A segunda versão (executada com privilégios de superusuário) bloqueou o número de série no selecionado — a porta se abriu. No entanto, eu queria fazer tudo perfeitamente e acabei construindo um emulador completo que conseguia abrir dumps Mifare e emulá-los. Por um capricho, alterei as chaves de setor para valores arbitrários e tentei abrir a porta. E... ABERTO! Depois de um tempo percebi que eles estavam abrindo qualquer portas com esta fechadura, mesmo aquelas nas quais a chave original não cabia. Nesse sentido, criei uma nova lista de tarefas a serem concluídas:

  • Descubra que tipo de controlador é responsável por trabalhar com chaves
  • Entenda se existe uma conexão de rede e uma base comum
  • Descubra por que uma chave praticamente ilegível se torna universal

Depois de conversar com um engenheiro da empresa de gestão, aprendi que controladores simples Iron Logic z5r são usados ​​sem conexão a uma rede externa.

Leitor CP-Z2 MF e controlador IronLogic z5r
Recebi um conjunto de equipamentos para os experimentos:

Problemas dos sistemas autónomos de controlo de acessos – Onde não eram esperados

Como fica claro aqui, o sistema é completamente autônomo e extremamente primitivo. A princípio pensei que o controlador estava em modo de aprendizagem - o significado é que ele lê a chave, armazena na memória e abre a porta - este modo é utilizado quando é necessário gravar todas as chaves, por exemplo, ao substituir o trancar em um prédio de apartamentos. Mas essa teoria não foi confirmada - esse modo está desligado no software, o jumper está na posição de trabalho - e ainda assim, quando ligamos o aparelho, vemos o seguinte:

Captura de tela do processo de emulação no dispositivo
Problemas dos sistemas autónomos de controlo de acessos – Onde não eram esperados
... e o controlador sinaliza que o acesso foi concedido.

Isso significa que o problema está no software do controlador ou do leitor. Vamos verificar o leitor - ele funciona no modo iButton, então vamos conectar a placa de segurança Bolid - poderemos visualizar os dados de saída do leitor.

A placa será posteriormente conectada via RS232
Problemas dos sistemas autónomos de controlo de acessos – Onde não eram esperados

Utilizando o método de testes múltiplos, descobrimos que o leitor transmite o mesmo código em caso de falha de autorização: 1219191919

A situação está começando a ficar mais clara, mas no momento não está claro para mim por que o controlador responde positivamente a este código. Supõe-se que quando o banco de dados foi preenchido - por acidente ou propositalmente foi apresentado um cartão com outras chaves do setor - o leitor enviou esse código e o controlador o salvou. Infelizmente, não tenho um programador proprietário da IronLogic para examinar o banco de dados de chaves do controlador, mas espero ter conseguido chamar a atenção para o fato de que o problema existe. Uma demonstração em vídeo de como trabalhar com esta vulnerabilidade está disponível по ссылке.

PS A teoria da adição aleatória se opõe ao fato de que em um centro de negócios em Krasnoyarsk também consegui abrir a porta usando o mesmo método.

Fonte: habr.com

Compre hospedagem confiável para sites com proteção DDoS, servidores VPS VDS 🔥 Compre hospedagem de sites confiável com proteção contra DDoS, servidores VPS/VDS | ProHoster