ATT&CK v13版本战术介绍——凭证访问(三)
2023-6-16 09:47:7 Author: www.freebuf.com(查看原文) 阅读量:8 收藏

一、引言

在前几期文章中我们介绍了ATT&CK中侦察、资源开发、初始访问、执行、持久化、提权、防御规避战术,本期我们为大家介绍ATT&CK 14项战术中凭证访问战术第13-17种子技术,后续会介绍凭证访问其他子技术,敬请关注。

二、ATT&CK v13简介

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个软件。

1686879838_648bbe5eb3e4e6890f2a2.png!small?1686879841639

ATT&CK战术全景图(红框为凭证访问战术)

三、凭证访问战术

3.1 概述

凭证访问包括窃取凭证(如帐户名和密码)的技术。用于获取凭证的技术包括键盘记录或凭证转储,使用合法凭证可以让攻击者访问系统,使其更难检测。

3.2 窃取应用程序访问令牌(T1528 )

攻击者可以窃取应用程序访问令牌以获取凭证访问远程系统和资源。应用程序访问令牌用于代表用户或服务发出授权的API请求,通常用于访问云和基于容器的应用程序和SaaS中的资源。OAuth是一个常用的框架,它向用户发出令牌以访问系统。在云和容器化环境中窃取帐户API令牌的攻击者使用这些帐户的权限访问数据并执行操作。在Kubernetes环境中,在容器内运行的进程使用服务帐户令牌与Kubernetes API服务器进行通信。如果容器被破坏,攻击者可能能够窃取容器的令牌,从而获得对Kubernetes API命令的访问权限。令牌盗窃也可以通过社交工程发生,在这种情况下,可能需要用户操作才能授予访问权限。希望访问基于云的服务或受保护Api的应用程序可以通过各种授权协议使用OAuth2.0获得进入。攻击者可以通过构建恶意应用程序来利用OAuth授权,该应用程序旨在授予目标用户的oauth令牌对资源的访问权限。攻击者需要在授权服务器上完成其应用程序的注册,然后,他们可以向目标用户发送钓鱼邮件链接,以诱使他们授予对应用程序的访问权限。一旦授予OAuth访问令牌,应用程序就可以通过应用程序访问令牌获得对用户帐户功能的潜在长期访问权限。
3.2.1 缓解措施

ID

缓解措施

描述

M1047

审计

管理员应审核所有云和容器帐户,以确保它们是必要的,并且授予它们的权限是适当的。

对所有OAuth应用程序及其授予的访问组织数据的权限执行审核。

调查并删除可疑的应用程序。

M1021

限制基于Web的内容

管理员可以阻止最终用户同意OAuth应用程序,禁止用户通过OAuth2.0授权第三方应用程序,并强制对所有请求进行管理同意。阻止最终用户注册其用户的应用程序,以减少风险。 云访问安全代理也可用于禁止应用程序。

M1018

用户账户管理

实施基于角色的访问控制,将帐户限制为所需的最低权限。

M1017

用户培训

通过培训强化未知的第三方应用程序授权控制。 用户应该特别注意重定向URL:如果URL是与预期服务或SaaS应用程序相关的拼写错误或令人费解的单词序列,则网站可能试图欺骗合法服务。用户还应该谨慎对待他们授予应用程序的权限。


3.2.2 检测

ID

数据源

数据组件

检测

DS0002

用户账号

用户账号修改

管理员应设置监控以在满足用户账号修改策略条件时触发自动告警,管理员可以设置各种日志并利用审核工具来监控由于OAuth2.0访问而可以执行的操作。例如,审核报告使管理员能够识别权限升级操作,例如角色创建或策略修改,这些操作可以是在初始访问后执行的操作。

3.3 窃取或伪造认证证书(T1649)

攻击者可能会窃取或伪造用于身份验证的证书以访问远程系统或资源。数字证书通常用于对消息或文件进行签名和加密。身份验证证书既可以被盗,也可以被伪造。例如,AD CS证书可以从加密存储、不安全的凭证或通过各种加密Api直接从Windows证书存储中窃取。通过适当的注册权限,域内的用户或计算机还可以向企业证书颁发机构(CA)请求或手动续订证书。此注册过程定义与证书关联的各种设置和权限。证书的扩展密钥用法(EKU)值定义签名、加密和身份验证用例,证书的使用者备用名称(SAN)值定义证书所有者的备用名称。有权访问根CA证书私钥的攻击者也可以通过为受害域伪造任意身份验证证书来建立持久性。攻击者也可能以证书和相关服务为目标,以便访问其他形式的凭证。
3.3.1 缓解措施

