proxmark3 이용하여 RFID 복제하기

* 해당 글을 절대 범죄에 악용하지 마세요.

* 회사 출입증 카드 복제시 반드시 보안팀과 먼저 상의하세요.

* RFID 복제로 발생하는 모든 문제와 책임은 당사자에게 있습니다.

  1) 준비물

먼저 준비물은 다음과 같습니다.

 

ⓐ 원본 RFID

 

저 같은 경우에는 아파트 공동현관 출입 키를 복제하기로 하였습니다.

많은 분들이 저와 비슷한 필요성을 느끼고 계실 것이라고 생각합니다.

공동현관 출입 키가 2개뿐이 없어 가족 모두가 사용할 수가 없는 데다가

키홀더 형식으로 되어있어 매번 들고다니는 것이 귀찮기 때문입니다.

 

ⓑ UID 변경가능한 공 RFID

 

쉽게말해 백지라고 생각하시면 됩니다. 데이터 영역을 사용자 마음대로

쓰거나 지울 수 있는 RFID입니다. 따라서 기존의 RFID를 복제하여 클론화하여

사용할 수도 있습니다.

 

다만 구매시 반드시 확인하실 부분이 두 가지 있습니다.

 

첫째, UID가 변경 가능해야 한다.

 

이는 가장 필수적인 부분입니다. UID는 해당 RFID가 가진 고유 값입니다.

클론 복제는 반드시 UID까지 동일하게 복제되어야 정상 작동합니다.

저 같은 경우 국내에서 판매중인 공 RFID 대부분은 UID 쓰기 기능이 막혀있어

알리익스프레스를 통해 스티커 형식의 공 RFID를 직구하였습니다.

(알리익스프레스 검색창에 uid changeable을 검색하시면 다양한 제품이 나옵니다.)

 

알리익스프레스에서 판매중인 UID 변경가능한 RFID 태그들

저는 위의 제품을 구매하였는데 굉장히 만족스럽습니다. 두께감이 정말 종잇장보다 얇은 수준이라

스마트폰 뒷면에 붙이고 다녀도 이질감이 전혀없습니다. 한 묶음은 꽤 비싸니 5, 10개 정도로

잘라서 파는 제품을 구매하시길 권장드립니다. (2천원 정도..)

 

둘째, 기존 RFID의 정보 확인

 

가장 기본적이고 필수적인 부분입니다. 원본 RFID의 정보를 확인해야 합니다.

확인하여야 할 것은 주파수 대역 및 규격 확인입니다.

 

주파수의 경우 일반적으로 아파트 공동현관, 도어락 등에서 사용되는 것이

13.56MHz, 125.00kHz 두 가지입니다.

 

복제할 RFID 태그의 주파수대역을 확인 하는 방법 중 가장 간단한 것은

공동현관 로비폰, 도어락 제조사의 홈페이지에서 확인하는 것입니다.

 

저는 코맥스 홈페이지에서 로비폰 제원을 확인하여 13.56Mhz를

사용하고 있다는 것을 확인하였습니다.

코맥스 홈페이지에서 제공하는 로비폰 제원

 

규격의 경우 스마트폰을 통해 간단히 확인할 수 있습니다.

플레이스토어에서 NFC 태그정보를 확인하는 어플리케이션을 다운로드 받은 후

스마트폰 뒷면에 원본 RFID를 태깅하면 아래와 같이 정보가 나타납니다.

* MIFARE Classic Tool, NFC Taginfo, NFC tools, NFC writer 등 다양한 어플이 있습니다.

이를 통해 원본 RFID가 Mifare Classic 1K임을 확인할 수 있었습니다.

* proxmark3는 Mifare Classic 1K의 읽기, 쓰기를 공식적으로 지원합니다.

* 한국에서는 Mifare Classic이 매우 대중적으로 사용되고 있습니다.

 

  2) 복제과정

위의 과정을 통해 원본 RFID, UID 쓰기가 가능한 공 RFID를 확보하셨다면 아래의 과정을 통해

RFID를 복제하실 수 있습니다.

 

① 원본 RFID 카드를 proxmark3에 올려둡니다.

13.56MHz의 경우 (1)에 올려두시면 되며 125.00kHz의 경우 (2)에 올려두시면 됩니다.

 

