hacktricks/radio-hacking/pentesting-rfid.md
2023-08-03 19:12:22 +00:00

118 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# RFID渗透测试
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 YouTube 🎥</strong></a></summary>
* 你在一家**网络安全公司**工作吗想要在HackTricks中看到你的**公司广告**吗?或者你想要**获取PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
* 发现我们的独家[NFT收藏品**The PEASS Family**](https://opensea.io/collection/the-peass-family)
* 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram群组**](https://t.me/peass) 或 **关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **通过向**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **和**[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享你的黑客技巧。**
</details>
## 简介
**射频识别RFID**是最流行的短距离无线解决方案。通常用于存储和传输标识实体的信息。
RFID标签可以依靠**自己的电源(主动式)**,如嵌入式电池,或者使用从接收到的无线电波中感应的电流从读取天线接收电源(**被动式**)。
### 类别
EPCglobal将RFID标签分为六个类别。每个类别中的标签都具有前一个类别中列出的所有功能使其向后兼容。
* **Class 0**标签是在**UHF**频段中运行的**被动式**标签。供应商在生产工厂中**预编程**它们。因此,您**无法更改**存储在其内存中的信息。
* **Class 1**标签也可以在**HF**频段中运行。此外,它们在生产后只能**写入一次**。许多Class 1标签还可以处理它们接收到的命令的**循环冗余校验**CRC。CRC是用于错误检测的命令末尾的几个额外字节。
* **Class 2**标签可以**多次写入**。
* **Class 3**标签可以包含**嵌入式传感器**,可以记录环境参数,如当前温度或标签的运动。这些标签是**半被动式**的,因为虽然它们具有嵌入式电源,如集成**电池**,但它们**无法启动**与其他标签或读取器的无线**通信**。
* **Class 4**标签可以与同一类别的其他标签进行通信,使其成为**主动式标签**。
* **Class 5**标签可以为其他所有先前标签类别提供**电源**并进行通信。Class 5标签可以充当**RFID读取器**。
### 存储在RFID标签中的信息
RFID标签的内存通常存储四种类型的数据**标识数据**,用于**标识**标签所附属的**实体**(此数据包括用户定义的字段,如银行账户);**附加数据**,提供有关实体的**进一步详细信息****控制数据**,用于标签的内部**配置**;以及标签的**制造商数据**,其中包含标签的唯一标识符(**UID**)以及有关标签的**生产**、**类型**和**供应商**的详细信息。您将在所有商用标签中找到前两种数据;最后两种数据可以根据标签的供应商而有所不同。
ISO标准指定了应用程序系列标识符**AFI**)值,该代码指示标签所属的**对象类型**。ISO还指定了另一个重要的寄存器即数据存储格式标识符**DSFID**),它定义了用户数据的**逻辑组织**。
大多数RFID **安全控制**都具有**限制**对每个用户存储块和包含AFI和DSFID值的特殊寄存器的**读取**或**写入**操作的机制。这些**锁定**机制使用存储在控制存储器中的数据,并具有供应商预配置的**默认密码**,但允许标签所有者**配置自定义密码**。
### 低频和高频标签的比较
<figure><img src="../.gitbook/assets/image (27).png" alt=""><figcaption></figcaption></figure>
## 低频RFID标签125kHz
**低频标签**通常用于**不需要高安全性**的系统建筑物门禁、对讲钥匙、健身会员卡等。由于其较长的范围它们非常适合用于付费停车场驾驶员不需要将卡靠近读卡器因为它可以从较远的地方触发。与此同时低频标签非常简单数据传输速率较低。因此无法实现复杂的双向数据传输例如保持余额和加密。低频标签只传输其短ID没有任何身份验证手段。
这些设备依赖于**被动式**RFID技术在**30 kHz至300 kHz**的范围内运行尽管使用125 kHz至134 kHz更为常见
* **长距离** - 较低的频率意味着较长的范围。有一些EM-Marin和HID读卡器可以从一米的距离工作。这些通常用于停车场。
* **简单协议** - 由于数据传输速率较低这些标签只能传输其短ID。在大多数情况下数据没有经过身份验证也没有任何保护措施。一旦卡片在读卡器的范围内它就开始传输其ID。
* **低安全性** - 这些卡片可以很容易地被复制,甚至可以从别人的口袋中读取,因为协议的简单性。
**常见的125 kHz协议**
* **EM-Marin** - EM4100EM4102。CIS地区最流行的协议。由于其简单性和稳定性可以从大约一米的距离读取。
* **HID Prox II** - HID Global推出的低频协议。该协议在西方国家更受欢迎。它更复杂该协议的卡片和读卡器相对较昂贵。
* **Indala** - 由Motorola引入的非常古老的低频协议后来被HID收购。与前两种协议相比您不太可能在野外遇到它因为它正在退出使用。
实际上,还有很多低频协议。但它们都在物理层上使用相同的调制方式,并且可以在某种程度上被认为
### 攻击
您可以使用Flipper Zero攻击这些标签
{% content-ref url="../todo/radio-hacking/flipper-zero/fz-125khz-rfid.md" %}
[fz-125khz-rfid.md](../todo/radio-hacking/flipper-zero/fz-125khz-rfid.md)
{% endcontent-ref %}
## 高频RFID标签13.56 MHz
**高频标签**用于更复杂的读写器-标签交互,当您需要加密、大容量双向数据传输、身份验证等功能时。\
它通常用于银行卡、公共交通和其他安全通行证。
**高频13.56 MHz标签是一组标准和协议**。它们通常被称为[NFC](https://nfc-forum.org/what-is-nfc/about-the-technology/)但这并不总是正确的。在物理和逻辑层上使用的基本协议集是ISO 14443。高级协议以及替代标准如ISO 19092都是基于它的。许多人将这项技术称为**近场通信NFC**这是指在13.56 MHz频率上运行的设备的术语。
<figure><img src="../.gitbook/assets/image (22).png" alt=""><figcaption></figcaption></figure>
简单来说NFC的架构工作方式如下传输协议由制作卡片的公司选择并基于低级ISO 14443实现。例如NXP发明了自己的高级传输协议称为Mifare。但在较低的级别上Mifare卡是基于ISO 14443-A标准的。
Flipper可以与低级ISO 14443协议以及Mifare Ultralight数据传输协议和银行卡中使用的EMV进行交互。我们正在努力添加对Mifare Classic和NFC NDEF的支持。对组成NFC的协议和标准进行深入研究值得单独一篇文章我们计划稍后发布。
所有基于ISO 14443-A标准的高频卡都有一个唯一的芯片ID。它充当卡片的序列号类似于网络卡的MAC地址。**通常UID的长度为4或7个字节**,但很少会**达到10个字节**。UID不是秘密它们很容易读取**有时甚至打印在卡片上**。
有许多依赖UID进行**身份验证和授权访问**的访问控制系统。有时即使RFID标签**支持加密**,也会发生这种情况。这种**误用**使它们在**安全性**方面降至与**125 kHz卡**相同的水平。虚拟卡如Apple Pay使用动态UID以防止手机所有者使用支付应用程序开门。
* **低范围** - 高频卡专门设计成必须靠近读卡器才能使用。这也有助于保护卡片免受未经授权的交互。我们成功实现的最大读取范围约为15厘米这是使用自制的高范围读卡器实现的。
* **高级协议** - 传输速度高达424 kbps允许具有完整双向数据传输的复杂协议。这反过来**允许加密**、数据传输等。
* **高安全性** - 高频非接触式卡片在安全性方面不逊于智能卡。有些卡片支持像AES这样的加密强算法并实现了非对称加密。
### 攻击
您可以使用Flipper Zero攻击这些标签
{% content-ref url="../todo/radio-hacking/flipper-zero/fz-nfc.md" %}
[fz-nfc.md](../todo/radio-hacking/flipper-zero/fz-nfc.md)
{% endcontent-ref %}
或者使用**proxmark**
{% content-ref url="../todo/radio-hacking/proxmark-3.md" %}
[proxmark-3.md](../todo/radio-hacking/proxmark-3.md)
{% endcontent-ref %}
## 参考资料
* [https://blog.flipperzero.one/rfid/](https://blog.flipperzero.one/rfid/)
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
* 您在**网络安全公司**工作吗您想在HackTricks中看到您的**公司广告**吗?或者您想获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
* 发现我们的独家[NFT](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
* 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass),或在**Twitter**上**关注**我[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **通过向**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **和**[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享您的黑客技巧。**
</details>