ID

缓解措施

描述

M1015

活动目录配置

确保证书颁发机构(CA)得到适当保护,包括将CA服务器以及托管CA证书的其他资源视为第0层资产。例如,考虑在相关身份验证协议设置中禁用AD CS证书San的使用,以强制执行严格的用户映射并防止证书作为其他标识进行身份验证。还要考虑对包含SAN作为颁发要求的模板强制执行CA证书管理器审核。

M1047

审计

检查和修复不需要的现有身份验证证书以及CA设置和权限的常见错误配置。

M1042

禁用或删除功能或程序

禁用或删除不必要的或者过期的功能或程序。

M1041

加密敏感信息

确保证书以及相关的私钥得到适当的保护。考虑使用其他硬件凭证保护,例如可信平台模块(TPM)或硬件安全模块(HSM)。 强制HTTPS并启用身份验证的扩展保护。


3.3.2 检测

ID

数据源

数据组件

检测

DS0026

活动目录

活动目录凭证请求

监控AD CS证书请求(ex:EID4886)以及已颁发的证书(ex:EID4887)是否存在异常活动,包括意外的证书注册和证书属性内的利用行为。

活动目录对象修改

监控对CA属性和设置的更改,例如AD CS证书模板修改(例如:注册潜在恶意证书后的EID4899/4900)。

DS0015

应用日志

应用日志内容

确保CA审核日志已启用,并监控这些服务是否存在利用。

DS0017

命令

命令执行

监控被利用以伪造或窃取证书和相关私钥的命令和其他程序的执行。

DS0022

文件

文件访问

监控访问存储有关证书及其关联私钥的信息的文件的行为。

DS0028

登录会话

登录会话创建

监控基于证书的身份验证事件,例如当AD CS证书用于Kerberos身份验证时,或者与EID4624登录事件关联的登录过程时,EID4768要求有Kerberos验证票的事件分析。

DS0024

Windows注册表

Windows注册表访问

监控访问注册表中存储的有关证书及其关联私钥的信息的尝试。 用户证书通常存储在HKEY_CURRENT_USER\SOFTWARE\Microsoft\SystemCertificates下。

3.4 窃取或伪造Kerberos凭证(T1558)