준비물\win64 폴더 내의 Go.bat 파일을 실행합니다.

③ 아래의 명령어를 입력하여 RFID가 인식되고 있는지 확인합니다.

hf search

* 125.00kHz의 경우 모든 명령어에서 hf 대신 lf를 사용해주시면 됩니다. (ex. lf search)

* 명령어 오류 발생시 하단의 Q&A를 참고해주세요.

정상적으로 인식되었으면 위와 같이 도스창에 RFID 정보가 출력됩니다.

 

④ 아래의 명령어를 입력하여 필요한 키를 찾아냅니다.

hf mf chk *1 ? t

⑤ 아래의 명령어를 입력하여 모든 키를 찾아내고 덤프합니다.

hf mf nested 1 0 A ffffffffffff d

이 과정이 끝나면 위와 같이 준비물 폴더 내에 hf-mf-uid값-key.bin 덤프파일이 생성됩니다.

 

⑥ 아래의 명령어를 입력하여 RFID의 내용을 덤프합니다.

hf mf dump

이 과정이 끝나면 위와 같이 준비물 폴더 내에 hf-mf-uid값-dump.bin, hf-mf-uid값-dump.eml

hf-mf-uid값-dump.json 3개의 파일이 생성되고 모든 준비가 끝나게 됩니다.

 

⑦ 복제준비가 완료되었습니다. 원본 RFID를 제거 후 공 RFID를 proxmark3에 올려주시면 됩니다.

 

⑧ 아래의 명령어를 입력하여 공 RFID의 UID값을 원본 RFID UID값으로 바꿔줍니다.

hf mf csetuid UID값(8자리)

UID값이 바뀐 모습

⑨ 아래의 명령어를 입력하여 원본 RFID 덤프데이터를 공 RFID에 복구시켜줍니다.

hf mf restore 1

덤프데이터가 공RFID에 복구된 모습

여기까지 완료하셨다면 공 RFID는 이제 완벽히 원본 RFID의 클론이 된 상태입니다.

스마트폰 어플리케이션을 통해 확인해보시거나 직접 공동현관, 도어락 등에 태깅하여

작동이 되는지 확인해보시면 됩니다.

 

* 자주 발생하는 오류 Q&A

Q. 명령어를 입력했는데 오류가 뜨거나 제대로 작동되지 않아요.

 

A. 생각보다 자주 발생하는 일입니다. 저 역시 명령어가 제대로 먹히지 않아 처음에 고생을 했었는데요.

이 경우 대부분은 RFID 태깅 위치의 문제가 대부분입니다.

(proxmark3가 생각보다 예민한 기기인지 RFID를 올려두는 위치에 영향을 많이 받습니다.)

 

특히 HF, LF reader 위에 바로 태깅했을 시 제대로 인식이 안되거나 명령어가 작동하지 않는 경우가 생깁니다.

해외포럼에서 찾아보니 이 경우 proxmark3와 RFID를 약 2~3cm 정도 띄워서 태깅하라고 하는 것 같습니다.

 

물론 그렇게해도 생각보다 안되는 경우가 많은데 이 때 저 같은 경우엔 그냥 명령어를 계속 입력합니다.

오류가 발생해도 연속으로 입력해서 한번 제대로 인식되면 바로 성공할 수 있습니다.

여러분들도 한 번 오류가 발생했다고 해서 고민하지마시고 태깅위치를 조금씩 바꿔보시거나,

혹은 RFID와 proxmark3 사이에 거리를 두시거나, 아니면 성공할 때까지 명령어를 입력해보시는 걸 추천드립니다.

 

  4) 마치면서...

단순히 아파트 공동현관 키를 덜렁덜렁 들고다니기 귀찮아서 시작한 일이었지만

제품을 구입하고, 사용법을 찾아보고, 막히는걸 풀고 하는데 생각보다 오랜 시간이 걸렸습니다.

특히나 가장 고생했던 부분은 명령어를 입력하는데 오류가 발생하는 부분이었습니다.

펌웨어도 바꿔보고 여러 방법 써보면서 몸으로 깨닫게 되었습니다.

 

비록 미숙하게나마 사용법을 알게되었고 극히 제한적인 기능만을 사용했지만

알면알수록 재밌고 유용한 기기인 것 같습니다.

다른분들께도 많은 도움이 되었으면 좋겠습니다.