返回
Authenticode 签名构造 - 针对文件类型的签名构造
见解分享
2023-10-09 15:23:42
在上一篇文章《Authenticode 签名构造 - PE 文件的签名构造与签名验证劫持》中,我们了解了针对单一文件的 Authenticode 签名构造,需要在文件尾部添加构造的签名数据。这次,我们将探讨另一种签名构造方法:欺骗系统本身的签名获取机制,使系统将正常文件识别为包含签名数据。
文件类型签名构造
Authenticode 签名不仅可以用于单一文件,还可以用于文件类型。文件类型签名允许为特定文件扩展名(例如 .exe、.dll)创建签名,使得所有具有该扩展名的文件都自动获取该签名。
要构造文件类型签名,需要进行以下操作:
- 创建根证书: 首先,创建一个自签名的根证书,它将用于对文件类型签名。
- 创建文件类型签名: 使用根证书,创建一个文件类型签名,指定要签名的文件扩展名。
- 将文件类型签名注册到系统: 将文件类型签名注册到 Windows 注册表中,使系统识别并使用该签名。
欺骗签名获取机制
一旦文件类型签名被注册,系统将自动为具有该扩展名的所有文件获取签名。我们可以利用这一点来欺骗签名获取机制,使系统将正常文件识别为包含签名数据。
要做到这一点,需要进行以下操作:
- 创建正常文件: 创建一个不包含任何签名数据的正常文件。
- 更改文件扩展名: 将文件的扩展名更改为已注册的文件类型签名所涵盖的扩展名。
- 重新注册文件: 重新注册文件,使系统重新获取签名信息。
当系统重新获取签名信息时,它会找到注册的文件类型签名并将其应用到文件上,即使该文件实际上并没有签名。这将导致系统认为该文件是经过签名的,即使它并不是。
利用场景
文件类型签名构造可以用于各种场景,例如:
- 绕过反病毒检测: 某些反病毒软件仅扫描具有签名的文件。通过构造文件类型签名,可以绕过反病毒检测,使恶意软件伪装成正常文件。
- 获得权限提升: 某些程序在执行签名文件时会获得更高的权限。通过构造文件类型签名,可以使正常程序获得权限提升。
- 欺骗用户: 用户往往会更信任经过签名的文件。通过构造文件类型签名,可以欺骗用户执行恶意文件。
缓解措施
为了缓解文件类型签名构造带来的风险,可以采取以下措施:
- 保持软件更新: Windows 定期发布安全更新来修补签名验证中的漏洞。保持软件更新以防止此类攻击。
- 小心未知文件: 不要打开来自未知来源或不信任网站的文件,特别是那些具有可执行文件扩展名(例如 .exe、.dll)的文件。
- 使用反病毒软件: 使用信誉良好的反病毒软件,可以检测并阻止恶意文件,即使它们被构造为具有签名。
- 使用沙箱技术: 在执行可执行文件之前,将其放入沙箱环境中,以防止它们在系统上造成任何损害。
结论
Authenticode 签名构造是一种强大的技术,可以用来保护文件免遭恶意修改。然而,它也可以被滥用来欺骗签名获取机制。通过了解文件类型签名构造的方法和缓解措施,我们可以保护我们的系统免受此类攻击。