版本 1.0.0。该工具是一个概念验证(PoC),用于演示攻击者如何通过基于SMB或HTTP的NTLM中继攻击,针对本地 Microsoft Exchange 服务器上的 EWS 端点,从而入侵受害者的邮箱。该工具为攻击者提供了一个类似 OWA 的界面,可访问用户的邮箱和联系人。
在 Defcon26 上发布。查看该工具的背景、被利用的核心问题以及录制的演示:https://blog.quickbreach.io/one-click-to-owa/
pip install -r requirements.txt
./exchangeRelayx.py -t https://mail.quickbreach.com
该应用程序分为 owaServer、中继服务器以及为每个新中继连接创建的 HTTPAttack 客户端(exchangePlugin)。
owaServer 是一个基于 Flask 的 Web 服务器,默认监听 http://127.0.0.1:8000。该 Web 服务器提供 index.html、OWA.html 和 ComposeEmail.html 的静态 HTML 文件,其他所有内容均通过来自 EWS.js 的 JSON 请求加载到 owaServer 端点。当向 owaServer 发出请求时,owaServer 会生成适当的 EWS 调用并将其输入到 owaServer 和 exchangePlugin 共用的共享内存字典中。一旦 exchangePlugin 收到请求,它会将其发送到 Exchange,然后将响应加载到同一共享内存字典中。最后,当 owaServer 从字典中获取响应时,它会解析数据并返回结果。您会注意到文件下载功能并非标准网站的实现方式,这是由于应用程序的异步特性。
中继服务器是标准的 impacket HTTP 和基于 SMB 的 NTLM 中继服务器,它们将为每个新中继连接创建一个新的 exchangePlugin 实例。
简而言之,exchangePlugin 是实际向 EWS 服务器发送和接收请求的 HTTPClient。所有 exchangePlugin 在初始化时都会被传递同一个共享内存字典,并使用此字典进行进程间通信。这使得来自 owaServer 的请求可以传递回相应用户的中继连接,从而为多受害者管理提供了更大的灵活性。
该工具是在 Server 2012 R2 系统上针对 Exchange 2013 构建和测试的,因此我推测在其他环境中可能需要进行调整。工具接下来几个迭代的一些目标包括:
非常欢迎拉取请求。