Proxmark3 教程:从刷固件到 dump 门禁卡,15 秒恢复 MIFARE 密钥
做 RFID 安全研究,第一步往往是搞清楚一件事:你手里那张门禁卡、工卡、公交卡,到底是什么协议,芯片里存了什么,能不能被复制。
手机的 NFC 帮不了太多忙——它只能读 13.56MHz 的高频卡,125kHz 的低频门禁卡完全不支持;而且手机的安全沙箱不让你拿到完整的协议交互数据,更别想跑字典攻击。Flipper Zero 能读能写,但它是一把"瑞士军刀",RFID 只是众多功能里的一个,想做深层协议分析、抓原始波形、跑自定义攻击脚本,它的 Cortex-M4 就吃力了。
这时候你会搜到一个名字:Proxmark3。
RfidResearchGroup/proxmark3(即 Iceman 分支)是 RFID 领域的专用分析仪。5.9k Star、1.4k Fork、22,248 次提交,硬件原理图、FPGA bitstream、ARM 固件、PC 端客户端全部开源(GPL-3.0)。它和上面两个工具的区别,一句话讲清楚:手机 NFC 是"读卡器",Flipper Zero 是"探索工具",Proxmark3 是"取证工具"。
是什么:软硬件三层架构
先把它拆开看,后面所有能力都建立在这套架构上:

