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, enquanto limpava a mesa, coloquei acidentalmente a chave de entrada RFID no leitor NFC ACR122 – imagine minha surpresa quando o Windows tocou o som de detecção de um novo dispositivo e o LED ficou verde. Até o momento eu acreditava que essas chaves funcionavam exclusivamente no padrão 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 gratuita de NFC - não vou me alongar sobre isso por alguns motivos objetivos. Se desejar, tudo o que é dito 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.

Se com o primeiro tudo foi relativamente simples, com o segundo houve problemas. A primeira versão do emulador não funcionou. O problema foi descoberto rapidamente - em dispositivos móveis (iOS ou Android) no modo de emulação, o UID é dinâmico e, independentemente do que está conectado à imagem, ele flutua. A segunda versão (executada com direitos de superusuário) fixou rigidamente o número de série no selecionado - a porta se abriu. Porém, eu queria fazer tudo perfeitamente e acabei montando uma versão completa do emulador que pudesse abrir dumps do Mifare e emulá-los. Cedendo a um impulso repentino, mudei as chaves do setor para arbitrárias e tentei abrir a porta. E ela… 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

Adicionar um comentário