Problemi dei sistemi di accesso autonomi — Da dove non ci si aspettava

Buon pomeriggio a tutti. Inizierò con la storia che mi ha spinto a condurre questa ricerca, ma prima avverto: tutte le azioni pratiche sono state eseguite con il consenso delle autorità competenti. Qualsiasi tentativo di utilizzare questo materiale per accedere a un'area chiusa senza avere il diritto di entrarvi è un reato penale.

Tutto è iniziato quando, mentre pulivo la scrivania, ho accidentalmente posizionato la chiave RFID d'ingresso sul lettore NFC ACR122 — quale sorpresa quando Windows ha riprodotto il suono di rilevamento di un nuovo dispositivo e il LED è diventato verde. Fino a quel momento, pensavo che queste chiavi funzionassero esclusivamente con lo standard Proximity.
Problemi dei sistemi di accesso autonomi — Da dove non ci si aspettava
Ma se il lettore lo ha rilevato, significa che la chiave risponde a uno dei protocolli sopra lo standard ISO 14443 (che è Near Field Communication, 13,56 MHz). Dimenticai subito la pulizia, poiché avevo visto l'opportunità di liberarmi del mazzo di chiavi e di mantenere la chiave d'ingresso nel telefono (l'appartamento era già dotato di una serratura elettronica). Immergendomi nello studio, ho scoperto che sotto la plastica si nasconde un'etichetta NFC Mifare 1k — lo stesso modello utilizzato nei badge aziendali, nelle carte di trasporto, ecc. I miei primi tentativi di accedere al contenuto dei settori non hanno dato risultati, ma quando alla fine sono riuscito a decifrare la chiave, ho scoperto che viene utilizzato solo il 3° settore, dove è duplicato il UID del chip stesso. Sembrava troppo semplice ed è esattamente così, altrimenti non avrei potuto scrivere questo articolo. Ecco, ho ottenuto l'interno della chiave e non ci sono problemi se devo copiare la chiave su un'altra identica. Ma il compito era trasferire la chiave su un dispositivo mobile, ed è su questo che mi sono concentrato. Qui è iniziato il divertimento — abbiamo il telefono — iPhone SE con installato iOS 13.4.5 Beta build 17F5044d e alcuni componenti personalizzati per un libero funzionamento dell'NFC — non mi soffermerò su questo per alcune oggettive ragioni. Se lo desiderate, quanto detto di seguito è applicabile anche al sistema Android, ma con alcune semplificazioni.

Elenco delle attività da svolgere:

  • Accedere al contenuto della chiave.
  • Implementare la possibilità di emulazione della chiave da parte del dispositivo.

Se con il primo tutto era relativamente semplice, con il secondo sono emersi dei problemi. La prima versione dell'emulatore non ha funzionato. Il problema è stato individuato abbastanza rapidamente: per i dispositivi mobili (sia iOS che Android) in modalità emulazione, l'UID è dinamico e indipendentemente da cosa sia incorporato nell'immagine, oscilla. La seconda versione (eseguita con i privilegi di superutente) fissava rigidamente il numero di serie su quello selezionato — la porta si apriva. Tuttavia, volevo fare tutto alla perfezione, e alla fine ho assemblato una versione conclusa dell'emulatore che poteva aprire dump di Mifare e emularli. A seguito di un'improvvisa ispirazione, ho cambiato le chiavi degli settori con valori casuali e ho provato ad aprire la porta. E si è… APERTA! Dopo un po' ho capito che si aprivano tutte le porte con questa serratura, anche quelle per cui la chiave originale non era adatta. Pertanto, ho creato una nuova lista di attività da svolgere:

  • Scoprire quale controller gestisce le chiavi
  • Capire se c'è connessione alla rete e un database comune
  • Capire perché una chiave praticamente illeggibile diventa universale

Parlando con l'ingegnere della società di gestione, ho appreso che vengono utilizzati semplici controller Iron Logic z5r senza collegamento a una rete esterna.

Lettore CP-Z2 MF e controller IronLogic z5r
Mi è stato fornito un kit di attrezzature per esperimenti:

Problemi dei sistemi di accesso autonomi — Da dove non ci si aspettava

Come si può dedurre, il sistema è completamente autonomo e molto primitivo. All'inizio pensavo che il controller fosse in modalità di apprendimento: il concetto era che legge la chiave, la memorizza e apre la porta — questa modalità viene utilizzata quando è necessario registrare tutte le chiavi, ad esempio durante la sostituzione della serratura in un condominio. Ma questa teoria non è stata confermata: in modo programmato questa modalità è disattivata, il ponte è in posizione operativa — eppure quando avviciniamo il dispositivo vediamo quanto segue:

Screenshot del processo di emulazione sul dispositivo
Problemi dei sistemi di accesso autonomi — Da dove non ci si aspettava
… e il controller segnala che l'accesso è stato concesso.

Quindi, il problema risiede nel software o nel lettore. Verifichiamo il lettore: funziona in modalità iButton, quindi collegheremo la scheda di sicurezza Bolid — avremo la possibilità di vedere i dati di output del lettore.

La scheda sarà collegata più tardi tramite RS232
Problemi dei sistemi di accesso autonomi — Da dove non ci si aspettava

Attraverso numerosi tentativi, abbiamo scoperto che il lettore trasmette lo stesso codice in caso di fallimento di autorizzazione: 1219191919

La situazione inizia a chiarirsi, tuttavia al momento non capisco perché questo codice risponda positivamente al controller. C'è l'ipotesi che, quando abbiamo riempito il database, sia stato accidentalmente o deliberatamente avvicinato un cartoncino con altre chiavi di settore — il lettore ha inviato questo codice e il controller lo ha salvato. Sfortunatamente non ho a disposizione un programmatore ufficiale di IronLogic per controllare il database delle chiavi del controller, ma spero di essere riuscito a far notare che il problema esiste. Una video dimostrazione del funzionamento di questa vulnerabilità è disponibile al link.

P.S. Contro la teoria dell'aggiunta casuale c'è il fatto che in un centro affari a Krasnoyarsk sono riuscito ad aprire la porta anche con questo metodo.

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster