注:在 macOS Mojave (10.14) 和 Big Sur (11.2.3) 下测试可用,其他版本请自行测试
Nested Authentication 攻击是在已知任意一个扇区的密钥的情况下,攻击得到加密扇区的密钥的一种攻击手法。从原理上来说,这种攻击并不是“通过漏洞直接破解出密钥”,而是“通过获取已知加密随机数的情况下,可以大大的缩短破解密钥的时间”,因此密钥的破解也成为了可能。
用这种方法破解的工具,一般是用
mfoc
,而对于全加密的卡,一般是用 mfcuk
。首先下载 PL2303 串口转 USB 驱动。
准备好驱动之后就可以扫描 USB 端口了:
cd /dev ls tty.usbserial*
需要注意的是,macOS 下
usb2ttl
的读卡器通常是类似名为 /dev/tty.usbserial
的设备,而不是 Linux 下的 /dev/ttyUSB0
或 Windows 下的 /dev/ttyS3
之类。能够找到串口设备之后我们直接通过
brew
安装破解工具 libnfc
和 mfoc
:brew install libnfc brew install mfoc
这时我们就可以用
nfc-list
命令列出设备了,不过由于程序扫描的默认设备并不是 PN532,所以可能会出现找不到设备的情况,这时我们通过 brew list libnfc
找到 libnfc
的安装路径,修改配置文件如 /usr/local/Cellar/libnfc/1.8.0/etc/nfc/libnfc.conf
,其内容为:allow_autoscan = true allow_intrusive_scan = true # 下面可以不写,因为我们已经开了自动发现设备 device.name = "PN532 board via UART" device.connstring = "pn532_uart:/dev/tty.usbserial-14430"
修改完成后再运行
nfc-list
命令就可以列出我们的 PN532 设备了。至于
mfoc
和 mfcuk
的使用方法,本篇文章就不多赘述了。