利用MailSniper攻击Exchange:密码喷洒与全局地址列表提取技术

本文详细介绍了如何通过MailSniper工具对面向外部的Exchange服务器(OWA或EWS)进行远程攻击,包括利用Get-GlobalAddressList模块提取全局地址列表,以及使用Invoke-PasswordSprayOWA和Invoke-PasswordSprayEWS模块实施密码喷洒攻击,获取有效凭证的技术方法和实战效果。

利用MailSniper攻击Exchange

Beau Bullock //

我在MailSniper中添加了几个模块,以协助对托管面向外部Exchange服务器(OWA或EWS)的组织进行远程攻击。具体来说,这些模块是Get-GlobalAddressList、Invoke-PasswordSprayOWA和Invoke-PasswordSprayEWS。

Get-GlobalAddressList

在外部渗透测试中,我们经常执行侦察阶段,可能会获取到组织的某些电子邮件地址或用户名。如果我们能成功找到其中任何一个的有效凭证,并且组织有Outlook Web Access或Exchange Web Services门户,就可以从Exchange服务器下载整个全局地址列表(GAL)。因此,从一个有效凭证开始,我们现在可以访问组织中每个员工的所有电子邮件地址。

为了改进Carrie Roberts在其博客文章中关于手动从OWA收集全局地址列表的方法,我将此任务自动化到MailSniper中。Brian Fehrman在OWA中发现了一个非常有趣的功能:有一个名为FindPeople的函数,允许您通过单个请求拉取整个GAL。不幸的是,此功能仅在Exchange 2013版本中实现。在测试中,利用FindPeople函数的Get-GlobalAddressList能够在10秒内从远程OWA门户拉取4282个电子邮件地址。

OWA“FindPeople”方法要求您使用PowerShell版本3或更高版本。

对于Exchange版本低于2013的情况,Get-GlobalAddressList会回退到从Exchange Web Services枚举GAL。由于EWS每次只允许搜索100个结果,这种方法可能需要更长时间。为了绕过此限制,我基本上搜索AA到ZZ,然后对结果进行排序和去重。

要使用它,请将模块导入PowerShell版本3会话,然后运行类似以下命令:

1
Get-GlobalAddressList -ExchHostname mail.domain.com -UserName domain\username -Password Fall2016 -OutFile global-address-list.txt

如果Exchange版本是2013,它应该看起来像这样:

[图像描述:成功提取GAL的终端输出]

获取完整电子邮件列表后,您可以将其反馈到密码喷洒攻击中,很可能会获得更多有效凭证。

说到密码喷洒…

Invoke-PasswordSprayOWA & Invoke-PasswordSprayEWS

我为MailSniper编写了两个模块,用于对Outlook Web Access和Exchange Web Services进行密码喷洒。密码喷洒是一种攻击,其中我们不是尝试对单个用户帐户进行多次密码暴力破解,而是尝试一个密码 across 多个用户帐户。这有助于避免帐户锁定,并且仍然会导致我们获得有效凭证,因为用户仍然选择像“Fall2016”这样的密码。两个函数都是多线程的。只需传递-Threads选项并指定线程数(15似乎是一个很好的起点)。

两个函数具有类似的结构,但需要注意的是,Invoke-PasswordSprayOWA需要PowerShell版本3或更高版本。

要使用Invoke-PasswordSprayOWA,请将模块导入PowerShell版本3会话,然后运行类似以下命令:

1
Invoke-PasswordSprayOWA -ExchHostname mail.domain.com -UserList .\userlist.txt -Password Fall2016 -Threads 15 -OutFile owa-sprayed-creds.txt

要使用Invoke-PasswordSprayEWS,请将模块导入PowerShell会话,然后运行类似以下命令:

1
Invoke-PasswordSprayEWS -ExchHostname mail.domain.com -UserList .\userlist.txt -Password Fall2016 -Threads 15 -OutFile ews-sprayed-creds.txt

当MailSniper找到有效凭证时,您应该开始在终端中看到凭证填充:

[图像描述:密码喷洒成功的终端输出]

在测试中,我注意到EWS密码喷洒方法明显更快。Invoke-PasswordSprayOWA和使用Burp Intruder(15个线程)喷洒10,000个用户大约需要1小时45分钟。而对EWS喷洒相同的用户列表仅用了9分钟28秒。

有关MailSniper的更多信息,请查看此博客文章。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计