内网对抗-横向移动篇&ExChange服务&角色发现&有无账户凭据&ProxyShell链&CVE漏洞
➢ 横向移动-Exchange服务-信息收集版本版本
➢ 横向移动-Exchange服务-有无凭据利用思路
➢ 横向移动-Exchange服务-CVE漏洞利用条件
Exchange Server 是微软公司的一套电子邮件服务组件,是个消息与协作系统。内网中,拿下邮件系统会对接下来的目标寻找起到关键的作用。目前exchange 有Exchange Server 2010、2013、2016及2019等多个版本。
攻击者如何攻击Exchange
1、漏洞利用:攻击者寻找并利用Exchange服务器中存在的漏洞。这些漏洞可能是操作系统、Exchange软件或其他组件的安全漏洞。通过利用漏洞,攻击者可以执行恶意代码、获取未授权访问权限或篡改数据。
2、钓鱼攻击:攻击者使用欺骗性手段来诱使用户提供其Exchange凭据或敏感信息。他们可能发送伪装成合法邮件或网站的钓鱼电子邮件,诱使用户点击恶意链接或下载附件。
3、暴力破解:攻击者使用暴力破解工具来尝试破解用户的密码。他们可能使用常见密码列表、字典文件或使用强大的计算资源进行暴力攻击。一旦成功破解密码,攻击者可以获得合法访问Exchange服务器的权限。
信息收集,服务发现
在最初,攻击者会进行信息收集,通过端口扫描、SPN探测等手法发现Exchange服务
1、端口扫描
exchange会对外暴露接口如OWA,ECP等,会暴露在80端口,而且25/587/2525等端口上会有SMTP服务,所以可以通过一些端口特征来定位exchange。
2、SPN扫描
powershell setspn -T 0day.org -q */*
3、脚本探针
python Exchange_GetVersion_MatchVul.py xx.xx.xx.xx
https://learn.microsoft.com/zh-cn/exchange/new-features/build-numbers-and-release-dates
#无凭据
1、暴力破解
Burp+Proxifier
项目
https://github.com/sensepost/ruler
https://github.com/grayddq/EBurst
https://github.com/dafthack/MailSniper
2、漏洞利用(见图漏洞)
在没有凭据的情况下,攻击者可能会尝试利用Proxylogon、Proxyshell等攻击链对Exchange实施攻击,如果攻击成功,能够拿到Exchange的system权限。
#有凭据
0、钓鱼攻击
-利用附件(免杀后门)发给域内其他用户
-利用网站配合监听实现获取ntlm hash(票据)
1、漏洞利用
确定内核版本-筛选Server版本-确定漏洞对应关系-选择漏洞(见图)
漏洞总结复现参考文章:
https://forum.butian.net/index.php/share/1837
https://www.cnblogs.com/xiaozi/p/14481595.html
https://mp.weixin.qq.com/s/HCtLSx9nzXCAco2NyZkn5Q
CVE-2020-0688
利用条件:Exchange Server 2010 SP3/2013/2016/2019,普通账号。
https://github.com/Ridter/cve-2020-0688
https://github.com/W01fh4cker/CVE-2020-0688-GUI
复现环境:rootkit.org域环境(Exchange 2013)
d:\Python3.8\python.exe cve-2020-0688.py -s https://192.168.3.144/owa/ -u rootkit.org\micle -p Admin12345 -c "notepad"
CVE-2020-17144
需要普通用户凭据的情况下的RCE,就Exchange2010能用
https://github.com/Airboi/CVE-2020-17144-EXP
复现环境:0day.org域环境(Exchange 2010)
CVE-2020-17144-EXP.exe owa2010sp3.0day.org webadmin admin!@#45
ProxyShell 漏洞利用链
CVE-2021-34473 Microsoft Exchange ACL绕过漏洞
CVE-2021-34523 Microsoft Exchange权限提升漏洞
CVE-2021-31207 Microsoft Exchange授权任意文件写入漏洞。
攻击者可通过组合这些漏洞在未经身份验证的情况下远程接管目标服务器。
https://github.com/horizon3ai/proxyshell
2、权限维持(后续讲到)