网络钓鱼调查

本文提供有关识别和调查组织内部存在的网络钓鱼攻击的指导。 分步说明会帮助你采取必要的补救措施以保护信息,并最大程度地降低进一步的风险。

本文包含以下各节:

  • 先决条件:介绍在开始调查之前需要完成的特定要求。 例如,应启用的日志记录、所需的角色和权限,等等。
  • 工作流:显示执行此调查应遵循的逻辑流。
  • 清单:包含流程图中每个步骤的任务列表。 此清单有助于在高度管控的环境中验证你已完成的工作或用作自我质量检验的标准。
  • 调查步骤:包括用于此特定调查的详细分步指南。

先决条件

下面是在开始网络钓鱼调查之前应完成的常规设置和配置。

客户详细信息

在开始调查之前,建议你已掌握用户名、用户主体名称 (UPN) 或怀疑已遭入侵帐户的电子邮件地址。

Microsoft 365 的基本要求

验证审核设置

通过在 Exchange Online PowerShell 中运行以下命令,验证是否已打开默认启用邮箱审核

Get-OrganizationConfig | Format-List AuditDisabled

值为 False 表示为组织中的所有邮箱启用邮箱审核,而不管单个邮箱上的 AuditEnabled 属性的值如何。 有关详细信息,请参阅验证是否已打开默认启用邮箱审核

消息跟踪

邮件跟踪日志是有助于查找邮件的原始来源和预期收件人的有用组件。 可以在 https://admin.exchange.microsoft.com/#/messagetrace 的 Exchange 管理中心 (EAC) 中使用邮件跟踪功能,或者使用 Exchange Online PowerShell 中的 Get-MessageTrace cmdlet。

注意

Microsoft Defender 门户的“电子邮件和协作”>“Exchange 邮件跟踪”下面的 https://security.microsoft.com 也提供了邮件跟踪,但这只是 EAC 中邮件跟踪的直通链接。

邮件跟踪功能的有些组件是一目了然的,但 Message-ID 是电子邮件消息的唯一标识符,需要全面了解。 要获取感兴趣的电子邮件的 Message-ID,你需要检查原始电子邮件标头。

你可以搜索统一审核日志,以查看 Microsoft 365 组织中用户和管理员的所有活动。

登录日志和/或审核日志是否已导出到外部系统?

由于大多数 Microsoft Entra ID 登录和审核数据将在 30 或 90 天后被覆盖,因此我们建议使用 Sentinel、Azure Monitor 或外部安全信息和事件管理 (SIEM) 系统。

所需的角色和权限

Microsoft Entra ID 中的权限

我们建议进行调查的帐户具有以下角色的成员资格:

Microsoft 365 中的权限

一般来说,Microsoft Defender 门户或 Microsoft Purview 合规性门户中的“全局读者”或“安全读者”角色组应提供足够的权限来搜索相关日志。

注意

仅在 Microsoft Defender 门户或 Microsoft Purview 合规性门户中属于“仅限查看审核日志”或“审核日志”角色组成员的帐户将无法搜索 Microsoft 365 审核日志。 在此应用场景中,必须在 Exchange Online 中分配权限。 有关详细信息,请参阅搜索审核日志之前

如果不确定要使用的角色组,请参阅查找运行任何 Exchange cmdlet 所需的权限

用于终结点的 Microsoft Defender

如果你有 Microsoft Defender for Endpoint (MDE),则应将其用于此流。 有关详细信息,请参阅使用信号共享和机器学习应对网络钓鱼

系统要求

硬件要求

系统应该能够运行 PowerShell。

软件要求

调查云环境需要以下 PowerShell 模块:

Workflow

![网络钓鱼调查工作流]

也可执行以下操作:

  • PDF 格式下载网络钓鱼和其他事件响应 playbook 工作流。
  • Visio 文件格式下载网络钓鱼和其他事件响应 playbook 工作流。

清单