Kerberos是一种在Windows域环境中广泛使用的身份验证协议。在Kerberos环境中,有三个基本参与者:客户端、服务和密钥分发中心(KDC)。客户端请求访问服务,并通过交换来自KDC的Kerberos票证,在成功进行身份验证后授予他们访问权限。KDC负责身份验证和票证授予。攻击者可能试图通过窃取票证或伪造票证来利用Kerberos以启用未经授权的访问。窃取或伪造Kerberos凭证技术包含4项子技术,介绍如下:
3.4.1 黄金票据(T1558.001)拥有KRBTGT帐户密码哈希的攻击者可能会伪造Kerberos授予票证(TGT),也称为黄金票证。黄金票证使攻击者能够为AD域中的任何帐户生成身份验证信息。黄金票要求攻击者与密钥分发中心(KDC)进行交互以获得TGS。使用黄金票据,攻击者能请求票授予服务(TGS),启用对特定资源的访问。KDC服务在属于AD域的域控制器上运行,KRBTGT是Kerberos密钥分发中心(KDC)服务帐户,负责加密和签署所有Kerberos票证,KRBTGT密码哈希可以使用操作系统凭证转储和对域控制器的特权访问来获得。
3.4.2 白银票据(T1558.002)拥有目标服务帐户密码哈希的攻击者可能会伪造Kerberos票证授予服务(TGS)票证,也称为白银票据,Kerberos TGS票也称为服务票。白银票据在范围上比黄金票据更有限,因为它们只允许攻击者访问特定资源和托管该资源的系统;然而,与黄金票据不同的是,具有伪造银票能力的攻击者能够在不与密钥分发中心(KDC)交互的情况下创建TGS票,这可能使检测更加困难。可以使用操作系统凭证转储或Kerberoasting获取目标服务的密码哈希。
3.4.3 Kerberoasting(T1558.003)攻击者可能利用有效的Kerberos票证授予票证(TGT)或嗅探网络流量以获取可能容易受到暴力攻击的TGS票证。服务主体名称(Spn)用于唯一标识Windows服务的每个实例。要启用身份验证,Kerberos要求Spn至少与一个服务登录帐户相关联。拥有有效Kerberos票证TGT的攻击者可以从域控制器为任何SPN请求一个或多个TGS服务票证。这些票证的部分可以使用RC4算法进行加密,这意味着与SPN关联的服务帐户的Kerberos5TGS-REP etype23哈希用作私钥,因此容易受到可能暴露明文凭证的离线暴力攻击。可以使用从网络流量捕获的服务票证执行相同的行为。破解的哈希可以通过访问有效帐户来实现持久性、特权升级和横向移动。
3.4.4 AS-REP Roasting(T1558.004)攻击者可能会通过密码破解Kerberos消息来泄露已禁用Kerberos预身份验证的帐户凭证。预身份验证可防止脱机密码破解。启用后,请求访问资源的用户通过发送带有时间戳的身份验证服务器请求(AS-REQ)消息来启动与域控制器(DC)的通信,该消息使用其密码的哈希加密。当且仅当DC能够使用用户密码的哈希成功解密时间戳时,它才会向用户发送包含TGT的身份验证服务器响应(AS-REP)消息。对于每个没有预身份验证的帐户,攻击者可能会发送一个没有加密时间戳的AS-REQ消息,并接收一个带有TGT数据的AS-REP消息,这些数据可能用不安全的算法(如RC4)加密。恢复的加密数据可能容易受到脱机密码破解攻击,类似于Kerberoasting并公开明文凭证。注册到域的帐户可以被利用来列出通过使用具有LDAP过滤器的PowerShell等Windows工具禁用预身份验证的所有域帐户。或者,攻击者可以为每个用户发送AS-REQ消息,如果DC响应没有错误,则帐户不需要预身份验证,并且AS-REP消息将已包含加密数据。
3.4.5 缓解措施

ID

缓解措施

描述

M1015

活动目录配置

重置内置KRBTGT帐户密码两次,这将使使用KRBTGT哈希和从其派生的其他Kerberos票证创建的任何现有黄金票证无效。

对于每个域,更改一次KRBTGT帐户密码,然后第二次更改密码。考虑每180天轮换一次KRBTGT帐户密码

M1041

加密敏感信息

启用AES Kerberos加密(或其他更强的加密算法),而不是RC4。

M1027

密码策略

确保服务帐户的强密码长度(最好是25个字符以上)和复杂性,并且这些密码定期过期。也可使用群组讬管服务帐户或其他第三方产品,例如密码储存。

M1026

特权账户管理

将域管理员帐户权限限制为域控制器和受限服务器。 将其他管理功能委派给单独的帐户。将服务帐户限制为所需的最低权限,包括域管理员等特权组中的成员身份。


3.4.6 检测

ID

数据源

数据组件

检测

DS0026

活动目录

活动目录凭证请求

监控异常Kerberos活动,例如windows登录/注销事件(事件ID4624、4672、4634)中的格式错误或空白字段、票证授予票证(Tgt)中的RC4加密以及没有先前TGT请求的票证授予服务(TGS)需要监控TGT票证的生存期,以查找与默认域持续时间不同的值。

DS0017

命令

命令执行

监控执行的命令和参数,这些命令和参数可能试图通过窃取或伪造Kerberos票证。

DS0022

文件

文件访问

监控与lsass交互的意外进程,监控访问秘密的异常进程。

DS0028

登录会话

登录会话元数据

启用审核Kerberos服务票证操作以记录Kerberos TGS服务票证请求。调查异常的活动模式(例如:在很短的时间范围内提出大量请求的帐户,事件ID4769,特别是如果他们还请求RC4加密)

3.5 窃取web会话Cookie(T1539)

