背 景
在一次实战演练中goby扫描到一个sharepoint的getshell漏洞,漏洞cve编号为CVE-2019-0604,本想着一把梭,直接渗透内网,没想到有waf之类的防护,最后还是想办法解决了。
现在网络上各类漏洞利用工具很多,每天都有新的漏洞出来,也不是每个漏洞我们都详细的研究复现过,这些工具的payload大多数都是固定的,如果遇到waf之类的防护就很不爽了,在实战演练中时间紧任务重比的就是手速,重新去搭建相关程序的环境复现就太耽误时间了,其实可以借助抓包提取这类工具的payload,自己再编码进行绕过。
实 战 演 练
我这次遇到的程序是微软的知名程序SharePoint,SharePoint是微软面向企业市场推的一个集成化平台,可以帮助企业集中管理数据、文档、流程,并和其他企业业务系统进行集成。
未更新版本的Microsoft SharePoint 存在远程代码执行漏洞(CVE-2019-0594、CVE-2019-0604,高危),攻击者可在SharePoint应用程序池和SharePoint服务器中执行任意代码。
影响版本:
Microsoft SharePoint Enterprise Server 2016
SharePoint Foundation 2013 SP1
harePoint Server 2010 SP2
SharePoint Server 2019。
攻击入口url:
/_layouts/15/Picker.aspx
这里我直接利用goby exploit进行getshell,可以看到提示文件写入成功,如下图:
这里写入的shell为菜刀默认的一句话webshell,webshell工具连接失败,服务器端有不知名的waf,这里我想通过修改goby的插件代码上传哥斯拉或者冰蝎webshell来绕过waf,但是goby封装的插件我也改不了也看不到代码。
直接找到写入shell的http数据包:
选择fllow->http stream。
拷贝数据包到burpsuite发包,如下图,页面虽然报错但是这里有返回长度264其实就表示成功:
在这里提供个编码工具,具体分析写入payload加密方式:
https://github.com/boxhg/CVE-2019-0604/releases/download/1.0/CVE20190604-Payload.7z
其实就是将如下的xml加密后进行提交,这里直接修改shell内容再加密回去即可。
这里有人会说都能执行命令了为何不直接下载cs木马执行,当时这个机器是不出网的,终究还是要写文件。后来想到思路是:利用windows系统自带的certutil写入转码后的代码(不会出现特殊符号,可以写入复杂的webshell),再利用certutil在服务器上进行解码生成正常的webshell即可。
命令如下:certutil -encode aaa.aspx encode.aspx (本地编码)
将如下代码编码后发包到服务器端再执行:
cmd /c certutil -decode "%CommonProgramFiles%\\Microsoft Shared\\Web Server Extensions\\15\\TEMPLATE\\LAYOUTS\\ua999.aspx"
"%CommonProgramFiles%\\Microsoft Shared\\Web Server Extensions\\15\\TEMPLATE\\LAYOUTS\\ua7771.aspx"
后续用同样的方式写入其他变形类的webshell进行了内网渗透。
END
作者 | vm
编辑 |Ann
本文作者:知微攻防实验室
本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/202586.html