邮件服务器的渗透,渗透基础——从Exchange服务器上搜索和导出邮件
在渗透测试中,如果我们获得了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
查看发件人test1@test.com从2019年1月1日9:00至今发送的所有邮件的相关信息(包括发件人,收件人和邮件主题):
Get-MessageTrackingLog -Start "01/11/2019 09:00:00" -Sender "test1@test.com"
返回的结果很杂乱,其中包括多个事件:
DSN
· Defer
· Deliver
· Send
· Receive
只筛选出发送事件,使返回结果更简洁:
Get-MessageTrackingLog -EventID send -Start "01/11/2019 09:00:00" -Sender "test1@test.com"
统计每天收发邮件数目的脚本:
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
邮件服务器的渗透,渗透基础——从Exchange服务器上搜索和导出邮件相关推荐
- 渗透基础——从Exchange服务器上搜索和导出邮件
0x00 前言 在渗透测试中,如果我们获得了Exchange服务器的管理权限,下一步就需要对Exchange服务器的邮件进行搜索和导出,本文将要介绍常用的两种方法,开源4个powershell脚本,分 ...
- 5s邮箱怎么总是连不上服务器,outlook 经常连不到exchange 服务器
Autodiscover Account Settings XML response:< ?xml version="1.0"?>< Autodiscover x ...
- 邮件里面的图怎么复制出来_如何从INS批量导出邮件开发新的客户,推广产品和找reviewer【小技巧】...
我在昨天的文章中已经和大家分享了如何避免自己的邮箱被自己的服务器和对方的服务器被标记为spammer,昨天的文章主要的目的是教大家如何prep自己的邮件,并且利用外部的邮件资源批量发送邮件的方法进一步 ...
- Exchange服务器系列课程之四--管理Exchange收件人
前面已经讨论了Exchange的安装,今天我们来讨论一下Exchange服务器的用户管理.管理Exchange的工具在第二篇文章已经讨论过了,这里不再阐述. Exchange中的收件人对象有三种:用户 ...
- 微软督促客户修复本地 Exchange 服务器
聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 微软正在督促客户升级Exchange 服务器并采取多种措施加固环境安全如启用Windows 扩展防护功能并配置基于证书的PowerShell序列 ...
- 众唱点歌机会显示无法连接服务器,目前众多厂商唱多的服务器附加存储缺点分析...
服务器附加存储相对传统共享存储更加易于使用和部署.理论上,其部署不再需要特殊的存储网络技术,也不存在需要特殊配置技术的共享存储设备.存储软件的部署可以作为管理程序的一部分随着管理程序的安装而自动部署, ...
- 内网渗透(八十一)之搭建Exchange服务器
搭建Exchange服务器 环境安装准备 1.Windows Server 2012 R2以管理员身份运行Windows Powershell,安装必需的 Windows组件: Install-Win ...
- 2021年6月7日08点37分 渗透测试基础部分
1.基础知识 1.1.HTTP 一个客户端请求应答的标准 基于TCP层次的应用层协议,默认端口80 1.2.HTTPS 以安全为目标的HTTP通道,简单来说是HTTP的安全版,既HTTP下加入SSL层 ...
- 【渗透测试基础-3】渗透测试信息收集的内容及方法
目录 1 信息收集概述 1.1 目的 1.2 收集内容 2 收集域名信息 2.1 Whois查询 2.1.1 Whois简介 2.1.2 Whois操作 2.2 反查 2.3 备案信息查询 3 收集子 ...
- 《内网安全攻防:渗透测试实战指南》读书笔记(一):内网渗透测试基础
目录 前言 一.内网基础知识 1.工作组 2.域 3.活动目录 (1)活动目录的功能 (2)DC和AD区别 4.安全域的划分 (1)DMZ (2)内网 5.域中计算机的分类 6.域内权限 (1)组 ( ...
最新文章
- [您有新的未分配科技点]可,可,可持久化!?------0-1Trie和可持久化Trie普及版讲解...
- php拦截器配置,php 类中的各种拦截器
- freemaker中配置文件freemarker.properties详解
- Can‘t connect to MySQL server on ‘localhost‘ (10061) 解决方法
- 如何在 Outlook 中使用外出时的助理程序
- 深度学习中不得不学的Graph Embedding方法
- 大数据分析的作用与注意事项
- 没有副业的人,太难了。。。
- [Bzoj3233][Ahoi2013]找硬币[基础DP]
- MSagent 学习笔记
- 专业的在线考试系统-快考题,支持自制题库/在线试卷答题
- avr单片机动态数码管c语言,AVR单片机8位数码管显示的程序实现(两种方法介绍)...
- 中国纯碱市场产销现状与投资效益预测报告(2022-2027年)
- exls表格搜索快捷键_excel表格查找快捷键|excel表格的常用功能快捷键介绍
- Android 自定义实现倒三角图片
- 这些免费、可商用的图片素材网站,绝对不能错过
- grunt的基本使用
- mysql 脏页刷新_InnoDB脏页刷新机制
- ajax中返回sucess里使用this.$message()
- Python-数据库
热门文章
- 什么是APS高级计划排程系统?APS计划排产有什么功能和作用?
- 消息中间件----ActiveMQ
- 华为硬件工程师社招机考题库_华为硬件工程师笔试题
- ppt技巧一四步法调整段落排版
- movie制作的电影站wordpress视频主题
- 6.	Zigbee应用程序框架开发指南 - 应用程序框架Callback接口
- uni 获取本地文件_uni-app 图片(文件) 本地存储解决方案
- html扑克牌展开,HTML5 canvas扑克牌花式洗牌动画
- 计算机怎么怎么打文件夹加密文件,电脑文件夹怎么加密 4种文件夹加密方法
- go mod tidy报错verifying module: invalid GOSUMDB: malformed verifier id