在前几期文章中我们介绍了ATT&CK中侦察、资源开发、初始访问、执行、持久化、提权、防御规避战术,本期我们为大家介绍ATT&CK 14项战术中凭证访问战术第1-6种子技术,后续会介绍凭证访问其他子技术,敬请关注。
MITRE ATT&CK 是一个全球可访问的基于现实世界观察的攻防战术和技术知识库。ATT&CK知识库被用作在私营部门、政府以及网络安全产品和服务社区中开发特定威胁模型和方法的基础。2023年 4月25日,MITRE ATT&CK 发布了最新版本 V13,最大的变化是为ATT&CK中的一些技术添加了详细的检测指导,用于企业,移动数据源和两种新类型的更改日志(包括一个人类可读的详细更改日志,更具体地显示更新的ATT&CK对象中的更改,以及一个机器可读的JSON更改日志,其格式在ATT&CK的Github中描述)。ATT&CK for Enterprise v13 包含14个战术、196个技术、411个子技术、138个组织和740个软件。
ATT&CK战术全景图(红框为凭证访问战术)
凭证访问包括窃取凭证(如帐户名和密码)的技术。用于获取凭证的技术包括键盘记录或凭证转储,使用合法凭证可以让攻击者访问系统,使其更难检测。
攻击者可能会尝试使用中间人攻击技术以支持后续行为,如网络嗅探或传输数据等操作。通过利用常见网络协议(例如ARP、DNS、LLMNR等),攻击者使得设备通过攻击者控制的系统进行通信,以便可以收集信息或执行其他操作。利用中间人攻击技术包含3项子技术,介绍如下:
3.2.1 LLMNR/NBT-NS欺骗攻击(T1557.001)当DNS名称服务器请求失败时,Microsoft Windows系统就会通过链路本地多播名称解析(LLMNR)和Net-BIOS名称服务(NBT-NS)试图在本地进行名称解析。当DNS名称无法解析的时候,客户端就会将未经认证的UDP广播到网络中,询问它是否为本地系统的名称。事实上,该过程是未被认证的,并会广播到整个网络,从而允许网络上的任何机器响应并声称是目标机器。通过侦听LLMNR和NetBIOS广播,攻击者可以伪装成受害者(客户端)要访问的目标机器,从而让受害者交出相应的登陆凭证。在接受连接后,攻击者可以使用Responder.py或Metasploit等工具将请求转发到执行身份验证过程的流氓服务(如SMB TCP:137)。在身份验证过程中,受害者会向流氓服务器发送用于身份认证的NTLMv2哈希值,这个哈希值将被保存到磁盘中,之后就可以使用像Hashcat或John Ripper(TJR)这样的工具在线下破解,或直接用于 pass-the-hash攻击。在Windows中,LLMNR和NBT-NS是默认启用的。
3.2.2 ARP缓存中毒攻击(T1557.002)攻击者可能会攻击地址解析协议(ARP)缓存,此活动可用于启用后续行为,例如网络嗅探或传输数据操作。ARP协议用于将IPv4地址解析为链路层地址,例如媒体访问控制(MAC)地址。本地网段中的设备通过使用链路层地址相互通信。如果联网设备没有特定联网设备的链路层地址,它可能会向本地网络发送广播ARP请求,以将IP地址转换为MAC地址。具有关联IP地址的设备直接使用其MAC地址进行回复,发出ARP请求的联网设备将然后使用和存储该信息在其ARP缓存中。攻击者可能被动地等待ARP请求,以毒害请求设备的ARP缓存。攻击者可能会回复他们的MAC地址,从而通过让他们相信他们正在与预期的网络设备通信来欺骗受害者。对于毒害ARP缓存的攻击者,他们的答复必须比合法IP地址所有者所做的更快。ARP协议是无状态的,不需要身份验证。因此,设备可能错误地添加或更新IP地址的MAC地址在他们的ARP缓存。攻击者可以使用ARP缓存中毒作为拦截网络流量的手段。此活动可用于收集或中继凭证等数据,特别是通过不安全的未加密协议发送的数据。
3.2.3 DHCP欺骗(T1557.003)攻击者可以通过欺骗动态主机配置协议(DHCP)流量并充当受害者网络上的恶意DHCP服务器,将网络流量重定向到攻击者拥有的系统。攻击者可以收集网络通信,包括传递的凭证,特别是那些通过未加密的协议发送的凭证。DHCP基于客户端-服务器模型,具有两个功能:用于从DHCP服务器向客户端提供网络配置设置的协议和用于向客户端分配网络地址的机制。攻击者可能伪装成受害者网络上的恶意DHCP服务器,合法主机可能从中接收恶意网络配置。例如,恶意软件可以充当DHCP服务器,并向受害计算机提供攻击者拥有的DNS服务器。通过恶意网络配置,攻击者可以实现AiTM位置,通过攻击者控制的系统路由客户端流量,并从客户端网络收集信息。
3.2.4 缓解措施
ID | 缓解措施 | 描述 |
M1042 | 禁用或删除功能或程序 | 禁用可用于拦截网络流量的旧版网络协议,特别是环境中不需要的协议。 |
M1041 | 加密敏感信息 | 确保所有有线和无线流量都已适当加密。对Kerberos等身份验证协议使用最佳实践,并确保可能包含凭证的web流量受SSL/TLS保护。 |
M1037 | 过滤网络流量 | 使用网络设备和基于主机的安全软件来过滤环境中不需要的网络流量。 |
M1035 | 限制通过网络访问资源 | 限制对可用于重塑流量的网络基础设施和资源的访问。 |
M1031 | 网络入侵防御 | 采用网络入侵检测和防御系统。 |
M1030 | 网络分割 | 网络分割可用于隔离不需要广泛网络访问的基础架构组件,减少风险范围。 |
M1017 | 用户培训 | 培训用户对证书错误敏感,攻击者可能会使用自己的证书来尝试拦截HTTPS流量,当应用程序的证书与主机预期的证书不匹配时,可能会出现证书错误。 |
3.2.5 检测
ID | 数据源 | 数据组件 | 检测 |
DS0015 | 应用日志 | 应用日志内容 | 监控应用程序日志,了解与网络协议和其他服务相关的设置更改和其他事件。 |
DS0029 | 网络流量 | 网络流量内容 | 监控异常情况的网络流量。 |
网络流量 | 监控来自未知硬件设备的网络流量。 本地网络流量元数据以及网络管理协议(如DHCP)的使用可能有助于识别硬件。 | ||
DS0019 | 服务 | 服务创建 | 通过事件Id4697和7045的Windows事件日志监控新建立的服务或守护进程。 |
DS0024 | Windows注册表 | Windows注册表项修改 | 监控HKLM\Software\Policies\Microsoft\Windows NT\DNSClient以获取对"EnableMulticast"DWORD值的更改。 值"0"表示LLMNR被禁用。 |
当密码未知或获得密码哈希时,攻击者可能会使用暴力破解技术访问帐户。如果不知道一个帐户或一组帐户的密码,攻击者可能会使用重复或迭代机制系统地猜测密码。暴力强制密码可以通过与服务的交互进行,该服务将检查这些凭证的有效性,或者根据以前获取的凭证数据(如密码哈希)进行。暴力破解技术包含4项子技术,介绍如下:
3.3.1 密码猜测(T1110.001)事先不知道系统或环境中的合法凭证的攻击者可能会猜测密码以尝试访问帐户。在不知道帐户密码的情况下,攻击者可能会选择使用重复或迭代机制系统地猜测密码。密码猜测可能会也可能不会考虑到目标对密码复杂性的策略,可能在多次尝试失败后被锁定帐户。猜测密码可能导致大量身份验证失败和帐户锁定,在猜测密码时使用常用端口上的管理服务,包括以下内容:
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)、使用联合身份验证协议的基于云的应用程序、面向外部的电子邮件应用程序、网络设备接口(如wlanAPI)、无线身份验证协议等进行暴力破解。在默认环境中,LDAP和Kerberos连接尝试不太可能通过SMB触发事件,这会创建ID4625的Windows登录失败事件。
3.3.2 密码破解(T1110.002)当获得密码哈希等凭证时,攻击者可能会使用密码破解来尝试恢复可用的凭证。操作系统凭证转储可用于获取密码哈希,攻击者还可以利用配置存储库中的数据来获取网络设备的哈希凭证。系统地猜测用于计算哈希值的密码的技术是可用的,或者攻击者可以使用预先计算的彩虹表来破解哈希值。破解哈希通常在目标网络之外的攻击者控制系统上完成,由成功破解的散列所得到的明文密码可用于登录帐户有权访问的系统、资源和服务。
3.3.3 密码喷洒(T1110.003)攻击者可能会对许多不同的帐户使用一个或一个小的常用密码列表来尝试获取有效的帐户凭证。密码喷洒使用一个密码或常用密码的小列表,可能与域的复杂性策略相匹配。尝试使用该密码对网络上的许多不同帐户进行登录,以避免在暴力强制使用多个密码的单个帐户时通常会发生帐户锁定。
3.3.4 凭证填充(T1110.004)凭证填充是一种网络攻击,也是我们习惯称的“撞库”,利用从一项服务上的数据泄露中获得的登录凭证尝试登录到另一个不相关的服务。例如,攻击者可能通过攻破一个大型百货商店而获取大量用户名和对应密码,并使用相同的登录凭证尝试登录到某个国际银行的网站。攻击者猜测这些百货商店客户中的某些人在该银行也有帐户,并且他们使用了和百货商店同样的用户名和密码。凭证填充是一个有风险的选项,因为它可能导致大量身份验证失败和帐户锁定,具体取决于组织的登录失败策略。
3.3.5 缓解措施
ID | 缓解措施 | 描述 |
M1036 | 帐户使用政策 | 在一定数量的失败登录尝试后设置帐户锁定策略,以防止密码被猜测。 |
M1032 | 多因素认证 | 使用多因素身份验证。 |
M1027 | 密码策略 | 创建密码策略时,参阅NIST指南。 |
M1018 | 用户账户管理 | 主动重置已知违反凭证的一部分帐户。 |
3.3.6 检测
ID | 数据源 | 数据组件 | 检测 |
DS0015 | 应用日志 | 应用日志内容 | 监控有效帐户的系统和应用程序登录失败的身份验证日志,如果身份验证失败率很高,则可能会尝试使用合法凭证访问系统。 |
DS0017 | 命令 | 命令执行 | 监控执行的命令和参数,这些命令和参数可能使用暴力破解技术在密码未知或获得密码哈希时访问帐户。 |
DS0002 | 用户账户 | 用户账户认证 | 监控各种帐户中可能由于密码喷洒尝试而导致的许多失败的身份验证尝试。 |
攻击者可以搜索常用密码存储位置以获取用户凭证。密码存储在系统的多个位置,具体取决于持有凭证的操作系统或应用程序。还有一些特定的应用程序存储密码,以便用户更容易管理和维护。一旦获得凭证,它们可用于执行横向移动和访问受限信息。从存储密码的位置获取凭证技术包含5项子技术,介绍如下:
3.4.1 Keychain(T1555.001)攻击者可以从Keychain获取凭证。Keychain是macOS凭证管理系统,用于存储帐户名、密码、私钥、证书、敏感应用程序数据、支付数据和安全备注。有三种类型的钥匙串:登录钥匙串,系统钥匙串和本地项目(iCloud)钥匙串。默认的钥匙串是登录钥匙串,它存储用户密码和信息。系统钥匙串存储操作系统访问的项目,例如在主机上的用户之间共享的项目。本地项目(iCloud)钥匙串用于与Apple的iCloud服务同步的项目。可以通过Keychain Access应用程序或使用命令行程序security查看和编辑钥匙链。攻击者可以从钥匙串存储或内存中收集用户凭证。
3.4.2 安全存储器(T1555.002)攻击者可能会获得root访问权限允许他们读取securityd的内存,然后他们可以通过内存扫描以在相对较少的尝试中找到正确的密钥序列来解密用户的登录密钥,这为攻击者提供了用户,WiFi,邮件,浏览器,证书,安全笔记等的所有明文密码。在El Capitan之前的OS X中,具有root访问权限的用户可以读取已登录用户的明文钥匙串密码,因为Apple的钥匙串实现允许缓存这些凭证,以便用户不会重复提示Apple的securityd程序获取用户的登录密码,使用PBKDF2对其进行加密,并将此主密钥存储在内存中。Apple还使用一组密钥和算法来加密用户的密码,但一旦找到主密钥,攻击者只需遍历其他值即可解锁最终密码。
3.4.3 来自Web浏览器的凭证(T1555.003)攻击者可以通过读取特定于目标浏览器的文件从web浏览器获取凭证。Web浏览器通常会保存网站用户名和密码等凭证,以便将来无需手动输入。Web浏览器通常以加密格式将凭证存储在凭证存储中。从web浏览器中提取纯文本凭证的方法包括如下:在Windows系统上,通过读取数据库文件AppData\Local\Google\Chrome\User Data\Default\Login Data并执行SQL查询,可以从Google Chrome获取加密凭证:SELECT action_url,username_value,password_value FROM logins。然后可以通过将加密凭证传递给Windows API函数CryptUnprotectData来获取明文密码,该函数使用受害者的缓存登录凭证作为解密密钥。攻击者已经为FireFox,Safari,Edge等常见的web浏览器执行了类似的程序,Windows凭证管理器管理Internet Explorer和Microsoft Edge凭证存储。攻击者还可以通过搜索web浏览器进程内存获取凭证。从web浏览器获取凭证后,攻击者可能会尝试在不同的系统或帐户中回收凭证,以便扩展访问权限。
3.4.4 Windows凭证管理器(T1555.004)攻击者可以从Windows凭证管理器获取凭证。凭证管理器将用于登录到通过NTLM或Kerberos请求身份验证的网站、应用程序或设备的凭证存储在凭证储物柜(以前称为Windows保管库)中。Windows凭证管理器在两个储物柜中将网站凭证与应用程序、网络凭证分开。Internet Explorer和Microsoft Edge网站凭证由凭证管理器管理,并存储在Web凭证储物柜中。应用程序和网络凭证存储在Windows凭证储物柜中。攻击者可以通过多种机制列出由Windows凭证管理器管理的凭证。vaultcmd.exe是本机Windows可执行文件,可用于通过命令行界面或Windows Api枚举存储在凭证储物柜中的凭证,攻击者也可以通过直接读取位于凭证储物柜内的文件来收集凭证,也可以从凭证备份中获取凭证,密码恢复工具也可以从凭证管理器获取纯文本密码。
3.4.5 密码管理器(T1555.005)攻击者可以从第三方密码管理器获取用户凭证。密码管理器是用于存储用户凭证的应用程序,通常存储在加密的数据库中。在用户提供解锁数据库的主密码后,通常可以访问凭证。数据库解锁后,这些凭证可能会复制到内存中,这些数据库可以作为文件存储在磁盘上。攻击者可以通过从内存中提取主密码或纯文本凭证来从密码管理器获取用户凭证。攻击者也可以通过密码猜测来尝试暴力破解,以获得密码管理器的主密码。
3.4.6 缓解措施
ID | 缓解措施 | 描述 |
M1027 | 密码策略 | 使用技术控制、策略和用户培训来防止将凭证存储在不当位置。 |
3.4.7 检测
ID | 数据源 | 数据组件 | 检测 |
DS0017 | 命令 | 命令执行 | 监控执行的命令和参数,这些命令和参数可能会搜索通用密码存储位置以获取用户凭证。 |
DS0022 | 文件 | 文件访问 | 监控正在访问的文件,这些文件可能会搜索通用密码存储位置以获取用户凭证。 |
DS0009 | 进程 | OS API执行 | 监控可能搜索通用密码存储位置以获取用户凭证的API调用。 |
进程访问 | 监控正在访问的进程,这些进程可能会搜索通用密码存储位置以获取用户凭证。 | ||
进程创建 | 监控可能搜索通用密码存储位置以获取用户凭证的新执行进程。 |
攻击者可能会利用软件漏洞试图收集凭证。当攻击者利用程序、服务或操作系统软件或内核本身中的编程错误来执行攻击者控制的代码时,就会出现软件漏洞的利用。凭证和身份验证机制可能会被攻击者用作获取有用凭证或绕过访问系统的过程的手段。
3.5.1 缓解措施
ID | 缓解措施 | 描述 |
M1048 | 应用隔离和沙箱 | 使攻击者难以通过使用沙箱利用未发现或未修补的漏洞来推进其操作。 |
M1050 | 漏洞保护 | 查找在利用过程中使用的行为的安全应用程序(如Windows Defender Exploit Guard(WDEG)和增强的缓解体验工具包(EMET)可用于缓解某些利用行为。控制流完整性检查是另一种可能识别和阻止软件漏洞发生的方法。 |
M1019 | 威胁情报 | 利用网络威胁情报,以确定哪些类型和级别的威胁可能利用软件漏洞。 |
M1051 | 更新软件 | 通过对内部企业端点和服务器使用补丁管理来定期更新软件。 |
3.5.2 检测
ID | 数据源 | 数据组件 | 检测 |
DS0015 | 应用日志 | 应用日志内容 | 通过检测分析应用日志内容发现威胁。 |
DS0009 | 进程 | 进程创建 | 监控异常进程创建及进程的异常行为,例如从可能被利用的应用程序生成的命令和脚本解释器以。 |
DS0002 | 用户账户 | 用户账户认证 | 监控异常访问的用户账户认证行为。 |
攻击者可以通过强制用户使用他们可以拦截的机制自动提供身份验证信息来收集凭证。服务器消息块(SMB)协议通常用于Windows网络中的身份验证和系统之间的通信,以访问资源和文件共享。当Windows系统尝试连接到SMB资源时,它将自动尝试进行身份验证并将当前用户的凭证信息发送到远程系统,因此用户无需输入凭证即可访问网络资源。当SMB被阻止或失败时,Windows系统通常也使用WebDAV作为备份协议, WebDAV是HTTP的扩展,通常在TCP端口80和443上运行。攻击者可以通过强制SMB/WebDAV身份验证访问用户帐户哈希。通过钓鱼邮件向用户发送附件,其中包含由攻击者控制的外部服务器的资源链接,或者在特权帐户的导航路径上放置恶意文件。当用户系统访问不受信任的资源时,它将尝试身份验证并通过SMB将信息发送到攻击者控制的服务器。通过对凭证哈希的访问,攻击者可以执行离线暴力破解以获得对明文凭证的访问。
3.6.1 缓解措施
ID | 缓解措施 | 描述 |
M1037 | 过滤网络流量 | 过滤TCP端口139、445和UDP端口137流量, 过滤WebDAV协议流量。如果需要通过SMB和WebDAV访问外部资源,则应使用allowlisting严格限制流量。 |
M1027 | 密码策略 | 使用强密码来增加凭证哈希被破解的难度。 |
3.6.2 检测
ID | 数据源 | 数据组件 | 检测 |
DS0022 | 文件 | 文件访问 | 监控用于收集凭证的异常文件 |
文件创建 | 监控指向外部网络资源的异常文件创建 | ||
文件修改 | 监控异常的文件修改行为 | ||
DS0029 | 网络流量 | 网络流量内容 | 监控异常的SMB流量。 |
网络流量 | 监控TCP端口139、445和UDP端口137上的SMB流量以及访问未知外部系统的WebDAV流量。 |
Web应用程序和服务通常使用会话cookie、令牌或其他材料来验证和授权用户访问。攻击者可能伪造访问web应用程序或Internet服务的凭证以便访问web资源。这与窃取Web会话Cookie,窃取应用程序访问令牌和其他类似行为的不同之处在于凭证是由攻击者伪造的新凭证,而不是从合法用户处窃取或拦截。一旦伪造,攻击者可能会使用这些web凭证访问资源,可能会绕过多因素和其他身份验证保护机制。伪造网络凭证技术包含2项子技术,介绍如下:
3.7.1 网页Cookie(T1606.001)攻击者可能伪造可用于访问web应用程序或Internet服务的web cookie。攻击者可能会生成这些cookie以访问web资源。大多数常见的web应用程序都有标准化和记录的cookie值,这些值可以使用提供的工具或接口生成。web cookie的生成通常需要密码、私钥或其他加密值。
3.7.2 SAML令牌(T1606.002)如果攻击者拥有有效的SAML令牌签名证书,则可以伪造具有任何权限声明和生命周期的SAML令牌。SAML令牌的默认生存期为一小时,但有效期可以在条件的NotOnOrAfter值中指定。伪造的SAML令牌使攻击者能够跨使用SAML2.0作为SSO单点登录机制的服务进行身份验证。攻击者可以利用私钥来破坏组织的令牌签名证书以创建伪造的SAML令牌。如果攻击者有足够的权限与他们自己的AD域联合身份验证服务器建立新的联合身份验证信任,则他们可能会生成自己的受信任令牌签名证书。如果伪造了高特权帐户的SAML令牌,则攻击者可能会获得管理Azure AD特权。这可能导致使用备用认证材料,这可能绕过多因素和其他认证保护机制。
3.7.3 缓解措施
ID | 缓解措施 | 描述 |
M1047 | 审计 | 管理员应对所有访问列表以及授予他们访问web应用程序和服务的权限执行审核。 |
M1026 | 特权账户管理 | 将AD FS服务器的权限和访问限制为仅源自特权访问工作站。 |
M1054 | 软件配置 | 配置浏览器或应用程序以定期删除持久性web凭证(如cookie)。 |
M1018 | 用户账户管理 | 确保具有管理权限的用户帐户使用特权访问工作站和强身份验证,减少作为高特权目录角色成员的用户数量。 |
3.7.4 检测
ID | 数据源 | 数据组件 | 检测 |
DS0028 | 登录会话 | 登录会话创建 | 监控异常身份验证活动,例如与未知帐户关联的登录或其他用户会话活动或使用域中没有相应4769和1200事件的SAML令牌。 监控对资源的异常访问,包括同一用户在不同位置或不匹配预期配置的不同系统对应用程序的访问。 |
DS0006 | Web 凭证 | Web 凭证创建 | 监控使用SAML令牌创建访问令牌,这些令牌在域中没有相应的4769和1200事件。 |
Web凭证使用情况 | 监控访问令牌的使用,以访问使用SAML令牌创建的服务(如电子邮件),这些服务在域中没有相应的1202事件。 |
本期主要介绍了凭证访问战术(一)及技术/子技术原理,下期将给大家介绍凭证访问战术(二)知识。敬请关注。