此清单将帮助你评估调查过程,并验证是否完成了调查过程中的所有步骤:

   
查看初始网络钓鱼电子邮件
获取收到此电子邮件的用户列表
获取用户访问邮箱时的最新日期
是否在邮箱上配置了委托访问?
是否在邮箱上配置了转发规则?
查看 Exchange 邮件流规则(传输规则)
查找电子邮件消息
用户是否阅读/打开过电子邮件?
还有谁收到了相同的电子邮件?
电子邮件是否包含附件?
附件中是否有有效负载?
检查电子邮件标头,了解发件人的真实来源
验证攻击者/活动的 IP 地址
用户是否选择了电子邮件中的链接?
电子邮件是在什么终结点上打开的?
附件有效负载是否已执行?
是否接触或打开过目标 IP 或 URL?
是否已执行恶意代码?
联合方案的帐户进行过哪些登录?
托管方案的帐户进行过哪些登录?
调查源 IP 地址
调查找到的设备 ID
调查每个应用 ID

还可以 Excel 文件格式下载网络钓鱼和其他事件 playbook 清单。

调查步骤

对于这一调查,假设你是在已获得网络钓鱼电子邮件的示例或其部分内容(如发件人地址、电子邮件主题或部分消息)的情况下开始调查的。 另请确保已按照先决条件部分中的建议完成/启用所有设置。

创建此剧本时有一个目的,即不是所有 Microsoft 客户或其调查团队都会获得被调查租户提供的或配置的完整 Microsoft 365 E5 或 Microsoft Entra ID P2 许可证套件。 但在适当的时候,我们会重点介绍其他自动化功能。

获取收到电子邮件的用户/标识列表

第一步,你需要获取收到网络钓鱼电子邮件的用户/标识列表。 此步骤的目的是记录潜在用户/标识列表,以便稍后在其他调查步骤中使用该列表进行循环访问。 请参阅工作流部分,了解此调查过程中需要遵循的步骤的高级别流程图。

我们不会在此剧本中给出有关如何记录潜在用户/标识列表的任何建议。 根据调查的规模大小,你可以利用 Excel 工作簿、CSV 文件甚至数据库来进行更大规模的调查。 有多种方法可以获取给定租户中的标识列表,以下是一些示例。

在 Microsoft Purview 合规门户中创建内容搜索

使用收集的指示器创建和运行内容搜索。 有关说明,请参阅创建内容搜索

有关可搜索电子邮件属性的完整列表,请参阅可搜索的电子邮件属性

以下示例返回用户在 2022 年 4 月 13 日至 2022 年 4 月 14 日之间收到的消息,并且这些消息在主题行中包含 "action" 和 "required" 两词:

(Received:4/13/2022..4/14/2022) AND (Subject:'Action required')

以下示例查询返回由 chatsuwloginsset12345@outlook.com 发送的消息,并且这些消息在主题行中包含确切的短语 "Update your account information"。

(From:chatsuwloginsset12345@outlook.com) AND (Subject:"Update your account information")

有关详细信息,请参阅如何在组织中搜索和删除消息

在 Exchange Online PowerShell 中使用 Search-Mailbox cmdlet

你还可以在 Exchange Online PowerShell 中使用 Search-Mailbox cmdlet 对感兴趣的目标邮箱执行特定查询,并将结果复制到不相关的目标邮箱。

以下示例查询在 Jane Smith 邮箱中搜索主题中包含短语“Invoice”的电子邮件,并将结果复制到名为“Investigation”的文件夹中的 IRMailbox。

Search-Mailbox -Identity "Jane Smith" -SearchQuery "Subject:Invoice" -TargetMailbox "IRMailbox" -TargetFolder "Investigation" LogLevel Full

在以下示例命令中,查询在所有租户邮箱中搜索主题中包含短语“InvoiceUrgent”的电子邮件,将结果复制到名为“Investigation”的文件夹中的 IRMailbox。

Get-Mailbox | Search-Mailbox -SearchQuery 'InvoiceUrgent vote' -TargetMailbox "IRMailbox" -TargetFolder "Investigation" -LogLevel Full

有关详细语法和参数信息,请参阅 Search-Mailbox

是否在邮箱上配置了委托访问?

使用以下脚本检查是否在邮箱上配置了委托访问:https://github.com/OfficeDev/O365-InvestigationTooling/blob/master/DumpDelegatesandForwardingRules.ps1

若要创建此报告,请运行一个小型 PowerShell 脚本,该脚本可获取所有用户的列表。 然后,使用 Get-MailboxPermission cmdlet 创建一个 CSV 文件,文件内容为租户中所有设置了委托的邮箱。

查找异常的名称或权限授予。 如果发现异常情况,请联系邮箱所有者,检查该情况是否合法。

是否为邮箱配置了转发规则?

