powershell获取微软o365 21v日志

0x00 背景

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

0x01 实践

第一步,ip权限开通:

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

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

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

第二步,安装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博客

  • 21
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值