介绍MailSniper:一款搜索所有用户邮箱敏感数据的工具
Beau Bullock //
摘要
MailSniper是一款针对Microsoft Exchange环境的渗透测试工具,用于搜索特定关键词(如密码、内部情报、网络架构信息等)。它可作为非管理员用户搜索自己的邮箱,或由Exchange管理员搜索域内所有用户的邮箱。
MailSniper下载地址:https://github.com/dafthack/MailSniper
概述
在渗透测试中,我们经常获得组织内的域管理员(Domain Admin)权限。但仅获得DA权限并不足以向管理层展示实际风险。最佳的风险演示方式是证明能够访问敏感数据。敏感数据因公司而异,常见类型包括客户信息、信用卡号、社保号、员工信息、知识产权、工业控制系统/SCADA、医疗数据等。
根据2016年Mandiant M-Trends报告,2015年组织被入侵后检测到漏洞的中位时间为146天。攻击者有充足时间缓慢获取操作意识、定位敏感数据并外泄。作为渗透测试人员,我们通常只有不到5天时间完成评估,如何快速展示类似风险?
本文将详细介绍我开发的新工具MailSniper,它通过搜索每位员工的邮箱关键词来协助定位网络中的敏感数据。
为何搜索邮箱?
现有工具如PowerView(Invoke-ShareFinder和Invoke-FileFinder)可搜索网络共享文件中的敏感数据,但在大型网络或攻击面较小时效果有限。邮箱作为组织内主要通信系统,常包含日常业务讨论、密码重置甚至企业策略信息。
搜索邮箱能高效发现敏感数据。例如:
- 搜索"password“可能返回系统访问指令和凭据
- 在能源公司搜索”scada“可能揭示ICS设备位置
- 在金融机构搜索”credit card“可能发现明文发送的信用卡号
- 在医疗组织搜索”SSN“可能暴露医疗数据
实际案例:搜索”database“发现系统管理员团队讨论KeePass数据库位置和密钥文件,最终获取了所有数据库、网络设备、安全产品、Windows管理员密码等凭据。
MailSniper.ps1
下载地址:https://github.com/dafthack/MailSniper
选择PowerShell开发的原因:
- PowerShell脚本便携性强
- 已有连接Exchange Web Services(EWS)的基础脚本
Microsoft Exchange Server 2007及以上版本实现了EWS API,允许远程访问日历、联系人和邮件数据。EWS提供高度灵活的远程搜索能力,无需交互会话(如RDP、VNC)。
研究过程中发现EWS的另一有用功能:搜索当前用户自身邮箱。因此,MailSniper包含两个主要功能:Invoke-GlobalMailSearch和Invoke-SelfSearch。
Invoke-SelfSearch
此功能搜索当前用户邮箱中的关键词。在渗透测试中,结合获取的其他用户凭据,搜索其邮箱成为新的权限提升向量。
使用方法:
- 使用
-exec bypass
选项打开PowerShell终端绕过执行策略 - 导入MailSniper.ps1模块
- 运行命令:
|
|
默认搜索最新100封邮件中的”pass"、"creds"、"credentials“关键词。
可选参数:
ExchHostname
:Autodiscover失败时指定Exchange服务器主机名Terms
:搜索关键词,默认为”password"、"creds"、"credentials"ExchangeVersion
:指定Exchange服务器版本,默认为Exchange2010OutputCsv
:输出结果到CSV文件MailsPerUser
:搜索邮件数量,默认为100
Invoke-GlobalMailSearch
此功能搜索Exchange服务器上所有邮箱。需要"Exchange Organization Administrators"组权限(Exchange 2013中为"Organization Management")。
如果未获得Exchange管理员账户,域管理员可运行以下命令添加用户到组:
|
|
研究发现了"ApplicationImpersonation"角色,允许用户模拟其他用户访问邮箱。可通过Exchange Management Shell授予:
|
|
Invoke-GlobalMailSearch通过PowerShell远程会话到Exchange服务器,授予指定用户ApplicationImpersonation角色,然后使用EWS搜索所有邮箱中的关键词。
使用方法:
|
|
此命令连接到Exchange服务器,提示输入管理员凭据,建立PS远程会话,授予模拟角色,收集所有邮箱地址,搜索每个邮箱的最新100封邮件中的默认关键词,并输出到CSV文件。
完整参数列表:
ImpersonationAccount
:当前用户名,将被授予ApplicationImpersonation角色ExchHostname
:Autodiscover失败时指定Exchange服务器AutoDiscoverEmail
:用于自动发现Exchange服务器的有效邮箱地址AdminUserName
:Exchange管理员用户名(含域)AdminPassword
:管理员密码Terms
:搜索关键词ExchangeVersion
:Exchange服务器版本OutputCsv
:输出CSV文件MailsPerUser
:搜索邮件数量EmailList
:要搜索的邮箱地址列表文件
演示视频
[视频链接]
结论
MailSniper使渗透测试人员能快速发现网络中的敏感数据,并可能用于权限提升。蓝队也可用它定期检查员工是否违反政策发送敏感信息。目前MailSniper处于测试阶段,未来发展目标已在规划中。
下载MailSniper:https://github.com/dafthack/MailSniper