Skip to content

漏洞利用 CVE 2019 0604 SharePoint GetShell Exploit

k8gege edited this page Nov 2, 2019 · 7 revisions

0x001 漏洞信息

Microsoft SharePoint是美国微软(Microsoft)公司的一套企业业务协作平台。该平台用于对业务信息进行整合,并能够共享工作、与他人协同工作、组织项目和工作组、搜索人员和信息。

Microsoft SharePoint 远程代码执行漏洞(CVE-2019-0594、CVE-2019-0604,高危):Microsoft SharePoint软件无法检查应用程序包源标记时触发该漏洞。攻击者可在SharePoint应用程序池和SharePoint服务器中执行任意代码。

0x002 影响版本

Microsoft SharePoint Enterprise Server 2016
SharePoint Foundation 2013 SP1
harePoint Server 2010 SP2
SharePoint Server 2019。

0x003 攻击入口

ItemPicker Web 控件实际上从来没有在一个 .aspx 页面中使用过。但是看看它基类型的用法,EntityEditorWithPicker,说明在 /_layouts/15/Picker.aspx 应该有一个 Picker.aspx 文件使用了它。

该页面要求使用选择器对话框的类型通过 URL 的 PickerDialogType 参数的形式提供。在这里,可以使用以下两种 ItemPickerDialog 类型中的任何一种:

· Microsoft.SharePoint.WebControls.ItemPickerDialog in             Microsoft.SharePoint.dll

· Microsoft.SharePoint.Portal.WebControls.ItemPickerDialog in Microsoft.SharePoint.Portal.dll

利用第一种 PickerDialogType 类型

 

### 0x004 PoC

当表单提交 ctl00$PlaceHolderDialogBodySection$ctl05$hiddenSpanData 的值以 “__” 为开头时(类似于“_dummy”),

EntityInstanceIdEncoder.DecodeEntityInstanceId(string) 处的断点将显示以下情况:而调用另外一种 ItemPickerDialog 类型时,函数调用栈只是在最上面的两个有所不同。

这表明 ctl00$PlaceHolderDialogBodySection$ctl05$hiddenSpanData 的数据最终出现在了 EntityInstanceIdEncoder.DecodeEntityInstanceId(string) 中。 剩下的只需要拷贝实例 ID 和构造一个 XmlSerializer 的 payload 就可以了。

0x005 补充

作者说只要构造一个XML序列化的Payload就可以了,但是Payload提交到哪里呢?

原文中只说了一半,完整POST以及具体参数如下:

URL: /Picker.aspx?PickerDialogType=控件的程序集限定名 

参数: ctl00%24PlaceHolderDialogBodySection%24ctl05%24hiddenSpanData=payload

实际上还需访问Picker.aspx附带的其它参数,测试我不附带其它参数时提交表单是失败的。

 

 

0x006 实战

python cve-2019-0604-exp.py http://k8gege.github.io

若成功返回WebShell地址

UAshell访问报错,大家不要慌,原本设计就是这样子

使用K8飞刀CMD连接,当然你可以通过CMD下载其它的WebShell过去管理

比如菜刀,因为飞刀UA系列的WebShell除了过WAF,均无文件管理功能

使用UA而不使用菜刀一句话,是因为菜刀一句话都是POST,容易被WAF拦截

当然你传过去后发现目标无WAF或无杀软,再传其它Webshell或植入远控都可以

0x007 Cscan批量

Cscan.ini
[Cscan]
exe=F:\Python279\python.exe
arg=cve-2019-0604-exp.py $ip$
Cscan根目录放url.txt,启动Cscan即可批量利用

0x008 下载

https://github.com/k8gege/CVE-2019-0604

 https://github.com/k8gege/K8tools/raw/master/cve-2019-0604-exp.py

Clone this wiki locally