Skip to content
KitploitKITPLOIT
工具博客
Log in
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
365Inspect — 一个用于自动化 Microsoft 365 环境安全评估的 PowerShell 脚本。 | Kitploit
工具/GitHubGitHub/soteria-security/365inspect
防御工具漏洞扫描器配置审计渗透测试云安全
GitHubsoteria-security/365inspect

365Inspect

一个用于自动化 Microsoft 365 环境安全评估的 PowerShell 脚本。

查看仓库
660114201年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站





目的

编写一个 PowerShell 脚本,自动化 Microsoft 365 环境的安全评估,以推进 Microsoft 365 安全领域的发展。

Soteria Inspect

Soteria Inspect 源自 365Inspect 项目,是 Soteria 的 SaaS 解决方案,旨在协助评估 Microsoft 365 租户的安全性,涵盖 Microsoft 365 全套服务中的 200 多个检查点。

Microsoft 365 版 Soteria Inspect 允许客户跟踪每个发现项所影响的对象随时间的变化以及修复工作,现在还包括为 MSP 和上级组织提供的多租户功能,以便随时了解其子租户的情况。

Microsoft 365 版 Soteria Inspect 可直接通过 Soteria 或通过 Azure Marketplace 获取

查看我们所有的 Microsoft 365 版 Soteria Inspect 产品

查看功能对比!

365Inspect 社区版与 Microsoft 365 版 Soteria Inspect 对比

设置

365Inspect 社区版需要用于 Exchange 管理、Microsoft Graph、Microsoft Teams 和 SharePoint 管理的管理 PowerShell 模块。

365Inspect 现已兼容 PowerShell Core (6+),并且由于所需的模块依赖关系,需要 Microsoft Windows 操作系统。

365Inspect.ps1 PowerShell 脚本将验证已安装的模块以及检查器运行所需的最低模块版本。

如果您没有安装这些模块,系统将提示您安装它们,得到您的同意后,脚本将尝试安装。否则,您可以通过在管理 PowerShell 提示符下运行以下命令,或按照下方参考文档中的说明进行安装:

Install-Module -Name ExchangeOnlineManagement -AllowClobber -Force

Install-Module -Name PnP.PowerShell -AllowClobber -Force

Install-Module -Name Microsoft.Graph -AllowClobber -Force

Install-Module -Name MicrosoftTeams -AllowClobber -Force

安装 Exchange Online PowerShell

安装 SharePoint PnP PowerShell 模块

安装 Microsoft Graph SDK

安装 Microsoft Teams

安装完上述模块后,使用浏览器或通过 git clone 从 Github 下载 365Inspect 源码文件夹。

重大变更

PnP.PowerShell 模块

自 2024 年 9 月 9 日起,PnP.PowerShell 要求租户管理员注册自己的应用程序以用于 SharePoint/PnP 服务。

请参阅以下 PnP.PowerShell 文档了解所需步骤。 注册一个 Entra ID 应用程序以用于 PnP PowerShell 确定权限 身份验证

注意:如果您使用的是 PowerShell 5.1,PnP PowerShell 不再兼容,所有 SharePoint 检查器将在运行时被排除。

有一个可运行的命令可以 自动完成此步骤。```powershell Register-PnPEntraIDAppForInteractiveLogin -ApplicationName "PnP Rocks" -Tenant [yourtenant].onmicrosoft.com -Interactive

__请记住所创建应用程序的名称或应用程序/客户端ID。这是现在进行身份验证所必需的,系统会提示你输入AppID!__

# 模块兼容性

目前,Microsoft.Graph 和 Microsoft.Graph.Beta 模块版本 2.23.0 与 ExchangeOnlineManagement 版本 3.5.1 不兼容。
以下版本兼容:
- Microsoft.Graph 版本 2.21.1
- Microsoft.Graph.Beta 版本 2.21.1
- ExchangeOnlineManagement 版本 3.5.0

可以使用以下命令安装兼容版本:```powershell
Install-Module -Name Microsoft.Graph -Scope CurrentUser -RequiredVersion 2.21.1 -AllowClobber -Force
Install-Module -Name Microsoft.Graph.Beta -Scope CurrentUser -RequiredVersion 2.21.1 -AllowClobber -Force
Install-Module -Name ExchangeOnlineManagement -Scope CurrentUser -RequiredVersion 3.5.0 -AllowClobber -Force

由于您将以管理员权限运行 365Inspect,应将其放置在合理的位置,并确保文件夹内容仅对管理员用户可读可写。如果您计划将 365Inspect 安装在频繁执行或用作自动化流程一部分的位置,这一点尤其重要。注意: 365Inspect 无需在管理 PowerShell 窗口中运行即可正常使用。

使用方法

要运行 365Inspect,请打开 PowerShell 控制台,导航到您下载 365Inspect 的文件夹:

cd 365Inspect

您将通过从 PowerShell 命令提示符执行主脚本文件 365Inspect.ps1 来与 365Inspect 交互。

365Inspect 检查您的 M365 租户所需的全部条件是通过具有适当权限的 M365 账户进行访问,因此大多数命令行参数与正在评估的组织和身份验证方法相关。

执行 365Inspect 的格式如下:

.\365Inspect.ps1 -OutPath <value> -UserPrincipalName [email protected] -Auth <MFA|DEVICE|ALREADY_AUTHED|APP> -pnpPowerShellApplicationId <Your Pnp PowerShell Application/Client ID>
执行示例

脚本执行