- PC 端:
pm3命令行客户端,负责交互、彩色输出、TAB 补全、脚本执行 - ARM Cortex-M4(NXP LPC4320):跑协议栈、解析命令、管理状态机、和 PC 通信
- FPGA(Xilinx Spartan-6):负责高速信号的采集与生成。这是它和 Flipper Zero 拉开差距的关键——RFID 的调制波形是纳秒级的,靠 CPU 软件采样来不及,必须 FPGA 硬采
- RF 前端:天线,覆盖 125kHz/134kHz 低频 + 13.56MHz 高频两套频段
把功能边界摊开对比:
| 功能 | 手机 NFC | Flipper Zero | Proxmark3 |
|---|---|---|---|
| 125kHz 低频卡 | 不支持 | 支持 | 支持 |
| 13.56MHz 高频卡 | 支持 | 支持 | 支持 |
| 原始信号抓取/波形分析 | 不支持 | 不支持 | 支持 |
| 已知密钥字典攻击 | 不支持 | 有限 | 完整硬加密密钥恢复 |
| 读取银行卡 EMV 数据 | 部分 | 不支持 | 支持 |
| HF 嗅探(监听读卡器与卡片通信) | 不支持 | 不支持 | 支持 |
| 自定义 LUA/Python 脚本 | 不支持 | 有限 | 全面支持 |
| 独立脱机模式 | 不支持 | 支持 | 支持 |
环境准备:编译并刷入固件
克隆 Iceman 分支,直接 make 编译。依赖主要是 libusb、readline 这些常规库,Linux 下装好 libreadline-dev libusb-dev 就能编:
git clone https://github.com/RfidResearchGroup/proxmark3.git
cd proxmark3
make -j$(nproc)
# 插上 Proxmark3,刷入固件(bootloader + 全功能固件 + FPGA bitstream)
./pm3-flash-all
# 启动客户端
./pm3
pm3 启动后是一个带颜色和自动补全的命令行界面。看到 [usb] pm3 --> 提示符就说明固件刷好、设备识别正常、可以下命令了。
上手第一课:读一张低频门禁卡
把一张低频门禁卡放在天线上,两行命令:
[usb] pm3 --> lf search
[=] Chipset... T55xx
[=] Reading page 0 ................. OK
[=] Reading page 1 ................. OK
[+] EM 4x05 ID found.
[=] TAG ID: 0F036A1B2C
lf search 会自动识别低频卡类型并读取数据。T55xx 是可重写的模拟卡,EM4x05 是只读 ID 卡。注意那个 TAG ID 是明文——拿这个 ID 就能复刻一张一模一样的门禁卡。
这个场景很小,但它直指 RFID 安全的核心问题:大部分低频门禁卡没有加密设计,ID 写在芯片里,读出来就能复制。
高频卡:读信息 + 恢复密钥
高频卡复杂一些。拿一张 MIFARE Classic 1K 公交卡:
[usb] pm3 --> hf 14a info
[+] UID: AA BB CC DD
[+] ATQA: 00 04
[+] SAK: 08 [2]
[+] TYPE: NXP MIFARE CLASSIC 1k
[+] Answers to magic commands: NO
MIFARE Classic 用 Crypto-1 加密算法,密钥空间只有 48 位,而且十几年前就被逆向出了完整算法。Proxmark3 内置了硬加密密钥恢复(hardnested,利用已知密钥的部分信息做嵌套认证攻击):
[usb] pm3 --> hf mf hardnested
[+] target sector: 0
[+] target block: 0 key A
[+] file size: 600
[+] time: 15 seconds
[+] Key found: A0A1A2A3A4A5
一个扇区的密钥,15 秒。拿到密钥就能 hf mf dump 整张卡,再把数据写到一张可写的 Magic 卡上——复刻一张完全一样的公交卡。到这里你能看出来,Proxmark3 做的不是"读卡",而是"理解这张卡的全部协议层"。
四个实战场景
门禁系统渗透测试。 125kHz 低频卡(EM4100、HID Prox、Indala)没有安全设计,零门槛读写。13.56MHz 的 MIFARE Classic 有 Crypto-1 加密,但 Proxmark3 内置了 darkside、hardnested、staticnested 三种攻击方式,配合自带密钥字典(几百个已知默认密钥),用默认密钥的老旧系统几秒内出结果。
银行卡 EMV 数据读取。 把支持 PayPass/PayWave 的银行卡贴上去:
[usb] pm3 --> emv scan -a
[+] Card number: 5412 34** **** 6789
[+] Application: VISA CREDIT
[+] Expiration: 12/28
[+] Recent transactions: (显示最近几笔交易金额和日期)
读出来的是卡上存储的公开数据(卡号、有效期、最近交易记录),不是 CVV,不是完整 PAN,不能用于支付。这里是走 EMV 标准协议读取卡上自愿暴露的信息,拿来检查自己的卡有没有把不该暴露的数据放到非接触接口,是个好习惯。
HF 嗅探。 hf 14a sniff 进入嗅探模式,把 Proxmark3 放在工位读卡器和工卡之间,能把读卡器与卡片之间的全部 ISO 14443-A 协议帧抓下来——每一帧指令、每一条数据、每一次认证,全部明文记录。这是门禁安全审计和协议逆向的基础工具。
门禁卡复制与仿真。 拿到密钥后 hf mf dump 存成 .bin 文件,再用 hf mf restore 写到一张 UID 可修改的 Magic 卡上,一张卡变另一张卡的完美镜像。注意:这是安全研究工具,使用前确认你有合法授权。
硬件选型:RDV4 还是国内克隆版
Proxmark3 的硬件生态分两层:
| 版本 | Flash | 天线 | 蓝牙 | 价格 |
|---|---|---|---|---|
| 官方 RDV4 | 256KB | 可更换(LF 125/134kHz 切换 + Q 值调节) | 支持(FPC 接口) | $60-80 |
| 国内 RDV3 Easy 克隆版 | 256KB / 512KB 两种 | 不可更换 | 无 | ¥120-200 |
选型建议:入门学 RFID 安全,国内克隆版够用;稳定做安全审计,上 RDV4。天线质量直接影响读写距离和稳定性,这是国内克隆版最大的变量。
一个关键坑:256KB 版本装不下 Iceman 全功能固件(固件超过 256KB),编译时要裁剪部分功能,裁剪方法见仓库的 Advanced Compilation Parameters。想省事直接买 512KB 版。
局限与踩坑
MIFARE DESFire / EV2 是硬骨头。 DESFire 用 AES-128 加密和 3DES 认证,Proxmark3 硬件上不支持 AES 加速,没有硬解能力,只能靠协议交互提取公开信息。密钥是随机生成的,读不出来就是读不出来。
UID 可修改的 Magic 卡越来越难买。 NXP 在持续收紧 Magic 卡的生产和销售,现在能买到的多是旧批次库存,价格在涨(带可写 UID 的 MIFARE Classic 卡约 ¥15-25 一张,几个月前可能 ¥8-12)。这个趋势继续下去,连训练用的卡片都会成问题。
高频 ISO 14443-B 和 ISO 15693 支持有限。 二代身份证走的是 14443-B Type B,Proxmark3 对这部分的支持不如 14443-A 完善,读身份证 SAM 模块的协议交互需要额外调试,不是开箱即用。
命令行入门的门槛。 Proxmark3 的核心交互是 CLI,虽然 Iceman 分支加了彩色输出、TAB 补全、Hint 提示,但它不是图形界面。想用好它,得先理解 ISO 14443 的帧结构、RFID 的认证流程、MIFARE 的存储布局。
不是法外工具。 未经授权复制他人门禁卡、读取他人银行卡数据、嗅探他人设备通信,在大多数国家和地区都违法。这是安全研究工具,使用前提是合法授权。
总结
Proxmark3 解决的是一个很具体的痛点:当你想"看懂一张 RFID 卡在说什么",而不是"把卡读出来"时,手机 NFC 和 Flipper Zero 都不够用。它把 FPGA 硬采样和完整协议栈做进一台巴掌大的设备里,代价是几百块人民币 + 一个 CLI 的学习成本。
从 git clone、make、./pm3-flash-all 到敲下 lf search,把门禁卡往天线上一放,你就看到了这张卡片对这个世界说的每一句话。
- 仓库:github.com/RfidResearchGroup/proxmark3
- 官方文档:proxmark.github.io
- 高级编译参数:Advanced Compilation Parameters
浙公网安备 33010602011771号