Exchange Server HTTPS Wireshark 抓取明文报文

注意
本文最后更新于 2024-03-01,文中内容可能已过时。

Exchange Server HTTPS Wireshark 抓取明文报文

渗透技巧——Pass the Hash with Exchange Web Service (3gstudent.github.io)

众所周知 Exchange Server 的 HTTPS 报文分为两种,一种是外部进来的请求,另外一种是通过代理转发内部的处理的请求。

image-20231023114145351

本文演示的配置操作可以直接在 Wireshark 上查看到明文的 HTTPS 请求。

新建一个目录,使用 mimikatz,命令如下:

mimikatz.exe crypto::capi "crypto::certificates /systemstore:local_machine /store:my /export"

这条命令会在当前文件夹下导出多个证书文件,如下图

image-20231023112720927

通过命令行实现对证书信息的获取,代码可参考:https://github.com/3gstudent/Homework-of-C-Sharp/blob/master/SSLCertScan.cs

image-20231023112840855

在实际操作中,我会直接导入所有的 pfx 证书。注意,这里证书的密码都是 mimikatz。操作如下图:

image-20231023113355530

参考资料:

https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/demystifying-schannel/ba-p/259233#

通过注册表关闭 ECDH 的 cmd 命令:

reg add hklm\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\KeyExchangeAlgorithms\ECDH /v Enabled /t REG_DWORD /d 0 /f

关闭之后,通过SSLCertScan再次获取证书信息,Key Exchange AlgorithmECDH Ephemeral变为RsaKeyX,如下图

image-20231023113702767

至此,Exchange Server配置完成,再次捕获数据,能够获得明文通信数据。但是在我实际操作中,并不可以抓取明文数据。接着我继续跟着参考文章去操作。

省略,查看参考文章。

我这里使用 Firefox 浏览器,发现 Server 因为关闭 ECDH重启之后无法访问了。报错 NS_ERROR_NET_INADEQUATE_SECURITY。

image-20231023114431932

我们需要配置 Firefox 的 HTTP2 选项才可以访问。

在 about:config 修改 network.http.http2.enabled 的值为 False 后,刷新网页即可。

image-20231023114811162

image-20231023114904553

实际操作下来,我进行了重启和等待之后,在 Wireshark 就可以查看解密后的 HTTPS 请求了。

以我的机器为例子,Ethernet0 接口是查看外部报文的接口;而 loopback 接口就是查看代理转发内部处理的报文的接口了。这两个接口的报文分别对应文章开头的两种报文。

image-20231023115115044

image-20231023115432128

image-20231023115601808

reg delete hklm\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\KeyExchangeAlgorithms\ECDH /v Enabled /f