Pokazał jak zhackować kartę umożliwiającą zakup kawy w ekspresach Nespresso. Zatankował na kartę €167.772,15 -> ta kwota aż nie mieściła się na wyświetlaczu…
Sam opis procedury (zrealizowanej w ramach etycznego hackingu) dostępny jest tutaj.
Badacz najpierw zajął się analizą samej karty:
Szybko okazało się, że całość bazuje na rozwiązaniu MIFARE Classic, którego (nie)bezpieczeństwo jest już znane. No więc badacz zakasał rękawy, skompletował narzędzia, zdumpował zawartość testowej karty i zabrał się za łamanie kluczy, co poszło dość szybko:
$ mfoc -P 500 -O nespresso.dmp Found Mifare Classic 1k tag ISO/IEC 14443A (106 kbps) target: ATQA (SENS_RES): 04 00
Try to authenticate to all sectors with default keys… Symbols: ‘.’ no key found, ‘/’ A key found, ‘\’ B key found, ‘x’ both keys found [Key: ffffffffffff] -> […………….] [Key: a0a1a2a3a4a5] -> [////////////////] [Key: d3f7d3f7d3f7] -> [////////////////] [Key: 000000000000] -> [////////////////] [Key: b0b1b2b3b4b5] -> [xxxxxxxxxxxx////] [Key: 4d3a99c351dd] -> [xxxxxxxxxxxx////] [Key: 1a982c7e459a] -> [xxxxxxxxxxxx////]
Dzięki temu miał możliwość wykonania zmiany zapisu na samej karcie, i wgrania tak zmienionego dumpa na tę samą (ew. inną) kartę. Gdzie są przechowane informacje o środkach pieniężnych dostępnych na karcie? Wystarczyło zrobić prosty test:
Mam 1.5 EUR na karcie (robię dump)
Kupuję kawę za 1EUR (robię dump)
Porównuję dumpy
Przykładowy zrzut wygląda tak (na zielono oznaczono miejsce z saldem na karcie):
96 szesnastkowo to 150 dziesiątkowo (1.50 EUR)
Teraz tylko podmiana 3 bajtów z kwotą na FFFFFF i wgranie dumpa na chiński krążek:
Efekt? Na tyle ciekawy, że nawet nie starczyło miejsca na wyświetlaczu ;)
Badacz zgłosił sprawę pod koniec 2020r. do Nespresso, a firma finalnie wyraziła zgodę na opublikowanie całego researchu.
Pamiętajcie oczywiście żeby takie “zabawy” realizować zawsze etycznie.
–ms
Spodobał Ci się wpis? Podziel się nim ze znajomymi:
A bounty? ;-)
satysfakcja ;)
Filiżanka z kawą
Naturalnie, tylko etycznie… cały 1 rozdział jest o tym co grozi za brak etyki ;)
POKE ;)