My previous post showed you the steps I took to get RFID cloning capabilities. The biggest problem I face with that implementation is distance. In order to read and RFID card you need to be practically touching it with the proxmark3′s antenna. This can be an issue, especially when you are trying to go unnoticed.
I got the idea of getting more distance from the site proxclone.com and this article. The problem I have is that I am not an Electronics Engineer and I can barely write code. I could probably assemble the cloner he demonstrates, but I would have no idea at all how to write the code for it. So I thought, maybe I can use an Arduino instead, thus this project started. I currently do not have the ability to clone cards using the Arduino so I gather the cards numbers and write them to a MicroSD card, then I can use my proxmark3 to create cloned cards (See previous article). The other issue I have is that the MaxiProx readers aren’t cheap and I am not currently willing to fork over the money to get one on EBay. (Update: With the ProxPro II at 5V I get a distance of about 5 inches, a bit better than the distance of the Proxmark3)
So without further ado, I will show you how to make this:
1 HID ProxPro II 5455 Reader
1 Arduino Pro Micro 5V
1 MicroSD Card Breakout Board for Arduino
1 MicroSD card
1 DPDT Switch, small enough to fit in mounting holes on HID reader
1 9V Battery
1 MicroUSB connector
1 9V Battery connector
1 16×2 Character Serial Enabled LCD screen 5V
The wiring is pretty simple. The HID reader has several wires that are coming out of it, the only ones we need are the GREEN, WHITE, RED, and BLACK wires. Here is the wiring for the different devices:
HID Green > Pin 2 Pro Micro
HID White > Pin 3 Pro Micro
HID Red > VCC Pro Micro
HID Black > GND Pro Micro
SD CS > Pin 10 Pro Micro
SD DI > Pin 16 Pro Micro
SD DO > Pin 17 Pro Micro
SD SCK > Pin 15 Pro Micro
LCD RX > Pin 4 Pro Micro
LCD 5V > VCC Pro Micro
LCD GND > GND Pro Micro
I mounted my Arduino to a PCB from RadioShack so that I could solder the wires in with the Arduino. This seemed necessary because of the multiple connections to Ground and 5V. I also drilled out one of the mounting holes in the HID reader and fed the cable into the inside of the reader as you can see in the picture. If the cable was stripped before then they can probably be laid flatter and you wouldn’t have to drill out the hole. Also, I am only using the previously mentioned wires, so I cut all the other wires off because I didn’t need them. The ProxPro II epoxy the circuit board and everything in the reader in order to make it less accessible and cheaper, but this gives us a perfect amount of space to package everything inside. The 9V battery is a little bulky so I am unable to complete close the cover, but its unnecessary for my use because the whole thing will be concealed in something inconspicious anyway.
Once you have everything wired up you can download my sketch here. I am not a professional programmer so my code is messy and could probably use some streamlining. I have several comments that tell you what the different sections are doing. I have also commented out the code for the LCD which I am currently not using, and some code for debugging. Feel free to modify it as you please and if you do make it better please send me a copy to admin [ at ] colligomentis [ dot ] com.
I would like to thank carl55 on proxmark.org for a TON of help understanding the HID card format, without his help I wouldn’t have been able to properly output the card ID values. I would also like to thank the guys who did this article which providing me with the starting point for my code.
My next project with this will be a “Honeypot” that I can mount to a wall and have people come up and scan their badges and input their PIN’s. If it happens I will be sure to post the results here. Until next time, have fun.