你需要检查每个已识别的邮箱的邮箱转发(也称为 SMTP 转发)或将电子邮件转发到外部收件人的收件箱规则(通常是新创建的收件箱规则)

  • 要检查所有邮箱是否有邮箱转发,请在 Exchange Online PowerShell 中运行以下命令:

    Get-Mailbox -RecipientTypeDetails UserMailbox -ResultSize unlimited | Format-Table -Auto MicrosoftOnlineServicesID,ForwardingSmtpAddress,DeliverToMailboxAndForward | Export-csv C:\Temp\Forwarding.csv -NoTypeInformation
    
  • 要检查指定日期之间在邮箱中创建的收件箱规则,请在 Exchange Online PowerShell 中运行以下命令:

    Search-UnifiedAuditLog -StartDate 12/16/2021 -EndDate 03/16/2022 -ResultSize 5000 -RecordType exchangeadmin -Operations New-InboxRule | Export-csv NoTypeInformation -Path c:\temp\Inboxrulesoutput.csv
    
  • 还可以使用 Exchange 管理中心 (EAC) 中自动转发的邮件报告。 有关说明,请参阅 Exchange Online 中自动转发的邮件报告

    注意:

    • 查找异常的目标位置,或任何类型的外部寻址。
    • 查找条件中包含异常关键词的转发规则,如主题中含有 invoice 一词的所有邮件。 请联系邮箱所有者,检查该情况是否合法。

查看收件箱规则

检查收件箱规则是否已删除,并考虑与你的调查接近的时间戳。 例如,在 Exchange Online PowerShell 中使用以下命令:

Search-UnifiedAuditLog -StartDate 12/16/2021 -EndDate 03/16/2022 -Operations Remove-InboxRule | Export-CSV NoTypeInformation -Path c:\temp\removedInboxRules.csv

查看 Exchange 邮件流规则(传输规则)

有两种方法可以获取组织中的 Exchange 邮件流规则(也称为传输规则)列表:

  1. 在 Exchange 管理中心和 Exchange Online PowerShell 中。 有关说明,请参阅 查看或修改邮件流规则
  2. 在 Exchange 管理中心中,选择“Exchange 传输规则”报告。 有关说明,请参阅 Exchange Online 中的 Exchange 传输规则报告

查找新规则或已被修改而将邮件重定向到外部域的规则。 规则数应已知且相对较小。 你可以进行审核日志搜索,来确定创建规则的人员以及创建规则的位置。 如果发现异常,请联系创建者来确定它是否合法。

获取用户访问邮箱时的最新日期

在 Microsoft 365 安全与合规中心内,导航到“统一审核日志”。 在下拉列表中的“活动”项下,可以按照 Exchange 邮箱活动进行筛选。

Microsoft 365 安全与合规中心提供了列出受入侵用户的功能。

此报表显示的活动可能表明邮箱正遭到非法访问。 它包括了创建或接收的消息、移动或删除的消息、复制或清除的消息、使用“代表发送”或“发送方式”发送的消息以及所有邮箱登录。相关数据包括日期、IP 地址、用户、执行的活动、受影响的项以及任何扩展的详细信息。

注意

若要记录此数据,必须启用“邮箱审核”选项。

此处包含的数据量可能极大,因此请专注于搜索在遭入侵时受影响较大的用户。 查找异常模式(例如一天中的非常规次数或异常 IP 地址)以及诸如大量移动、清除或删除等模式。

用户是否阅读/打开过电子邮件?

此处存在两种主要情况:

  • 邮箱在 Exchange Online 中。
  • 邮箱在本地 Exchange(Exchange 混合)中。

Exchange Online 用户是否打开了电子邮件

Exchange Online PowerShell 中使用 Search-Mailbox cmdlet 对感兴趣的目标邮箱进行特定搜索查询,并将结果复制到不相关的目标邮箱。

以下示例查询在 Janes Smith 的邮箱中搜索主题中包含短语 Invoice 的电子邮件,然后将结果复制到名为 Investigation 的文件夹中的 IRMailbox

Search-Mailbox -Identity "Jane Smith" -SearchQuery "Subject:Invoice" -TargetMailbox "IRMailbox" -TargetFolder "Investigation" LogLevel Full

以下示例查询在所有租户邮箱中搜索主题中包含短语“InvoiceUrgent”的电子邮件,然后将结果复制到名为“Investigation”的文件夹中的“IRMailbox”邮箱。

