射频卡片(NFC和RFID)
射频卡片(NFC和RFID)
由于手边没有卡,所以该实验通过 Proxmark3 配合完成
RFID detector
项目地址:https://github.com/flipperdevices/flipperzero-good-faps/tree/dev/nfc_rfid_detector
在开始之前先插播一个在 APPs 文件夹 -> Tools 文件夹中的 APP:RFID detector
,它可以探测读卡器的频率,来判断是低频卡还是高频卡
当我们使用 pm3 命令:lf search
进行低频卡探测时把 flipper 贴上去就会看到,当前是 125KHz 的低频卡读卡器
当我们使用 pm3 命令:hf search
进行高频卡探测时把 flipper 贴上去就会看到,当前是 13.56MHz 的高频卡读卡器
RFID
125KHz RFID
回到主题,主菜单里 125KHz RFID 这个 APP,有以下选项:
Read 读取ID卡
Saved 已保存的ID卡
Add Manually 手动添加ID卡
Extra Actions 其他选项
首先来使用 Proxmark3 模拟一个 ID 卡,卡片 ID 为 1122334455
lf em 410x sim --id 1122334455
然后 flipper 选择 Read,把 flipper 贴在 pm3 的 LF 天线上,可以看但成功读取了 pm3 模拟的卡片信息,这时候可以选择➡️进行保存、模拟、写入操作
Saved 选项中可以看到保存的所有卡片,点击可以进行模拟、写卡、写卡并设置密码、编辑、删除以及查看信息
注意:写卡对象应该是类似 T557X 这类的可写的卡,而不是另一个 EM410X 卡
Add Manually 选项中可以选择不同类型的卡片,设置卡片 ID 来创建一张卡,结果也会保存在 Saved 中,挨个看了一遍全都是只保存个卡号,没啥好介绍的
来到 APPS 文件夹的 RFID 文件夹,有以下 APP,接下来依次介绍:
RFID Beacon
RFID Fuzzer
EM4100 Key generator
125KHz RFID
T5577 multiwriter
[(Q)M100]UHF RFID
RFID Beacon
RFID Beacon 是一个发射信标的小程序,在 125KHz 使用摩斯电码传输整个字母表(A 到 Z)、数字(0 到 9)以及一些符号
官方链接:https://github.com/nmrr/flipperzero-rfidbeacon
进入之后通过⬅️➡️切换要发射的内容,通过长按⬆️切换发射和暂停,进入发射状态后会每隔一段时间发射一次,发射时 flipper 的红灯会亮,因为我没有这么低频的 SDR 设备,所以直接贴 APP 的 github 上面的图了
RFID Fuzzer
RFID Fuzzer 这个 APP 应该是来自于这里:https://github.com/DarkFlippers/Multi_Fuzzer
主要是用来爆破各种协议卡片的 ID 的,⬅️➡️用于选择协议,⬆️⬇️用于选择爆破方式
可以用默认的 ID 列表(Default Values)进行爆破,默认的 ID 列表数量不多
也可以选择 ID 遍历爆破(BF Customer ID),这个功能就很离谱,通过⬅️➡️选择爆破哪一个字节,爆破的时候就只有这一个字节变化,其他的都是 0
还可以从之前保存的卡片文件中加载 ID(Load File),这个也是只爆破一个字节,但是可以选择修改其他字节的值
从文件加载 ID 列表(Load UIDs from file),这个是保存的一个列表中加载,列表文件只是一个单纯的 TXT,里面一行一个 ID,格式如下
EM4100 Key generator
EM4100 Key generator 这个 APP 项目地址应该是:https://github.com/Milk-Cool/fz-em4100-generator
Key 在这里的含义是 ID 而不是密码,所以这个 APP 也就是生成一些 ID 而已,在 github 中可以看到还不是随机生成的,都是固定的... 经过测试生成的文件会保存在上个 APP(RFID Fuzzer)最后一个选项(Load UIDs from file)的文件夹中
T5577 multiwriter
T5577 multiwriter 这个 APP 项目地址是:https://github.com/Leptopt1los/t5577_multiwriter
这个 APP 的作用是往 T5577 卡片中写入多个 EM410X 卡片 ID,最多能写三个 ID,且只能写已经在 Saved 中保存的卡片文件
他的灵感来源于这篇文章:https://forum.dangerousthings.com/t/hack-store-2-to-3-different-em41xx-on-a-single-t5577/12116。这个论坛让我大开眼界了属于是,他们叫生物黑客,之前在网上看过一个人把特斯拉的卡片融开,把钥匙芯片放到身体里的觉得就很离谱了,这里更多😶
UHF RFID
项目地址:https://github.com/frux-c/uhf_rfid
这东西需要外接一个模块(https://www.aliexpress.us/item/3256805110198094.html?gatewayAdapt=glo2usa4itemAdapt),还不便宜,得 200 多
感觉就是一个高频一些的低频卡😂,卡的功能还是只有一个 ID,但是频段在 900 多MHz,读取距离也远了很多
UHF 模块的引脚定义如下
为了方便连接,可以去买个 1.25 转 2.54 的杜邦端子线
插上之后从左到右依次是 GND、EN、RX、TX、VCC
与 flipper 连线关系是
YRM100 Flipper
GND <---> GND
EN <---> 3V3
RX <---> TX
TX <---> RX
VCC <---> 5V
我在实际使用的时候遇到一个问题,如果一开始全部插上,当进入 APP 的时候会卡死,可以先不插 5V,进入 APP 后插上 5V 再 Retry 一下就能正常识别了
读卡功能演示(实际读取距离很远,只是举着不太好拍照)
NFC
NFC
先来看自带的 APP:NFC,有以下选项:
Read 读取卡片功能
Detect Reader 探测读卡器随机数
Saved 保存的卡片文件,没啥好说的
Extra Actions 可以读卡片类型、管理卡片密钥字典、解锁一些特定类型的卡片
Add Manually 自己添加卡片,只添加一个ID,没有实际内容
Read 功能会去读取卡片的信息,打开后直接贴到卡片上即可,对于大部分使用默认密码的门禁/电梯卡片应该可以很快的读取出来,读取好后➡️可以选择 Emulate(模拟)进行测试,也可以选择保存(Save)
可以看到下图中读取的卡片有两个 key 没找到,即使没有读取全部区块,也是可以保存的
保存好之后可以在 Saved 中、模拟(Emulate)、写卡(Write to Initial Card)、再次读取更新卡片(Update from Initial Card)、查看全部信息(Info)等
这个 APP 自己会去爆破密码,但是因为没有集成很多攻击方式,只能看你字典中有没有那个密码,所以效果很一般,我手上 M1 的卡比较多,随便试了一张非默认密码的就跑不出来了,作为对比,pm3 的hm mf autopwn
命令基本可以秒出(可以看到 flipper 没跑出来的是一堆问号)
那这就没办法了吗?不是的!我们来看第二个功能 Detect Reader 这个功能是用来从读卡器获取加密随机数的,后面可以结合其他 APP 利用这些加密随机数破解卡片密钥
因为我没有专门的读卡器,因此我使用 pm3 的带密码读区块功能,来模拟读卡器带着密码读取卡片数据的过程
hf mf rdbl --blk 4 -k 98E444621B07
然后 flipper 选择 Detect Reader 功能贴到 pm3 上去,多执行几次上面的指令,等到 flipper 收集到了 10 对随机数就可以啦
收集的随机数可以给 MFKey32 或 MFKey Nested 使用,来破解密钥
MFKey32 | MFKey Nested
项目地址:https://github.com/equipter/mfkey32v2 | https://github.com/AloneLiberty/FlipperNested
收集随机数完成之后就要去到 Apps -> NFC -> MFKey32 或 MFKey Nested 这个 APP 了,这俩都可以从随机数解出密钥,具体区别如下:https://gist.github.com/noproto/63f5dea3f77cae4393a4aa90fc8ef427,随便选个就行了,我用 MFKey32 的时候总是崩溃,用 MFKey Nested 就稳定很多
这个 APP 没啥可操作的地方,进来直接点击确认件开始就会破解密钥
破解完成后会将密钥自动加到字典中,当再次使用 NFC APP 读取时就会使用该密钥,最终成功读取全部的数据
MIFARE Classic Editor
原项目地址:https://github.com/TollyH/flipper-apps
纯粹的是拿来编辑保存的卡片内容的,进去之后先选择保存好的要编辑的卡片文件,选择进入哪个扇区(Sector)的哪个区块(block)编辑修改
Mifare Fuzzer
原项目地址:https://github.com/spheeere98/mifare_fuzzer
用来爆破 UID 的,只能模拟卡号,没有实际内容,类似 RFID Fuzzer,进入 APP 之后需要先选择爆破的卡片类型,选择好后再选择爆破的卡号列表,列表可以选择:APP 默认的(Test Values)、随机的(Random Values)、文件导入的 UID 列表(Load UIDs from file)
NFC Magic
项目地址:https://github.com/flipperdevices/flipperzero-good-faps/tree/dev/nfc_magic
这个 APP 可以用来探测卡片是否是魔术卡,即是不是可以修改 UID 信息的卡,如果是的话可以按➡️选择 More,直接把 Saved 中保存的卡片写到这张卡上(Write),或者擦除这张卡(Wipe)
NFC Maker
用来创建一些 NFC 标签,比如碰一碰就连接 WiFi 这种的标签,我手机没有 NFC 功能,这个就不测试了2333
[iClass]PicoPass
项目地址:https://github.com/flipperdevices/flipperzero-good-faps/tree/dev/picopass
用来读取、写入、保存和模拟传统的 HID iClass 卡和密钥卡(基于 picopass 芯片组),Localass 用来攻击模拟特定的 CSN 并收集来自读卡器的响应,这些响应可用于计算该读卡器某些自定义密钥
啊,又遇到没有设备的了!
Seader
项目地址:https://github.com/bettse/seader
从 HID iClass、iClass SE、Desfire EV1/EV2 和 Seos 读取凭据,需要一个这样的拓展板,然后把 SIM/SAM 卡插进去,看着像是需要借助 SIM/SAM 卡中的一些信息来操作上面说的卡片类型,这个拓展板国内没有,告辞
https://www.redteamtools.com/nard-sam-expansion-board-for-flipper-zero-with-hid-seos-iclass-sam/