Before using your Proxmark3 RDV4, you will have to set the device up in your Linux system to install the latest firmware, configure the device settings, and interact with some of the more advanced capabilities of the device. This tutorial will walk you through setting up the Proxmark3 in a Kali Linux environment, although this workflow should work for all Debian-based distributions as well.
Update System
As in most cases, we should update the system to ensure compatibility with the most recent version of the Proxmark3 repository:
sudo apt-get update
Next, we are going to install all of the dependencies for installing and running the Proxmark3 client on your system:
sudo apt-get install git ca-certificates build-essential pkg-config libreadline-dev gcc-arm-none-eabi libnewlib-dev qtbase5-dev
Clone Repository
Now that we have our system updated and ready for installation, we are going to clone the latest repository from RRG on GitHub:
git clone https://github.com/RfidResearchGroup/proxmark3.git
This may take a few minutes – but while this is running, please make sure to read the next section very carefully, as proceeding directly to connecting and flashing the Proxmark3 from here could brick your device.
ModemManager
ModemManager comes pre-installed in Kali Linux along with many of the common distributions and this application will interfere with the firmware flashing process. ModemManager is a tool used to manage modem devices, and when the Proxmark3 is connected via USB, the program will attempt to send AT commands through the port in an attempt to identify it as a modem. This process will brick your device if it occurs while you are flashing the bootloader image. It is recommended that ModemManager is removed or disbabled on your system before proceeding with the Proxmark3 setup process.
To remove ModemManager from your system, execute the following command:
sudo apt remove modemmanager
To disable ModemManager:
sudo systemctl stop ModemManager sudo systemctl disable ModemManager
If you prefer to keep ModemManager functional while using the Proxmark3, you will need to implement specific filtering rules. Documentation on this process can be found on GitHub here.
Connecting to the Proxmark3
Once ModemManager is removed or disabled, plug the Proxmark3 into your system via the supplied USB cable. Check that the device is properly connected by executing the following command:
sudo dmesg | grep -i usb
It should show up as a CDC device:
usb 2-1.2: Product: PM3 usb 2-1.2: Manufacturer: proxmark.org cdc_acm 2-1.2:1.0: ttyACM0: USB ACM device
And a new device with the path “/dev/ttyACM_” should have appeared – in this case the device was mounted as ‘ttyAMC0’ since we had no other devices of this type configured.
Compiling the Firmware
Now that the Proxmark3 is connected to and recognized by your system, we are going to compile and install the firmware. First, we need to retrieve the latest commits by running the commands:
cd proxmark3 git pull
Once retrieved, we prepare and compile the files for installation by using the following command in the proxmark3 directory:
make clean && make all
Once this process is complete, you can now install the required files in your system. As usual:
sudo make install
You are now ready to flash the firmware to your Proxmark3 RDV4. Don’t forget about ModemManager! If you brick the device while flashing the bootloader, you will need to be familiar with debugging tools like the JTAGulator – also available from Hacker Warehouse.
Flashing the Proxmark3 RDV4
With the device connected via USB, run the following command to flash the bootloader and then the fullimage files to your Proxmark3
proxmark3 /dev/ttyACM0 --flash --unlock-bootloader --image bootrom.elf proxmark3 /dev/ttyACM0 --flash --image fullimage.elf
Running the Client
With the firmware properly flashed to your device, you can now access and use the Proxmark3 client by running one of the following commands:
pm3 proxmark3 /dev/ttyACM0 client/proxmark3 /dev/ttyACM0
Validating Client Functionality
Before you start trying your device out in the field, you are going to want to validate that your device is functional as well as familiarize yourself with the client interface. With the client application open, you can run commands by using the following prompt:
pm3 -->
To ensure that the device is properly configured, run the following commands individually and inspect the output for any problems recognizing device components, hardware settings, and firmware:
pm3 --> hw status pm3 --> hw version pm3 --> hw tune
Use the help function for a basic list of commands and for further information on each command, simply input help after specifying a command.
When you are done with your experimentation, you can exit the client application by executing the following command, or by simply typing ‘CTRL-D’ on the keyboard:
pm3 --> quit
Have fun with your research in RFID technology using the Proxmark3 RDV4 and stay tuned for more articles and tutorials from HackerWarehouse.TV to help you master the use of this tool.
Although the Proxmark3 RDV4 is by far the most feature-rich and field-capable device in RFID research and security testing, you may want to check out some other great RFID devices such as the Chameleon Mini RevG and the Keysy, offering some of the same functionality as the RDV4.
Project Resources
Setting up the Proxmark3 RDV4 in Kali Linux Installing Proxmark3 Software 1. Update Kali sudo apt-get update 2. Retrieve dependencies sudo apt-get install git ca-certificates build-essential pkg-config libreadline-dev gcc-arm-none-eabi libnewlib-dev qtbase5-dev Removing/Disabling ModemManager 1. Remove ModemManager from your system sudo apt remove modemmanager 2. OR -Manually Disable ModemManager sudo systemctl stop ModemManager sudo systemctl disable ModemManager Connecting the Proxmark3 RDV4 1. Plug the Proxmark3 into your system using the supplied USB cable 2. Check connectivity to the device sudo dmesg | grep -i usb 3. Ensure the device shows up as follows usb 2-1.2: Product: PM3 usb 2-1.2: Manufacturer: proxmark.org cdc_acm 2-1.2:1.0: ttyACM0: USB ACM device *note that the device label will be serialized and may appear with a different numeral following ‘ttyAMC’ if you have more devices of this type installed on your machine Compiling the Firmware 1. Retrieve latest commits cd proxmark3 git pull 2. Prepare and compile files make clean && make all 3. Install the files to your system sudo make install Flashing Firmware to the Proxmark3 RDV4 1. Flash the bootloader image to the device proxmark3 /dev/ttyACM0 --flash --unlock-bootloader --image bootrom.elf 2. Flash the full image to the device proxmark3 /dev/ttyACM0 --flash --image fullimage.elf Connecting to the Proxmark3 Client 1. Access the client using one of the three commands pm3 proxmark3 /dev/ttyACM0 client/proxmark3 /dev/ttyACM0 2. Validate client functionality using pm3 command prompt pm3 --> hw status