攻击者可能会窃取web应用程序或服务会话cookie,作为经过身份验证的用户访问web应用程序或Internet服务,而无需凭证。Web应用程序和服务通常在用户对网站进行身份验证后使用会话cookie作为身份验证令牌。Cookie通常在很长一段时间内有效,即使web应用程序没有被使用。Cookie可以在磁盘上、浏览器的进程内存中以及到远程系统的网络流量中找到。目标计算机上的其他应用程序可能会在内存中存储敏感的身份验证cookie。会话cookie可用于绕过一些多因素身份验证协议。在攻击者获得有效的cookie后,他们可以执行Web会话Cookie技术以登录到相应的web应用程序。
3.5.1 缓解措施

ID

缓解措施

描述

M1032

多因素认证

密钥将通过代理方法防止会话cookie窃取。

M1054

软件配置

配置浏览器或任务以定期删除持久性cookie。

M1017

用户培训

培训用户识别网络钓鱼尝试。


3.5.2 检测

ID

数据源

数据组件

检测

DS0022

文件

文件访问

通常通过向云服务管理控制台提供凭证来监控用户访问网络或计算资源的尝试。某些云提供商(如AWS)为登录管理控制台提供不同的日志事件。

DS0009

进程

进程访问

监控程序注入或转储浏览器进程内存的行为。

3.6 不安全的凭证(T1552)

攻击者可能会搜索被攻击的系统,以查找并获得不安全的存储凭证。这些凭证可以在系统上的许多位置存储或放错了位置,包括明文文件(例如bash历史记录),操作系统或特定于应用程序的存储库(例如,注册表中的凭证)或其他专业文件(例如,私钥)。不安全的凭证技术包含8项子技术,介绍如下:
3.6.1 文件中的凭证(T1552.001)攻击者可能会搜索本地文件系统和远程文件共享,以查找包含不安全存储凭证的文件。这些文件可以是用户为存储自己的凭证而创建的文件、一组个人的共享凭证存储、包含系统或服务密码的配置文件或包含嵌入密码的源代码或二进制文件。可以通过操作系统凭证转储从备份或保存的虚拟机中提取密码。密码也可以从Windows域控制器上存储的组策略首选项中获取。在云或容器化环境中,经过身份验证的用户和服务帐户凭证通常存储在本地配置和凭证文件中。它们也可以在容器日志中作为部署命令的参数找到。在某些情况下,这些文件可以在另一台机器上复制和重用,或者可以读取内容,然后用于身份验证,而不需要复制任何文件。
3.6.2 注册表中的凭证(T1552.002)攻击者可以在受损系统上的注册表中搜索安全存储的凭证。Windows注册表存储系统或其他程序使用的配置信息。攻击者可能会查询注册表,查找已存储以供其他程序或服务使用的凭证和密码,有时这些凭证用于自动登录。
3.6.3 Bash历史记录(T1552.003)攻击者可能会在受损系统上搜索bash命令历史记录,以查找不安全存储的凭证。Bash使用历史程序跟踪用户在命令行上键入的命令。一旦用户注销,历史记录将刷新到用户的历史记录。用户经常在命令行中键入用户名和密码作为程序的参数,然后在注销时保存到该文件中,攻击者可以通过查看文件以查找潜在的凭证来利用此功能。
3.6.4 私钥(T1552.004)攻击者可能会在受损系统上搜索私钥证书文件,以获取不安全存储的凭证。私有加密密钥和证书用于身份验证、加密、解密和数字签名。攻击者也可以查看常见的关键目录,攻击者工具还可以搜索受损系统,查找与加密密钥和证书相关的文件扩展名。将设备注册到Azure AD后,将生成设备密钥和传输密钥,并用于验证设备的身份。有权访问设备的攻击者可导出密钥以模拟设备。在网络设备上,可以通过网络设备CLI命令导出私钥。某些私钥需要密码才能进行操作,因此攻击者也可能使用输入捕获进行键盘记录或尝试将密码暴力破解。这些私钥可用于对远程服务(如SSH)进行身份验证,或用于解密其他收集的文件(如电子邮件)。
3.6.5 云实例元数据API(T1552.005)攻击者可能会尝试访问云实例元数据API以收集凭证和其他敏感数据。大多数云服务提供商支持云实例元数据API,该API是提供给正在运行的虚拟实例的服务,允许应用程序访问正在运行的虚拟实例信息。可用信息通常包括名称、安全组和其他元数据,包括敏感数据,如凭证和脚本。实例元数据API是为了方便管理应用程序而提供的,任何可以访问实例的人都可以访问它。如果攻击者在正在运行的虚拟实例上存在,他们可以直接查询实例元数据API以识别授予其他资源访问权限的凭证。此外,攻击者可能会利用面向公众的web代理中的服务器端请求伪造(SSRF)漏洞,该漏洞允许他们通过对实例元数据API的请求访问敏感信息。
3.6.6 组策略首选项(T1552.006)攻击者可能会尝试在组策略首选项(GPP)中查找不安全的凭证,GPP是允许管理员使用嵌入式凭证创建域策略的工具,这些策略允许管理员设置本地帐户。这些组策略存储在域控制器上的SYSVOL中,这意味着任何域用户都可以查看SYSVOL共享并解密密码(使用已公开的AES密钥)。
3.6.7 容器API(T1552.007)攻击者可以通过容器环境中的API收集凭证,这些环境中的API允许用户远程管理其容器资源和集群组件。攻击者可以访问Docker API来收集日志,这些日志包含云、容器和环境中的各种其他资源的凭证。具有足够权限的攻击者也可以使用Kubernetes API从Kubernetes API服务器检索凭证,这些凭证可能包括Docker API身份验证所需的凭证或来自Kubernetes集群组件的密钥。
3.6.8 聊天信息(T1552.008)攻击者可以直接收集通过用户通信服务存储或传递的不安全凭证。凭证可以发送并存储在用户聊天通信应用程序中,jira或Trello等协作工具以及支持用户通信的任何其他服务中。用户可以在私人或公共的公司内部通信渠道上共享各种形式的凭证(如用户名和密码、API密钥或身份验证令牌)。攻击者可以通过托管服务的服务器或云托管服务的管理员门户直接访问用户端点上的这些服务中的凭证,而不是访问存储的聊天日志,这些凭证可能会被利用以执行后续活动,例如横向移动或特权升级。
3.6.9 缓解措施

