0x00:简介
在红队操作期间收集域用户的凭据可能导致执行任意代码,持久性和域升级。但是,通过电子邮件存储的信息对组织来说可能是高度敏感的,因此威胁行为者可能会关注电子邮件中的数据。这可以通过向目标用户的邮箱添加规则来实现,该规则将电子邮件转发到攻击者控制的收件箱,或者将邮箱的访问权委托给他们的Exchange帐户。
Zero Day Initiative的Dustin Childs在Microsoft Exchange中发现了一个漏洞,可能允许攻击者冒充目标帐户。存在此漏洞是因为根据设计,Microsoft Exchange允许任何用户指定推送订阅的URL,Exchange将向此URL发送通知。NTLM哈希值也泄露,可用于通过NTLM中继与Exchange Web服务进行身份验证,泄漏的NTLM哈希值。零日活动博客已涵盖该漏洞的技术细节。
0x01:电子邮件转发
从Outlook Web Access(OWA)门户访问受感染的帐户并选择收件箱文件夹的权限将打开一个包含邮箱权限的新窗口。
收件箱权限
应添加目标帐户以拥有邮箱的权限。这是检索帐户的SID(安全标识符)所必需的
添加目标帐户的权限
在浏览器中打开网络控制台并浏览邮箱文件夹将生成将发送到Microsoft Exchange服务器的请求。
POST请求到Microsoft Exchange
检查请求的HTTP响应将显示管理员帐户的SID。
管理员SID
这次攻击的实施需要来自Zero Day Initiative GitHub存储库的两个python脚本。该serverHTTP_relayNTLM.py脚本需要已检索,交易所的IP地址的目标端口和已经受损,是在红队的控制的电子邮件帐户管理员的SID。
配置serverHTTP_relayNTLM脚本
一旦脚本具有正确的值,就可以执行该脚本以启动中继服务器。
python serverHTTP_relayNTLM.py
中继服务器
该Exch_EWS_pushSubscribe.py要求域凭据和妥协帐户的域和中继服务器的IP地址。
推送订阅脚本配置
执行python脚本将尝试通过EWS(Exchange Web服务)将pushSubscribe请求发送到Exchange。
python Exch_EWS_pushSubscribe.py
pushSubscribe python脚本
交流回应
XML Reponse
管理员的NTLM哈希将被中继回Microsoft Exchange服务器。
中继管理员NTLM
中继管理员NTLM到Exchange
电子邮件将被发送到目标帐户的邮箱(管理员)将自动转发到红队控制下的邮箱。
电邮至目标帐户
电子邮件将在Red Team控制的帐户的收件箱中转发。
电子邮件自动转发
已通过使用NTLM中继对Exchange进行身份验证,为目标帐户创建了一条规则,该规则将所有电子邮件转发到另一个收件箱。这可以通过检查目标帐户的收件箱规则来验证。
规则 - 转发管理员电子邮件
0x02:委托访问
如果Microsoft Exchange用户具有分配的必要权限,则可以将其帐户(Outlook或OWA)连接到其他邮箱(委派访问权限)。尝试在没有权限的情况下直接打开另一个帐户的邮箱将产生以下错误。
打开另一个邮箱 - 没有权限
有一个python 脚本利用相同的漏洞,但不是添加转发规则,而是为帐户分配权限以访问域中的任何邮箱,包括域管理员。该脚本需要有效凭据,Exchange服务器的IP地址和目标电子邮件帐户。
脚本配置
执行python脚本将尝试执行提升。
python2 CVE-2018-8581.py
特权升级脚本
脚本完成后,将显示一条消息,通知用户可以通过Outlook或Outlook Web Access门户显示目标帐户的邮箱。
权限提升脚本 - 委派完成
需要使用Outlook Web Access进行身份验证才能查看委派的邮箱。
Outlook Web Access身份验证
Outlook Web Access具有允许Exchange用户在拥有权限的情况下打开另一个帐户的邮箱的功能。
打开另一个邮箱
屏幕上将显示以下窗口。
打开另一个邮箱窗口
管理员的邮箱将在另一个选项卡中打开,以确认权限的提升。
0x03:原文链接
https://pentestlab.blog/category/red-team/
0x04:文章参考