Problemas dos sistemas autônomos de controle de acesso - onde eles não esperavam

Bom Dia a todos. Começarei com o pano de fundo sobre o que me levou a conduzir este estudo, mas primeiro vou avisá-lo: todas as ações práticas foram realizadas com o consentimento das estruturas de governo. Qualquer tentativa de usar este material para entrar em um território fechado sem o direito de estar lá é um crime.

Tudo começou com o fato de que, quando eu estava limpando a mesa, acidentalmente coloquei a chave RFID na entrada do leitor NFC ACR122 - qual foi minha surpresa quando o Windows tocou o som da detecção de um novo dispositivo e o LED ficou verde. Até agora, eu acreditava que essas chaves funcionam exclusivamente no padrão Proximidade.
imagem

Porém, uma vez que o leitor o viu, significa que a chave atende a um dos protocolos acima do padrão ISO 14443 (É uma comunicação de campo próximo, 13,56 MHz). A limpeza foi imediatamente esquecida, pois vi a oportunidade de me livrar completamente do chaveiro e salvar a chave na entrada do telefone (o apartamento está equipado com uma trava eletrônica). Semeando para estudar, descobri que embaixo do plástico está a etiqueta NFC Mifare 1k - o mesmo modelo dos crachás, crachás de empresas, cartões de transporte, etc. As tentativas de entrar no conteúdo dos setores a princípio não deram certo, mas quando a chave ainda podia ser quebrada, verificou-se que apenas o terceiro setor foi usado e o UID do chip em si foi duplicado. Parecia simples demais, e acabou que não haveria artigo se tudo corresse exatamente como pretendido. Então, eu peguei as principais miudezas e não há problemas,se você precisar copiar a chave para outra. Mas a tarefa era transferir a chave para um dispositivo móvel, o que eu fiz. Foi aqui que a diversão começou - nós temos um telefone -iPhone SE com iOS 13.4.5 Beta build 17F5044d instalado e alguns componentes personalizados para trabalho livre de NFC - não vou insistir nisso por alguns motivos objetivos. Se desejado, todos os itens a seguir se aplicam ao sistema Android, mas com algumas simplificações.

A lista de tarefas a serem resolvidas:

  • Obtenha acesso ao conteúdo da chave.
  • Implemente a capacidade de emular um dispositivo principal.

Se o primeiro foi relativamente simples, o segundo teve problemas. A primeira versão do emulador não funcionou. O problema foi rapidamente detectado - para dispositivos móveis (iOS, Android) no modo de emulação - o UID é dinâmico e, independentemente do que está conectado à imagem, flutua. A segunda versão (executada como superusuário) fixou rigidamente o número de série no selecionado - a porta se abriu. No entanto, eu queria fazer tudo perfeitamente e, no final, montei uma versão completa do emulador que poderia abrir os despejos do Mifare e imitá-los. Cedendo a um impulso repentino, mudei as chaves dos setores para arbitrário e tentei abrir a porta. E ela ... ABRIU! Depois de um tempo, percebi que qualquerportas com essa fechadura, mesmo aquelas nas quais a chave original não se encaixava. Nesse sentido, formei uma nova lista de tarefas a serem executadas:

  • Descubra qual 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 o engenheiro da empresa de gerenciamento, descobri que os controladores simples Iron Logic z5r são usados ​​sem conectar a uma rede externa.

Leitor CP-Z2 MF e controlador IronLogic z5r
:

image

Como fica claro a partir daqui - o sistema é completamente autônomo e extremamente primitivo. No começo, pensei que o controlador estivesse no modo de aprendizado - o significado é que ele lê a chave, armazena-a na memória e abre a porta - esse modo é usado quando você precisa gravar todas as chaves, por exemplo, ao substituir a fechadura de um prédio de apartamentos. Mas essa teoria não foi confirmada - esse modo é desativado pelo software, o jumper está na posição de trabalho - e, no entanto, quando ativamos o dispositivo, vemos o seguinte:

Captura de tela do processo de emulação no dispositivo
image
… .

Portanto, o problema está no software do controlador ou do leitor. Vamos verificar o leitor - ele funciona no modo iButton, para conectarmos a placa de segurança Bolid - teremos a oportunidade de ver a saída do leitor.

A placa será conectada posteriormente via RS232
image

Usando o método de vários testes, descobrimos que o leitor transmite o mesmo código em caso de falha na autorização: 1219191919

A situação começa a se esclarecer, mas no momento não entendo por que o controlador responde positivamente a esse código. Há uma suposição - que quando eles encheram a base - trouxeram um cartão acidentalmente ou especialmente 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 do trabalho com esta vulnerabilidade está disponível aqui .

PS Contra a teoria, com acréscimo aleatório, está o fato de que, no mesmo centro de negócios em Krasnoyarsk, também consegui abrir a porta pelo mesmo método.

All Articles