Problemele sistemelor de control acces autonome — De unde nu te așteptai

Bună ziua tuturor. Voi începe cu un preambul despre ce m-a determinat să efectuez această cercetare, dar înainte să avertizez: toate acțiunile practice au fost realizate cu acordul structurilor de conducere. Orice încercare de a folosi acest material în scopuri de pătrundere într-o zonă restricționată fără drept de a fi acolo este considerată o infracțiune penală.

Totul a început când, făcând curățenie pe birou, am așezat din greșeală cheile RFID de la intrare pe cititorul NFC ACR122 — cât de surprins am fost când Windows a redat sunetul de recunoaștere a unui nou dispozitiv, iar LED-ul s-a aprins pe verde. Până în acel moment credeam că aceste chei funcționează exclusiv pe standardul Proximity.
Problemele sistemelor de control acces autonome — De unde nu te așteptai
Dar, fiindcă cititorul l-a văzut — înseamnă că cheia răspunde unuia dintre protocoalele deasupra standardului ISO 14443 (Acesta este Near Field Communication, 13,56 MHz). Am uitat imediat de curățenie, pentru că am văzut oportunitatea de a scăpa complet de legătura de chei și de a păstra cheia de la intrare în telefon (apartamentul este deja dotat cu o ușă electronică). M-am aplecat asupra studiului și am descoperit că sub plastic se află o etichetă NFC Mifare 1k — aceeași modelă folosită în badge-uri de acces, cărți de transport etc. Încercările de a accesa conținutul sectoarelor nu au avut succes la început, dar când am reușit, s-a dovedit că este utilizat doar sectorul 3, în care este duplicat UID-ul chip-ului însuși. Părea prea simplu, așa că s-a dovedit că nu ar fi existat articolul dacă totul ar fi decurs conform planului. Iată, am obținut componentele cheii, și nu sunt probleme dacă trebuie să copiez cheia pe una identică. Dar sarcina era să transfer cheia pe un dispozitiv mobil, cu asta m-am ocupat. Aici a început distracția — avem telefonul — iPhone SE cu instalată iOS 13.4.5 Beta build 17F5044d și cu unele componente personalizate pentru funcționarea liberă a NFC — nu voi detalia acest lucru din motive obiective. Dacă se dorește, tot ce se spune mai departe este aplicabil și sistemului Android, dar cu unele simplificări.

Lista sarcinilor de rezolvat:

  • Obțineți acces la conținutul cheii.
  • Implementați posibilitatea de a emula cheia cu dispozitivul.

Dacă cu primul totul a fost relativ simplu, cu al doilea au apărut probleme. Prima versiune a emulatorului nu a funcționat. Problema a fost descoperită destul de repede - pe dispozitive mobile (atât iOS, cât și Android) în modul de emulare - UID-ul este dinamic și indiferent de ce este stocat în imagine - fluctuează. A doua versiune (rulată cu drepturi de superuser) a fixat dur serialul la cel selectat - ușa se deschidea. Totuși, voiam să fac totul perfect, iar în final am creat o versiune finalizată a emulatorului care putea deschide dump-uri Mifare și să le emuleze. Căzând victimă unui impuls brusc, am schimbat cheile sectorilor cu unele aleatorii și am încercat să deschid ușa. Și ea... S-A DESCHIS! După un timp, am realizat că se deschid orice uși cu această broască, chiar și cele pentru care cheia originală nu se potrivea. În acest sens, am formulat o nouă listă de sarcini de îndeplinit:

  • Să aflu ce controler răspunde de lucrul cu cheile
  • Să înțeleg dacă există o conexiune la rețea și o bază comună
  • Să aflu de ce o cheie de fapt ilizibilă devine universală

După ce am discutat cu inginerul companiei de gestionare, am aflat că se folosesc controlere simple Iron Logic z5r fără a fi conectate la o rețea externă.

Cititor CP-Z2 MF și controler IronLogic z5r
Mi s-a dat un set de echipamente pentru experimente:

Problemele sistemelor de control acces autonome — De unde nu te așteptai

După cum se poate înțelege de aici - sistemul este complet autonom și extrem de primitiv. La început, am crezut că controlerul se află în modul de învățare - sensul acestuia este că citește cheia, o stochează în memorie și deschide ușa - acest mod se folosește când trebuie să se scrie toate cheile, de exemplu, în timpul schimbării broaștei într-un bloc de apartamente. Dar această teorie nu s-a confirmat - programatic acest mod este dezactivat, puntea este în poziția de lucru - și totuși, când apropiem dispozitivul vedem următoarele:

Captură de ecran a procesului de emulare pe dispozitiv
Problemele sistemelor de control acces autonome — De unde nu te așteptai
... și controlerul semnalizează că accesul este permis.

Înseamnă că problema se află în software-ul fie controlerului, fie al cititorului. Să verificăm cititorul - funcționează în modul iButton, așa că vom conecta placa de securitate Bolid - vom avea posibilitatea de a vizualiza datele de ieșire de la cititor.

Placa va fi conectată ulterior prin RS232
Problemele sistemelor de control acces autonome — De unde nu te așteptai

Prin metoda testării multiple, am constatat că cititorul retransmite același cod în cazul unei autorizări nereușite: 1219191919

Situația începe să devină mai clară, totuși în acest moment nu înțeleg de ce acest cod reacționează pozitiv pentru controller. Există o presupunere – că, atunci când a fost completată baza de date, accidental sau intenționat, a fost adus un card cu alte chei ale sectorului – cititorul a trimis acest cod și controller-ul l-a salvat. Din păcate, nu am un programator original de la IronLogic pentru a verifica baza de date a cheilor controller-ului, dar sper că am reușit să atrag atenția asupra problemei existente. O demonstrație video a lucrului cu această vulnerabilitate este disponibilă la link.

P.S. Împotriva teoriei adăugării accidentale stă faptul că într-un centru de afaceri din Krasnoyarsk am reușit de asemenea să deschid ușa prin aceeași metodă.

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster