Proxmark3 Windows
Na de vorige post over de Proxmark3 moest het er toch van komen om hem aan te sluiten op Windows. De vorige keer hebben we bekeken wat de Proxmark3 is. In het kort is de Proxmark3 een RFID Zwitsers zakmes met zowel lees- als schrijffuncties op de LF en HF band. Na de installatie op Linux is het tijd om te zien hoe we dit klaarspelen op een Windows OS.
In deze tutorial gaan we niet meer kijken naar hoe de Proxmark3 in elkaar gezet word, hoe deze aangesloten word en wat de verschillende componenten op de Proxmark3 zijn. Als je dit wilt weten lees dan even deze post terug.
Laten we aan de slag gaan.
Driver installatie
We gaan de Proxmark3 aansluiten op een Windows 10 PC. Zodra we de kabel in de computer doen zal Windows het apparaat zien en herkennen. In de device manager ziet er dit als volgt uit:
Als je met een hele oude firmware versie werkt of nog met Windows 7 of lager dan zal Windows het apparaat niet herkennen en moet je zelf de driver installeren.
De driver is te vinden in de Proxmark repository op Github. Aangezien we deze later toch nodig hebben gaan we deze alvast downloaden. Download de master repository (600+ MB) hier.
Pak hem uit in een gewenste folder. Let op, spaties zijn niet toegestaan. Bijvoorbeeld:
C:\Proxmark3
Download nu de volgende repository: https://github.com/Proxmark/proxmark3.
Pak de bestanden uit en hernoem de folder “proxmark3-master” naar “pm3”. Kopieer de pm3 folder vervolgens naar de repository die je eerder uitgepakt hebt in C:\Proxmark3 en overschrijf de pm3 folder in die map met de nieuwe pm3 folder.
De juiste driver is nu te vinden in de pm3 driver folder:
C:\Proxmark3\pm3\driver\proxmark3.inf |
Als de juiste driver geïnstalleerd is, en er is een COM poort toegewezen aan je Proxmark3 dan zijn we klaar voor de volgende stap.
Proxmark3 updaten naar de nieuwe CDC/Serial interface
Sinds firmware versie r655 gebruikt de Proxmark3 de nieuwe CDC/Serial interface welke een stuk sneller is dan de oude libusb interface. Nieuwe Proxmark3 apparaten worden al jaren met deze bootrom geleverd en dus is deze stap meestal overbodig. Heb je echter nog een oude Proxmark3 dan ga je als volgt te werk.
Download de “pm3-bin-756 (cdc+lua).rar” van: https://code.google.com/archive/p/proxmark3/downloads en pak de content uit. Vervolgens moet het volgende batch bestand aanwezig zijn in de folder: \pm3-bin-756 (cdc+lua)\pm3-bin-756\win32 (client+GUI).
- FLASH – NEW Bootrom (uses old flasher exe with -b option).bat
Schakel de Proxmark3 uit (haal de kabel eruit). Start vervolgens het “FLASH – NEW Bootrom (uses old flasher exe with -b option)”. Het volgende scherm verschijnt:
Druk op een toets en de volgende instructie verschijnt:
Lees de instructie goed door. Wat je doet is het volgende. Hou de fuctiebutton ingedrukt. Laat deze niet los! Sluit de Proxmark3 aan en hou de functiebutton vast. Het duurt even alvorens Windows de Proxmark3 herkent. Wacht een paar seconde na het bekende “USB Connected Windows geluidje” of laat de device manager open staan en wacht tot de Proxmark3 verschijnt. Gemiddeld duurt dit 10 seconde. Hou de functiebutton nog steeds ingedrukt en druk op een toets van je toetsenbord. Het flashen begint. Als het flashen klaar is zie je de melding “Flashing Successful”. Druk op een button om door te gaan. Pas nu kun je de functiebutton op de Proxmark3 loslaten. Het loslaten van de button tijdens bovenstaande flashing proces kan je Proxmark3 onherstelbaar beschadigen.
Bootloader, OS Image en FPGA flashen
Nu we verbonden zijn over de CDC/Serial interface zien we dat de Proxmark3 een COM poort toegewezen heeft gekregen. In ons geval is dat COM poort 3. Nu moeten we deze COM poort gaan instellen bij een 3-tal batch bestanden. Deze zijn te vinden in de file die we in de vorige stap gedownload hadden. Voor iedereen die deze stap overgeslagen heeft, dat is het pm3-bin-756 (cdc+lua).rar” bestand welke hier te downloaden is:
Pak de bestanden uit en ga naar de \pm3-bin-756 (cdc+lua)\pm3-bin-756\win32 (client+GUI) folder. Hierin staan een 3-tal batchbestanden welke aangepast moeten worden.
- FLASH – Bootrom.bat
- FLASH – FPGA fullimage.bat
- FLASH – OS.bat
In deze 3 bestanden staat moeten we de COM poort aanpassen welke achter de “flasher.exe” vermeld staat. Wij maken hier dus COM3 van.
Nu kunnen we de batchbestanden gewoon uitvoeren (als administrator) om de OS Image, Bootrom en de FPGA (Field Programmable Gate Array) te flashen (zonder de functieknop in te drukken). Let op, flash bij voorkeur als laatste de bootloader. Als je deze als eerste flasht krijgt je Proxmark3 waarschijnlijk een andere COM poort toewijzing en moet je de functiebutton ingedrukt houden om de FPGA en OS Image te flashen. Zonder het indrukken van de functiebutton zal de Proxmark3 klikken (relay clicks) en geen COM poort toewijzing krijgen.
Proxmark3 Cliënt compileren
Om de Proxmark3 cliënt te compileren start je de “RunMe.bat” in de applicatiefolder (C:\Proxmark3). Je krijgt nu een klein terminal venster. We gaan de executable en firmware aanmaken door het volgende commando uit te voeren:
make clean && make all |
Dit proces duurt ongeveer 2 minuten.
Als dat gedaan is dan is je Proxmark3 cliënt gecompileerd en te vinden in: C:\Proxmark3\pm3\client. Je kunt nu de cliënt starten via het “runme.bat” in de Proxmark3 root folder. Vervolgens geef je het volgende commando om de cliënt te starten:
./client/proxmark3.exe com5 |
Je cliënt is nu up-and-running en je kunt communiceren met je Proxmark3 door b.v. het commando “hw version” en “hw tune” te gebruiken.
Proxmark3 GUI Cliënt
Als je graag met een GUI werkt dan is de installatie van de Proxmark3 op Windows ideaal. De Proxmark3 werkt prima op Linux en ook perfect in de terminal cliënt op Windows zoals we hierboven hebben gezien. Op Windows bestaat er echter ook een GUI cliënt van de Proxmark3. Deze gaan we nu installeren.
De nieuwste versie (die ook al redelijk oud is) is te downloaden via de link: http://www.proxmark.org/forum/viewtopic.php?id=1562. Gator96100 heeft de nieuwste precompiled Windows builds maar deze missen de Proxmark Tool. Dus downloaden we toch de 2.4 versie omdat de 2.5 versie offline gehaald is.
Als we de download uitpakken vinden we in de “win32 (client+GUI)” folder de “Proxmark Tool.exe”. Dit is de Proxmark3 GUI.
Als we de GUI starten worden eerst verschillende nodes geladen. Dit duurt een paar seconden. Vervolgens is het zaak dat je bovenin de juiste COM poort selecteerd. Als dat gedaan is zie je onderin het log venster de basis info van je Proxmark3 (hw version) en kun je bovenin commando’s typen zoals je dat ook op de command-line zou doen.
In het onderste logvenster kun je de output zien van je commando’s. Deze log kun je ook gemakkelijk kopiëren om op te slaan of om later te analyseren.
Alle mogelijke commando’s zijn ook te vinden in de linker lijst. Commando’s zijn mooi verdeeld in categorieën zoals HF en LF commando’s. Hardware commando’s en Data commando’s.
Als je een commando selecteert dan krijg je in het rechter venster de opties. Alle je het commando uitvoert laat het log venster onderin de output zien.
Laten we eens wat meer informatie achterhalen van een high frequency MiFare Classic achterhalen. Om te kijken wat voor kaart we hebben gebruiken we:
hf search |
Dit is dus een MiFare Classic 1k kaart met UID: 044b6a5ab54981. Deze kaarten bevatten 1024 bytes aan opslaggeheugen verdeeld over zestien sectoren (0-15) welke allen weer 4 blokken hebben.
Het lezen van een specifiek blok doen we als volgt:
hf mf rdbl 0 A FFFFFFFFFFFF |
In bovenstaande voorbeeld kan het blok gelezen worden. Als er blokken niet gelezen kunnen worden dan kun je het volgende commando proberen waarin alle bekende keys geprobeerd worden:
hf mf chk * ? |
Als er een bruikbare sleutel gevonden wordt dan kan een nested aanval deze gebruiken om de andere keys te achterhalen. Deze voer je als volgt uit:
hf mf nested 1 0 A ffffffffffff d |
De “d” parameter in bovenstaande aanval dumpt de keys naar het “dumpkeys” bestand in je directory (waar je de Proxmark Tool start).
Nu het dumpkeys.bin bestand over de juiste sleutels beschikt kunnen we de volledige inhoud van de kaart dumpen:
hf mf dump 1 |
De hele inhoud wordt nu naar het “dumpdata.bin” bestand geschreven. Deze kunnen we weer restoren op een andere kaart om er een exacte kopie van te maken:
hf mf restore 1 |
Als we de keys weten kunnen we met het volgende commando zelfs data naar een kaart schrijven:
hf mf wrbl 1 A FFFFFFFFFFFF 000102030405060708090A0B0C0D0E00 |
Als het niet lukt om de keys te achterhalen heb je eigenlijk maar 4 opties, gokken, opgeven, de communicatie tussen de kaart en de lezer afluisteren of gebruik maken van brute-force. De brute-force methode is wel mogelijk maar geen onderdeel van de standaard Proxmark3 firmware. Om een brute-force uit te voeren kunnen we ProxBrute gebruiken, maar dat doen we in de volgende Proxmark3 post.
Hopelijk vonden jullie deze Proxmark3 Windows post interessant. De Proxmark3 is dus prima te gebruiken in Windows. Tot de volgende…