Der Proxmark3 ist das Schweizer Taschenmesser der RFID-Technologie und ermöglicht die Interaktion mit den meisten RFID-Tags weltweit. Ursprünglich von Jonathan Westhues entwickelt, ist das Gerät heute das Standardwerkzeug für RFID-Analysen unter Enthusiasten.

Der Proxmark3 ist ein leistungsstarkes und extrem vielseitiges Open-Source-Hard und Software-Tool für Analyse von RFID-(Radio Frenquency identification) und NFC-Systeme (Near Field Communication).

Gerätehintergrund

Der Proxmark wurde ursprünglich von Jonathan Westhues im Rahmen seiner Doktorarbeit entwickelt, um die Forschung an RFID-Systemen zu erleichtern. Zum Zeitpunkt seiner Entwicklung konnten Mikrocontroller die für die RFID-Protokolle erforderliche Signalverarbeitung mit hoher Bandbreite und präziser Zeitsteuerung nicht gewährleisten. Auch Software Defined Radio (SDR) war noch keine gängige Technologie und erforderte die Entwicklung einer komplett individuellen Lösung. Daher wurde eine geteilte Architektur entworfen: Ein Mikrocontroller stellt die übergeordnete Funktionalität bereit, während ein FPGA die rechenintensiven Aufgaben übernimmt.

Die erste Version der dritten Iteration des Proxmark (Proxmark3 / pm3) sah folgendermaßen aus:

Das Proxmark-Design wurde als Open Source veröffentlicht, und ein Unternehmen übernahm die Produktion des PM3 und verkaufte ihn für weit über 350 US-Dollar. Mit der zunehmenden Verbreitung von RFID-Tests und -Hacking begannen andere Unternehmen, das Open-Source-Design weiterzuentwickeln und verschiedene Versionen und Designs zu erstellen – wobei die grundlegende Hardwarearchitektur unverändert blieb. Gleichzeitig spaltete sich auch die Firmware des Geräts in zahlreiche verschiedene Versionen auf. Dennoch blieb die Hardwarearchitektur größtenteils gleich, sodass die verschiedenen Firmware-Versionen größtenteils auch austauschbar sind.

Software

Die Funktionsweise des pm3 ist folgende: Zunächst wählt man eine Firmware-Version mit den gewünschten Funktionen aus. Die ausgereifteste und benutzerfreundlichste Firmware-Version wurde von Chris „Iceman“ Herrmann weiterentwickelt und wird von ihm betreut. Er hat sein Open-Source-Repository für die pm3-Firmware kürzlich eingestellt und ist zum öffentlichen GitHub-Repository der RFID Research Group gewechselt.

Wir haben eine Version dieser Firmware ausgewählt, die wir auf unserem Proxmark3 Easy vorinstallieren. Sie werden gleich sehen, warum das wichtig ist. Zunächst aber ein Wort zu GitHub: Es gibt einige Plattformen im Internet, auf denen Open-Source-Projekte ihre Heimat finden. GitHub ist eine davon. Open-Source-Code wird in öffentlichen Repositories, kurz „Repo“, gespeichert und folgt einer bestimmten Struktur für die Verwaltung, Aktualisierung und den Download des Quellcodes. Sie müssen nicht genau wissen, wie das alles funktioniert, aber wir werden mit GitHub interagieren, um den Quellcode abzurufen und zu kompilieren.

Die Proxmark3-Firmware besteht aus zwei Teilen: dem Bootloader und der Anwendungs-Firmware. Die Anwendungs-Firmware wird im Entwicklerumfeld der Proxmark3-Firmware als „Full Image“ bezeichnet, enthält aber nicht den Bootloader. Sie stellt also keine vollständige Darstellung aller Firmware-Elemente dar, die auf die PM3-Hardware geflasht (geladen) werden müssen.

Bootloader- und USB-Kommunikation

Der Bootloader ist ein kleiner Codeabschnitt, der die Proxmark3-Hardware startet und anschließend die Anwendungs-Firmware („Full Image“) ausführt. In den meisten Fällen können Sie Bootloader und Full Image gleichzeitig aktualisieren, wenn Sie lediglich Ihre Firmware auf die nächste kleinere Revision desselben Forks aktualisieren. Wenn Sie jedoch von der Werksfirmware auf Iceman wechseln, ist es wichtig, zuerst nur den Bootloader und anschließend die Anwendungs-Firmware zu aktualisieren. Dies kann natürlich knifflig sein, weshalb wir uns die Mühe gemacht haben, für Sie die Forks auf Iceman umzustellen.

Der Bootloader bestimmt auch, wie Ihr Proxmark3 über USB kommuniziert. Der PM3 hat in Bezug auf die USB-Kommunikation einige Iterationen durchlaufen. Ursprünglich kommunizierte der PM3 über USB mit einem direkten Protokoll, das die Installation von Treibern erforderte, damit Ihr Computer mit der PM3-Hardware kommunizieren konnte. Das wurde schließlich geändert, sodass die USB-Hardware des pm3 nun wie ein virtueller COM-Port mit einer sehr gängigen HID-Treiberschnittstelle (Human Interface Device) fungiert, sodass keine speziellen Treiber erforderlich sind. Man schließt ihn einfach an, und die Hardware sollte sofort als COM-Port erkannt werden.

Hier BIld von gerätemangt com port. beschreibung/untertitel: Unter Windows können Sie im Geräte-Manager überprüfen, ob Ihr Proxmark3 als virtueller COM-Port erkannt wird.