Get-Mailbox | Search-Mailbox -SearchQuery 'InvoiceUrgent vote' -TargetMailbox "IRMailbox" -TargetFolder "Investigation" -LogLevel Full

用户是否在 Exchange 混合中打开了电子邮件

使用 Get-MessageTrackingLog cmdlet 搜索存储在消息跟踪日志中的消息传递信息。 下面是一个示例:

Get-MessageTrackingLog -Server Mailbox01 -Start "03/13/2022 09:00:00" -End "03/15/2022 17:00:00" -Sender "john@contoso.com"

有关详细的语法和参数信息,请参阅 Get-MessageTrackingLog

还有谁收到了相同的电子邮件?

此处存在两种主要情况:

  • 邮箱在 Exchange Online 中。
  • 邮箱在本地 Exchange(Exchange 混合)中。

工作流实质上与本文前面获取收到电子邮件的用户/标识列表部分中说明的内容相同。

在 Exchange Online 中查找电子邮件

使用 Search-Mailbox cmdlet 对感兴趣的目标邮箱执行特定搜索查询,然后将结果复制到不相关的目标邮箱。

以下示例查询在所有租户邮箱中搜索主题包含“InvoiceUrgent”的电子邮件,并将结果复制到名为“Investigation”的文件夹中的“IRMailbox”邮箱中。

Get-Mailbox | Search-Mailbox -SearchQuery "Subject:InvoiceUrgent" -TargetMailbox "IRMailbox" -TargetFolder "Investigation" -LogLevel Full

在本地 Exchange 中查找电子邮件

使用 Get-MessageTrackingLog cmdlet 搜索存储在消息跟踪日志中的消息传递信息。 下面是一个示例:

Get-MessageTrackingLog -Server Mailbox01 -Start "03/13/2018 09:00:00" -End "03/15/2018 17:00:00" -MessageSubject "InvoiceUrgent"

有关详细的语法和参数信息,请参阅 Get-MessageTrackingLog

电子邮件是否包含附件?

此处存在两种主要情况:

  • 邮箱在 Exchange Online 中。
  • 邮箱在本地 Exchange(Exchange 混合)中。

了解邮件是否包含 Exchange Online 中的附件

如果邮箱在 Exchange Online 中,有两个选项:

  • 使用经典 Search-Mailbox cmdlet
  • 使用 New-ComplianceSearch cmdlet

使用 Search-Mailbox cmdlet 对感兴趣的目标邮箱执行特定搜索查询,然后将结果复制到不相关的目标邮箱。 下面是一个示例:

Get-Mailbox -ResultSize unlimited | Search-Mailbox -SearchQuery attachment:trojan* -TargetMailbox "IRMailbox" -TargetFolder "Investigation" -LogLevel Full

有关详细语法和参数信息,请参阅 Search-Mailbox

另一个选项是使用 New-ComplianceSearch cmdlet。 下面是一个示例:

New-ComplianceSearch -Name "Investigation" -ExchangeLocation "Research Department" -ContentMatchQuery "from:pilar@contoso.com AND hasattachment:true"

有关详细语法和参数信息,请参阅 New-ComplianceSearch

了解邮件是否包含本地 Exchange 中的附件

注意

在 Exchange Server 2013 中,此过程需要累积更新 12 (CU12) 或更高版本。 有关详细信息,请参阅此文章

使用 Search-Mailbox cmdlet 搜索存储在消息跟踪日志中的消息传递信息。 下面是一个示例:

Search-Mailbox -Identity "Jane Smith"-SearchQuery AttachmentNames:attachment_name -TargetMailbox "IRMailbox" -TargetFolder "Investigation" -LogLevel Full

有关详细语法和参数信息,请参阅 Search-Mailbox

附件中是否有有效负载?

查找附件中的潜在恶意内容。 例如,PDF 文件、经过模糊处理的 PowerShell 或其他脚本代码。

“威胁防护状态报告”中的“按电子邮件查看数据”>“恶意软件”视图可显示检测到的包含针对组织的恶意软件的接收邮件和待发邮件数量。 有关详细信息,请参阅威胁防护状态报告:按电子邮件查看数据 > 恶意软件

检查电子邮件标头,了解发件人的真实来源

消息跟踪功能的许多组件都一目了然,但你需要全面了解 Message-ID。 Message-ID 是电子邮件的唯一标识符。

