T1528: 窃取应用程序访问令牌

凭据访问

摘要

攻击者可以窃取应用程序访问令牌,作为获取访问远程系统和资源的凭据的手段。 应用程序访问令牌用于代表用户或服务发出授权的 API 请求,通常用作访问云和基于容器的应用程序以及软件即服务 (SaaS) 中资源的方式。(Citation: Auth0 - Why You Should Always Use Access Tokens to Secure APIs Sept 2019) 在云和容器化环境中窃取账户 API 令牌的攻击者可能能够以这些账户的权限访问数据并执行操作,这可能导致权限提升和对环境的进一步入侵。 例如,在 Kubernetes 环境中,容器内运行的进程可能使用服务账户令牌与 Kubernetes API 服务器通信。如果容器被入侵,攻击者可能能够窃取容器的令牌,从而获得对 Kubernetes API 命令的访问权限。(Citation: Kubernetes Service Accounts) 同样,持续开发/持续集成 (CI/CD) 流水线内的实例通常会使用 API 令牌向其他服务进行认证,以进行测试和部署。(Citation: Cider Security Top 10 CICD Security Risks) 如果这些流水线被入侵,攻击者可能能够窃取这些令牌并利用其权限。 在 Azure 中,入侵了附加了托管标识的资源(例如 Azure VM)的攻击者,可以通过 Azure Instance Metadata Service (IMDS) 请求短期令牌。这些令牌随后可能促成未授权操作或对其他 Azure 服务的进一步访问,绕过典型的基于凭据的认证。(Citation: Entra Managed Identities 2025)(Citation: SpecterOps Managed Identity 2022) 令牌窃取也可能通过社会工程发生,在这种情况下可能需要用户操作来授予访问权限。OAuth 是一种常见的实现框架,向用户颁发令牌以访问系统。希望访问基于云的服务或受保护 API 的应用程序可以通过 OAuth 2.0 经由各种授权协议获得入口。一个常用的示例序列是 Microsoft 的授权码授予流程。(Citation: Microsoft Identity Platform Protocols May 2019)(Citation: Microsoft - OAuth Code Authorization flow - June 2019) OAuth 访问令牌使第三方应用程序能够以应用程序请求的方式与包含用户数据的资源交互,而无需获取用户凭据。 攻击者可以通过构造一个旨在被授予访问带有目标用户 OAuth 令牌的资源的恶意应用程序,来利用 OAuth 授权。(Citation: Amnesty OAuth Phishing Attacks, August 2019)(Citation: Trend Micro Pawn Storm OAuth 2017) 攻击者需要完成其应用程序在授权服务器上的注册,例如使用 Azure Portal、Visual Studio IDE、命令行界面、PowerShell 或 REST API 调用在 Microsoft Identity Platform 上注册。(Citation: Microsoft - Azure AD App Registration - May 2019) 然后,他们可以向目标用户发送[鱼叉式网络钓鱼链接](https://attack.mitre.org/techniques/T1566/002),诱使其授予对应用程序的访问权限。一旦 OAuth 访问令牌被授予,应用程序就可以通过[应用程序访问令牌](https://attack.mitre.org/techniques/T1550/001)获得对用户账户功能的潜在长期访问权限。(Citation: Microsoft - Azure AD Identity Tokens - Aug 2019) 应用程序访问令牌可能在有限的生命周期内有效,限制了攻击者可以利用被窃取令牌的时间。然而,在某些情况下,攻击者还可以窃取应用程序刷新令牌 (Citation: Auth0 Understanding Refresh Tokens),使他们能够在无需提示用户的情况下获取新的访问令牌。

来源归属

来源:MITRE ATT&CK · 置信度:high

平台

  • Containers
  • IaaS
  • Identity Provider
  • Office Suite
  • SaaS

战术

凭据访问

参考来源