Punto di errore: Hacking di un dispositivo POS con WHIDBOARD
Nota dell'editore: Secondo post della nostra serie sull'hacking hardware con la leggenda dell'hacking hardware in persona... Luca Bongiorni. Questa volta Luca rivolge la sua attenzione a un terminale di pagamento (POS) che ha individuato in circolazione e, partendo da nient'altro che una foto, percorre una catena di attacchi OSINT-to-root che culmina in un accesso root non autenticato sia tramite UART che tramite la rete.
Se siete interessati all'hacking hardware, date un'occhiata al WHIDBoard Pro Set e scoprite come diventare un hacker hardware certificato.
DALLA CASSA ALLA SHELL ROOT
Qualche tempo fa stavo facendo acquisti in città quando mi sono imbattuto in un interessante POS (Point Of Sale). Mentre il cassiere preparava la busta della spesa, ho rapidamente preso il mio telefono e scattato un paio di foto per riferimento futuro…
Una volta a casa, ho iniziato a esaminare più da vicino le etichette sotto il POS e mi sono subito reso conto di una cosa interessante… un ID FCC era chiaramente visibile (ovvero SEKMA512)! 😎
RECON passivo – È ora di OSINT!
Grazie a quell'informazione, sono riuscito a ottenere rapidamente maggiori dettagli su questo nuovo DUT (Dispositivo Under Test) anche senza possederne uno (ancora).
All'interno della banca dati FCC sono riuscito a ottenere maggiori dettagli sui PCB interni, sul funzionamento del dispositivo e sull'eventuale presenza di funzionalità anti-manomissione in grado di impedire tentativi di hacking dell'hardware.
In particolare, durante la lettura del manuale, ho potuto confermare che effettivamente questo POS (come qualsiasi altro dispositivo simile che gestisce i dati delle carte di credito) dispone di alcune contromisure per impedire agli autori delle minacce di manomettere fisicamente il circuito stampato, come mostrato nelle immagini sopra.
Tuttavia, non mi sono arreso e ho continuato a esaminare i documenti della banca dati FCC per comprendere meglio l’intero dispositivo in prova (DUT) e completare il mio modello di minaccia iniziale, alla ricerca di potenziali punti di accesso.
Come si può vedere dall'immagine sopra, il PCB principale presenta una serie di punti di test. Alcuni di essi hanno catturato il mio interesse, soprattutto perché sembravano accessibili dall'esterno senza aprire l'involucro del POS, il che significa che potevano essere sondati senza attivare i meccanismi anti-manomissione che avrebbero cancellato la memoria del dispositivo.
Ora che avevo individuato alcuni potenziali punti di accesso, era giunto il momento di acquistare alcuni campioni online…
RECON attivo – Enumerazione dei pin con WHIDBOARD
Pochi giorni dopo sono arrivati i campioni DUT e il primo passo è stato sondare i punti di test con un multimetro per identificare quali fossero elettricamente rilevanti. Dopo averli selezionati, ho quindi utilizzato la funzione Logic Analyzer integrata in WHIDBOARD per verificare se il POS stesse emettendo dei dati.
Dopo aver provato diversi pin, come potete vedere dallo screenshot qui sotto, alla fine ho trovato la linea TX di un'interfaccia di debug UART. 😎
Ora è il momento di attivare la funzione Pin Enumerator di WHIDBOARD per individuare anche il pin RX!
Lasciare che il DUT completasse il processo di avvio ha portato a qualcosa di veramente inaspettato…
uid=0(root) gid=0(root)
Non solo questo POS ha esposto un'interfaccia UART perfettamente funzionante al di fuori dei propri confini di sicurezza anti-manomissione – indicando un fallimento sia nella modellazione delle minacce durante la fase di ricerca e sviluppo che nella convalida della sicurezza prima della produzione – ma questa interfaccia di debug è approdata direttamente in una shell root. 💥🤯
Mettiamoci all'opera – Interagire con il DUT come root
A questo punto, la situazione si è rapidamente aggravata. Utilizzando WHIDBOARD avevo identificato un'interfaccia UART esposta che portava a un ACCESSO ROOT COMPLETO E NON AUTENTICATO…
Quello che è seguito è stata l'esplorazione del file system del dispositivo, l'ispezione dei processi in esecuzione e la comprensione dell'architettura interna del DUT.
Alla fine, ho estratto l'intero firmware tramite una chiavetta USB utilizzando i seguenti comandi…
dd if=/dev/mtd0 of=/mnt/usb/mtd0.bin
dd if=/dev/mtdblk0 of=/mnt/usb/mtdblk0.bin
tar -cvf /mnt/usb/root.tar /root
dd
/root filesystem - compresa l'applicazione di pagamento e le relative chiaviE per dimostrare che ero in grado non solo di leggere il filesystem, ma anche di manometterlo… ho apportato alcune modifiche… 😎
RECON attivo – Scansione della rete
A questo punto, per curiosità, ho verificato anche la presenza di servizi di rete aperti sull'interfaccia Ethernet del DUT. I risultati sono stati allarmanti: la porta Telnet 23/TCP era APERTA… 🤯💥
23/tcp open telnet sul terminale di pagamentoE sì… era possibile accedervi (come root) SENZA password!
uid=0(root)
A questo punto ho deciso di verificare su Shodan se qualcuno di questi POS fosse esposto a Internet. Il risultato: almeno 61 di essi erano esposti su Internet… 🙊🙉🙈
Conclusioni
Questo DUT è stato una vera sorpresa: in oltre un decennio di ricerca sulla sicurezza dei POS, non avevo mai incontrato un dispositivo con così tanti errori cumulativi. Analizziamo cosa è andato storto e perché è importante.
Mancanza di più livelli di difesa in profondità. Questo dispositivo presentava almeno quattro vulnerabilità distinte e sfruttabili indipendentemente l'una dall'altra:
- Punti di test di debug accessibili dall'esterno che aggirano le protezioni fisiche anti-manomissione;
- Una console UART attiva e non autenticata che consente l'accesso alla shell di root;
- Telnet sulla porta
23/TCPcon accesso root senza password sull'interfaccia della rete; - Almeno 61 istanze individuabili tramite Shodan, esposte direttamente a Internet.
Ciascuna di queste sarebbe di per sé una scoperta critica. Insieme, rappresentano un fallimento sistemico nel ciclo di vita della sicurezza del prodotto – dalla modellazione delle minacce e dalla progettazione sicura, fino all’implementazione e ai test di pre-produzione.
Implicazioni per l'infrastruttura di pagamento. Un terminale POS con accesso di livello root in lettura/scrittura al filesystem – raggiungibile sia fisicamente che tramite la rete – apre la porta a backdoor nel firmware, all'intercettazione dei dati di pagamento e all'installazione di malware persistente. In ambienti in cui è richiesta la conformità allo standard PCI DSS, questa classe di vulnerabilità non rappresenta una lacuna marginale: essa mina l’intero modello di fiducia. Il fatto che questi dispositivi fossero esposti a Internet amplifica il rischio, trasformando un attacco fisico locale in uno scalabile da remoto.
Il contesto normativo: CRA e oltre. Con l’entrata in vigore del Cyber Resilience Act (CRA) dell’UE, i prodotti con elementi digitali immessi sul mercato europeo dovranno soddisfare requisiti essenziali di sicurezza informatica per tutto il loro ciclo di vita, tra cui configurazione sicura per impostazione predefinita, superfici di attacco ridotte al minimo e obblighi di gestione delle vulnerabilità. Un dispositivo commercializzato con accesso root non autenticato sia tramite UART che Telnet rappresenterebbe uno scenario di non conformità da manuale. I produttori e gli importatori dovrebbero considerare risultati come questi come un'anteprima di ciò che le autorità di regolamentazione andranno a verificare.
Punti chiave per i professionisti. Non sottovalutate mai le informazioni OSINT disponibili pubblicamente. La sola banca dati della FCC ha fornito informazioni sufficienti per costruire un modello preliminare di minaccia, identificare i confini anti-manomissione e individuare potenziali punti di ingresso, il tutto prima ancora di acquistare una singola unità. Per i membri del red team e i ricercatori di sicurezza, questo è un promemoria del fatto che la ricognizione passiva sui documenti normativi può accelerare notevolmente le valutazioni dell’hardware. Per i produttori e i membri del blue team, è un promemoria del fatto che le vostre presentazioni alla FCC, le analisi di smontaggio e i manuali di assistenza fanno parte della vostra superficie di attacco.
VOGLIA INIZIARE CON L'HACKING HARDWARE?
Lo strumento utilizzato da Luca per questa verifica hardware è il WHIDBoard Pro. Il WHIDBoard è uno strumento all-in-one per l'hacking hardware ed è il risultato di decine di prototipi e iterazioni nel corso degli anni. È stato progettato per fornire tutti gli strumenti – hardware e software – in un kit ben documentato, affidabile, professionale e pronto all'uso. Il set WHIDBoard Pro è prodotto da Lab401, garantendovi la massima tranquillità in termini di qualità e assistenza. Consultate la pagina dedicata al prodotto per ulteriori informazioni.
VORREBBE DIVENTARE UN HACKER HARDWARE CERTIFICATO?
Il corso di formazione sull'hacking hardware offensivo è un percorso di formazione autogestito che include video, un manuale cartaceo e un fantastico kit di hacking hardware. E... riceverà tutto a casa sua, in qualsiasi parte del mondo! Per ulteriori informazioni: https://www.whid.ninja oppure guardi il video introduttivo qui.
Lascia un commento