作者:墨客@涂鸦智能安全实验室
前言
最近租的公寓风风火火在门禁卡上加梯控,所有的门禁卡都需要去物业增加权限才能使用电梯,并且使用限制非常多。如电梯号的限制、楼层号的限制、时间的限制等。出于好奇,加上最近正在研究各种nfc,我对梯控进行了研究并尝试绕过。(仅作研究使用)
基础知识
首先我们先了解一下我们平常使用的门禁卡,目前nfc门禁卡大致可分为IC卡与ID卡,ID卡不可写入,且固定编号;IC卡可以擦写,且固定编号。这里笔者的卡可以被物业改写梯控信息,显然是IC卡。既然是IC卡,那么我们就可以复制,改写内容。
IC卡共分16个扇区,每个区分4块,每块16个字节,其中0扇区0块的前4个字节为uid号,此号具有唯一性,第5个字节为卡号校验位,后面11个字节为厂商信息。
每个扇区的最后一块,前6个字节为密钥A,7-9字节为控制位,10字节备用,后6个字节为密钥B。只有当密钥正确时,才能够修改对应扇区的数据
下图为本人的门禁卡,供大家理解
卡片的uid为d3808524
0扇区的密钥A是FFFFFFFFFFFF
0扇区的密钥B是FFFFFFFFFFFF
1扇区的密钥A是A754DE67A103(由读卡器破解出)
1扇区的密钥B是A0A1A2A3A4A5
其他的扇区内容都是空的,因此我们只要关注0/1扇区即可。
cuid卡也是ic卡的一种,可以用来避开uid防火墙,可以修改uid,为目前市面上主流的复制卡
准备工具
物业授权过的受限梯控卡1张
PM6读卡器一个
cuid空白卡若干
尝试绕过
首先,先整理一下自己的需求
1.梯控限制了只允许使用1号门的电梯,我们需要2号门电梯权限(否则拿外卖需要出门绕一大圈)
2.电梯卡添加了时间限制,到期后需要去物业处续卡,非常不方便。我们需要延长电梯卡使用期限
3.梯控限制了只允许刷一个楼层,尝试开通全楼层权限(非必要需求)
首先我们使用PM6读卡器读取梯控卡内容,并将其复制到我们空白的cuid卡上,后续操作都在cuid卡上进行,避免误操作导致原卡失效。
现在就可以开始分析卡的内容了,前面我们也已经说了,电梯卡仅仅在前两个扇区存有数据,其他扇区都是空的,因此我们只要分析前两个扇区的数据即可
我们先看0扇区,根据我们刚才对IC卡的了解,0扇区的0块,记录的是卡的固定uid号、校验值以及厂商信息,一般来说,uid是在梯控系统的后台进行过绑定的,所以uid一旦改变,电梯就不认可这张卡了,校验位又是根据uid生成的,厂商信息不涉及卡的数据,因此,我们可以将这一扇区排除。
再看扇区1,说实话刚看到扇区1的数据时,我是一头雾水的,相关数据内容并不是很明显。没办法,只能先通过蠢办法进行尝试,尝试修改了1扇区0块的前8个字节。发现门禁可以通过;梯控不通过,初步判断为梯控的基础验证块。目光转到0块的第9、10字节,此处数据为0001,刚好我的梯控只允许刷1号门的电梯,猜测这里可能是梯号控制。将此处数据修改为0002,去电梯里试了一下,确实成功了。证明我们的猜想是正确的!
0001的2进制表达为0001,0002的二进制表达为0010,所以猜测当二进制为0011时,可以刷两边的梯控,但是尝试失败了。再次猜测当二进制表达为0100时,可以刷两边梯控,但又失败了。。。猜测有特定的值才能刷。当前已经可以通过两个nfc实现刷两边的卡,暂时先不管他。有灵感的师傅可以留言我试试
经过分析,确认了时间限制的数据在1扇区2块的最后四个字节限制卡的有效期,分别代表着日-/-月-年,如我的卡有效期至2022年3月17日,目前修改为2099年3月17日。至于到期后是否会有后台校验,就需要时间的证明了。
又是一阵盲目分析,试探出楼层校验是在1扇区1块的前两个字节做的,比如我的电梯只能刷3楼,对应数据为0008,转化为2进制为00001000,这里怀疑进一位,楼层号就加1,于是测试时将数据改写成0010,即00010000,刷卡后,成功点亮了4楼的楼层号。推测当所有的值都为1时,就可以刷所有的楼层,既然如此,那我们暴力点,改成FFFF
怀着忐忑的心情,去电梯里试了一下。这次很成功,强制点亮变成了可选点亮,可以选所有的楼层
最后修改完内容的门禁卡数据如下
总结
目前门禁、梯控等校验防君子不防小人,由于不涉及金钱交易等行为,门禁卡大多数是不联网的,通过修改卡的内容可以对大多数限制进行绕过。据我所知目前各梯控的供应商都有一套自己的控制方案,很多破解方案都已经暴露在公网上。没有暴露的,细心研究卡内数据,多尝试,也不难发现其逻辑。存在安全风险。
漏洞悬赏计划:涂鸦智能安全响应中心(https://src.tuya.com)欢迎白帽子来探索。
招聘内推计划:涵盖安全开发、安全测试、代码审计、安全合规等所有方面的岗位,简历投递sec@tuya.com,请注明来源。
发表评论
您还未登录,请先登录。
登录