例如,通过浏览器输入凭据并支持 MFA 登录:

    .\365Inspect.ps1 -OutPath ..\365_report -UserPrincipalName [email protected] -Auth MFA

要登录到政府或其他国家云部署(中国、德国等),应指定 -Environment 参数,如下所示:

    .\365Inspect.ps1 -OutPath ..\365_report -UserPrincipalName [email protected] -Auth MFA -Environment USGovGCCHigh

-Environment 的有效参数包括:

  • Default - 默认 Microsoft 365 租户授权终结点。如果未指定 Environment 参数,这是默认参数。
  • USGovGCCHigh - 美国政府 GCC High 租户
  • USGovDoD - 美国政府 DoD 租户
  • Germany - Microsoft 365 Azure Germany 托管的租户
  • China - Microsoft 365 中国/Vianet 托管的租户

可通过以下参数执行脚本实现应用程序身份验证:

    .\365Inspect.ps1 -OutPath ..\365_report -UserPrincipalName [email protected] -Auth APP

要登录到政府或其他国家云部署(中国、德国等),应指定 -Environment 参数,如下所示:

    .\365Inspect.ps1 -OutPath ..\365_report -UserPrincipalName [email protected] -Auth APP -Environment USGovGCCHigh

-Environment 的有效参数包括:

  • Default - 默认 Microsoft 365 租户授权终结点。如果未指定 Environment 参数,这是默认参数。
  • USGovGCCHigh - 美国政府 GCC High 租户
  • USGovDoD - 美国政府 DoD 租户
  • Germany - Microsoft 365 Azure Germany 托管的租户
  • China - Microsoft 365 中国/Vianet 托管的租户

注意: 使用应用程序身份验证执行 365Inspect 存在先决条件。前往应用程序身份验证要求

365Inspect 现在支持将报告输出为 HTML(默认值)、CSV 和 XML 格式。

例如,通过调用 -ReportType 参数生成 CSV 报告:

    .\365Inspect.ps1 -OutPath ..\365_report -UserPrincipalName [email protected] -Auth MFA -ReportType CSV

365Inspect 可以仅运行指定的检查器模块,或者相反,排除指定的模块。

例如,通过浏览器输入凭据并支持 MFA 登录:

    .\365Inspect.ps1 -OutPath ..\365_report -UserPrincipalName [email protected] -Auth MFA -SelectedInspectors inspector1, inspector2

或者

    .\365Inspect.ps1 -OutPath ..\365_report -Auth MFA -ExcludedInspectors inspector1, inspector2, inspector3

进一步分解参数:

  • OutPath 是放置 365Inspect 生成的报告的文件夹路径。

    • 是否必需?是
  • Auth 是一个选择器,应为字面值 "MFA" 或 "ALREADY_AUTHED"。

    • Auth 控制 365Inspect 如何对所有 Microsoft 365 服务进行身份验证。
    选项
    • Auth MFA 会产生一个图形弹出窗口,您可以在其中输入凭据,甚至为启用了 MFA 的账户输入 MFA 代码。
    • Auth ALREADY_AUTHED 指示 365Inspect 在扫描前不进行身份验证。如果从已具有所有所述服务有效会话的 PowerShell 提示符执行 365Inspect(例如已执行过 365Inspect 的提示符),这可能是首选。
    • Auth APP 指示 365Inspect 提示输入 Microsoft Entra ID 应用程序服务主体信息。必需的参数变量包括:
      • AppId - 注册应用程序的应用程序 ID
      • Certificate Thumbprint - 创建的自签名证书的指纹
      • Domain - 要扫描的租户的邮件域([email protected] 或 company.com)或租户域(company.onmicrosoft.com)。
    * 是否必需?是
  • SelectedInspectors 是您希望与 365Inspect 一起运行的一个或多个检查器的名称。如果选择多个检查器,它们必须用逗号分隔。仅运行指定的检查器。

    • 是否必需?否
  • ExcludedInspectors 是您希望阻止与 365Inspect 一起运行的一个或多个检查器的名称。如果选择多个检查器,它们必须用逗号分隔。将运行所有其他包含的模块。

    • 是否必需?否
  • UserPrincipalName - 评估者的用户主体名称,这有助于减少在受支持的模块中输入凭据的次数。

    • 是否必需?是
  • ReportType - 生成报告的输出格式。当前支持的值包括 HTML(默认)、CSV 和 XML。

    • 是否必需?否
  • Environment - 指定要连接的非标准/消费者 Microsoft 365 租户的 Azure 云实例。

    • 是否必需?否

当您使用 -Auth MFA 执行 365Inspect 时,可能会产生多个图形登录提示,您需要依次登录。这是正常行为,因为 Exchange、SharePoint 等具有独立的管理模块,每个模块都需要不同的登录会话。如果您只是按提示次数登录,365Inspect 应开始执行。这不太有趣,我们正在寻找解决方案,但不用说,我们觉得花费时间查看 MFA 代码所得到的结果是值得的。

随着 365Inspect 的执行,它会稳定地打印状态更新,指示正在运行哪个检查任务。

365Inspect 可能需要一些时间执行。这个时间随被测环境的大小和复杂性而变化。例如,某些检查任务涉及扫描所有用户的账户配置。对于拥有 50 个用户的组织,这可能近乎瞬间完成,但对于拥有 10000 个用户的组织,可能需要整整几分钟(!)。

输出

365Inspect 创建 out_path 参数中指定的目录。此目录是整个 365Inspect 检查的结果。它包含四个重要项目:

下载工具