powershell获取微软o365 21v日志

2024-03-08 1659阅读

温馨提示:这篇文章已超过396天没有更新,请注意相关的内容是否还可用!

0x00 背景

o365 21v为o365的大陆版本,主要给国内用户使用。微软提供了powershell工具和接口获取云上日志。微软o365国内的代理目前是世纪互联。本文介绍如何用powershell和配置证书拉取云上日志。

0x01 实践

第一步,ip权限开通:

由世纪互联运营的 Office 365 的 URL 和 IP 地址范围 - Microsoft 365 Enterprise | Microsoft Learn

powershell获取微软o365 21v日志

需要开通这个子菜单下面所有ip/domain的访问权限。

特别是 login.parter.microsoftonline.cn 这个域名

powershell获取微软o365 21v日志

第二步,安装EXO (Exchange Online PowerShell) :

Install-Module -Name ExchangeOnlineManagement

Import-Module ExchangeOnlineManagement

这两个命令表示在有网络的情况执行安装模块和导入模块。

第三步,连接Exchange Online Server。

由于Basic Auth不被推荐使用,故这里使用证书验证的方式,好处是可以不依赖于用户名密码。

如何使用证书连接Exchange Online Server ?

需要所属企业Exchange管理员协助申请一个证书。将证书安装在需要访问EXO的服务器上。连接代码如下:

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12  
$TenantId ="4edexxxx-xxxx-xxxxa-xxxx-8xxxxxxxxxx8"
$ApplicationId ="477xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
$CertificateThumbprint ="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" #安装好证书后在证书里查看
$Cert = Get-ChildItem Cert:\LocalMachine\My\$CertificateThumbprint
Connect-ExchangeOnline -ExchangeEnvironmentName O365China -Certificate $Cert -AppID $ApplicationId -Organization YourUnitcloud.partner.onmschina.cn

 第四步,用脚本自动化实现。

官方没有给脚本,可能是怕调用的用户多增加服务器的压力。github上可以找到开源的脚本:

https://github.com/PwC-IR/Office-365-Extractor/

自己根据需要改一改,就可以自动化了。

我使用的是筛选指定组日志功能:

脚本选择关注的类型:

ExchangeAdmin,ExchangeItem,ExchangeItemGroup,AzureActiveDirectory,AzureActiveDirectoryStsLogon

最常用的是AzureActiveDirectoryStsLogon日志。

代码修改例如:

原代码逻辑 Menu -> Main , 很多循环里都有重新进入Menu的逻辑,所以改代码是为了避免日志收取重复,需要注释掉多余的 Menu。例如我想让程序强制执行第4个switch,那么在它里面我将多余的两处Menu删除,这样程序可以自动停止,便于设计成计划任务。

例如设置成每小时运行:

schtasks /create /tn "o365" /ru system /tr "cmd /c powershell c:\o365.ps1" /sc hourly 

 防止执行不了ps1也可以将语句修改成:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe  -ExecutionPolicy Bypass -File D:\scpit\test.ps1

 

0x02 后记

1.查询所有用户一天日志量:

Calculating the number of audit logs

ExchangeAdmin: 130

ExchangeItem: 23785

ExchangeItemGroup: 13709

SharePoint: 85

SharePointFileOperation: 522

AzureActiveDirectory: 4589

AzureActiveDirectoryStsLogon: 23912

SecurityComplianceCenterEOPCmdlet: 391

PowerBIAudit: 9761

CRM: 745

SharePointListOperation: 22

PowerAppsApp: 71

DataInsightsRestApiAudit:

--------------------------------------

Total count:  77742

查询某个用户的日志量:

AzureActiveDirectoryStsLogon: 19

2.powershell 获取当前时间:

Get-date -format "yyyy-MM-dd"

3.发现脚本一个问题,就是选择了部分组,最后拉取也是全部组,但选择全部组,可能会卡住拉不下来日志。

4.警告: 无法从 URI“https://go.microsoft.com/fwlink/?LinkID=627338&clcid=0x409”下载到“”。_go.microsoft.com下载失败-CSDN博客

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]