Proxmark3 Aansluiten en Installeren – Deel 2
In deel 1 van “Proxmark3 Aansluiten en Installeren” hebben we vooral gekeken naar de hardware. Hoe zit de Proxmark3 in elkaar, over welke componenten beschikt het board, diverse functies van de Proxmark3 en wat kunnen we sowieso met het apparaat. In deze post gaan we verder waar we gebleven waren. We gaan de Proxmark3 in elkaar zetten, upgraden en ermee werken. We trappen dit artikel af met het in elkaar zetten van de Proxmark3 casing.
Als je de Proxmark3 ontvangt is deze compleet maar nog niet gemonteerd. Laten we eens beginnen met het bevestigen van de casing zodat schade aan het board voorkomen wordt evenals mogelijke interferentie. De assemby handleiding beschrijft een duidelijke uitleg over het monteren van de casing. De casing is gemaakt is van RF4 (zoals de het Proxmark3 board). Hiervoor gebruik je de 2 casing plaatjes en de koperen schroefjes en busjes:
Vervolgens bevestig je de bovenste casing op de Proxmark3.
Daarna plaats je de batterij op het board (als je deze hebt) en bevestig je de onderste casing aan de achterkant.
Daarna is het de beurt aan de antenne’s. Deze kunnen op verschillende manieren verbonden worden. De volgende opzet heeft mijn persoonlijke voorkeur omdat de Proxmark3 hier zijn compactheid mee behoud.
Maar de volgende manieren zijn ook mogelijk:
Als de casing volledig gemonteerd is dan kan deze via USB verbonden worden. De Proxmark3 wordt zo voorzien van stroom en je kunt via de cliënt (aangesloten computer) communiceren met de Proxmark3.
Proxmark3 Drivers & Software
Om te kunnen communiceren met de Proxmark3 hebben we verschillende zaken nodig, waaronder de juiste drivers en software.
In deze tutorial werk ik op een Linux based machine. Op Linux wordt de communicatie tussen de computer en de Proxmark3 automatisch tot stand gebracht. De Serial to USB CDC (HID) driver hoeft hier niet separaat geïnstalleerd te worden. Bij Windows is dit wel nodig. Alle drivers e.d. zijn hier te downloaden. De installatie handleiding is hier te downloaden en bevat een goede uitleg voor Windows cliënts. Gaucho heeft een speciale softwaretool geschreven voor de Proxmark3 die zeker de moeite waard is om te bekijken. Dit is een Windows tool. Hier komen we in een latere post nog op terug. Alle Windows software is te downloaden via het Proxmark3 forum.
Op dit moment gebruiken we in deze post alleen de Linux interface.
Om de Proxmark3 in Linux (Kali) te laten werken moeten we eerst een aantal essentiële packages downloaden. Dit doen we als volgt:
sudo apt-get install git build-essential libreadline5 libreadline-dev gcc-arm-none-eabi libusb-0.1-4 libusb-dev libqt4-dev ncurses-dev perl pkg-config |
Nu wordt het tijd om de Proxmark3 repository van Github te downloaden:
git clone https://github.com/Proxmark/proxmark3.git |
Open de repository en compile de bootrom:
cd proxmark3 make clean && make all |
Proxmark3 CDC Bootloader Upgraden
Het eerste wat we gaan doen is het updaten van de CDC Bootloader.
Verbind nu de Proxmark met de computer en draai onderstaande commando om erachter te komen als wat voor serieel device de Proxmark3 wordt weergegeven. Dit lijkt op “ttyACMX”.
dmesg | grep -i usb |
Unplug de Proxmark3 en voer het volgende commando uit in de Proxmark3 folder.
cd client make |
Nu gaan we de Proxmark3 weer aansluiten op een speciale manier:
- Voer het volgende commando in maar druk nog niet op ENTER! Hou er rekening mee om de juiste apparaat naam in te voeren (die we in de vorige stap opgevraagd hebben)
./flasher /dev/ttyACM0 -b ../bootrom/obj/bootrom.elf
- Hoe de functiebutton ingedrukt
- Verbind de Proxmark3 met de computer terwijl je nog steeds de button ingedrukt blijft houden
- Druk nu op ENTER om het commando te activeren (button nog steeds ingedrukt)
- Laat de button los
Proxmark3 Firmware Upgraden
De tweede stap die we moeten ondernemen is het updaten naar de meest recente firmware. Dit werkt als volgt. Zorg dat je weer in de Proxmark (GitHub) directory zit en draai het volgende commando (let op dat je de juiste apparaat naam gebruikt. In dit voorbeeld ttyACM0):
cd client ./flasher /dev/ttyACM0 ../armsrc/obj/fullimage.elf cd .. |
De speciale flasher zorgt ervoor dat de Proxmark3 gereboot wordt in de firmware flashing mode. Als dit gebeurt is dan zal de flasher automatisch de firmware gaan flashen. Als de flasher klaar is zal de Proxmark3 weer rebooten. Dit kan 2 tot 3 minuten duren. Koppel het apparaat gedurende dit proces niet los en onderbreek het commando niet!
Draai na het rebooten onderstaande commando nogmaals om te kijken als welk serieel apparaat de Proxmark3 nu geregistreerd wordt:
dmesg | grep -i usb |
Proxmark3 Cliënt
Nu we helemaal klaar zijn het het upgraden van de Proxmark3 wordt het tijd om de cliënt te starten. Het starten van de cliënt doen we door in de Proxmark3 repository naar de cliënt directory te gaan en het volgende commando uit te voeren:
cd client ./proxmark3 /dev/ttyACM0 |
Als alles goed gegaan is krijg je meer informatie over de firmware en het geheugenverbruik alsmede de Proxmark3 Prompt:
proxmark3> |
Om de functionaliteit te controleren kun je de volgende commando’s draaien. Je ontvangt daarmee een aantal diagnostische gegevens van de Proxmark3:
hw status hw version hw tune |
Om de Proxmark3 cliënt weer af te sluiten gebruik je:
quit
OF
exit |
Werken met de Proxmark3
Nu we eindelijk een werkende Proxmark3 hebben kunnen we aan de slag met het testen en analyseren van RFID tags. Hiervoor moeten we op de hoogte zijn van de juiste commando’s. Alle mogelijke commando’s zijn hier te vinden.
Wij pikken de volgende commando’s eruit:
help |
Het help commando geeft je meer inzicht in de details van een specifiek commando.
De volgende voorvoegsels worden altijd gebruikt (er zijn er meer voor andere specifieke tags:
High Frequency tags: hf Mifare tags: hf mf Mifare Ultralight tags: hf mfu Low Frequency: lf HID tags: lf hid Hitag tags: lf hitag |
Dan zijn er per type tag een aantal commando’s beschikbaar. Verschillende type tags hebben ook verschillende soorten commando’s. De volgende commando’s zijn op bijna alle tags toepasbaar:
Zoeken naar bekende tags (scannen): search Laat protocol data in de trace buffer zien: list Optimaliseer de antenne continue: tune Debug mode inschakelen: dbg Tag naar een binary bestand dumpen: dump Communicatie tussen de reader en de tag afluisteren: sniff Een tag simuleren: sim Een blok lezen: rdbl Een blok schrijven: wrbl Bepaalde block keys testen: chk |
Dus om te zoeken naar low frequency tags met de LF antenne gebruik je:
lf search |
De communicatie afluisteren tussen een Mifare reader en een Mifare tag gaat als volgt:
hf mf sniff |
Het dumpen van een Mifare Ultralight tag naar een binair databestand doen we zo:
hf mfu dump |
Dan zijn er nog een aantal data commando’s welke de data inzichtelijk maken of de data buffer kunnen manipuleren. Alle data commando’s beginnen met:
data |
Met het datacommando kunnen we bijvoorbeeld raw samples weergeven als een bitstream:
data bitsamples |
Of we kunnen de buffer (en graph window) leegmaken:
data buffclear |
We kunnen een grid plaatsen over het graph window (of deze uitschakelen met een 0):
data grid |
We kunnen de bigbuffer dumpen als HEX waardes:
data hexsamples |
En uiteraard kunnen we de data van het graph windows opslaan:
data save |
Ook zijn er nog een aantal hardware commando’s die allen beginnen met:
hw |
Deze commando’s hebben invloed op de Proxmark3 zelf. Zo kunnen we bijvoorbeeld de Proxmark3 resetten:
hw reset |
Een tag emuleren
Tenslotte gaan we met bovenstaande kennis een (high frequency) Mifare tag emuleren met de Proxmark3. Dit gaat als volgt in zijn werk:
Allereerst laten we de Proxmark3 zoeken naar tags:
hf mf search |
Als je de sleutels al weet van de tag is onderstaande overbodig. Dit commando is om de sleutels van de tag op te zoeken:
hf mf mifare |
Laten we de sleutel specificeren die we in de vorige stap gevonden hebben:
hf mf nested 1 0 A FFFFFFFFFFFF t |
In het emulator geheugen zien we nu dat de sleutel op elke blok gespecificeerd is:
hf mf ekeyprn |
We kunnen nu de tag (leesbaar) inlezen in de emulator. Hou de tag boven de lezer en voer het volgende commando uit om de informatie te dumpen:
hf mf ecfill A 1 |
Nu gaan we de opgeslagen informatie v.a. de Proxmark3 naar een *.eml bestand dumpen.
hf mf esave |
Om nu de Proxmark3 de tag met opgeslagen data te emuleren voeren we het “sim” commando uit:
hf mf sim |
Wanneer je nu de antenne in de buurt van een reader plaatst zal deze de tag succesvol lezen.
Conclusie
Dit is het einde van Proxmark3 Setup deel 2. Ik hoop dat jullie de informatie nuttig vonden en dat deze posts wat verduidelijking hebben gebracht over wat de Proxmark3 is, wat je ermee kan en hoe je begint. Laat s.v.p. een like achter en deel deze post als jullie iets aan deze post hebben gehad. Ik zou het ontzettend leuk vinden en de kans wordt dan alleen maar groter op nog meer proxmark3 posts in de toekomst!