若要获取感兴趣的电子邮件的 Message-ID,你需要检查原始电子邮件标头。 有关如何在 Microsoft Outlook 或 Outlook 网页版(以前称为 Outlook Web App 或 OWA)中执行此操作的说明,请参阅在 Outlook 中查看 Internet 邮件标头

查看电子邮件标头时,建议将标头信息复制并粘贴到由 MXToolboxAzure 提供的电子邮件标头分析器中,以便阅读。

  • 标头路由信息:路由信息提供电子邮件在计算机之间传输的路由。

  • 发送方策略框架 (SPF):帮助防止/检测欺骗的电子邮件验证。 在 SPF 记录中,可以确定哪些 IP 地址和域可以代表该域发送电子邮件。

  • SPF = Pass:SPF TXT 记录确定发送方获得允许代表域发送电子邮件。

    • SPF = Neutral
    • SPF = Fail:策略配置确定消息发送方 IP 的结果
    • SMTP Mail:验证域是否合法

    有关 SPF 的详细信息,请参阅 Microsoft 365 如何使用 SPF 防止欺骗

  • 常用值:下面对最常用和最常查看的标头及其值的明细列表。 这是很有用的信息,你可在 Threat Explorer 的“搜索”字段中使用它们。

    • 发件人地址
    • Subject
    • 消息 ID
    • 收件地址
    • 返回路径地址
  • 验证结果:可查找电子邮件客户端在发送电子邮件时进行身份验证的结果。 可提供 SPF 和 DKIM 身份验证。

  • 起始 IP:可使用此原始 IP 来确定 IP 是否被列入阻止列表并获取地理位置。

  • 垃圾邮件置信度 (SCL): 确定接收的电子邮件为垃圾邮件的概率。

    • -1:绕过来自安全发送方、安全接收方或列为安全的 IP 地址(受信任的伙伴)的大多数垃圾邮件筛选
    • 0、1:非垃圾邮件,因为邮件已扫描并确定为干净
    • 5、6:垃圾邮件
    • 7、8、9:高置信度垃圾邮件

SPF 记录存储在 DNS 数据库中,并与 DNS 查找信息捆绑在一起。 可使用 nslookup 命令,手动检查域的发送方策略框架 (SPF) 记录:

  1. 打开命令提示符(开始 > 运行 > cmd)。

  2. 键入以下命令:nslookup -type=txt" 空格,然后键入域/主机名。 例如:

     nslookup -type=txt domainname.com
    

注意

-all(拒绝或操作失败 - 如果任何内容都不匹配,则不发送此电子邮件),建议使用此项。

检查 Microsoft 365 中的自定义域是否已启用 DKIM

你必须为每个需要添加域密钥识别邮件 (DKIM) 的域发布两个 CNAME 记录。 请参阅如何使用 DKIM 验证从自定义域发送的出站电子邮件

检查基于域的消息身份验证、报告和一致性 (DMARC)

你可使用此功能来验证 Microsoft 365 中的出站电子邮件

验证攻击者/活动的 IP 地址

若要验证或调查此前调查步骤中已标识的 IP 地址,可以使用以下任一选项:

  • VirusTotal
  • 用于终结点的 Microsoft Defender
  • 公共源:
    • Ipinfo.io - 有一个免费选项,可用于获取地理位置
    • Censys.io - 有一个免费选项可,用于获取有关其对 Internet 被动扫描的信息
    • AbuseIPDB.com - 有一个免费选项,可提供某些地理位置
    • 询问 Bing 和 Google - 搜索 IP 地址

URL 信誉

你可使用利用 SmartScreen 技术的任意 Windows 10 设备和 Microsoft Edge 浏览器。

下面是一些第三方 URL 信誉查询站点的示例

调查 IP 地址和 URL 时,请根据输出或结果查找 IP 地址并将它们关联到入侵指标 (IOC) 或其他指标,然后将这些 IP 地址添加到攻击者的源列表中。

如果用户已点击了电子邮件中的链接(不论有意或无意),则此操作通常会导致在设备本身上创建一个新进程。 根据执行此操作的设备,你需要进行特定设备的调查。 例如,Windows、Android 或 iOS。 本文介绍一般方法,以及适用于基于 Windows 设备的一些详细信息。 如果你正在使用 Microsoft Defender for Endpoint (MDE),你也可以在 iOS 和 Android (即将支持)中使用它。

