SetupHijack是一款开源研究工具,它通过针对Windows安装程序和更新机制中的竞争条件以及不安全的文件处理方式,已成为一种强大的红队演练和安全研究方法。
通过轮询%TEMP%、%APPDATA%和%USERPROFILE%\Downloads等可被全局写入的目录,该工具会在安装程序释放的有效负载以提升的权限执行前对其进行拦截,从而无需以提升的权限运行就能完全攻陷SYSTEM或管理员账户。
SetupHijack会持续扫描指定目录,寻找扩展名为.exe、.msi和.bat的新安装程序文件或已修改的安装程序文件。当目标文件出现时,该工具会以原子方式将其替换为用户提供的有效负载,还可以选择将原始文件保存为.bak备份。
如果特权进程在执行完整性检查之前运行了替换的有效载荷,那么攻击者的代码将在提升的权限下运行。
与基于文件系统通知的方法不同,SetupHijack依靠高频轮询来缩短竞争窗口的持续时间。
SetupHijack利用竞争条件
Hacker House 称,该框架还通过整合使用 SignToolEx.exe 和 SignToolExHook.dll 的黑客签名流程,颠覆了 Authenticode 代码签名和安装程序信任模型,使有效载荷能够携带有效的证书和 Authenticode 时间戳。
这种方法增加了绕过许多安装程序和操作系统保护所采用的数字签名验证的可能性。
借助微软的构建工具,构建该工具十分简单:
默认执行会扫描常见的放置位置,即SetupHijack.exe。标志允许对扫描目标进行微调:
其他模式包括:
- 清理: 恢复启用目录中的.bak备份。
- 详细模式:记录所有操作,包括成功的有效载荷替换。
在多用户系统上进行远程升级时,SetupHijack 可以与 shadow.exe 等工具一起在受感染的用户账户下运行,等待管理员安装程序进程启动。
在实际操作中,安全研究人员已观察到一些热门应用程序成功遭到感染,例如Zoom(6.6.1版本),其位于%AppData%中的更新二进制文件被劫持,用于注入自定义植入程序。
在演示运行期间,SetupHijack的输出日志会显示详细的感染事件:
安全影响
尽管SetupHijack仅用于授权测试和研究,但它凸显了许多Windows安装程序进程中的一个关键漏洞——这些进程会信任可被所有人写入的目录中的文件。
组织应加强对文件上传位置的管控,实施严格的完整性检查,并采用安全的编码实践,以防止创建时间/使用时间(TOCTOU)攻击。
此外,使用硬件保护的证书对安装程序进行签名并执行运行时签名验证,可减轻这类漏洞利用的风险。
随着供应链和安装程序安全日益成为攻击目标,像SetupHijack这样的工具既是一种警示,也为针对复杂的竞态条件漏洞加固部署工作流提供了机会。
1. 本版块文章内容及资料部分来源于网络,不代表本站观点,不对其真实性负责,也不构成任何建议。
2. 部分内容由网友自主投稿、编辑整理上传,本站仅提供交流平台,不为该类内容的版权负责。
3. 本版块提供的信息仅作参考,不保证信息的准确性、有效性、及时性和完整性。
4. 若您发现本版块有侵犯您知识产权的内容,请及时与我们联系,我们会尽快修改或删除。
5. 使用者违规、不可抗力(如黑客攻击)或第三方擅自转载引发的争议,联盟不承担责任。
6. 联盟可修订本声明,官网发布即生效,继续使用视为接受新条款。