0x00 前言
在渗透测试中,如果我们获得了Exchange服务器的管理权限,下一步就需要对Exchange服务器的邮件进行搜索和导出,本文将要介绍常用的两种方法,开源4个powershell脚本,分享脚本编写细节。
0x01 简介
本文将要介绍以下内容:
· 管理Exchange服务器上邮件的两种方法
· 导出邮件的两种方法
· 搜索邮件的两种方法
注:本文介绍的方法均为powershell命令。
0x02 管理Exchange服务器上邮件的两种方法
1.先使用PSSession连接Exchange服务器,进而远程管理邮件
使用PSSession连接Exchange服务器的命令:
$User = "test\administrator" $Pass = ConvertTo-SecureString -AsPlainText DomainAdmin123! -Force $Credential = New-Object System.Management.Automation.PSCredential -ArgumentList $User,$Pass $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://Exchange01.test.com/PowerShell/ -Authentication Kerberos -Credential $Credential Import-PSSession $Session -AllowClobber
补充:
查看PSSession:
Get-PSSession
断开PSSession:
Remove-PSSession $Session
测试命令(获得所有邮箱用户):
Get-Mailbox
2.直接在Exchange服务器上执行管理邮件的命令
测试命令(获得所有邮箱用户的名称):
Add-PSSnapin Microsoft.Exchange.Management.PowerShell.SnapIn; Get-Mailbox
注:不同Exchange版本对应的管理单元名称不同:
· Exchange 2007: Add-PSSnapin Microsoft.Exchange.Management.PowerShell.Admin;
· Exchange 2010: Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010;
· Exchange 2013 & 2016: Add-PSSnapin Microsoft.Exchange.Management.PowerShell.SnapIn;
补充:管理Exchange邮件的常用命令
参考资料:
https://docs.microsoft.com/en-us/powershell/module/exchange/?view=exchange-ps
(1)获得所有邮箱用户名称:
Get-Mailbox -ResultSize unlimited
默认显示1000个用户,加上-ResultSize unlimited可以获得所有用户
(2)获得所有邮箱的信息,包括邮件数和上次访问邮箱的时间
Get-Mailbox | Get-MailboxStatistics
(3)获得所有OU
Get-OrganizationalUnit
(4)通过邮件跟踪日志获得收发邮件的相关信息
参考资料: