RFID Hacking

NFC

最近Apple Pay在中国上市了,iPhone6 和 iPhone6s的NFC终于有用了。这里给大家推荐一个NFC的lib :libnfc

libnfc is the first libre, platform-independent, low level NFC SDK and Programmers API. 

ACR122U

突发奇想,想研究下RFID,于是买了个设备,ACR122U ,这东西是不让在网上买的,挺危险的。下面就介绍用这个东西来破解我现在的工卡。开始的时候我在mac上安装驱动然后跑mfoc,但是老是报错,我的mac是最新的10.11可能driver有些不兼容。于是借了室友的win7 x86来破解,可是跑了好久我的卡也没能破解。第一天晚上以失败结束。

第二天来到公司,在mac的vm上跑了个kali,然后跑nfc-list -v看了下,能正确识别我的工卡,于是用mfoc来破解key:

mofc -P 200 -O dump.data

mfoc会先测试几个默认的key,然后只要知道一个key,就能尝试破解其他区的key。这里介绍集中破解方法:

1)暴力破解

爆破对于M1卡的破解来说比较有效,因为M1卡是被动卡,需要读卡器来供能,切断供能后卡的临时数据就丢失了,也就是说不会存在输入过多错误密码后造成的锁死之类的情况 FFFFFFFFFFFF、A0B0C0D0E0F0等等都是M1白卡的默认密码,所以当我们使用mfoc这样的工具来爆破的时候基本上都是用这些默认密码来填充剩余扇区的密码。

2)重放攻击

刚刚我们说了M1卡是被动卡,当它被供能的时候会产生随机数列,切断供能后数据不会保存,再次供能又会产生一模一样的数列,然后就可以控制切断,再次供能的时间计算出这个数列,进行重放攻击来达到修改数据的目的。

3)克隆卡片(卡复制)

M1卡的扇区可以保存数据,所以大部分的卡片会选择加密扇区后保存数据,我们可以用 uid卡来进行复制,每张M1卡在0扇区第1段都有一个唯一标识,而且是保护无法修改的,uid 卡就是没有设定0扇区保护的卡,所以你可以随意的修改你想要的uid,这样我们就可以克隆出一张连uid都相同的卡片了。(但是要注意不要把00扇区弄 坏,之前测试的时候就未知原因写坏了00扇区无法读入了)。

4)嗅探攻击

这里要用到PM3这个神器,在卡和机器数据交换的时候嗅探数据,进行攻击,利用XOR算key工具就可以把扇区的密钥计算出来(穷逼表示根本买不起)。


如果我们最终dump出来了数据,我们就可以修改里面的数据,然后写会到你的工卡,当然你也可以复制一张同样的卡,别忘了覆盖UID,很多系统是识别UID的。

root@kali: ~# nfc-mfclassic --help 
	Usage: nfc-mfclassic r|w a|b <dump.mfd> [<keys.mfd>]
	r|w	- Perform read from (r) or write to (w) card 
	a|b	- Use A or B keys for action 
	<dump.mfd>	- MiFare Dump (MFD) used to write (card to MFD) or (MFD to card)
	<keys.mfd>	- MiFare Dump (MFD) that contain the keys (optional) Or: nfc-mfclassic x <dump.mfd> <payload.bin> 
 	x	- Extract payload (data blocks) from MFD 
 	<dump.mfd>	- MiFare Dump (MFD) that contains wanted payload 
 	<payload.bin> - Binary file where payload will be extracted

nfc-mfclassic W a newdata.dump olddata.dump

这里我复制了一张同样的卡,最终复印机,门禁都成功打开了。


最近又买了更高端的设备,破解速度非常快,有时间研究下。