Problèmes des systèmes de contrôle d'accès autonomes - Où ils ne s'attendaient pas

Bonne journée à tous. Je vais commencer par le contexte sur ce qui m'a incité à mener cette étude, mais je vais d'abord vous avertir: toutes les actions pratiques ont été réalisées avec le consentement des structures dirigeantes. Toute tentative d'utiliser ce matériel pour entrer dans un territoire fermé sans le droit d'y être constitue une infraction pénale.

Tout a commencé avec le fait que lorsque je nettoyais la table, j'ai accidentellement mis la clé RFID à l'entrée du lecteur NFC ACR122 - quelle a été ma surprise lorsque Windows a émis le son de la détection d'un nouvel appareil et que la LED est devenue verte. Jusqu'à présent, je pensais que ces clés fonctionnaient exclusivement dans le standard de proximité.
image

Mais une fois que le lecteur l'a vu, cela signifie que la clé répond à l'un des protocoles en plus de la norme ISO 14443 (c'est la communication en champ proche, 13,56 MHz). Le nettoyage a été immédiatement oublié, car j'ai vu l'opportunité de me débarrasser complètement du porte-clés, et de garder la clé à l'entrée du téléphone (l'appartement est depuis longtemps équipé d'une serrure électronique). En semant l'étude, j'ai découvert que sous le plastique se trouve le tag NFC Mifare 1k - le même modèle que dans les badges, badges d'entreprises, cartes de transport, etc. Les tentatives d'entrer dans le contenu des secteurs au début n'ont pas porté leurs fruits, mais lorsque la clé a encore pu être craquée, il s'est avéré que seul le 3e secteur était utilisé et l'UID de la puce elle-même y était dupliqué. Cela avait l'air trop simple, et il s'est avéré qu'il n'y aurait pas d'article si tout se déroulait exactement comme prévu. J'ai donc obtenu les abats clés, et il n'y a pas de problème,si vous devez copier la clé sur une autre. Mais la tâche consistait à transférer la clé sur un appareil mobile, ce que j'ai fait. C'est là que le plaisir a commencé - nous avons un téléphone -iPhone SE avec iOS 13.4.5 Beta build 17F5044d installé et certains composants personnalisés pour le travail sans NFC - je ne m'y attarderai pas pour des raisons objectives. Si vous le souhaitez, toutes les conditions suivantes s'appliquent au système Android, mais avec quelques simplifications.

La liste des tâches à résoudre:

  • AccĂ©dez au contenu de la clĂ©.
  • ImplĂ©mentez la possibilitĂ© d'Ă©muler un pĂ©riphĂ©rique clĂ©.

Si le premier était relativement simple, alors le second avait des problèmes. La première version de l'émulateur n'a pas fonctionné. Le problème a été rapidement détecté - pour les appareils mobiles (iOS, Android) en mode émulation - l'UID est dynamique et indépendamment de ce qui est câblé dans l'image, il flotte. La deuxième version (exécutée en tant que superutilisateur) a fixé de manière rigide le numéro de série sur celui sélectionné - la porte s'est ouverte. Cependant, je voulais tout faire parfaitement, et au final j'ai mis au point une version complète de l'émulateur qui pourrait ouvrir les vidages Mifare et les émuler. Cédant à une impulsion soudaine, j'ai changé les clés des secteurs en arbitraire, et j'ai essayé d'ouvrir la porte. Et elle ... OUVERTE! Après un certain temps, j'ai réalisé que toutportes avec cette serrure, même celles auxquelles la clé d'origine ne correspondait pas. À cet égard, j'ai formé une nouvelle liste de tâches à effectuer:

  • DĂ©couvrez quel contrĂ´leur est responsable du travail avec les clĂ©s
  • Comprendre s'il existe une connexion rĂ©seau et une base commune
  • DĂ©couvrez pourquoi une clĂ© pratiquement illisible devient universelle

Après avoir parlé avec l'ingénieur de la société de gestion, j'ai découvert que de simples contrôleurs Iron Logic z5r sont utilisés sans se connecter à un réseau externe.

Lecteur CP-Z2 MF et contrĂ´leur IronLogic z5r
:

image

Comme il est clair d'ici - le système est complètement autonome et extrêmement primitif. Au début, je pensais que le contrôleur était en mode d'apprentissage - ce qui signifie qu'il lit la clé, la stocke dans la mémoire et ouvre la porte - ce mode est utilisé lorsque vous devez enregistrer toutes les clés, par exemple lors du remplacement de la serrure dans un immeuble. Mais cette théorie n'a pas été confirmée - ce mode est désactivé par le logiciel, le cavalier est en position de travail - et néanmoins, lorsque nous montons l'appareil, nous voyons ce qui suit:

Capture d'Ă©cran du processus d'Ă©mulation sur l'appareil
image
… .

Le problème réside donc dans le logiciel du contrôleur ou du lecteur. Vérifions le lecteur - cela fonctionne en mode iButton, nous allons donc connecter la carte de sécurité Bolid - nous aurons l'occasion de voir la sortie du lecteur.

La carte sera ensuite connectée via RS232
image

En utilisant la méthode de plusieurs tests, nous constatons que le lecteur diffuse le même code avec en cas d'échec d'autorisation: 1219191919

La situation commence à s'éclaircir, mais pour le moment je ne comprends pas pourquoi le contrôleur répond positivement à ce code. Il y a une hypothèse - que lorsqu'ils ont rempli la base de données - accidentellement ou spécialement apporté une carte avec d'autres clés de secteur - le lecteur a envoyé ce code et le contrôleur l'a enregistré. Malheureusement, je n'ai pas de programmeur propriétaire d'IronLogic pour examiner la base de données des clés du contrôleur, mais j'espère avoir réussi à attirer l'attention sur le fait que le problème existe. Une vidéo de démonstration de l'utilisation de cette vulnérabilité est disponible ici .

PS Contre la théorie avec un ajout aléatoire est le fait que dans le même centre d'affaires à Krasnoyarsk, j'ai également réussi à ouvrir la porte par la même méthode.

All Articles