Some basic reminders on how to use the Proxmark 3.

Install

Proxmark 3 rdv4 repo
Previous proxmarks repo

0 - WSL2 special

If you are using WSL2 you need some extra steps to access USB devices. The Microsoft doc

Windows side

On the Windows store install winget (Programme d’installation d’application)
On (root) Powershell, update then restart your linux install, then run the following command to install “USBIPD-WIN”

wsl --update
wsl --shutdown
winget install --interactive --exact dorssel.usbipd-win

Once it’s done, list the usb devices

usbipd wsl list

And attach it to your linux instance

 usbipd wsl attach --busid previsously_found_usb_id

1 - Discard modemmanager

The issue is discussed here

sudo apt remove modemmanager
yay -R modemmanager

2 - Install and compile

The wiki
Clone :

git clone https://github.com/RfidResearchGroup/proxmark3.git
cd proxmark3
  • Install dependancies :

Kali

apt install git build-essential libreadline8 libreadline-dev gcc-arm-none-eabi libbz2-dev libssl-dev libusb-0.1-4 libusb-dev ncurses-dev perl pkg-config libpcsclite-dev pcscd

Arch

yay -S gcc-arm-none-eabi
  • Compile :
    make clean && make all
    
  • Flash :
    ./pm3-flash-all
    
  • Udev :

    Usage

    Recon

Identifying High-Frequency (hf) and Low-Frequency (lf) tags

proxmark3>hf search
proxmark3>lf search

Keys

Mifare key check

proxmark3>hf mf chk --1k -* --dump -f ext_keys.dic

hf : high-frequency
mf : mifare
chk : check keys
–1 : mifare 1k
-* : A and B keys
–dump : dump keys to a file (dumpkeys.bin)
-f ext_keys.dic : dictionary

ps : keep in mind that the dumpkeys.bin and dumpdata.bin will be saved in the directory from which you ran the command. If you are in your home directory and run [path to the git clone]/proxmark3/client/proxmark3, the files will be saved in your home directory

Nested

If all keys are not found using the previous dictionary attack, we should use the nested attack :

proxmark3>hf mf nested 1 0 A a0a1a2a3a4a5

hf : high-frequency
mf : mifare
nested : attack type
1 : mifare 1k
0 : block number of known key
A : key type of known key
a0a1a2a3a4a5 : known key

Data

Complete dump of the card to dumpadata.bin, using the dumpkeys.bin file

proxmark3>hf mf dump

In the same directory of the proxmark client, you ll find the “pm3_mfd2eml.py” script, to convert the .bin into .eml Note that this step is no longer necessary with the latest updates as the hf mf dump command dump in both .eml and .bin format and that hf mf cload accept both format as well

python pm3_mfd2eml.py dumpdata.bin random_name.eml

Now all you have to do is clone it on a magic card

proxmark3>hf mf cload -f random_name