nexus 5
文中提及的部分技术可能带有一定攻击性,仅供安全学习和教学用途,禁止非法使用!
0×00 前言
我租住的杭州一个老小区一年前出现了所谓的“出租房杀人事件”,事件过后民警叔叔们给小区的每个单元都装上了门禁,所有住户都需要在物业处登记,物业的工作人员会让你提供身份证或者公交卡用来注册,注册之后就可以刷卡进门了。
但由于某些原因,我并不想去登记注册一张门禁卡,正好手头有一部nexus5,众所周知nexus5是有nfc功能的,我便想能不能用nexus5的nfc功能伪造一张门禁卡呢? 一番尝试之后,就有了下文的方法。 (从来没接触过无线安全,对Proxmark3,acr122u 等设备也是一窍不通,各位大牛见笑了)
0×01分析
由于身份证,公交卡等很多卡都可以用来当门禁卡,那基本上有九成把握这个门禁只是简单读取卡的id,并不会去解密里面的内容,只要简单模拟一个相同id的卡就可以刷开门禁。
0×02“采样”
我们下载一款名为“TagInfo”的android应用,用它来读取一下现在可以刷开门禁的卡信息。(跟同楼的妹子借的)
如下图:
卡的id为:D2:69:76:5B
接着我们找另一台nexus5看一下手机原来的id,扫描出来这台nexus5的id是在不停变化的,如下图:
原来出于安全考虑,android手机的id是一个4个字节长度的随机id,每次连接都会变化,并且都以 “0×80”开头。
android官方并没有提供任何的api可以指定修改nfc的id,但是我们可以用直接修改配置文件的方式来实现,前提当然是手机必须root过了。
0×03Just Do IT
1、到手机的 /etc/ 目录找一个文件名为libnfc-brcm-20791b05.conf,默认情况下,文件中NFA_DM_START_UP_CFG 的配置项是这样的值:
{45:CB:01:01:A5:01:01:CA:17:00:00:00:00:06:00:00:00:00:0F:00:00:00:00:E0:67:35:00:14:01:00:00:10:B5:03:01:02:FF:80:01:01:C9:03:03:0F:AB:5B:01:00:B2:04:E8:03:00:00:CF:02:02:08:B1:06:00:20:00:00:00:12:C2:02:00:C8}
2、通过修改这个值就可以改变id。把该文件下载到电脑上,先在最后面增加一个0×33作为标志位,接着接上要指定的id长度,在当前的情况下就是0×04,最后在后面接上要制定的id:“0xD2,0×69,0×76,0x5B”,接着改变最首的数字,加上我们总共增加的字符串长度,这里我们需要加上6,所以最后配置项变成:
{4B:CB:01:01:A5:01:01:CA:17:00:00:00:00:06:00:00:00:00:0F:00:00:00:00:E0:67:35:00:14:01:00:00:10:B5:03:01:02:FF:80:01:01:C9:03:03:0F:AB:5B:01:00:B2:04:E8:03:00:00:CF:02:02:08:B1:06:00:20:00:00:00:12:C2:02:00:C8:33:04:D2:69:76:5B}
3、采用adb的方式覆盖系统中原来的文件,然后重启
adb root adb remount adb push libnfc-brcm-20791b05.conf /etc/ adb reboot
重启之后我们发现,这台nexus5的id已经被改成了我们想要的。
拿着修改好的nexus5去试试看?记得必须在唤醒屏幕的情况下nfc才有效。
0×04 演示视频
另外,其它手机可以参考:http://bar.freebuf.com/comment/8783 这里的讨论。
*参考来源: STA /dingody编辑整理,转载请注明来自黑客与极客(FreeBuf.com)
- 上一篇:百度回应质疑:防御1Tbps DDoS攻击流量是如何做到的?
- 下一篇:解析P2P金融的业务安全
0daybank
已有 87 条评论
我有Nexus 5,我想刷卡不要钱,我回去就做
楼主的方法适用于 Broadcom BCM20793 NFC 芯片,但是这款芯片不支持 Mifare Classic
能够模拟任意 UID 只能对付使用 M1 卡的门禁,而不能模拟 M1 卡内容,更没法消费
@ dawner 您好,我想请教一下,小米3能实现上面的功能吗?小米3也带NFC 也有libnfc-brcm-20791b05.conf这个文件
@ dawner 我测试了,小米3能用,并且不用唤醒屏幕就能用。
@ FLY 你的文件怎么修改按楼主的一模一样吗?
@ csxy 恩,就是按照楼主上面说的修改的
@ FLY 对的,因为他是抄的所以说必须点亮屏幕,其实NFC重要的特点就是静默条件下的使用。
@ dawner 话说公交刷卡也只拿ID么?可不可能实现手机模拟去刷?
@ FLY 怎么做到的?能给我具体说说吗?发到我的邮箱,2821903968@qq.com
@ FLY 我的是米3.正在研究中,求帮助
我家的门能打开吗?
非奶5的NFC手机表示没找到etc下的那个文件
@ Glaucus 小米3 有这个文件
@ Glaucus 找libnfc-brcm.conf
这个可以啊
其实在手机和读卡器中间放一张NFC卡,在特定情况下会起到穷举的效果
@ ZMOM1031 能详细说一下吗?
试试 看看可以不
理论上是不是支持nfc的手机都可以?
请注明出处:http://stackoverflow.com/a/28720342/1016460
@ dawner 层主大神哈,你是怎么发现的????
以及出处的出处:http://stackoverflow.com/a/28360190/1016460
楼主只有故事是原创
@ dawner 也不能说是翻译 作者参考了国外的一些内容吧 毕竟人家也有自己的一些思路 然后亲手实践了一下
@ dawner nxp的nfc芯片能模拟m1吗
@ a M1是NXP的专利,所以应该只有他家或者他授权的厂家才能模拟的。
你好,请教一下,先在信息最后面增加一个0×33作为标志位 这是为什么?
好吧。。。。。看完五楼大神的回复之后,感觉英文版的更详细一些果断英文版本了
看到我啊啊啊
也就是必须先找一个可以通过的卡,然后读取他的卡ID才可以复制一个一样的
如果换一个门,那就要换一个单眼的住户的卡才行了?
[作揖]
厉不厉害
并没有看懂
验证的密匙应该是默认密匙
文中:“原来出于安全考虑,android手机的id是一个4个字节长度的随机id,每次连接都会变化,并且都以 “0×80”开头。”的"0×80"有错,应当是0×08.
NFA_DM_START_UP_CFG=
{1F:CB:01:01:A5:01:01:CA:14:00:00:00:00:06:E8
:03:00:00:00:00:00:00:00:00:00:00:00:00:00:80
:01:01}
这个是0X04 第一位怎么改啊 高手指点 怎么算的
@ syusa 1F换十进制16+15 十进制15+16+6=37 换十六进制=25
25:CB:01…
为什么一会十进制,一会十六进制,最终是十六进制吧
小区卡我倒试过。挺不错的
TagInfo的时候,很抱歉TagInfo已停止运行 是怎么回事啊?请指教
小区卡我倒试过。挺不错的
0×33标记位是什么作用,或者说可以把0×33换成别的
一定要用ADB命令吗?用RE修改文件然后覆盖行不行呢?
@ langyajiekou 我试了RE不行,用ADB就可以
@ csxy 我的死活不成功,每次Adb root都一直提示restarting adbd as root. 怎么都进不去。
@ langyajiekou root权限的文件管理器可以直接编辑 我用的cm自带
@ n0w4ve5 我倒是root了再RE改的。但是貌似不行。不过手头没有第二部手机无法验证是否修改成功。唯一就是没有ADB上传。
@ langyajiekou 亲测RE改成功,不过升级系统后又复原了
NFA_DM_START_UP_CFG={AA:80:01:01:B0:05:01:03:03:03:08:B5:03:01:03:FF:C9:0D:24:00:00:00:01:00:BB:00:E4:00:0A:01:02:D6:0D:00:02:02:00:00:00:00:01:00:01:59:00:85:B2:02:A1:05:C8:1E:06:1F:00:0A:09:30:00:04:24:00:1C:00:75:00:77:00:76:00:1C:00:03:00:0A:00:59:01:00:00:40:04:D7:01:07:DD:32:06:00:00:10:22:08:08:06:04:03:02:00:09:27:0A:72:20:00:74:20:00:00:00:01:85:00:00:32:1F:1D:1D:14:14:12:00:02:55:55:55:55:55:55:55:55:55:55:55:55:55:1D:CA:20:00:00:00:00:08:E8:03:00:00:90:01:00:00:FF:FF:00:00:00:00:00:00:00:00:00:00:00:20:14:01:00:00:00} 我的这么长 这么改?
@ 赵日天 在最后面加上就行了,好好看看文中是怎么说的吧
@ FLY 3Q
@ 赵日天 仔细阅读…改完这串的最后几位 然后 AA+6
@ n0w4ve5 我试试3Q
@ n0w4ve5 兄弟帮我改改. han_diannao_mi@126.com
tclp688l 这个在哪里修改没有找到
libnfc-brcm-20791b04.conf 这个文件是干嘛的?
躺着呢
还没睡
Coool 刚发现三星系列手机也可以,其中NFA_DM_START_UP_CFG 存在libnfc-sec文件中。
@ 刘大虎 三星什么型号呢?
@ 刘大虎 层主,三星的点开以后NFA_DM_START_UP_CFG,一共有两段?到底修改那一段呢?
还是买个能模拟uid的卡片吧。淘宝5块钱。
玩过mifare classic tool,家里的门卡居然是加密的
一加手机 cm12.1系统,读出来的id是01:02:03:04 求怎么改,按上述方法改会造成nfc无法打开
不错 学习了
怎么我的身份证没办法看到id??
其它型号的NFC手机可以参考 这篇文章进行修改
回头试试。
越狱!
[doge][喵喵]
好办法。 其它型号的NFC手机可以参考 这篇文章进行修改
这个是NFC-A,也就是NFC TAG产品用的标准,一般就用于识别东西而已,储存不了啥加密的数据。国内有些安防设备用去年说的Mifare Classic也罢,直接用TAG当门禁。。。。
n6和n5一样吗?
马克一下
[喵喵][doge]
开始以为是ID卡,原来是卡ID,……
一加一代成功! 有点意思 其它型号的NFC手机可以参考 这篇文章进行修改
我的华为M7和google galaxy nexus (I9250)也读取不到自己的nfc的id的,求解?用TAGINFO读取
找不到这个文件啊 libnfc-brcm-20791b05.conf
你们网站为什么登上不上去了
我也是,得FQ才能上,昨天开始的