Firmware + Client

Der PM3 ist ein Gerät ohne Bildschirm. Er verfügt lediglich über eine einzige Benutzerschnittstelle – den „Knopf“. Es gibt weder Bildschirme noch Navigationsbuttons oder Ähnliches – nur diesen einen Knopf und einige Status-LEDs. Ansonsten ist der PM3 hauptsächlich für den Betrieb in Verbindung mit einem Host-Gerät (Computer, Laptop, Smartphone) vorgesehen. Der PM3 führt die Firmware aus, während auf dem Host-Gerät die Proxmark-Client-Software läuft.

Die Client-Software ist gewissermaßen in den Quellcode der Proxmark-3-Firmware integriert. Sie ist eine separate Software, die auf dem Host-Gerät ausgeführt wird. Ihr Quellcode ist jedoch Teil des Firmware-Quellcodepakets und wird zusammen mit der Firmware kompiliert. Es ist entscheidend, dass die Client-Software auf Ihrem Host-Computer exakt die gleiche Version aufweist wie die Firmware, die darauf läuft. Andernfalls startet der Client möglicherweise nicht oder – schlimmer noch – er läuft zwar, liefert aber zufällige oder ungenaue Daten oder verhält sich unvorhersehbar, manchmal sogar ohne dass Sie das Problem bemerken. Es ist äußerst wichtig, dass Sie immer dieselbe Client-Version wie die Firmware auf Ihrem Gerät verwenden.

Normalerweise kompiliert man Firmware und Client-Software aus dem Quellcode. Das ist unter Linux üblich, unter Windows jedoch nicht. Dort verwendet man üblicherweise vorkompilierte Binärdateien wie .msi-Dateien oder .exe-Dateien. Aber Achtung: Wir machen hier etwas ganz anderes. Zwar bieten einige dubiose Seiten im Internet vorkompilierte Binärdateien für den Proxmark 3 an, aber hier gibt es keine Hoffnung – wir kompilieren unsere Binärdateien selbst.

Hardware Testen

Als Erstes prüfen wir, ob die Hardware auf Ihrem Rechner korrekt als virtueller COM-Port erkannt wird. Installieren Sie vor Beginn keine Treiber und nehmen Sie keine weiteren Einstellungen an Ihrem Rechner vor. Gehen Sie einfach wie folgt vor:

Geräte-Manager öffnen: klicken Sie auf die Windows-Taste und geben Sie „Gerät“ ein. Es sollte dann oben angezeigt werden.

Schließen Sie die PM3-Hardware an – achten Sie auf das Erscheinen neuer COM-Ports.

Erweitern Sie den Abschnitt „Anschlüsse (COM & LPT)“ – notieren Sie sich vorher alle bereits vorhandenen Anschlüsse.

Beachten Sie, dass es ein neues Gerät „“COM3″“ gibt. Dies bedeutet, dass die PM3-Hardware einwandfrei mit Windows kommuniziert.

Vorbereitung

Nachdem wir nun wissen, dass die pm3-Hardware funktioniert, müssen wir uns darauf konzentrieren, Windows so einzurichten, dass es eine geeignete Umgebung für das Kompilieren und Bereitstellen der Firmware sowie das Ausführen der Client-Software bietet. Dazu verwenden wir das Softwarepaket ProxSpace.

GitHub – Gator96100/ProxSpace: Proxmark III develoment environment for Windows · GitHub

Es gibt verschiedene Möglichkeiten, Softwareprojekte von GitHub zum Download bereitzustellen, und eine der besten ist die sogenannte „Release“-Version – ein übersichtliches und kompaktes Paket zum Herunterladen. Glücklicherweise nutzt ProxSpace die Release-Funktion von GitHub;

Releases · Gator96100/ProxSpace

Das einzige Problem, das ich habe, ist die etwas unübersichtliche Release-Struktur auf GitHub. Die Releases werden quasi wie Blogbeiträge auf einer langen Scroll-Seite veröffentlicht, und man muss sich erst durch die Beiträge wühlen, um die Download-Links zu finden. Normalerweise befinden sie sich am Ende des Beitrags in einem Abschnitt namens „Assets“. Zum Zeitpunkt dieses Beitrags war Version 3.11 das aktuellste Release für ProxSpace … wenn Sie bis zum Ende scrollen, sehen Sie neben dem Wort „Assets“ ein kleines, seitlich liegendes Pfeildreieck.

Wenn Sie auf „Assets“ klicken, wird es erweitert und zeigt die eigentlichen Inhalte an, die Sie interessieren;

ProxSpace v3.11
ProxSpace v3.11

…und was Sie eigentlich herunterladen möchten, ist die Datei ProxSpace.7z.

Beachten Sie das 7z-Dateiformat? Es handelt sich nicht um eine normale ZIP-Datei, sondern um eine 7-Zip-Datei. Sie müssen daher möglicherweise ein Programm zum Entpacken von 7-Zip-Dateien herunterladen und installieren. Weltweit wird WinRAR für dieses und andere ungewöhnliche Komprimierungsformate empfohlen.

ProxSpace ist ziemlich groß – der Download umfasst etwa 500 MB, und nach der vollständigen Installation wird die Datei über 1 GB groß sein. Das sollte für Sie aber kein Problem darstellen, da Sie ja Windows verwenden. Öffnen Sie nach dem Herunterladen die 7z-Datei.

Praxisnahe Videotutorials rund um Linux

USB Geräte an VM durchreichen. USB-Stick / Festplatten. Proxmox..


Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert