使用 WHfBTools PowerShell 模块清理孤立的 Windows Hello 企业版密钥

摘要

为了帮助客户识别受 TPM 漏洞影响的孤立 Windows Hello 企业版 (WHfB) 密钥,Microsoft 发布了一个可供管理员运行的 PowerShell 模块。 本文介绍了如何解决 ADV190026 |“清理在易受攻击的 TPM 上生成并用于 Windows Hello 企业版的孤立密钥的 Microsoft 指南”中描述的问题。

重要注意事项 在使用 WHfBTools 删除孤立密钥之前,应遵循 ADV170012 中的指南来更新任何易受攻击的 TPM 的固件。 如果未遵循本指南,则在固件尚未更新的设备上生成的任何新 WHfB 密钥仍会受到 CVE-2017-15361 (ROCA) 的影响。

如何安装 WHfBTools PowerShell 模块

通过运行以下命令安装模块:

安装 WHfBTools PowerShell 模块

通过 PowerShell 安装

PS> Install-Module WHfBTools

PS> # Save the current execution policy so it can be reset later

PS> $SaveExecutionPolicy = Get-ExecutionPolicy

PS> Set-ExecutionPolicy RemoteSigned -Scope Currentuser

PS> Import-Module WHfBTools

或使用 PowerShell 库中的下载进行安装

  1. 转到 https://www.powershellgallery.com/packages/WHfBTools

  2. 将原始 .nupkg 文件下载到本地文件夹,然后使用 .zip 扩展名重命名

  3. 将内容提取到本地文件夹,例如 C:\ADV190026

 

启动 PowerShell,复制并运行以下命令:

PS> # Save the current execution policy so it can be reset later

PS> $SaveExecutionPolicy = Get-ExecutionPolicy

PS> Set-ExecutionPolicy RemoteSigned -Scope Currentuser

PS> CD C:\ADV190026\WHfBTools

PS> Import-Module .\WHfBTools.psd1

 

安装使用模块的依赖项:

安装使用 WHfBTools 模块的依赖项

如果要在 Azure Active Directory 中查询孤立密钥,请安装 MSAL.PS PowerShell 模块

通过 PowerShell 安装

PS> Install-Module -Name MSAL.PS -RequiredVersion 4.5.1.1

PS> Import-Module MSAL.PS

或使用 PowerShell 库的下载进行安装

  1. 转到 https://www.powershellgallery.com/packages/MSAL.PS/4.5.1.1

  2. 将原始 .nupkg 文件下载到本地文件夹,然后使用 .zip 扩展名重命名

  3. 将内容提取到本地文件夹,例如 C:\MSAL.PS

启动 PowerShell,复制并运行以下命令:

PS> CD C:\MSAL.PS

PS> Import-Module .\MSAL.PS.psd1

如果要在 Active Directory 中查询孤立密钥,请安装远程服务器管理工具 (RSAT): Active Directory 域服务和轻型目录服务工具

通过设置安装(Windows 10 版本 1809 或更高版本)

  1. 转到“设置”->“应用”->“可选功能”->“添加功能”

  2. 选择 RSAT: Active Directory 域服务和轻型目录服务工具

  3. 选择“安装”

或通过 PowerShell 安装

PS> dism /online /Add-Capability /CapabilityName:Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0

或通过下载安装

  1. 转到 https://www.microsoft.com/zh-cn/download/details.aspx?id=45520(Windows 10 链接)

  2. 下载适用于 Windows 10 Installer 的远程服务器管理工具

  3. 下载完成后启动安装程序

 

运行 WHfBTools PowerShell 模块

如果你的环境中有加入 Azure Active Directory 或混合 Azure Active Directory 的设备,请按照 Azure Active Directory 步骤识别和删除密钥。 Azure 中的密钥删除将通过 Azure AD Connect 同步到 Active Directory。

如果环境仅位于本地,请按照 Active Directory 步骤识别和删除密钥。

查询孤立密钥和受 CVE-2017-15361 (ROCA) 影响的密钥

使用以下命令在 Azure Active Directory 中查询密钥:

PS> Get-AzureADWHfBKeys -Logging -Report -Tenant contoso.com -All | Export-Csv C:\AzureKeys.csv

此命令将查询“contoso.com”租户以获取所有已注册的 Windows Hello 企业版公钥,并将该信息输出到 C:\AzureKeys.csv。 将 contoso.com 替换为你的租户名称以查询你的租户。

Csv 输出 AzureKeys.csv 将包含每个密钥的以下信息:

  • 用户主体名称

  • 租户

  • 使用情况

  • 密钥 ID

  • 创建时间

  • 孤立状态

  • 支持通知状态

  • ROCA 漏洞状态

Get-AzureADWHfBKeys 还将输出已查询密钥的摘要。 此摘要提供以下信息:

  • 扫描的用户数

  • 扫描的密钥数

  • 具有密钥的用户数

  • ROCA 易受攻击密钥数

注意 Azure AD 租户中可能有陈旧设备,并且有 Windows Hello 企业版密钥与其关联。 即使未主动使用这些设备,这些密钥也不会报告为孤立密钥。 我们建议遵循操作方法: 在 Azure AD 中管理陈旧设备,以在查询孤立密钥之前清理陈旧设备。

 

使用以下命令在 Active Directory 中查询密钥:

PS> Get-ADWHfBKeys -Logging -Report -Domain contoso | Export-Csv C:\ADKeys.csv

此命令将查询 contoso 域以获取所有已注册的 Windows Hello 企业版公钥,并将该信息输出到 C:\ADKeys.csv。 将 contoso 替换为你的域名以查询你的域。

Csv 输出 ADKeys.csv 将包含每个密钥的以下信息:

  • 用户域

  • 用户 SAM 帐户名

  • 用户可分辨名称

  • 密钥版本

  • 密钥 ID

  • 创建时间

  • 密钥材料

  • 密钥源

  • 密钥用法

  • 密钥设备 ID

  • 近似上次登录时间戳

  • 创建时间

  • 自定义密钥信息

  • KeyLinkTargetDN

  • 孤立状态

  • ROCA 漏洞状态

  • KeyRawLDAPValue

Get-ADWHfBKeys 还将输出已查询密钥的摘要。 此摘要提供以下信息:

  • 扫描的用户数

  • 具有密钥的用户数

  • 扫描的密钥数

  • ROCA 易受攻击密钥数

  • 孤立密钥数(如果未指定 -SkipCheckForOrphanedKeys)

注意: 如果你的混合环境中具有加入 Azure AD 的设备,并且在本地域中运行“Get-ADWHfBKeys”,则孤立密钥的数量可能不准确。 这是因为加入 Azure AD 的设备不在 Active Directory 中,并且与加入 Azure AD 的设备关联的密钥可能显示为孤立设备。

 

从目录中删除孤立的 ROCA 易受攻击密钥

使用以下步骤删除 Azure Active Directory 中的密钥:

  1. AzureKeys.csv 的 Orphaned RocaVulnerable 列的筛选设置为 true

  2. 将筛选的结果复制到新文件 C:\ROCAKeys.csv

  3. 运行以下命令以删除密钥:

PS> Import-Csv C:\ROCAKeys.csv | Remove-AzureADWHfBKeys -Tenant contoso.com -Logging

此命令会导入孤立的 ROCA 易受攻击密钥列表,并从 contoso.com 租户中删除它们。 将 contoso.com 替换为你的租户名称以从你的租户中删除密钥。

注意 如果删除尚未孤立的 ROCA 易受攻击的 WHfB 密钥,将会导致用户中断。 在将这些密钥从目录中删除之前,应确保这些密钥是孤立的。

 

使用以下步骤删除 Active Directory 中的密钥:

注意 在混合环境中从 Active Directory 中删除孤立密钥将导致密钥作为 Azure AD Connect 同步过程的一部分重新创建。 如果你处于混合环境中,请仅从 Azure AD 中删除密钥

  1. ADKeys.csv 的 OrphanedKey ROCAVulnerable 列的筛选设置为 true

  2. 将筛选的结果复制到新文件 C:\ROCAKeys.csv

  3. 运行以下命令以删除密钥:

PS> Import-Csv C:\ROCAKeys.csv | Remove-ADWHfBKeys -Logging

此命令会导入孤立的 ROCA 易受攻击密钥的列表,并从你的域中删除它们。 

注意 如果删除尚未孤立的 ROCA 易受攻击的 WHfB 密钥,将会导致用户中断。 在将这些密钥从目录中删除之前,应确保这些密钥是孤立的。

 

需要更多帮助?

扩展你的技能
了解培训
抢先获得新功能
加入 Microsoft 内部人员

此信息是否有帮助?

你对翻译质量的满意程度如何?

哪些因素影响了你的体验?

是否还有其他反馈?(可选)

谢谢您的反馈意见!

×