ID

缓解措施

描述

M1015

活动目录配置

删除易受攻击的组策略首选项。

M1047

审计

搜索包含密码或其他凭据的文件,并在发现时采取措施降低暴露风险。

M1041

加密敏感信息

将密钥存储在单独的加密硬件上,而不是本地系统上。

M1037

过滤网络流量

限制对实例元数据API的访问,配置WAF防止外部对手利用允许访问云实例元数据API的服务器端请求伪造(SSRF)攻击。

M1035

限制通过网络访问资源

限制对敏感服务的网络访问,例如实例元数据API。

M1028

操作系统配置

防止用户的命令历史记录被刷新到他们的命令历史记录。

M1027

密码策略

对私钥使用强密码,不要在注册表中存储凭据,禁止在文件中存储密码。

M1026

特权账户管理

如果软件必须在注册表中存储凭据,请确保关联帐户的权限有限。

M1022

限制文件和目录权限

将文件共享限制为特定用户具有访问权限的目录。

M1051

更新软件

应用补丁KB2962486,防止凭据存储在GPPs中。

M1017

用户培训

确保开发人员和系统管理员意识到在可能留在端点系统或服务器上的软件配置文件中使用纯文本密码所带来的风险。


3.6.10 检测

ID

数据源

数据组件

检测

DS0015

应用日志

应用日志内容

监控应用程序日志中是否存在显示访问应用程序数据的恶意行为,特别是针对密码和与凭据相关的异常搜索。

DS0017

命令

命令执行

监控执行进程的命令行参数,查找可能指示搜索密码(例如:password、pwd、login、secure或credentials)的可疑单词或正则表达式。

DS0022

文件

文件访问

监控可疑的文件访问活动,特别是指示进程在短时间内读取多个文件或使用命令行参数指示搜索凭据。

DS0009

进程

进程创建

监控新执行的进程,这些进程可能会搜索受损的系统,以查找和获取不安全存储的凭据。

DS0002

用户账户

用户账户认证

监控用户访问网络或计算资源的行为,通过搜索受损系统的凭据来查找和获取不安全存储的凭据。

DS0024

Windows注册表

Windows注册表访问

监控正在访问的异常windows注册表项。

四、总结

本期主要介绍了凭证访问战术(三)及技术/子技术原理,下期将给大家介绍发现战术(一)知识。敬请关注。


文章来源: https://www.freebuf.com/articles/network/369673.html
如有侵权请联系:admin#unsafe.sh