渗透测试中的Exchange

作者:daiker@360Linton-Lab
0x00 前言在渗透测试过程中,Exchange是一个比较奇妙的角色.
一方面,Exchange在外网分布很广,是外网打点人员进入内网的一个重要渠道.

渗透测试中的Exchange

文章插图
 
另外一方面,Exchange在域内有着重要的地位,一般来说,拿到Exchange服务器的权限,基本等同于拿到域管的权限.因此他又是内网选手重点关注对象.
本文将总结部分Exchange已知的特性以及漏洞.
没有Exchange凭据的情况,主要有
  1. 爆破
  2. 泄露内网信息
  3. 配合钓鱼进行NTLM_Relay
有Exchange凭据的情况下,主要有
  1. 导出邮箱列表
  2. Exchange RCE漏洞
  3. Exchange SSRF 进行NTLM_Relay
  4. 使用hash/密码 操作EWS接口
  5. 攻击outlook客户端
  6. 从Exchange到域管
以下详细说明
 
0x01 爆破在外网,看到开着Exchange,出现如下界面,我们可能第一反应就是爆破.
渗透测试中的Exchange

文章插图
 
出现上面那种还好,burp拦截下,爆破开始
但是在渗透过程中,经常出现以下这种情况
渗透测试中的Exchange

文章插图
 
对于这种情况,我们无需绕过验证码即可进行爆破.
事实上,除了上面那个界面之外,以下接口都可进行爆破,而且支持Basic认证方式.
/ecp,/ews,/oab,/owa,/rpc,/api,/mapi,/powershell,/autodiscover,/Microsoft-Server-ActiveSync这里推荐使用https://github.com/grayddq/EBurst这款工具,他能寻找可以爆破的接口,从而进行爆破
Python EBurst.py -L users.txt -p 123456abc -d mail.xxx.com有个需要注意的点就是这款工具不支持自签名证书,我们手动改下,忽略证书错误就行
渗透测试中的Exchange

文章插图
 
0x02 泄露内网信息1. 泄露Exchange服务器内网IP 地址把HTTP协议版本修改成1.0,然后去掉http头里面的HOST参数 或者使用msf auxiliary/scanner/http/owa_iis_internal_ip
渗透测试中的Exchange

文章插图
 

渗透测试中的Exchange

文章插图
 
可用以匹配的接口列表有
/Microsoft-Server-ActiveSync/default.eas/Microsoft-Server-ActiveSync/Autodiscover/Autodiscover.xml/Autodiscover/Exchange/Rpc/EWS/Exchange.asmx/EWS/Services.wsdl/EWS/ecp/OAB/OWA/aspnet_client/PowerShell有两个坑点
  • 如果测试的是文件夹,后面没加/,比如/owa,有些环境会重定向到/owa/,可能导致无法获取到IP

渗透测试中的Exchange

文章插图
 
  • msf的脚本里面限定了内网IP范围,如果企业是自定义的内网IP,可能无法获取到IP(代码)

渗透测试中的Exchange

文章插图
 
2. 泄露Exchange服务器操作系统,主机名,NetbIOS名由于支持ntlm认证,在文章利用ntlm进行的信息收集里面已经讲过
在type2返回Challenge的过程中,同时返回了操作系统类型,主机名,netbios名等等 。这也就意味着如果我们给服务器发送一个type1的请求,服务器返回type2的响应,这一步,我们就可以得到很多信息 。
因此我们可以获取很多信息了,这里使用nmap进行扫描
sudo nmap MAIL-p 443 --script http-ntlm-info --script-args http-ntlm-info.root=/rpc/rpcproxy.dll
渗透测试中的Exchange

文章插图
 
0x03 导出邮箱列表1. 使用rulerruler_windows_amd64.exe --insecure --url https://MAIL/autodiscover/autodiscover.xml--email daiker@Linton-Lab.com -u daiker -p 密码 --verbose --debug abk dump -o list.txt2. 使用MailSniper.ps1https://github.com/dafthack/MailSniper/blob/master/MailSniper.ps1
Get-GlobalAddressList -ExchHostname MAIL -UserName CORPdaiker -Password 密码 -OutFile global-address-list.txt3. 使用burp登录exchange owa,右上角点击人员,左侧所有人员,抓包
一个POST类型的包
POST /owa/service.svc?action=FindPeople&ID=-34&AC=1
Body中有这个字段
渗透测试中的Exchange

文章插图
 
默认是80
然后查看响应包,拉到最后
渗透测试中的Exchange

文章插图
 


推荐阅读