数字签名劫持
劫持合法数字签名是一种可在红队评估中使用的技术,用于对 PowerShell 代码和二进制文件进行签名。这有助于绕过 Device Guard 限制,并在参与过程中保持隐蔽。DigitalSignatureHijack 是一个基于 Matt Graeber 研究的 PowerShell 脚本,可以执行以下操作:
- 对主机上的所有可移植可执行文件(PE)进行数字签名,署名 Microsoft
- 对主机上的所有 PowerShell 脚本进行数字签名,署名 Microsoft
- 验证所有可移植可执行文件的数字签名
- 验证所有 PowerShell 脚本的数字签名
这是通过劫持注册表并添加必要值,以及利用 Matt Graeber 开发的自定义 SIP DLL 文件实现的。用户需要将 MySIP.dll 的路径修改为本地路径。
演示
签名可移植可执行文件
SignExe

签名验证
ValidateSignaturePE

签名 PowerShell 脚本
SignPS

签名验证
ValidateSignaturePS

资源
免责声明
- 本仓库的目的是存储已编译的 DLL、二进制文件、脚本,并集中有关数字签名劫持的现有信息。所有荣誉归于这些工具的原始作者。
- 本仓库中存储的二进制文件和 DLL 未从其原始状态进行修改,且完全安全。但如果您出于任何原因不信任本仓库,我们提供了包含这些工具源代码的原始仓库,以便您自行编译。
致谢