Xiao7 发布于2022年11月8日 分享 发布于2022年11月8日 0x00 前言 最近,Proofpoint的Matthew Mesa和Axel F发现了一种新的钓鱼方法,攻击者使用故障排除包作为电子邮件附件,诱骗用户运行并秘密执行有效载荷。在文章中,他们介绍了攻击者采用的方法和隐藏方法,提示用户对此保持警惕。 文章链接: https://www . proof point . com/us/threat-insight/post/windows-故障排除-平台利用-交付-恶意软件 本文将从技术研究的角度,介绍如何开发一个包含有效载荷的故障排除包,并结合攻击思路分析防御方法,希望能帮助你对这项技术有进一步的了解。 0x01 简介 Windows故障诊断平台: 翻译Windows故障排除平台,缩写为WTP。 开发者可以基于该平台编写故障排除包,帮助用户解决PC问题。 WTP结构如图所示 图片引自https://msdn.microsoft.com/en-us/library/windows/desktop/dd323706(v=vs . 85). aspx 简要流程如下: 检查故障排除包的数字签名,如果不可用,直接退出。 依次执行检测脚本、解决脚本和验证脚本,尝试解决故障。 生成结果报告和调试报告。 故障排除包: 它由五个部分组成: 清单故障排除(清单故障排除) 检测脚本(检测脚本) 解析脚本(解析脚本) 验证脚本(验证脚本) 本地化资源(本地化资源) 详情见图。 引自https://msdn.microsoft.com/en-us/library/windows/desktop/dd323706(v=vs . 85)。aspx 0x02 开发故障排除包 官方开发工具: tsp设计者 注: 该工具包包含在Windows 7 SDK中 实际上,只有v7.0和v7.1包含了这个工具。 Windows SDK版需要与搭配使用。NET Framework 3.5 SP1,下载地址如下: https://www.microsoft.com/en-us/download/details.aspx?id=3138 Windows SDK版需要与搭配使用。NET框架4。下载地址如下: https://www.microsoft.com/en-us/download/details.aspx?id=8279 TSPDesigner位于默认目录c:\ program files \ Microsoft sdks \ windows \ v 7.1 \ bin \ tsp designer中,包含以下内容: 画 详细的开发介绍可以参考: https://msdn . Microsoft . com/en-us/library/windows/desktop/DD 323712(v=vs . 85)。aspx 以下示例演示了如何通过TSPDesigner生成测试故障排除包。 1.设置属性,也就是故障包的第一页 项目名称:testwtp 项目描述:故障排除包测试 隐私网址:https://3gstudent.github.io/ 画 2.添加root cause,点击Add New Root Cause,设置故障信息 根本原因ID:服务已停止 根本原因名称:服务已停止。 根本原因描述:服务已停止。您需要启用它。 画 3.设置Troubleshooter 如图,指定需要提升权限,关闭交互。 4.设置Resolver 解析程序名称:StartTheService 解析程序描述:启动服务。 提示用户:否 仰角:是 互动:否 画 指定提升权限、关闭用户警告和关闭交互的需求。 5.设置Verifier 不,您不需要确保故障已解决。 6.设置Scripts 画 注: 这里的故障排除程序脚本和解决程序脚本已经具有管理员权限,因为提升的权限是在步骤3和4中指定的。 有效载荷可以在这里添加。 7.设置数字签名 选择项目-选项并找到代码签名。 画 您可以选择使用测试证书或指定证书。 默认情况下,选择“使用生成的测试证书”。 8.生成 选择构建-构建包 生成以下文件: 画 1. TS _ ServiceIsStopped.ps1对应于疑难解答脚本。 RS _ ServiceIsStopped.ps1对应解析器脚本。 注: 看这两个ps脚本,可以发现其中包含的有效载荷。 2. Testwtp.diagpkg是一个manifest文件,包含故障排除包中的参数,格式为xml。请参考: https://msdn . Microsoft . com/en-us/library/windows/desktop/DD 323781(v=vs . 85)。aspx 3. DiagPackage.cat保存故障排除包的数字签名。 注: 双击可以查看DiagPackage.cat文件中的数字签名。 画 4. cab目录下的Testwtp.diagcab是一个打包的故障排除包,里面包含了上述文件的信息。 如图,在运行过程中执行负载,弹出管理员权限的cmd.exe。 0x03 测试运行故障排除包 把生成的。另一个测试系统中的diagcab文件。 报告错误,如图所示 这是因为新系统无法识别所使用的默认测试证书。可以在TSPDesigner的同级目录下找到证书文件TestWindowsTroubleShooting.cer,安装到受信任的根证书颁发机构,如下图所示。 数字签名被成功识别,如下图所示 注: 此处显示的发行者名称对应于用于签名证书的颁发者,即TestCertForWindows疑难解答。 当然,如果使用默认的可信证书,故障排除包在默认情况下是可信的,可以直接运行。 点击隐私声明,会弹出步骤1中设置的隐私网址:https://3gstudent.github.io/. 画 到目前为止,测试故障排除包已经成功实现。 0x04 小结 在渗透测试中,使用故障排除包有以下好处: 比较隐蔽,diagcab文件并不常见。 更具有欺骗性,用户往往会对故障排除功能失去警惕。 可以直接获得管理员权限。 嵌入式钓鱼页面,可以指定隐私声明的链接。 防御建议: 微软从一开始就注意到了这个问题,所以在troubleshooting pack中加入了数字签名验证。所以在对pack进行故障排除时(比如某个操作触发了bug修复),首先需要判断发布者的身份。 注: 默认情况下,Microsoft提供的故障排除包中的发布者名称是Microsoft Corporation。 留下回复 链接帖子 意见的链接 分享到其他网站 更多分享选项…
推荐的帖子