Microsoft Exchange用户可以授权给其他用户对其邮箱文件夹进行各种级别的访问。例如,用户可以授予其他用户读取访问其收件箱中里面的电子邮件,但是要是用户(或Exchange管理员)不小心设置了不正确的访问权限,那么这将导致所有的用户都能访问读取其的邮箱。
使用MailSniper,可以快速枚举任何用户可访问的邮箱。在这篇文章中,我将说明此问题是如何产生的,如何查找存在权限问题的邮箱,以及在无需获取邮箱管理员许可的情况下阅读邮箱中的邮件。
更改邮箱权限是所有用户在Microsoft Outlook客户端中都能够轻松完成的事情。如果用户右键单击文件夹“收件箱”,然后单击“属性”,然后文件夹的属性菜单就会打开。
单击“权限”选项卡能看到文件夹当前的设置。这使得事情变得有趣了。单击“添加”按钮,用户可以指定某个账户来授予各种权限。这是非常理想的,因为用户能够限制特定人员的访问。但是你会注意到在“权限”中已经包含了“默认”和“匿名”选项。“默认”项目实质上已经包含了组织中的具有访问邮件权限的每个用户。
如果用户错误地将权限级别“默认”设置为“None”之外的其他选项(除Contributor之外),则这可能允许组织中的每个成员访问该邮件文件夹。
Set-MailboxFolderPermission cmdlet,可以修改这些邮箱权限的设置。
我已经在MailSniper中添加了一个名为Invoke-OpenInboxFinder
的功能,以帮助查找具有设置允许其他用户访问的权限的邮箱。想使用它,我们首先要从目标环境中收集一个电子邮件地址列表。MailSniper有一个名为”Get-GlobalAddressList“的模块,可用于从Exchange服务器检索全局地址列表。它将尝试Outlook Web Access(OWA)和Exchange Web服务(EWS)的方法。此命令可用于从Exchange收集电子邮件列表:
Get-GlobalAddressList -ExchHostname mail.domain.com -UserName domain \ username -Password Spring2017 -OutFile global-address-list.txt
Harmj0y的PowerView来收集电子邮件列表。将PowerView脚本导入PowerShell会话并运行该脚本以获取电子邮件列表:
Get-NetUser | Sort-Object mail | ForEach-Object {$_.mail} | Out-File -Encoding ascii emaillist.txt
收集邮件列表以后,使用Invoke-OpenInboxFinder
功能可以一次检查一个邮箱,以确认当前用户是否可以访问。它还将检查Exchange中是否存在可能被访问的任何公共文件夹。
要使用Invoke-OpenInboxFinder
,需要将MailSniper PowerShell
脚本导入到PowerShell中:
Import-Module MailSniper.ps1
接下来,运行Invoke-OpenInboxFinder
函数:
Invoke-OpenInboxFinder
将尝试自动发现基于邮件服务器电子邮件列表中的第一个条目。如果失败,可以使用
-ExchHostname
标志手动设置Exchange
服务器位置。
在下面的示例中,命令终端以名为”jeclipse
“的域名用户名运行。再从域中的电子邮件列表中运行
Invoke-OpenInboxFinder
后,发现了两个公用文件夹。此外”jQuery
“可以访问”[email protected]
“的收件箱。Invoke-OpenInboxFinder
将会打印出每个项目的权限级别。在输出中可以看到”Default
“项设置为”Reviewer
“。
Invoke-SelfSearch -Mailbox [email protected] -OtherUserMailbox
在下面的截图中,我使用”jeclipse
“账户搜索[email protected]
的邮箱。发现三个结果,其电子邮件的主题或主题中包含了密码或凭证。
用于检查托管在Office365上的邮箱以获得广泛权限的示例命令如下:
Invoke-OpenInboxFinder -EmailList。\ emaillist.txt -ExchHostname outlook.office365.com -Remote
以下是客户使用Office365时的实际评估截图。我们可以在组织中访问单个用户的凭据。通过使用从全局地址列表收集的电子邮件列表运行Invoke-OpenInboxFinder
,我们可以确定组织中的三个单独的账户允许我们的用户阅读他们的电子邮件。
如果可能的话,限制这些类在Outlook客户端上的更改非常有帮助的。我已经找到了几篇旧的文章(2010)说明权限选项卡能够用GPO锁定。我没有尝试过这些文章上面说的任何解决方案,但这值得一试。你可以在这里和这里查看这些文章。
使用MailSniper中的Invoke-OpenInboxFinder功能,或使用Exchange上的
Get-MailboxFolderPermission cmdlet审核组织中所有帐户的设置。
邮箱权限是红蓝和双方都应该注意的问题。通过Outlook在文件夹属性中包含“默认”权限项的方式,这使得用户更有可能错误地授予组织中的所有人对其邮箱进行访问。在红方角度来看,这可以提供在电子邮件中进一步查找访问网络密码或其他敏感数据的机会。蓝方角度则应该担心其一些高级账户(C-Suite类型)意外地与整个公司共享了邮箱,公司员工窥探其他员工,甚至通过这些渠道合法的进行修改邮箱等。
这里特别感谢”doomguy ”,你可以从Github下载MailSniper: https://github.com/dafthack/mailsniper
*作者:blackhillsinfosec,