你可以使用 Microsoft Defender for Endpoint 调查这些事件。

  1. VPN/代理日志 根据代理和 VPN 解决方案供应商的情况,你需要检查相关日志。 理想情况下,你需要将事件转发到 SIEM 或 Microsoft Sentinel。

  2. 使用 Microsoft Defender for Endpoint 这是最佳事例场景,因为你可以使用威胁情报和自动分析来帮助你进行调查。 有关更多详细信息,请参阅如何在 Microsoft Defender For Endpoint 中调查警报

    “警报进程树”会将警报会审和调查推进到下一级别,同时显示聚合的警报以及在同一执行上下文和时间段内发生的相关证据。 Example of the alert process tree

  3. 基于 Windows 的客户端设备 确保已启用进程创建事件选项。 理想情况下,还应启用“命令行跟踪事件”。

    在调查之前已启用上述审核事件的 Windows 客户端上,你可以检查审核事件 4688 并确定电子邮件送达用户的时间:

    Example of Audit Event 4688

    Another example of Audit Event 4688

电子邮件是在什么终结点上打开的?

此处的任务与此前的调查步骤类似:用户是否点击了电子邮件中的链接?

附加的有效负载是否已执行?

此处的任务与此前的调查步骤类似:用户是否点击了电子邮件中的链接?

是否接触或打开过目标 IP / URL?

此处的任务与此前的调查步骤类似:用户是否点击了电子邮件中的链接?

是否已执行恶意代码?

此处的任务与此前的调查步骤类似:用户是否点击了电子邮件中的链接?

帐户进行过哪些登录?

检查帐户发生的各种登录。

联合方案

审核日志设置和事件因操作系统 (OS) 级别和 Active Directory 联合身份验证服务 (ADFS) 服务器的版本而有所不同。

请参阅以下部分,了解不同的服务器版本。

Server 2012 R2

默认情况下,安全事件不会在 Server 2012 R2 上受到审核。 你需要在服务器场中的每个 ADFS 服务器上启用此功能。 在 ADFS 管理控制台中,选择“编辑联合身份验证服务属性”

federatedproperties

你还需要启用“OS 审核策略”

请打开命令提示符,以管理员角色运行以下命令。

auditpol.exe /set /subcategory:"Application Generated" /failure:enable /success:enable

有关详细信息,请参阅如何配置 ADFS 服务器进行故障排除

你可能还需要从以下站点下载 ADFS PowerShell 模块:

Server 2016 或更新版本

默认情况下,Windows Server 2016 中的 ADFS 已启用基本审核。 在基本审核级别下,对于单个请求,管理员最多可看到五个事件。 但可以使用以下命令提高或降低审核级别:

Set-AdfsProperties -AuditLevel Verbose

有关详细信息,请参阅 Windows Server 中对于 ADFS 的审核增强功能

如果已安装 Microsoft Entra Connect Health,你还应查看风险 IP 报告。 失败的登录活动客户端 IP 地址会通过 Web 应用程序代理服务器进行聚合。 风险 IP 报告中的每个项目都会显示有关失败的 AD FS 登录活动(失败次数超出指定阈值)的聚合信息。

Example of the risky IP report

有关更多详细信息,请参阅风险 IP 报告

Server 2012 R2

事件 ID 342 – ADFS 管理员日志中“用户名或密码不正确”。

对于实际审核事件,你需要查看安全事件日志,并应查找具有事件 ID 411(经典审核失败)且事件源为 ADFS 审核的事件。 还应在身份验证成功时查找事件 ID 412。

事件 ID 411 - SecurityTokenValidationFailureAudit 令牌验证失败。 请参见内部异常了解详细信息。

Example of an event 411

Example of an event 412

你可能需要将事件与相应的事件 ID 501 相关联。

Server 2016 或更新版本

对于实际审核事件,你需要查看安全事件日志,并应查找具有事件 ID 1202(身份验证成功)和事件 ID 1203(身份验证失败)的事件

事件 ID 1202 的示例:

事件 ID 1202 FreshCredentialSuccessAudit 联合身份验证服务已验证新凭据。 有关详细信息,请参阅 XML。

事件 ID 1203 的示例:

事件 ID 1203 FreshCredentialFailureAudit 联合身份验证服务验证新凭据失败。 有关失败详细信息,请参阅 XML。

Example of an event 1203

Example of an event 4624

若要获取每个 OS 级别 ADFS 事件 ID 的完整列表,请参阅 GetADFSEventList

托管方案

检查要调查的用户(一个或多个)的 Microsoft Entra 登录日志。

在 Microsoft Entra 管理中心中,导航到“登录”屏幕,添加/修改显示筛选器,按照此前调查步骤中的发现设置时间范围,并添加用户名作为筛选器,如下图所示。

Example of a display filter

也可使用图形 API 进行搜索。 例如,根据“用户属性”进行筛选并获取与之相关的 lastSignInDate。 搜索特定用户,获取该用户的上次登录日期。 例如: https://graph.microsoft.com/beta/users?$filter=startswith(displayName,'Dhanyah')&$select=displayName,signInActivity

你也可使用 PowerShell 命令 Get-AzureADUserLastSignInActivity 获取用户的上次交互式登录活动,其目标为用户的对象 ID。 此示例会将输出结果写入执行目录中一个加盖日期和时间戳的 CSV 文件。

Get-AzureADUserLastSignInActivity -TenantId 536279f6-1234-2567-be2d-61e352b51eef -UserObjectId 69447235-0974-4af6-bfa3-d0e922a92048 -CsvOutput

你也可从 AzureADIncidentResponse PowerShell 模块使用以下命令:

Get-AzureADIRSignInDetail -UserId johcast@Contoso.com -TenantId 536279f6-1234-2567-be2d-61e352b51eef -RangeFromDaysAgo 29 -RangeToDaysAgo 3

调查源 IP 地址

根据在 Microsoft Entra 登录日志或 ADFS/联合服务器日志文件中找到的源 IP 地址作进一步调查,了解流量的来源。

托管用户

对于托管方案,应从查看登录日志开始,然后基于源 IP 地址进行筛选:

Example of a managed user IP address]

你也可从 AzureADIncidentResponse PowerShell 模块使用以下命令:

Get-AzureADIRSignInDetail -IpAddress 1.2.3.4 -TenantId 536279f6-1234-2567-be2d-61e352b51eef -RangeFromDaysAgo 29 -RangeToDaysAgo 3 -OutGridView

查看结果列表时,导航到“设备信息”选项卡。根据所使用的设备,获得的输出会有所不同。 以下是一些示例:

  • 示例 1 - 非托管设备 (BYOD):

    Example of a unmanaged device

  • 示例 2 - 托管设备(Microsoft Entra 加入或 Microsoft Entra 混合加入):

    Example of a managed device

检查设备 ID(如果存在)。 还应查找 OS 和浏览器,或 UserAgent 字符串。

Example of a device ID

请记录 CorrelationID(相关 ID)、Request ID(请求 ID)和 timestamp(时间戳)。 应使用 CorrelationID(相关 ID)和 timestamp(时间戳)将你的发现与其他事件相关联。

联合用户/应用程序

请按照为联合登录方案提供的相同过程进行操作。

查找并记录 DeviceID(设备 ID)、OS Level(OS 级别)、CorrelationID(相关 ID)和 RequestID(请求 ID)。

调查标识的设备 ID

此步骤仅与已被 Microsoft Entra ID 所知的设备相关。 例如,在前面的步骤中,如果你找到了一个或多个潜在的设备 ID,则可以在此设备上开展进一步调查。 查找并记录此设备 ID 和设备所有者

调查每个 AppID

此处的起始点为租户或联合服务器配置的登录日志和应用配置。

托管方案

从此前找到的登录日志详细信息中,检查“Basic info”(“基本信息”)选项卡中的“Application ID”(“应用程序 ID”)

managedscenario

请注意应用程序(及其 ID)与资源(及其 ID)之间的差异。 应用程序涉及客户端组件,而资源是 Microsoft Entra ID 中的服务/应用程序。

利用此 AppID,你现在可以在租户中执行调查。 下面是一个示例:

Get-MgApplication -Filter "AppId eq '30d4cbf1-c561-454e-bf01-528cd5eafd58'"
Id                                       AppId                                    DisplayName

3af6dc4e-b0e5-45ec-8272-56f3f3f875ad     30d4cbf1-c561-454e-bf01-528cd5eafd58     Claims X-Ray

利用此信息,你可以在企业应用程序门户中进行搜索。 导航到“所有应用程序”,然后搜索特定的 AppID。

Example of an application ID

其他事件响应剧本

请检查用于识别和调查这些其他类型攻击的指南:

事件响应资源