Problemi autonomnih SCUD-a — Tamo gdje se nismo nadali

Svima želim dobar dan. Počet ću s pozadinom koja me potaknula na provođenje ovog istraživanja, ali prvo ću upozoriti: sve praktične radnje provedene su uz pristanak upravljačkih struktura. Svaka pokušaj korištenja ovog materijala za neovlašteno ulazak na zatvorenu teritoriju predstavlja kazneno djelo.

Sve je počelo kada sam, čisteći stol, slučajno stavio RFID ključ od ulaza na NFC čitač ACR122 — koliko sam se iznenadio kada je Windows reproducirao zvuk prepoznavanja novog uređaja, a LED lampica zasvijetlila zeleno. Do tog trenutka mislio sam da ti ključevi rade isključivo prema Proximity standardu.
Problemi autonomnih SCUD-a — Tamo gdje se nismo nadali
Ali ako ga je čitač prepoznao — znači da ključ odgovara jednom od protokola iznad ISO 14443 standarda (tj. Near Field Communication, 13,56 MHz). Zaboravio sam na čišćenje jer sam ugledao priliku da se potpuno riješim ključeva i spremim ključ od ulaza u telefon (stan je već davno opremljen elektroničkom bravom). Kada sam se počeo istraživati, otkrio sam da se ispod plastike skriva NFC oznaka Mifare 1k — ista ona koja se koristi u propusnicama, kartama za javni prijevoz itd. Pokušaji da se uđu u sadržaj sektora isprva nisu bili uspješni, a kada sam nap finally uspio probiti ključ — otkrio sam da se koristi samo 3. sektor, a u njemu je dupliciran UID samog čipa. Izgledalo je previše jednostavno, i zapravo se pokazalo tako, ne bi bilo članka da je sve prošlo onako kako je zamišljeno. Dobio sam unutrašnjost ključa, i nema problema ako je potrebno kopirati ključ na drugi isti. No, pravi zadatak bio je prenijeti ključ na mobilni uređaj, čime sam se i bavio. Ovdje je počela zabava — imamo telefon — iPhone SE s instaliranim iOS 13.4.5 Beta build 17F5044d i nekim prilagođenim komponentama za slobodno korištenje NFC — o tome neću detaljno pričati zbog nekih objektivnih razloga. Ako želite, sve što slijedi primjenjivo je i za Android sustav, ali uz neka pojednostavljenja.

Popis zadataka za rješavanje:

  • Dohvatiti pristup sadržaju ključa.
  • Implementirati mogućnost emulacije ključa uređajem.

Ako je s prvim bilo relativno jednostavno, s drugim su se pojavili problemi. Prva verzija emulatora nije radila. Problem je otkriven prilično brzo – na mobilnim uređajima (bilo da se radi o iOS-u ili Androidu) u režimu emulacije, UID je dinamičan i neovisno od onoga što je zapisano u slici – menja se. Druga verzija (pokrenuta s administratorskim pravima) fiksirala je serijski broj na odabranom – vrata su se otvorila. Međutim, želeo sam učiniti sve savršeno, i na kraju sam sastavio završnu verziju emulatora koja je mogla otvarati Mifare dump-ove i emulirati ih. Podlegнув naglom porivu, promenio sam ključeve sektora na proizvoljne, i pokušao otvoriti vrata. I ona… … OTVORILA! Nakon nekog vremena shvatio sam da se otvaraju bilo koja vrata s tim zaključavanjem, čak i ona za koja izvorni ključ nije odgovarao. U vezi s tim formirao sam novu listu zadataka za izvršenje:

  • Utvrditi koji kontroler odgovara za rad s ključevima
  • Shvatiti postoji li povezanost s mrežom i zajednička baza
  • Utvrditi zašto zapravo nečitljivi ključ postaje univerzalan

Posle razgovora s inženjerom upravljačke kompanije saznao sam da se koriste jednostavni kontroleri Iron Logic z5r bez povezivanja s vanjskom mrežom.

Čitač CP-Z2 MF i kontroler IronLogic z5r
Dobio sam skup opreme za eksperimente:

Problemi autonomnih SCUD-a — Tamo gdje se nismo nadali

Kako se ovde može razumeti — sistem je potpuno autonoman i izuzetno primitivan. Prvo sam pomislio da je kontroler u režimu učenja — smisao tog režima je da čita ključ, unosi ga u memoriju i otvara vrata — ovaj režim se koristi kada je potrebno zapisati sve ključeve, na primer pri zameni brave u stambenoj zgradi. Ali ova teorija nije potvrđena — programski je ovaj režim isključen, jumper je u radnom položaju — i pored toga, kada približimo uređaj, vidimo sledeće:

Screenshot procesa emulacije na uređaju
Problemi autonomnih SCUD-a — Tamo gdje se nismo nadali
… i kontroler signalizira da je pristup odobren.

To znači da je problem u softveru ili kontrolera, ili čitača. Proverimo čitač — on radi u iButton režimu, pa ćemo povezati sigurnosnu ploču Bolid — imamo mogućnost da vidimo izlazne podatke sa čitača.

Ploča će biti povezana kasnije putem RS232
Problemi autonomnih SCUD-a — Tamo gdje se nismo nadali

Metodom višestrukih pokušaja utvrđujemo da čitač prenosi isti kod u slučaju neuspjeha autorizacije: 1219191919

Situacija počinje postajati jasnija, no trenutno mi nije jasno zašto se kontroler pozitivno odaziva na ovaj kod. Postoji pretpostavka — da je prilikom popunjavanja baze slučajno ili namjerno bila priložena kartica s drugim ključevima sektora — čitač je poslao ovaj kod i kontroler ga je pohranio. Nažalost, nemam originalni programator od IronLogic da zavirim u bazu ključeva kontrolera, ali se nadam da sam uspio skrenuti pažnju na to da problem postoji. Video demonstracija rada s ovom ranjivošću dostupna je na linku.

P.S. Protiv teorije o slučajnom dodavanju govori i činjenica da sam u jednom poslovnom centru Krasnojarska uspio otvoriti vrata ovom istom metodom.

Izvor: habr.com

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster