跳转至

凭证访问

攻击者试图窃取账户凭证。

技术: 67

编号 名字 描述
T1003 操作系统凭证转储 对手可能会尝试转储凭据以获取帐户登录和凭证材料,通常以哈希或明文密码的形式。凭据可以从操作系统缓存、内存或结构中获取。(引用: Brining MimiKatz to Unix) 然后可以使用凭据执行横向移动并访问受限信息。 提到的相关子技术中的几种工具可能会被对手和专业安全测试人员使用。也可能存在其他自定义工具。
T1003.001 LSASS 内存 对手可能会尝试访问本地安全机构子系统服务 (LSASS) 的进程内存中存储的凭据材料。用户登录后,系统会在 LSASS 进程内存中生成并存储各种凭据材料。管理员用户或 SYSTEM 可以收集这些凭据材料,并使用它们通过使用替代身份验证材料进行横向移动。 除了内存中的技术外,还可以从目标主机转储 LSASS 进程内存,并在本地系统上进行分析。 例如,在目标主机上使用 procdump: * procdump -ma lsass.exe lsass_dump 在本地,可以运行 mimikatz: * sekurlsa::Minidump lsassdump.dmp * sekurlsa::logonPasswords 也可以使用内置的 Windows 工具,如 comsvcs.dll: * rundll32.exe C:\Windows\System32\comsvcs.dll MiniDump PID lsass.dmp full(引用: Volexity Exchange Marauder March 2021)(引用: Symantec Attacks Against Government Sector) 类似于图像文件执行选项注入,可以滥用静默进程退出机制,通过 Windows 错误报告 (WerFault.exe) 创建 lsass.exe 的内存转储。(引用: Deep Instinct LSASS) Windows 安全支持提供程序 (SSP) DLL 在系统启动时加载到 LSASS 进程中。一旦加载到 LSA 中,SSP DLL 就可以访问存储在 Windows 中的加密和明文密码,例如任何登录用户的域密码或智能卡 PIN。SSP 配置存储在两个注册表项中:HKLM\SYSTEM\CurrentControlSet\Control\Lsa\Security PackagesHKLM\SYSTEM\CurrentControlSet\Control\Lsa\OSConfig\Security Packages。对手可能会修改这些注册表项以添加新的 SSP,这些 SSP 将在系统下次启动时加载,或者在调用 AddSecurityPackage Windows API 函数时加载。(引用: Graeber 2014) 以下 SSP 可用于访问凭据: * Msv:交互式登录、批处理登录和服务登录通过 MSV 身份验证包完成。 * Wdigest:摘要身份验证协议设计用于超文本传输协议 (HTTP) 和简单身份验证安全层 (SASL) 交换。(引用: TechNet Blogs Credential Protection) * Kerberos:首选用于 Windows 2000 及更高版本中的客户端-服务器域身份验证。 * CredSSP:为远程桌面服务提供单点登录和网络级别身份验证。(引用: TechNet Blogs Credential Protection)
T1003.002 安全帐户管理器 对手可能会尝试通过内存技术或通过存储 SAM 数据库的 Windows 注册表提取凭据材料。SAM 是一个数据库文件,包含主机的本地帐户,通常可以通过 net user 命令找到。枚举 SAM 数据库需要 SYSTEM 级别的访问权限。 可以使用多种工具通过内存技术检索 SAM 文件: * pwdumpx.exe * gsecdump * Mimikatz * secretsdump.py 或者,可以使用 Reg 从注册表中提取 SAM: * reg save HKLM\sam sam * reg save HKLM\system system 然后可以使用 Creddump7 在本地处理 SAM 数据库以检索哈希。(引用: GitHub Creddump7) 注意: * RID 500 帐户是本地内置管理员。 * RID 501 是来宾帐户。 * 用户帐户从 RID 1000+ 开始。
T1003.003 NTDS 攻击者可能会尝试访问或创建Active Directory域数据库的副本,以窃取凭据信息,以及获取有关域成员的其他信息,如设备、用户和访问权限。默认情况下,NTDS文件(NTDS.dit)位于域控制器的%SystemRoot%\NTDS\Ntds.dit中。(引用:Wikipedia Active Directory) 除了在活动域控制器上查找NTDS文件外,攻击者还可能搜索包含相同或类似信息的备份。(引用:Metcalf 2015) 以下工具和技术可用于枚举NTDS文件以及整个Active Directory哈希的内容。 * 卷影副本 * secretsdump.py * 使用内置的Windows工具ntdsutil.exe * Invoke-NinjaCopy
T1003.004 LSA秘密 具有SYSTEM访问权限的对手可能会尝试访问本地安全机构(LSA)秘密,其中可能包含各种不同的凭据材料,例如服务账户的凭据。(引用: Passcape LSA Secrets)(引用: Microsoft AD Admin Tier Model)(引用: Tilbury Windows Credentials) LSA秘密存储在注册表中的HKEY_LOCAL_MACHINE\SECURITY\Policy\Secrets。LSA秘密也可以从内存中转储。(引用: ired Dumping LSA Secrets) 可以使用Reg从注册表中提取。可以使用Mimikatz从内存中提取秘密。(引用: ired Dumping LSA Secrets)
T1003.005 缓存的域凭据 对手可能会尝试访问缓存的域凭据,以便在域控制器不可用的情况下允许进行身份验证。(引用: Microsoft - Cached Creds) 在 Windows Vista 及更高版本上,哈希格式为 DCC2(域缓存凭据版本 2)哈希,也称为 MS-Cache v2 哈希。(引用: PassLib mscache) 默认缓存的凭据数量各不相同,可以按系统进行更改。此哈希不允许传递哈希样式攻击,而是需要密码破解来恢复明文密码。(引用: ired mscache) 在 Linux 系统上,可以通过 System Security Services Daemon (SSSD) 或 Quest Authentication Services(前身为 VAS)等软件访问 Active Directory 凭据。缓存的凭据哈希通常位于 /var/lib/sss/db/cache.[domain].ldb(用于 SSSD)或 /var/opt/quest/vas/authcache/vas_auth.vdb(用于 Quest)。对手可以在这些数据库文件上使用 tdbdump 等实用程序转储缓存的哈希,并使用密码破解获取明文密码。(引用: Brining MimiKatz to Unix) 具有 SYSTEM 或 sudo 访问权限的工具/实用程序,例如 MimikatzReg 和 Windows 的 secretsdump.py 或 Linux 的 Linikatz 可用于提取缓存的凭据。(引用: Brining MimiKatz to Unix) 注意:Windows Vista 的缓存凭据是使用 PBKDF2 派生的。(引用: PassLib mscache)
T1003.006 DCSync 攻击者可能通过滥用Windows域控制器的应用程序编程接口(API)(Citation: Microsoft DRSR Dec 2017) (Citation: Microsoft GetNCCChanges) (Citation: Samba DRSUAPI) (Citation: Wine API samlib.dll) 来模拟从远程域控制器复制过程,使用称为DCSync的技术。 管理员、域管理员和企业管理员组的成员或域控制器上的计算机账户能够运行DCSync以从Active Directory中提取密码数据(Citation: ADSecurity Mimikatz DCSync),这可能包括KRBTGT和管理员等潜在有用账户的当前和历史哈希。这些哈希随后可以用于创建黄金票证,用于传递票证(Citation: Harmj0y Mimikatz and DCSync) 或更改账户密码,如账户操纵中所述。(Citation: InsiderThreat ChangeNTLM July 2017) DCSync功能已包含在Mimikatz的“lsadump”模块中。(Citation: GitHub Mimikatz lsadump Module) Lsadump还包括NetSync,它通过旧版复制协议执行DCSync。(Citation: Microsoft NRPC Dec 2017)
T1003.007 Proc文件系统 对手可能会从proc文件系统或/proc中收集凭据。proc文件系统是一个伪文件系统,用作Linux系统管理虚拟内存的内核数据结构的接口。对于每个进程,/proc/<PID>/maps文件显示进程虚拟地址空间内的内存映射方式。而/proc/<PID>/mem,用于调试目的,提供对进程虚拟地址空间的访问。(引用: Picus Labs Proc cump 2022)(引用: baeldung Linux proc map 2022) 当以root权限执行时,对手可以搜索系统上所有进程的这些内存位置,以查找包含凭据模式的内容。对手可能会使用正则表达式模式,如grep -E "^[0-9a-f-]* r" /proc/"$pid"/maps
T1003.008 /etc/passwd 和 /etc/shadow 对手可能会尝试转储 /etc/passwd/etc/shadow 的内容,以启用离线密码破解。大多数现代 Linux 操作系统使用 /etc/passwd/etc/shadow 的组合来存储用户帐户信息,包括 /etc/shadow 中的密码哈希。默认情况下,/etc/shadow 仅 root 用户可读。(引用: Linux Password and Shadow File Formats) Linux 实用程序 unshadow 可用于将两个文件组合成适合密码破解实用程序(如 John the Ripper)的格式:(引用: nixCraft - John the Ripper) # /usr/bin/unshadow /etc/passwd /etc/shadow > /tmp/crack.password.db
T1040 网络嗅探 对手可能会被动嗅探网络流量,以捕获有关环境的信息,包括通过网络传输的认证材料。网络嗅探是指使用系统上的网络接口监视或捕获通过有线或无线连接发送的信息。对手可能会将网络接口置于混杂模式,以被动访问网络上的数据,或使用镜像端口捕获大量数据。 通过此技术捕获的数据可能包括用户凭据,特别是通过不安全、未加密协议发送的凭据。名称服务解析中毒技术,如LLMNR/NBT-NS中毒和SMB中继,也可以用于捕获网站、代理和内部系统的凭据,通过将流量重定向到对手。 网络嗅探可能会揭示配置细节,如运行的服务、版本号和其他网络特征(例如IP地址、主机名、VLAN ID),这些信息对于后续横向移动和/或防御规避活动是必要的。对手可能还会在中间人攻击(AiTM)期间利用网络嗅探被动获取有关环境的更多知识。 在基于云的环境中,对手仍然可以使用流量镜像服务嗅探虚拟机的网络流量。例如,AWS流量镜像、GCP数据包镜像和Azure vTap允许用户定义指定的实例以收集流量,并将收集的流量发送到指定的目标。(引用: AWS Traffic Mirroring)(引用: GCP Packet Mirroring)(引用: Azure Virtual Network TAP) 通常,由于在负载均衡器级别使用TLS终止以减少加密和解密流量的负担,大部分流量将是明文的。(引用: Rhino Security Labs AWS VPC Traffic Mirroring)(引用: SpecterOps AWS Traffic Mirroring) 对手然后可以使用数据传输到云账户等外传技术访问嗅探到的流量。(引用: Rhino Security Labs AWS VPC Traffic Mirroring) 在网络设备上,对手可能会使用网络设备CLI命令(如monitor capture)执行网络捕获。(引用: US-CERT-TA18-106A)(引用: capture_embedded_packet_on_software)
T1056 输入捕获 对手可能会使用捕获用户输入的方法来获取凭证或收集信息。在正常系统使用期间,用户通常会向各种不同的位置提供凭证,例如登录页面/门户或系统对话框。输入捕获机制可能对用户透明(例如,凭证API挂钩)或依赖于欺骗用户将输入提供给他们认为是合法服务的内容(例如,Web门户捕获)。
T1056.001 键盘记录 对手可能会记录用户的按键,以在用户输入凭据时拦截凭据。当操作系统凭据转储无效时,键盘记录可能会用于获取新访问机会的凭据,并且可能需要对手在系统上拦截按键一段时间才能成功捕获凭据。为了增加快速捕获凭据的可能性,对手还可能执行诸如清除浏览器Cookie以强制用户重新认证系统的操作。(引用: Talos Kimsuky Nov 2021) 键盘记录是最常见的输入捕获类型,具有多种拦截按键的方法。(引用: Adventures of a Keystroke) 一些方法包括: * 挂钩用于处理按键的API回调。与凭据API挂钩不同,这主要关注用于处理按键数据的API函数。 * 从硬件缓冲区读取原始按键数据。 * Windows注册表修改。 * 自定义驱动程序。 * 修改系统镜像可能为对手提供挂钩到网络设备操作系统的机会,以读取登录会话的原始按键。(引用: Cisco Blog Legacy Device Attacks)
T1056.002 GUI输入捕获 对手可能会模仿常见的操作系统GUI组件,以看似合法的提示来提示用户输入凭据。当执行需要比当前用户上下文中存在的权限更高的程序时,操作系统通常会提示用户输入适当的凭据,以授权任务的提升权限(例如:绕过用户帐户控制)。 对手可能会模仿此功能,以看似合法的提示来提示用户输入凭据,原因有很多,例如需要额外访问权限的假安装程序或假恶意软件删除套件。(引用: OSX Malware Exploits MacKeeper) 这种类型的提示可以通过各种语言收集凭据,例如AppleScript(引用: LogRhythm Do You Trust Oct 2014)(引用: OSX Keydnap malware)(引用: Spoofing credential dialogs)和PowerShell。(引用: LogRhythm Do You Trust Oct 2014)(引用: Enigma Phishing for Credentials Jan 2015)(引用: Spoofing credential dialogs) 在Linux系统上,对手可能会从恶意shell脚本或命令行启动对话框,提示用户输入凭据(即Unix Shell)。(引用: Spoofing credential dialogs) 对手还可能模仿常见的软件认证请求,例如来自浏览器或电子邮件客户端的请求。这也可能与用户活动监控(即,浏览器信息发现和/或应用程序窗口发现)配对,以在用户自然访问敏感站点/数据时伪造提示。
T1056.003 Web 门户捕获 对手可能会在外部门户(例如 VPN 登录页面)上安装代码,以捕获和传输尝试登录服务的用户的凭据。例如,受损的登录页面可能会在用户登录服务之前记录提供的用户凭据。 这种输入捕获的变体可能在利用合法管理访问权限后进行,以作为通过外部远程服务有效帐户保持网络访问的备用措施,或作为通过利用外部 Web 服务进行初始妥协的一部分。(引用: Volexity Virtual Private Keylogging)
T1056.004 凭据API挂钩 对手可能会挂钩Windows应用程序编程接口(API)函数以收集用户凭据。恶意挂钩机制可能会捕获包含揭示用户认证凭据参数的API调用。(引用: Microsoft TrojanSpy:Win32/Ursnif.gen!I Sept 2017) 与键盘记录不同,此技术专注于包含揭示用户凭据参数的API函数。挂钩涉及拦截这些函数的调用,并可以通过以下方式实现: * 挂钩过程,拦截并在响应事件(如消息、按键和鼠标输入)时执行指定代码。(引用: Microsoft Hook Overview)(引用: Elastic Process Injection July 2017) * 导入地址表(IAT)挂钩,通过修改进程的IAT,其中存储了指向导入API函数的指针。(引用: Elastic Process Injection July 2017)(引用: Adlice Software IAT Hooks Oct 2014)(引用: MWRInfoSecurity Dynamic Hooking 2015) * 内联挂钩,覆盖API函数中的第一个字节以重定向代码流。(引用: Elastic Process Injection July 2017)(引用: HighTech Bridge Inline Hooking Sept 2011)(引用: MWRInfoSecurity Dynamic Hooking 2015)
T1110 暴力破解 对手可能使用暴力破解技术在密码未知或获得密码哈希时获取账户访问权限。(引用: TrendMicro Pawn Storm Dec 2020) 在不知道账户密码的情况下,对手可能使用重复或迭代机制系统地猜测密码。(引用: Dragos Crashoverride 2018) 暴力破解密码可以通过与验证这些凭据有效性的服务交互进行,也可以离线对先前获取的凭据数据(如密码哈希)进行。 暴力破解凭据可能在入侵的各个阶段进行。例如,对手可能尝试暴力破解访问受害者环境中的有效账户,利用从其他后期妥协行为中收集的知识,如操作系统凭据转储账户发现密码策略发现。对手还可能将暴力破解活动与外部远程服务等行为结合,作为初始访问的一部分。
T1110.001 密码猜测 对手在系统或环境中没有合法凭据的先验知识的情况下,可能会猜测密码以尝试访问帐户。在不知道帐户密码的情况下,对手可能会选择使用重复或迭代机制系统地猜测密码。对手可能会在操作期间使用常见密码列表猜测登录凭据,而无需事先了解系统或环境密码。密码猜测可能会或可能不会考虑目标的密码复杂性策略或使用可能在多次失败尝试后锁定帐户的策略。 猜测密码可能是一种冒险的选择,因为它可能会导致大量身份验证失败和帐户锁定,具体取决于组织的登录失败策略。(引用: Cylance Cleaver) 通常,在猜测密码时会使用常用端口上的管理服务。常见的目标服务包括: * SSH (22/TCP) * Telnet (23/TCP) * FTP (21/TCP) * NetBIOS / SMB / Samba (139/TCP & 445/TCP) * LDAP (389/TCP) * Kerberos (88/TCP) * RDP / 终端服务 (3389/TCP) * HTTP/HTTP 管理服务 (80/TCP & 443/TCP) * MSSQL (1433/TCP) * Oracle (1521/TCP) * MySQL (3306/TCP) * VNC (5900/TCP) * SNMP (161/UDP 和 162/TCP/UDP) 除了管理服务之外,对手还可能“针对利用联合身份验证协议的单点登录 (SSO) 和基于云的应用程序”,以及外部电子邮件应用程序,例如 Office 365。(引用: US-CERT TA18-068A 2018)。此外,对手可能会滥用网络设备接口(例如 wlanAPI)通过无线身份验证协议对可访问的 wifi 路由器进行暴力破解。(引用: Trend Micro Emotet 2020) 在默认环境中,LDAP 和 Kerberos 连接尝试不太可能触发事件,而 SMB 会创建 Windows“登录失败”事件 ID 4625。
T1110.002 密码破解 对手可能会使用密码破解来尝试恢复可用的凭据,例如明文密码,当获得凭据材料如密码哈希时。操作系统凭据转储可以用来获取密码哈希,但当传递哈希不是一个选项时,这可能只能让对手走到这一步。此外,对手可能会利用配置库中的数据来获取网络设备的哈希凭据。(引用: US-CERT-TA18-106A) 有系统地猜测用于计算哈希的密码的技术是可用的,或者对手可能使用预先计算的彩虹表来破解哈希。破解哈希通常在对手控制的系统上进行,位于目标网络之外。(引用: Wikipedia Password cracking) 成功破解哈希后得到的明文密码可能用于登录系统、资源和服务,账户有访问权限。
T1110.003 密码喷射 对手可能会使用单个或少量常用密码对许多不同帐户进行尝试,以获取有效的帐户凭据。密码喷射使用一个密码(例如 'Password01')或少量常用密码,这些密码可能符合域的复杂性策略。使用该密码对网络上的许多不同帐户进行登录尝试,以避免在使用许多密码对单个帐户进行暴力破解时通常会发生的帐户锁定。(引用: BlackHillsInfosec Password Spraying) 通常,在常用端口上使用管理服务时会进行密码喷射。常见的目标服务包括以下内容: * SSH (22/TCP) * Telnet (23/TCP) * FTP (21/TCP) * NetBIOS / SMB / Samba (139/TCP & 445/TCP) * LDAP (389/TCP) * Kerberos (88/TCP) * RDP / 终端服务 (3389/TCP) * HTTP/HTTP 管理服务 (80/TCP & 443/TCP) * MSSQL (1433/TCP) * Oracle (1521/TCP) * MySQL (3306/TCP) * VNC (5900/TCP) 除了管理服务外,对手还可能“针对使用联合身份验证协议的单点登录 (SSO) 和基于云的应用程序”,以及外部电子邮件应用程序,例如 Office 365。(引用: US-CERT TA18-068A 2018) 在默认环境中,LDAP 和 Kerberos 连接尝试比 SMB 更不容易触发事件,后者会创建 Windows “登录失败”事件 ID 4625。
T1110.004 凭证填充 对手可能会使用从不相关账户的泄露转储中获得的凭证,通过凭证重叠来访问目标账户。偶尔,当网站或服务被破坏并访问用户账户凭证时,大量用户名和密码对会在线泄露。对于试图利用用户在个人和业务账户中使用相同密码倾向的对手来说,这些信息可能是有用的。 凭证填充是一种风险较高的选项,因为它可能导致大量身份验证失败和账户锁定,具体取决于组织的登录失败策略。 通常,管理服务通过常用端口在填充凭证时使用。常见的目标服务包括以下内容: * SSH (22/TCP) * Telnet (23/TCP) * FTP (21/TCP) * NetBIOS / SMB / Samba (139/TCP & 445/TCP) * LDAP (389/TCP) * Kerberos (88/TCP) * RDP / 终端服务 (3389/TCP) * HTTP/HTTP 管理服务 (80/TCP & 443/TCP) * MSSQL (1433/TCP) * Oracle (1521/TCP) * MySQL (3306/TCP) * VNC (5900/TCP) 除了管理服务外,对手还可能“针对使用联合身份验证协议的单点登录 (SSO) 和基于云的应用程序”,以及外部电子邮件应用程序,例如 Office 365。(引用: US-CERT TA18-068A 2018)
T1111 多因素认证拦截 对手可能会针对多因素认证(MFA)机制(即智能卡、令牌生成器等)以获取可用于访问系统、服务和网络资源的凭据。使用MFA是推荐的,并提供比仅用户名和密码更高的安全级别,但组织应意识到可能用于拦截和绕过这些安全机制的技术。 如果智能卡用于多因素认证,则需要使用键盘记录器获取与智能卡关联的密码。在正常使用期间,插入卡并访问智能卡密码的对手可以使用受感染的系统代理插入的硬件令牌进行身份验证。(引用: Mandiant M Trends 2011) 对手还可能使用键盘记录器类似地针对其他硬件令牌,如RSA SecurID。捕获令牌输入(包括用户的个人识别码)可能提供临时访问(即重放一次性密码,直到下一个值翻转)以及可能使对手能够可靠地预测未来的认证值(假设访问生成附加临时代码的算法和任何种子值)。(引用: GCN RSA June 2011) 其他MFA方法可能被对手拦截并用于身份验证。一次性代码通过带外通信(电子邮件、SMS)发送是常见的。如果设备和/或服务未加密,则可能容易被拦截。服务提供商也可能成为目标:例如,对手可能会妥协SMS消息服务以窃取发送到用户手机的MFA代码。(引用: Okta Scatter Swine 2022)
T1187 强制身份验证 对手可能通过调用或强制用户自动提供身份验证信息来收集凭证材料,这些信息可以被对手拦截。 服务器消息块 (SMB) 协议通常用于 Windows 网络中的身份验证和系统之间的通信,以访问资源和文件共享。当 Windows 系统尝试连接到 SMB 资源时,它会自动尝试进行身份验证并将当前用户的凭证信息发送到远程系统。(引用: Wikipedia Server Message Block) 这种行为在企业环境中很常见,因此用户无需输入凭证即可访问网络资源。 Web 分布式创作和版本控制 (WebDAV) 也是 Windows 系统在 SMB 被阻止或失败时通常使用的备份协议。WebDAV 是 HTTP 的扩展,通常通过 TCP 端口 80 和 443 运行。(引用: Didier Stevens WebDAV Traffic) (引用: Microsoft Managing WebDAV Security) 对手可能利用这种行为,通过强制 SMB/WebDAV 身份验证来获取用户账户哈希。对手可以通过鱼叉式网络钓鱼发送包含指向对手控制的外部服务器的资源链接的附件(即模板注入),或者将特制文件放置在特权账户的导航路径上(例如,放置在桌面上的 .SCF 文件)或放置在公共可访问的共享上,以供受害者访问。当用户的系统访问不受信任的资源时,它会尝试进行身份验证并通过 SMB 将信息(包括用户的哈希凭证)发送到对手控制的服务器。(引用: GitHub Hashjacking) 通过访问凭证哈希,对手可以进行离线暴力破解以获取明文凭证。(引用: Cylance Redirect to SMB) 这种情况可能以多种方式发生。(引用: Osanda Stealing NetNTLM Hashes) 一些实际使用的具体示例包括: * 包含自动加载资源的文档的鱼叉式网络钓鱼附件,当文档打开时会触发 SMB 请求(即模板注入)。例如,文档可以包含类似 file[:]//[remote address]/Normal.dotm 的请求以触发 SMB 请求。(引用: US-CERT APT Energy Oct 2017) * 修改的 .LNK 或 .SCF 文件,其图标文件名指向外部引用,例如 \[remote address]\pic.png,当图标呈现时会强制系统加载资源,以反复收集凭证。(引用: US-CERT APT Energy Oct 2017)
T1212 利用漏洞获取凭证 对手可能利用软件漏洞尝试收集凭证。利用软件漏洞是指对手利用程序、服务或操作系统软件或内核本身中的编程错误来执行对手控制的代码。 对手可能会针对凭证和认证机制进行漏洞利用,以获取有用的凭证或绕过认证过程以获得系统的认证访问权限。一个例子是MS14-068,它针对Kerberos,可以使用域用户权限伪造Kerberos票证。(引用: Technet MS14-068)(引用: ADSecurity Detecting Forged Tickets) 另一个例子是重放攻击,对手拦截双方之间发送的数据包,然后稍后重放这些数据包。如果服务未正确验证认证请求,这些重放的数据包可能允许对手冒充其中一方并获得未经授权的访问或权限。(引用: Bugcrowd Replay Attack)(引用: Comparitech Replay Attack)(引用: Microsoft Midnight Blizzard Replay Attack) 这种漏洞利用在云环境中也有示例。例如,对手利用公共云基础设施中的漏洞,允许意外创建和续订认证令牌。(引用: Storm-0558 techniques for unauthorized email access) 针对凭证访问的漏洞利用也可能导致权限提升,具体取决于目标进程或获得的凭证。
T1528 窃取应用程序访问令牌 对手可以窃取应用程序访问令牌作为获取凭据以访问远程系统和资源的一种手段。 应用程序访问令牌用于代表用户或服务进行授权的 API 请求,通常用于访问云和基于容器的应用程序以及软件即服务 (SaaS) 中的资源。(引用: Auth0 - Why You Should Always Use Access Tokens to Secure APIs Sept 2019) 窃取账户 API 令牌的对手可能能够以这些账户的权限访问数据和执行操作,这可能导致权限提升和进一步妥协环境。 例如,在 Kubernetes 环境中,运行在容器内的进程可能使用服务账户令牌与 Kubernetes API 服务器通信。如果容器被妥协,对手可能能够窃取容器的令牌,从而获得 Kubernetes API 命令的访问权限。(引用: Kubernetes Service Accounts) 同样,在持续开发/持续集成 (CI/CD) 管道中,实例通常使用 API 令牌进行身份验证以测试和部署。(引用: Cider Security Top 10 CICD Security Risks) 如果这些管道被妥协,对手可能能够窃取这些令牌并利用其权限。 令牌窃取也可能通过社会工程发生,在这种情况下可能需要用户操作以授予访问权限。OAuth 是一种常见的实现框架,向用户发放令牌以访问系统。希望访问云服务或受保护 API 的应用程序可以通过各种授权协议使用 OAuth 2.0 进行访问。一个常见的示例是 Microsoft 的授权代码授予流程。(引用: Microsoft Identity Platform Protocols May 2019)(引用: Microsoft - OAuth Code Authorization flow - June 2019) OAuth 访问令牌使第三方应用程序能够以请求的方式与包含用户数据的资源进行交互,而无需获取用户凭据。 对手可以通过构建一个恶意应用程序来利用 OAuth 授权,该应用程序旨在获得目标用户的 OAuth 令牌访问资源。(引用: Amnesty OAuth Phishing Attacks, August 2019)(引用: Trend Micro Pawn Storm OAuth 2017) 对手需要完成其应用程序在授权服务器上的注册,例如使用 Azure Portal、Visual Studio IDE、命令行界面、PowerShell 或 REST API 调用进行 Microsoft Identity Platform 注册。(引用: Microsoft - Azure AD App Registration - May 2019) 然后,他们可以发送鱼叉式网络钓鱼链接给目标用户,诱使他们授予应用程序访问权限。一旦授予 OAuth 访问令牌,应用程序可以通过应用程序访问令牌获得对用户账户功能的长期访问权限。(引用: Microsoft - Azure AD Identity Tokens - Aug 2019) 应用程序访问令牌可能在有限的生命周期内有效,限制对手利用被窃取令牌的时间。然而,在某些情况下,对手也可以窃取应用程序刷新令牌(引用: Auth0 Understanding Refresh Tokens),允许他们在不提示用户的情况下获取新的访问令牌。
T1539 窃取 Web 会话 Cookie 对手可能会窃取 Web 应用程序或服务会话 Cookie 并使用它们以经过身份验证的用户身份访问 Web 应用程序或互联网服务,而无需凭据。Web 应用程序和服务通常使用会话 Cookie 作为用户登录网站后的身份验证令牌。 即使 Web 应用程序未被主动使用,Cookie 通常也会在较长时间内有效。Cookie 可以在磁盘上、浏览器的进程内存中以及到远程系统的网络流量中找到。此外,目标机器上的其他应用程序可能会在内存中存储敏感的身份验证 Cookie(例如,认证到云服务的应用程序)。会话 Cookie 可以用来绕过一些多因素身份验证协议。(引用: Pass The Cookie) 有几个例子表明恶意软件针对本地系统上的 Web 浏览器中的 Cookie。(引用: Kaspersky TajMahal April 2019)(引用: Unit 42 Mac Crypto Cookies January 2019) 对手还可能通过在网站中注入恶意 JavaScript 内容或依赖 User Execution 通过诱骗受害者在其浏览器中运行恶意 JavaScript 来窃取 Cookie。(引用: Talos Roblox Scam 2023)(引用: Krebs Discord Bookmarks 2023) 还有一些开源框架如 Evilginx2Muraena 可以通过恶意代理(例如 Adversary-in-the-Middle)收集会话 Cookie,这些代理可以由对手设置并用于钓鱼活动。(引用: Github evilginx2)(引用: GitHub Mauraena) 在对手获取有效的 Cookie 后,他们可以执行 Web Session Cookie 技术登录到相应的 Web 应用程序。
T1552 不安全的凭据 对手可能会搜索被破坏的系统以查找和获取不安全存储的凭据。这些凭据可以存储和/或误放在系统的许多位置,包括明文文件(例如,Bash历史记录)、操作系统或应用程序特定的存储库(例如,注册表中的凭据),或其他专用文件/工件(例如,私钥)。(引用: Brining MimiKatz to Unix)
T1552.001 文件中的凭据 对手可能会搜索本地文件系统和远程文件共享中的文件,以查找不安全存储的凭据。这些文件可能是用户创建的用于存储其自身凭据的文件、共享凭据存储库、包含系统或服务密码的配置文件或包含嵌入密码的源代码/二进制文件。 可以通过操作系统凭据转储从备份或保存的虚拟机中提取密码。(引用: CG 2014) 密码也可以从存储在 Windows 域控制器上的组策略首选项中获取。(引用: SRD GPP) 在云和/或容器化环境中,经过身份验证的用户和服务帐户凭据通常存储在本地配置和凭据文件中。(引用: Unit 42 Hildegard Malware) 它们也可能作为部署命令的参数出现在容器日志中。(引用: Unit 42 Unsecured Docker Daemons) 在某些情况下,这些文件可以被复制并在另一台机器上重用,或者可以读取其内容然后进行身份验证,而无需复制任何文件。(引用: Specter Ops - Cloud Credential Storage)
T1552.002 注册表中的凭据 对手可能会在被破坏的系统上搜索注册表中不安全存储的凭据。Windows注册表存储配置信息,系统或其他程序可以使用这些信息。对手可能会查询注册表,寻找其他程序或服务存储的凭据和密码。有时这些凭据用于自动登录。 查找与密码信息相关的注册表项的示例命令:(引用: Pentestlab Stored Credentials) * 本地机器配置单元:reg query HKLM /f password /t REG_SZ /s * 当前用户配置单元:reg query HKCU /f password /t REG_SZ /s
T1552.003 Bash 历史记录 对手可能会在受损系统上搜索 bash 命令历史记录以查找不安全存储的凭据。Bash 使用“历史记录”实用程序跟踪用户在命令行上键入的命令。一旦用户注销,历史记录将刷新到用户的 .bash_history 文件中。对于每个用户,此文件位于相同位置:~/.bash_history。通常,此文件跟踪用户的最后 500 个命令。用户经常在命令行上将用户名和密码作为程序的参数键入,这些参数在他们注销时保存到此文件中。对手可以通过查看文件中的潜在凭据来滥用这一点。(引用: External to DA, the OS X Way)
T1552.004 私钥 对手可能会在受损系统上搜索私钥证书文件,以查找不安全存储的凭据。私有加密密钥和证书用于身份验证、加密/解密和数字签名。(引用: Wikipedia Public Key Crypto) 常见的密钥和证书文件扩展名包括:.key、.pgp、.gpg、.ppk、.p12、.pem、.pfx、.cer、.p7b、.asc。 对手可能还会在常见密钥目录中查找,例如 * nix 系统上的 ~/.ssh 或 Windows 上的 C:\Users\(username)\.ssh\。对手工具还可能在受损系统上搜索与加密密钥和证书相关的文件扩展名。(引用: Kaspersky Careto)(引用: Palo Alto Prince of Persia) 当设备注册到 Entra ID 时,会生成设备密钥和传输密钥,用于验证设备的身份。(引用: Microsoft Primary Refresh Token) 对手访问设备后,可能能够导出密钥以冒充设备。(引用: AADInternals Azure AD Device Identities) 在网络设备上,私钥可以通过网络设备 CLI 命令(如 crypto pki export)导出。(引用: cisco_deploy_rsa_keys) 某些私钥需要密码或口令才能操作,因此对手可能还会使用输入捕获进行键盘记录或尝试离线暴力破解口令。这些私钥可用于身份验证到远程服务(如 SSH)或用于解密其他收集的文件(如电子邮件)。
T1552.005 云实例元数据 API 对手可能会尝试访问云实例元数据 API 以收集凭证和其他敏感数据。 大多数云服务提供商支持云实例元数据 API,这是一种提供给运行虚拟实例的服务,允许应用程序访问有关运行虚拟实例的信息。可用信息通常包括名称、安全组和其他元数据,包括敏感数据,如凭证和可能包含其他秘密的 UserData 脚本。实例元数据 API 作为一种便利提供,以帮助管理应用程序,并且任何可以访问实例的人都可以访问。(引用: AWS Instance Metadata API) 在至少一次高调的妥协中使用了云元数据 API。(引用: Krebs Capital One August 2019) 如果对手在运行的虚拟实例上有存在,他们可能会直接查询实例元数据 API 以识别授予访问其他资源的凭证。此外,对手可能会利用公共面对的 Web 代理中的服务器端请求伪造 (SSRF) 漏洞,允许他们通过请求实例元数据 API 访问敏感信息。(引用: RedLock Instance Metadata API 2018) 云服务提供商的事实标准是将实例元数据 API 托管在 http[:]//169.254.169.254
T1552.006 组策略首选项 对手可能会尝试在组策略首选项(GPP)中找到不安全的凭据。GPP是允许管理员创建嵌入凭据的域策略的工具。这些策略允许管理员设置本地账户。(引用: Microsoft GPP 2016) 这些组策略存储在域控制器上的SYSVOL中。这意味着任何域用户都可以查看SYSVOL共享并解密密码(使用已公开的AES密钥)。(引用: Microsoft GPP Key) 以下工具和脚本可用于从组策略首选项XML文件中收集和解密密码文件: * Metasploit的后期利用模块:post/windows/gather/credentials/gpp * Get-GPPPassword(引用: Obscuresecurity Get-GPPPassword) * gpprefdecrypt.py 在SYSVOL共享上,对手可以使用以下命令枚举潜在的GPP XML文件:dir /s * .xml
T1552.007 容器API 对手可能通过容器环境中的API收集凭据。这些环境中的API,例如Docker API和Kubernetes API,允许用户远程管理其容器资源和集群组件。(引用: Docker API)(引用: Kubernetes API) 对手可能访问Docker API以收集包含云、容器和环境中各种其他资源凭据的日志。(引用: Unit 42 Unsecured Docker Daemons) 拥有足够权限的对手,例如通过pod的服务账户,也可能使用Kubernetes API从Kubernetes API服务器检索凭据。这些凭据可能包括用于Docker API认证的凭据或来自Kubernetes集群组件的秘密。
T1552.008 聊天消息 对手可能会直接收集存储或通过用户通信服务传递的不安全凭证。凭证可能会在用户聊天通信应用程序中发送和存储,例如电子邮件、Slack或Teams等聊天服务、Jira或Trello等协作工具,以及任何其他支持用户通信的服务。用户可能会在私人或公共公司内部通信渠道上共享各种形式的凭证(如用户名和密码、API密钥或认证令牌)。 对手可能会直接访问这些服务中的凭证,而不是访问存储的聊天日志(即文件中的凭证),通过用户端点、托管服务的服务器或云托管服务的管理员门户。对手还可能妥协集成工具,如Slack Workflows,以自动搜索消息以提取用户凭证。这些凭证可能会被滥用以执行后续活动,如横向移动或权限提升。(引用: Slack Security Risks)
T1555 从密码存储中获取凭据 对手可能会搜索常见的密码存储位置以获取用户凭据。(引用: F-Secure The Dukes) 根据操作系统或持有凭据的应用程序,密码存储在系统的多个位置。还有一些特定的应用程序和服务存储密码,以便用户更容易管理和维护,例如密码管理器和云秘密库。一旦获得凭据,它们可以用于横向移动和访问受限信息。
T1555.001 钥匙串 对手可能会从钥匙串中获取凭据。钥匙串(或钥匙串服务)是macOS的凭据管理系统,存储账户名称、密码、私钥、证书、敏感应用数据、支付数据和安全笔记。有三种类型的钥匙串:登录钥匙串、系统钥匙串和本地项目(iCloud)钥匙串。默认的钥匙串是登录钥匙串,它存储用户密码和信息。系统钥匙串存储操作系统访问的项目,例如主机上用户之间共享的项目。本地项目(iCloud)钥匙串用于与Apple的iCloud服务同步的项目。 可以通过钥匙串访问应用程序或使用命令行实用程序security查看和编辑钥匙串。钥匙串文件位于~/Library/Keychains//Library/Keychains//Network/Library/Keychains/。(引用: Keychain Services Apple)(引用: Keychain Decryption Passware)(引用: OSX Keychain Schaumann) 对手可能会从钥匙串存储/内存中收集用户凭据。例如,命令security dump-keychain –d将从~/Library/Keychains/login.keychain-db转储所有登录钥匙串凭据。对手还可能直接从~/Library/Keychains/login.keychain文件读取登录钥匙串凭据。这两种方法都需要密码,其中登录钥匙串的默认密码是当前用户登录macOS主机的密码。(引用: External to DA, the OS X Way)(引用: Empire Keychain Decrypt)
T1555.002 Securityd 内存 具有 root 访问权限的对手可能通过读取 securityd 的内存来收集凭证。securityd 是负责实现安全协议(如加密和授权)的服务/守护进程。(引用: Apple Dev SecurityD) 具有特权的对手可能能够扫描 securityd 的内存以找到正确的密钥序列来解密用户的登录钥匙串。这可能为对手提供各种明文密码,如用户、WiFi、邮件、浏览器、证书、安全笔记等的密码。(引用: OS X Keychain)(引用: OSX Keydnap malware) 在 El Capitan 之前的 OS X 中,具有 root 访问权限的用户可以读取已登录用户的明文钥匙串密码,因为 Apple 的钥匙串实现允许缓存这些凭证,以便用户不会反复提示输入密码。(引用: OS X Keychain)(引用: External to DA, the OS X Way) Apple 的 securityd 实用程序获取用户的登录密码,用 PBKDF2 加密,并将此主密钥存储在内存中。Apple 还使用一组密钥和算法来加密用户的密码,但一旦找到主密钥,对手只需迭代其他值即可解锁最终密码。(引用: OS X Keychain)
T1555.003 来自Web浏览器的凭据 对手可能通过读取特定于目标浏览器的文件获取Web浏览器中的凭据。(引用: Talos Olympic Destroyer 2018) Web浏览器通常会保存凭据,如网站用户名和密码,以便将来无需手动输入。Web浏览器通常将凭据以加密格式存储在凭据存储中;然而,存在从Web浏览器中提取明文凭据的方法。 例如,在Windows系统上,可以通过读取数据库文件AppData\Local\Google\Chrome\User Data\Default\Login Data并执行SQL查询SELECT action_url, username_value, password_value FROM logins;获取Google Chrome的加密凭据。然后可以通过将加密凭据传递给Windows API函数CryptUnprotectData来获取明文密码,该函数使用受害者缓存的登录凭据作为解密密钥。(引用: Microsoft CryptUnprotectData April 2018) 对手已经对常见的Web浏览器(如FireFox、Safari、Edge等)执行了类似的程序。(引用: Proofpoint Vega Credential Stealer May 2018)(引用: FireEye HawkEye Malware July 2017) Windows将Internet Explorer和Microsoft Edge凭据存储在由Windows凭据管理器管理的凭据锁中。 对手还可能通过搜索Web浏览器进程内存中的常见匹配凭据的模式获取凭据。(引用: GitHub Mimikittenz July 2016) 在获取Web浏览器中的凭据后,对手可能会尝试在不同系统和/或帐户中重复使用这些凭据,以扩展访问权限。在凭据与特权帐户(例如域管理员)重叠的情况下,这可能显著推进对手的目标。
T1555.004 Windows 凭据管理器 对手可能会从 Windows 凭据管理器中获取凭据。凭据管理器存储用于通过 NTLM 或 Kerberos 进行身份验证的网站、应用程序和/或设备的凭据,存储在凭据锁中(以前称为 Windows 保险库)。(引用: Microsoft Credential Manager store)(引用: Microsoft Credential Locker) Windows 凭据管理器将网站凭据与应用程序或网络凭据分开存储在两个锁中。作为 来自 Web 浏览器的凭据 的一部分,Internet Explorer 和 Microsoft Edge 网站凭据由凭据管理器管理,并存储在 Web 凭据锁中。应用程序和网络凭据存储在 Windows 凭据锁中。 凭据锁将凭据存储在加密的 .vcrd 文件中,位于 %Systemdrive%\Users\\[Username]\AppData\Local\Microsoft\\[Vault/Credentials]\ 下。加密密钥可以在名为 Policy.vpol 的文件中找到,通常位于与凭据相同的文件夹中。(引用: passcape Windows Vault)(引用: Malwarebytes The Windows Vault) 对手可能通过多种机制列出由 Windows 凭据管理器管理的凭据。vaultcmd.exe 是一个本机 Windows 可执行文件,可用于通过命令行界面枚举存储在凭据锁中的凭据。对手还可以通过直接读取凭据锁内的文件来收集凭据。Windows API,例如 CredEnumerateA,也可能被滥用来列出由凭据管理器管理的凭据。(引用: Microsoft CredEnumerate)(引用: Delpy Mimikatz Crendential Manager) 对手还可能从凭据备份中获取凭据。可以通过运行 rundll32.exe keymgr.dll KRShowKeyMgr 然后在“存储的用户名和密码”GUI 上选择“备份...”按钮来执行凭据备份和恢复。 密码恢复工具还可以从凭据管理器中获取明文密码。(引用: Malwarebytes The Windows Vault)
T1555.005 密码管理器 对手可能会从第三方密码管理器中获取用户凭据。(引用: ise Password Manager February 2019) 密码管理器是用于存储用户凭据的应用程序,通常存储在加密数据库中。用户提供主密码解锁数据库后,通常可以访问这些凭据。这些数据库可以作为文件存储在磁盘上。(引用: ise Password Manager February 2019) 对手可能通过从内存中提取主密码和/或明文凭据来获取密码管理器中的用户凭据。(引用: FoxIT Wocao December 2019)(引用: Github KeeThief) 对手可能通过凭据访问利用从内存中提取凭据。(引用: NVD CVE-2019-3610) 对手还可能尝试通过密码猜测暴力破解密码管理器的主密码。(引用: Cyberreason Anchor December 2019)
T1555.006 云秘密管理存储 对手可能会从云原生秘密管理解决方案(如AWS Secrets Manager、GCP Secret Manager、Azure Key Vault和Terraform Vault)中获取凭据。 秘密管理器支持密码、API密钥和其他凭据材料的安全集中管理。在使用秘密管理器的情况下,云服务可以通过API请求动态获取凭据,而不是访问不安全地存储在纯文本文件或环境变量中的秘密。 如果对手能够在云环境中获得足够的权限——例如,通过获取高权限的云账户的凭据或破坏有权限检索秘密的服务——他们可能能够从秘密管理器请求秘密。这可以通过AWS中的get-secret-value、GCP中的gcloud secrets describe和Azure中的az key vault secret show命令来实现。(引用: Permiso Scattered Spider 2023)(引用: Sysdig ScarletEel 2.0 2023)(引用: AWS Secrets Manager)(引用: Google Cloud Secrets)(引用: Microsoft Azure Key Vault) 注意: 此技术与云实例元数据API不同,因为凭据是直接从云秘密管理器请求的,而不是通过实例元数据API。
T1556 修改认证过程 对手可能会修改认证机制和过程,以访问用户凭据或启用其他不必要的账户访问。认证过程由负责收集、存储和验证凭据的机制处理,例如Windows上的本地安全认证服务器(LSASS)进程和安全账户管理器(SAM),Unix系统上的可插拔认证模块(PAM),以及MacOS系统上的授权插件。通过修改认证过程,对手可能能够在不使用有效账户的情况下认证到服务或系统。 对手可能会恶意修改此过程的一部分,以揭示凭据或绕过认证机制。被破坏的凭据或访问可能用于绕过网络中系统上各种资源的访问控制,并可能用于对远程系统和外部可用服务(如VPN、Outlook Web Access和远程桌面)的持久访问。
T1556.001 域控制器认证 对手可能会修补域控制器上的认证过程,以绕过典型的认证机制并启用对账户的访问。 恶意软件可能用于在域控制器的认证过程中注入虚假凭据,目的是创建一个后门,用于访问任何用户的账户和/或凭据(例如:Skeleton Key)。Skeleton Key 通过修补企业域控制器认证过程(LSASS)来工作,对手可以使用这些凭据绕过标准认证系统。一旦修补,对手可以使用注入的密码成功认证为任何域用户账户(直到域控制器重启后 Skeleton Key 从内存中擦除)。认证访问可能在单因素认证环境中启用对主机和/或资源的不受限制的访问。(引用: Dell Skeleton)
T1556.002 密码过滤器 DLL 对手可能会将恶意密码过滤器动态链接库 (DLL) 注册到身份验证过程中,以在验证用户凭据时获取这些凭据。 Windows 密码过滤器是用于域和本地账户的密码策略实施机制。过滤器实现为包含方法的 DLL,用于根据密码策略验证潜在密码。过滤器 DLL 可以放置在本地计算机上用于本地账户和/或域控制器上用于域账户。在将新密码注册到安全账户管理器 (SAM) 之前,本地安全机构 (LSA) 会请求每个注册过滤器的验证。任何潜在的更改在每个注册过滤器确认验证之前都不会生效。 对手可以注册恶意密码过滤器,从本地计算机和/或整个域中收集凭据。为了进行正确的验证,过滤器必须从 LSA 接收明文凭据。每次发出密码请求时,恶意密码过滤器都会接收这些明文凭据。(引用: Carnal Ownage Password Filters Sept 2013)
T1556.003 可插拔认证模块 对手可能会修改可插拔认证模块(PAM)以访问用户凭据或启用其他不必要的帐户访问。PAM是一个模块化的配置文件、库和可执行文件系统,用于指导许多服务的认证。最常见的认证模块是pam_unix.so,它在/etc/passwd/etc/shadow中检索、设置和验证帐户认证信息。(引用: Apple PAM)(引用: Man Pam_Unix)(引用: Red Hat PAM) 对手可能会修改PAM系统的组件以创建后门。PAM组件(如pam_unix.so)可以被修补以接受对手提供的任意值作为合法凭据。(引用: PAM Backdoor) 对PAM系统的恶意修改也可能被滥用来窃取凭据。对手可能会感染PAM资源以收集用户凭据,因为与PAM组件交换的值可能是明文的,因为PAM不存储密码。(引用: PAM Creds)(引用: Apple PAM)
T1556.004 网络设备认证 对手可能使用修补系统镜像在操作系统中硬编码密码,从而绕过网络设备本地账户的本机认证机制。 修改系统镜像可能包括在网络设备的操作系统中植入代码,以便对手使用特定密码进行访问。修改包括通过修补在操作系统镜像中植入特定密码。认证尝试时,插入的代码将首先检查用户输入是否为密码。如果是,则授予访问权限。否则,植入的代码将传递凭据以验证可能有效的凭据。(引用: Mandiant - Synful Knock)
T1556.005 可逆加密 对手可能会滥用 Active Directory 认证加密属性,以获取 Windows 系统上的凭据。AllowReversiblePasswordEncryption 属性指定是否启用或禁用账户的可逆密码加密。默认情况下,此属性被禁用(而是将用户凭据存储为单向哈希函数的输出),除非需要遗留或其他软件,否则不应启用。(引用: store_pwd_rev_enc) 如果启用此属性和/或用户在启用后更改其密码,对手可能能够获取在启用此属性后创建/更改的密码的明文。要解密密码,对手需要四个组件: 1. 来自 Active Directory 用户结构 userParameters 的加密密码 (G$RADIUSCHAP) 2. 也是来自 userParameters 的 16 字节随机生成值 (G$RADIUSCHAPKEY) 3. 全局 LSA 密钥 (G$MSRADIUSCHAPKEY) 4. 硬编码在远程访问子认证 DLL (RASSFM.DLL) 中的静态密钥 有了这些信息,对手可能能够重现加密密钥,并随后解密加密的密码值。(引用: how_pwd_rev_enc_1)(引用: how_pwd_rev_enc_2) 对手可能通过本地组策略编辑器、用户属性、细粒度密码策略 (FGPP) 或通过 ActiveDirectory PowerShell 模块在各种范围内设置此属性。例如,如果域功能级别设置为“Windows Server 2008”或更高,对手可能会实施并应用 FGPP 到用户或组。(引用: dump_pwd_dcsync) 在 PowerShell 中,对手可能使用类似 Set-ADUser -AllowReversiblePasswordEncryption $true 的命令对用户设置进行相关更改。
T1556.006 多因素认证 对手可能会禁用或修改多因素认证 (MFA) 机制,以便对被破坏的账户进行持久访问。 一旦对手通过破坏缺乏 MFA 的账户或使用 MFA 绕过方法(例如多因素认证请求生成)获得对网络的访问权限,对手可能会利用其访问权限修改或完全禁用 MFA 防御。这可以通过滥用合法功能来实现,例如将用户排除在 Azure AD 条件访问策略之外,注册新的但易受攻击/对手控制的 MFA 方法,或通过手动修补 MFA 程序和配置文件以绕过预期功能。(引用: Mandiant APT42)(引用: Azure AD 条件访问排除) 例如,修改 Windows 主机文件 (C:\windows\system32\drivers\etc\hosts) 以将 MFA 调用重定向到本地主机而不是 MFA 服务器,可能会导致 MFA 过程失败。如果存在“失败开放”策略,则任何其他成功的身份验证尝试可能会在不强制执行 MFA 的情况下被授予访问权限。(引用: 俄罗斯人利用默认 MFA 协议 - CISA 2022 年 3 月) 根据对手的范围、目标和权限,MFA 防御可能会针对单个账户或与更大组相关的所有账户(例如受害者网络环境中的所有域账户)被禁用。(引用: 俄罗斯人利用默认 MFA 协议 - CISA 2022 年 3 月)
T1556.007 混合身份 对手可能会修补、修改或以其他方式后门化与本地用户身份相关联的云身份验证过程,以绕过典型的身份验证机制、访问凭据并启用对账户的持久访问。 许多组织维护在本地和云环境之间共享的混合用户和设备身份。这些身份可以通过多种方式维护。例如,Microsoft Entra ID包括三种同步Active Directory和Entra ID之间身份的选项(引用: Azure AD Hybrid Identity): * 密码哈希同步(PHS),其中特权本地账户同步用户密码哈希值,使Entra ID的身份验证完全在云中进行 * 直通身份验证(PTA),其中Entra ID身份验证尝试被转发到本地PTA代理,该代理根据Active Directory验证凭据 * Active Directory联合服务(AD FS),其中在Active Directory和Entra ID之间建立信任关系 AD FS还可以与其他SaaS和云平台(如AWS和GCP)一起使用,这些平台将身份验证过程交给AD FS并接收包含混合用户身份和权限的令牌。 通过修改与混合身份相关的身份验证过程,对手可能能够建立对云资源的持久特权访问。例如,妥协运行PTA代理的本地服务器的对手可能会将恶意DLL注入AzureADConnectAuthenticationAgentService进程,该进程授权所有尝试对Entra ID进行身份验证的请求,并记录用户凭据。(引用: Azure AD Connect for Read Teamers)(引用: AADInternals Azure AD On-Prem to Cloud) 在使用AD FS的环境中,对手可能会编辑Microsoft.IdentityServer.Servicehost配置文件以加载生成任何用户的身份验证令牌的恶意DLL,从而绕过多因素认证和定义的AD FS策略。(引用: MagicWeb) 在某些情况下,对手可能能够从云端修改混合身份身份验证过程。例如,妥协Entra ID租户中的全局管理员账户的对手可能能够通过Web控制台注册新的PTA代理,从而允许他们收集凭据并以任何用户身份登录Entra ID环境。(引用: Mandiant Azure AD Backdoors)
T1556.008 网络提供程序 DLL 对手可能会注册恶意的网络提供程序动态链接库 (DLL),以在身份验证过程中捕获明文用户凭据。网络提供程序 DLL 允许 Windows 与特定网络协议接口,并且还可以支持附加的凭据管理功能。(引用: Network Provider API) 在登录过程中,Winlogon(交互式登录模块)通过 RPC 将凭据发送到本地的 mpnotify.exe 进程。mpnotify.exe 进程在通知发生登录事件时,将明文凭据与注册的凭据管理器共享。(引用: NPPSPY - Huntress)(引用: NPPSPY Video)(引用: NPLogonNotify) 对手可以配置恶意的网络提供程序 DLL 以从 mpnotify.exe 接收凭据。(引用: NPPSPY) 一旦作为凭据管理器安装(通过注册表),恶意 DLL 可以在每次用户登录到 Windows 工作站或域时通过 NPLogonNotify() 函数接收并保存凭据。(引用: NPLogonNotify) 对手可能会将恶意的网络提供程序 DLL 植入已知具有较多登录活动和/或管理员登录活动的系统上,例如服务器和域控制器。(引用: NPPSPY - Huntress)
T1556.009 条件访问策略 对手可能会禁用或修改条件访问策略,以确保对被破坏账户的持久访问。条件访问策略是身份提供者和身份和访问管理系统用于确定用户是否应被授予资源访问权限的额外验证。 例如,在Entra ID、Okta和JumpCloud中,可以根据用户的IP地址、设备注册状态和多因素认证的使用情况拒绝用户访问应用程序。(引用: Microsoft Conditional Access)(引用: JumpCloud Conditional Access Policies)(引用: Okta Conditional Access Policies) 在某些情况下,身份提供者还可能支持使用基于风险的指标,根据各种指标拒绝登录。在AWS和GCP中,IAM策略可以包含condition属性,以验证任意约束,例如源IP、请求日期以及请求的资源或区域的性质。(引用: AWS IAM Conditions)(引用: GCP IAM Conditions) 这些措施有助于防止被破坏的凭据导致未经授权的数据或资源访问,并将用户权限限制在仅所需的权限。 通过修改条件访问策略,例如添加额外的受信任IP范围、删除多因素认证要求或允许额外的未使用/不受支持的云区域,对手可能能够确保对账户的持久访问并规避防御措施。
T1557 中间人攻击 对手可能会尝试使用中间人攻击(AiTM)技术在两个或多个网络设备之间定位自己,以支持后续行为,如网络嗅探传输数据操作或重放攻击(凭证访问利用)。通过滥用常见网络协议的功能,这些协议可以确定网络流量的流向(例如ARP、DNS、LLMNR等),对手可能会强制设备通过对手控制的系统进行通信,以便他们可以收集信息或执行其他操作。(引用: Rapid7 MiTM Basics) 例如,对手可能会操纵受害者的DNS设置,以启用其他恶意活动,如阻止/重定向用户访问合法网站和/或推送其他恶意软件。(引用: ttint_rat)(引用: dns_changer_trojans)(引用: ad_blocker_with_miner) 对手还可能操纵DNS并利用其位置来拦截用户凭据,包括访问令牌(窃取应用程序访问令牌)和会话Cookie(窃取Web会话Cookie)。(引用: volexity_0day_sophos_FW)(引用: Token tactics) 降级攻击也可以用来建立AiTM位置,例如通过协商不太安全、已弃用或较弱版本的通信协议(SSL/TLS)或加密算法。(引用: mitm_tls_downgrade_att)(引用: taxonomy_downgrade_att_tls)(引用: tlseminar_downgrade_att) 对手还可能利用AiTM位置尝试监视和/或修改流量,例如在传输数据操作中。对手可以设置类似于AiTM的位置,以防止流量流向适当的目的地,可能是为了削弱防御和/或支持网络拒绝服务
T1557.001 LLMNR/NBT-NS 中毒和 SMB 中继 通过响应 LLMNR/NBT-NS 网络流量,对手可能会伪装成权威的名称解析源,以强制与对手控制的系统进行通信。这种活动可能用于收集或中继身份验证材料。 链路本地多播名称解析 (LLMNR) 和 NetBIOS 名称服务 (NBT-NS) 是 Microsoft Windows 组件,作为主机标识的替代方法。LLMNR 基于域名系统 (DNS) 格式,允许同一本地链路上的主机为其他主机执行名称解析。NBT-NS 通过其 NetBIOS 名称识别本地网络上的系统。(引用: Wikipedia LLMNR)(引用: TechNet NetBIOS) 对手可以通过响应 LLMNR (UDP 5355)/NBT-NS (UDP 137) 流量,伪装成受害者网络中请求主机的权威名称解析源,有效地毒害服务,使受害者与对手控制的系统通信。如果请求的主机属于需要身份验证的资源,则用户名和 NTLMv2 哈希将发送到对手控制的系统。然后,对手可以通过监控端口流量的工具或通过网络嗅探收集通过网络发送的哈希信息,并通过暴力破解离线破解哈希以获取明文密码。 在某些情况下,如果对手可以访问系统,该系统位于系统之间的身份验证路径中,或者当使用凭据的自动扫描尝试对对手控制的系统进行身份验证时,可以拦截并中继 NTLMv1/v2 哈希以访问和对目标系统执行代码。中继步骤可以与中毒结合发生,但也可以独立发生。(引用: byt3bl33d3r NTLM Relaying)(引用: Secure Ideas SMB Relay) 此外,对手可能会将 NTLMv1/v2 哈希封装到各种协议中,例如 LDAP、SMB、MSSQL 和 HTTP,以扩展并使用带有有效 NTLM 响应的多个服务。 可以使用多种工具在本地网络中毒害名称服务,例如 NBNSpoof、Metasploit 和Responder。(引用: GitHub NBNSpoof)(引用: Rapid7 LLMNR Spoofer)(引用: GitHub Responder)
T1557.002 ARP 缓存中毒 对手可能会毒害地址解析协议 (ARP) 缓存,以将自己置于两个或多个网络设备的通信之间。这种活动可用于启用后续行为,例如 网络嗅探传输数据篡改。 ARP 协议用于将 IPv4 地址解析为链路层地址,例如媒体访问控制 (MAC) 地址。(引用: RFC826 ARP) 本地网络段中的设备通过使用链路层地址进行通信。如果网络设备没有特定网络设备的链路层地址,它可能会向本地网络发送广播 ARP 请求,以将 IP 地址转换为 MAC 地址。具有相关 IP 地址的设备直接回复其 MAC 地址。发出 ARP 请求的网络设备将使用并存储该信息在其 ARP 缓存中。 对手可能会被动等待 ARP 请求来毒害请求设备的 ARP 缓存。对手可能会回复他们的 MAC 地址,从而欺骗受害者,使其相信他们正在与预期的网络设备通信。为了毒害 ARP 缓存,对手的回复必须比合法 IP 地址所有者的回复更快。对手还可能发送一个免费的 ARP 回复,恶意宣布拥有特定 IP 地址给本地网络段中的所有设备。 ARP 协议是无状态的,不需要身份验证。因此,设备可能会错误地将 IP 地址的 MAC 地址添加或更新到其 ARP 缓存中。(引用: Sans ARP Spoofing Aug 2003)(引用: Cylance Cleaver) 对手可能会使用 ARP 缓存中毒作为拦截网络流量的一种手段。这种活动可用于收集和/或中继数据,例如通过不安全、未加密协议发送的凭据。(引用: Sans ARP Spoofing Aug 2003)
T1557.003 DHCP 欺骗 对手可能通过伪造动态主机配置协议 (DHCP) 流量并充当受害网络上的恶意 DHCP 服务器来重定向网络流量到对手拥有的系统。通过实现对手中间人 (AiTM) 位置,对手可能会收集网络通信,包括通过不安全、未加密协议传递的凭据。这也可能启用后续行为,例如网络嗅探传输数据操纵。 DHCP 基于客户端-服务器模型,具有两种功能:从 DHCP 服务器向客户端提供网络配置设置的协议和向客户端分配网络地址的机制。(引用: rfc2131) 典型的服务器-客户端交互如下: 1. 客户端广播 DISCOVER 消息。 2. 服务器响应 OFFER 消息,其中包括可用的网络地址。 3. 客户端广播 REQUEST 消息,其中包括提供的网络地址。 4. 服务器通过 ACK 消息确认,客户端接收网络配置参数。 对手可能会在受害网络上伪装成流氓 DHCP 服务器,合法主机可能会从中接收恶意网络配置。例如,恶意软件可以充当 DHCP 服务器并向受害计算机提供对手拥有的 DNS 服务器。(引用: new_rogue_DHCP_serv_malware)(引用: w32.tidserv.g) 通过恶意网络配置,对手可能实现 AiTM 位置,通过对手控制的系统路由客户端流量,并从客户端网络收集信息。 DHCPv6 客户端可以在不分配 IP 地址的情况下接收网络配置信息,方法是向 All_DHCP_Relay_Agents_and_Servers 多播地址发送 INFORMATION-REQUEST (code 11) 消息。(引用: rfc3315) 对手可能使用其流氓 DHCP 服务器响应此请求消息,提供恶意网络配置。 对手可能还会滥用 DHCP 欺骗执行 DHCP 耗尽攻击(即,服务耗尽泛洪),通过生成许多广播 DISCOVER 消息来耗尽网络的 DHCP 分配池。
T1557.004 恶意双胞胎 对手可能会托管看似合法的 Wi-Fi 接入点,以欺骗用户连接到恶意网络,从而支持后续行为,例如网络嗅探传输数据操纵输入捕获。(引用: Australia ‘Evil Twin’) 通过使用合法 Wi-Fi 网络的服务集标识符 (SSID),欺诈性 Wi-Fi 接入点可能会欺骗设备或用户连接到恶意 Wi-Fi 网络。(引用: Kaspersky evil twin)(引用: medium evil twin) 对手可能会提供更强的信号强度或阻止访问 Wi-Fi 接入点,以强迫或诱使受害设备连接到恶意网络。(引用: specter ops evil twin) Wi-Fi Pineapple 是一种网络安全审计和渗透测试工具,可能会在恶意双胞胎攻击中部署,以便于使用和更广泛的范围。自定义证书可能会被用来试图拦截 HTTPS 流量。 类似地,对手还可能监听客户端设备发送的探测请求,以查找已知或以前连接的网络(首选网络列表或 PNL)。当恶意接入点收到探测请求时,对手可以使用相同的 SSID 响应,以模仿受信任的已知网络。(引用: specter ops evil twin) 受害设备被引导相信响应的接入点来自其 PNL,并开始连接到欺诈网络。 登录到恶意 Wi-Fi 接入点后,用户可能会被引导到假登录页面或强制门户网页,以捕获受害者的凭据。一旦用户登录到欺诈性 Wi-Fi 网络,对手可能能够监视网络活动、操纵数据或窃取其他凭据。具有高浓度公共 Wi-Fi 接入的地点,例如机场、咖啡店或图书馆,可能成为对手设置非法 Wi-Fi 接入点的目标。
T1558 窃取或伪造Kerberos票证 对手可能尝试通过窃取或伪造Kerberos票证来颠覆Kerberos认证,以启用传递票证。Kerberos是一种在现代Windows域环境中广泛使用的认证协议。在Kerberos环境中,称为“领域”,有三个基本参与者:客户端、服务和密钥分发中心(KDC)。(引用: ADSecurity Kerberos Ring Decoder) 客户端请求访问服务,并通过来自KDC的Kerberos票证交换,在成功认证后获得访问权限。KDC负责认证和票证授予。对手可能尝试通过窃取票证或伪造票证来滥用Kerberos,以启用未经授权的访问。 在Windows上,内置的klist实用程序可用于列出和分析缓存的Kerberos票证。(引用: Microsoft Klist)
T1558.001 黄金票证 对手如果拥有KRBTGT账户密码哈希,可以伪造Kerberos票证授予票证(TGT),也称为黄金票证。(引用: AdSecurity Kerberos GT Aug 2015) 黄金票证使对手能够为Active Directory中的任何账户生成身份验证材料。(引用: CERT-EU Golden Ticket Protection) 使用黄金票证,对手可以请求票证授予服务(TGS)票证,从而访问特定资源。黄金票证要求对手与密钥分发中心(KDC)交互以获取TGS。(引用: ADSecurity Detecting Forged Tickets) KDC服务在属于Active Directory域的所有域控制器上运行。KRBTGT是Kerberos密钥分发中心(KDC)服务账户,负责加密和签署所有Kerberos票证。(引用: ADSecurity Kerberos and KRBTGT) 可以通过操作系统凭据转储和对域控制器的特权访问获取KRBTGT密码哈希。
T1558.002 银票 对手如果拥有目标服务账户(例如 SharePoint、MSSQL)的密码哈希,可能会伪造 Kerberos 票证授予服务 (TGS) 票证,也称为银票。Kerberos TGS 票证也称为服务票证。(引用: ADSecurity Silver Tickets) 银票的范围比金票更有限,因为它们只允许对手访问特定资源(例如 MSSQL)和托管该资源的系统;然而,与金票不同,能够伪造银票的对手可以在不与密钥分发中心 (KDC) 交互的情况下创建 TGS 票证,从而可能使检测更加困难。(引用: ADSecurity Detecting Forged Tickets) 目标服务的密码哈希可以通过 操作系统凭据转储Kerberoasting 获得。
T1558.003 Kerberoasting 攻击者可能滥用有效的Kerberos票证授予票证(TGT)或嗅探网络流量以获取可能易受暴力破解攻击的票证授予服务(TGS)票证。(Citation: Empire InvokeKerberoast Oct 2016)(Citation: AdSecurity Cracking Kerberos Dec 2015) 服务主体名称(SPN)用于唯一标识每个Windows服务实例。为了启用身份验证,Kerberos要求SPN与至少一个服务登录账户(专门用于运行服务的账户(Citation: Microsoft Detecting Kerberoasting Feb 2018))相关联。(Citation: Microsoft SPN)(Citation: Microsoft SetSPN)(Citation: SANS Attacking Kerberos Nov 2014)(Citation: Harmj0y Kerberoast Nov 2016) 拥有有效Kerberos票证授予票证(TGT)的攻击者可以从域控制器(DC)请求一个或多个Kerberos票证授予服务(TGS)服务票证。(Citation: Empire InvokeKerberoast Oct 2016)(Citation: AdSecurity Cracking Kerberos Dec 2015) 这些票证的部分可能使用RC4算法加密,这意味着与SPN关联的服务账户的Kerberos 5 TGS-REP etype 23哈希被用作私钥,因此容易受到离线暴力破解攻击,可能暴露明文凭证。(Citation: AdSecurity Cracking Kerberos Dec 2015)(Citation: Empire InvokeKerberoast Oct 2016) (Citation: Harmj0y Kerberoast Nov 2016) 可以使用从网络流量中捕获的服务票证执行相同的行为。(Citation: AdSecurity Cracking Kerberos Dec 2015) 破解的哈希可能通过访问有效账户启用持久性权限提升横向移动。(Citation: SANS Attacking Kerberos Nov 2014)
T1558.004 AS-REP 烘焙 对手可能会通过 密码破解 Kerberos 消息揭示已禁用 Kerberos 预身份验证的帐户的凭据。(引用: Harmj0y Roasting AS-REPs Jan 2017) 预身份验证提供了针对离线 密码破解 的保护。启用时,请求访问资源的用户通过发送带有时间戳的身份验证服务器请求 (AS-REQ) 消息来启动与域控制器 (DC) 的通信,该时间戳使用其密码的哈希值加密。仅当 DC 能够成功使用用户密码的哈希值解密时间戳时,它才会向用户发送包含票证授予票证 (TGT) 的身份验证服务器响应 (AS-REP) 消息。AS-REP 消息的一部分使用用户的密码签名。(引用: Microsoft Kerberos Preauth 2014) 对于每个未启用预身份验证的帐户,对手可能会发送不带加密时间戳的 AS-REQ 消息,并接收包含 TGT 数据的 AS-REP 消息,该数据可能使用不安全的算法(例如 RC4)加密。恢复的加密数据可能容易受到离线 密码破解 攻击,类似于 Kerberoasting 并暴露明文凭据。(引用: Harmj0y Roasting AS-REPs Jan 2017)(引用: Stealthbits Cracking AS-REP Roasting Jun 2019) 可以使用 Windows 工具(例如 PowerShell)和 LDAP 过滤器滥用注册到域的帐户(无论是否具有特殊权限)列出所有已禁用预身份验证的域帐户。或者,对手可能会为每个用户发送 AS-REQ 消息。如果 DC 响应没有错误,则该帐户不需要预身份验证,并且 AS-REP 消息将已经包含加密数据。(引用: Harmj0y Roasting AS-REPs Jan 2017)(引用: Stealthbits Cracking AS-REP Roasting Jun 2019) 破解的哈希值可能会通过访问 有效帐户 启用 持久性权限提升横向移动。(引用: SANS Attacking Kerberos Nov 2014)
T1558.005 Ccache 文件 对手可能会尝试窃取存储在凭据缓存文件(或 ccache)中的 Kerberos 票证。这些文件用于短期存储用户的活动会话凭据。ccache 文件在用户身份验证时创建,允许访问多个服务而无需用户重新输入凭据。 /etc/krb5.conf 配置文件和 KRB5CCNAME 环境变量用于设置 ccache 条目的存储位置。在 Linux 上,凭据通常存储在 /tmp 目录中,命名格式为 krb5cc_%UID%krb5.ccache。在 macOS 上,ccache 条目默认存储在内存中,命名方案为 API:{uuid}。通常,用户使用 kinit 与票证存储交互,该命令为主体获取票证授予票证 (TGT);klist,列出凭据缓存中当前持有的已获取票证;以及其他内置二进制文件。(引用: Kerberos GNU/Linux)(引用: Binary Defense Kerberos Linux) 对手可以从存储在磁盘上的 ccache 文件中收集票证,并在不需要密码的情况下以当前用户身份进行身份验证以执行 传递票证 攻击。对手还可以使用这些票证冒充具有提升权限的合法用户以执行 权限提升。对手可以使用 Kekeo 等工具将 ccache 文件转换为 Windows 格式以进行进一步的 横向移动。在 macOS 上,对手可能会使用开源工具或 Kerberos 框架通过低级 API 与 ccache 文件交互并提取 TGT 或服务票证。(引用: SpectorOps Bifrost Kerberos macOS 2019)(引用: Linux Kerberos Tickets)(引用: Brining MimiKatz to Unix)(引用: Kekeo)
T1606 伪造Web凭证 对手可能会伪造可用于访问Web应用程序或互联网服务的凭证材料。Web应用程序和服务(托管在云SaaS环境或本地服务器上)通常使用会话cookie、令牌或其他材料来验证和授权用户访问。 对手可能会生成这些凭证材料以访问Web资源。这与窃取Web会话Cookie窃取应用程序访问令牌和其他类似行为不同,因为这些凭证是由对手新生成的,而不是从合法用户那里窃取或拦截的。 生成Web凭证通常需要秘密值,例如密码、私钥或其他加密种子值。(引用: GitHub AWS-ADFS-Credential-Generator) 对手还可能通过利用AWS中的AssumeRoleGetFederationToken API功能来伪造令牌,这些功能允许用户请求临时安全凭证(即临时提升的云访问),或通过Zimbra中的zmprov gdpak命令生成预认证密钥,该密钥可用于为域中的任何用户生成令牌。(引用: AWS Temporary Security Credentials)(引用: Zimbra Preauth) 一旦伪造,对手可能会使用这些Web凭证访问资源(例如使用替代认证材料),这可能绕过多因素和其他身份验证保护机制。(引用: Pass The Cookie)(引用: Unit 42 Mac Crypto Cookies January 2019)(引用: Microsoft SolarWinds Customer Guidance)
T1606.001 Web Cookies 对手可能会伪造可用于访问 Web 应用程序或互联网服务的 Web cookies。Web 应用程序和服务(托管在云 SaaS 环境或本地服务器上)通常使用会话 cookies 来验证和授权用户访问。 对手可能会生成这些 cookies 以访问 Web 资源。这与窃取 Web 会话 Cookie和其他类似行为不同,因为这些 cookies 是由对手新生成的,而不是从合法用户那里窃取或拦截的。大多数常见的 Web 应用程序都有标准化和记录的 cookie 值,可以使用提供的工具或接口生成。(引用: Pass The Cookie) 生成 Web cookies 通常需要秘密值,例如密码、私钥或其他加密种子值。 一旦伪造,对手可能会使用这些 Web cookies 访问资源(Web 会话 Cookie),这可能绕过多因素和其他身份验证保护机制。(引用: Volexity SolarWinds)(引用: Pass The Cookie)(引用: Unit 42 Mac Crypto Cookies January 2019)
T1606.002 SAML令牌 如果对手拥有有效的SAML令牌签名证书,他们可能会伪造具有任何权限声明和生命周期的SAML令牌。(引用: Microsoft SolarWinds Steps) SAML令牌的默认生命周期为一小时,但可以在令牌的conditions ...元素中的NotOnOrAfter值中指定有效期。可以使用LifetimeTokenPolicy中的AccessTokenLifetime更改此值。(引用: Microsoft SAML Token Lifetimes) 伪造的SAML令牌使对手能够在使用SAML 2.0作为单点登录(SSO)机制的服务之间进行身份验证。(引用: Cyberark Golden SAML) 对手可能会利用私钥来破坏组织的令牌签名证书,以创建伪造的SAML令牌。如果对手有足够的权限与他们自己的Active Directory联合服务(AD FS)服务器建立新的联合信任,他们可能会生成自己的受信任令牌签名证书。(引用: Microsoft SolarWinds Customer Guidance) 这与窃取应用程序访问令牌和其他类似行为不同,因为这些令牌是由对手新伪造的,而不是从合法用户那里窃取或拦截的。 如果伪造的SAML令牌声称代表一个高度特权的账户,对手可能会获得管理Entra ID的权限。这可能导致使用替代身份验证材料,从而绕过多因素和其他身份验证保护机制。(引用: Microsoft SolarWinds Customer Guidance)
T1621 多因素认证请求生成 对手可能会尝试通过生成发送给用户的多因素认证(MFA)请求来绕过MFA机制并访问账户。 对手如果拥有有效账户的凭证,但缺乏访问所需的2FA或MFA机制,可能无法完成登录过程。为了规避这一点,对手可能会滥用自动生成的推送通知到MFA服务,如Duo Push、Microsoft Authenticator、Okta或类似服务,以让用户授予对其账户的访问权限。如果对手缺乏受害者账户的凭证,他们也可能在配置为自助密码重置(SSPR)时滥用自动推送通知生成。(引用: Obsidian SSPR Abuse 2023) 在某些情况下,对手可能会不断重复登录尝试,以轰炸用户MFA推送通知、短信和电话,最终导致用户在“MFA疲劳”响应中接受认证请求。(引用: Russian 2FA Push Annoyance - Cimpanu)(引用: MFA Fatigue Attacks - PortSwigger)(引用: Suspected Russian Activity Targeting Government and Business Entities Around the Globe)
T1649 窃取或伪造身份验证证书 对手可能会窃取或伪造用于身份验证的证书,以访问远程系统或资源。数字证书通常用于签名和加密消息和/或文件。证书也用作身份验证材料。例如,Entra ID 设备证书和 Active Directory 证书服务 (AD CS) 证书绑定到一个身份,并且可以用作域帐户的凭据。(引用: O365 Blog Azure AD Device IDs)(引用: Microsoft AD CS Overview) 身份验证证书可以被窃取和伪造。例如,可以从加密存储(在注册表或文件中)(引用: APT29 Deep Look at Credential Roaming)、放错位置的证书文件(即 不安全凭据)或通过各种加密 API 直接从 Windows 证书存储中窃取 AD CS 证书。(引用: SpecterOps Certified Pre Owned)(引用: GitHub CertStealer)(引用: GitHub GhostPack Certificates) 具有适当注册权限的用户和/或计算机可以从企业证书颁发机构 (CA) 请求和/或手动更新证书。此注册过程定义了与证书相关的各种设置和权限。值得注意的是,证书的扩展密钥用法 (EKU) 值定义了签名、加密和身份验证用例,而证书的主题备用名称 (SAN) 值定义了证书所有者的备用名称。(引用: Medium Certified Pre Owned) 滥用证书作为身份验证凭据可能会启用其他行为,例如 横向移动。证书相关的配置错误也可能通过允许用户通过与证书关联的身份 (SAN) 模拟或承担特权帐户或权限来启用 权限提升 的机会。这些滥用还可能通过窃取或伪造可用作 有效帐户 的证书在证书有效期内启用 持久性,尽管用户密码已重置。身份验证证书也可以被窃取和伪造用于计算机帐户。 对手如果能够访问根(或从属)CA 证书私钥(或保护/管理这些密钥的机制),还可以通过伪造受害者域的任意身份验证证书(称为“黄金”证书)建立 持久性。(引用: Medium Certified Pre Owned) 对手还可能针对证书和相关服务以访问其他形式的凭据,例如 黄金票证 票证授予票证 (TGT) 或 NTLM 明文。(引用: Medium Certified Pre Owned)