T1557 |
中间人攻击 |
攻击者会尝试使用中间人技术(MiMT)将自己放在两个或多个互联网设备之间,以支持后续的行为,如网络嗅探或数据转发操作。通过该技术可以确定网络流量中常见的网络协议(如ARP、DNS、LLMNR等)特性,攻击者可以迫使设备通过攻击者控制的系统进行通信,以便攻击者可以收集信息或执行其它操作。攻击者会利用MiTM技术尝试修改流量,例如在数据传输中,攻击者可以阻断流向目的地的流量,从而导致拒绝服务。 |
T1557.003 |
中间人攻击:DHCP欺骗 |
攻击者可能通过伪造动态主机配置协议(DHCP)流量并在受害者网络上充当恶意DHCP服务器,将网络流量重定向到攻击者控制的系统。通过实现中间人(AiTM)位置,攻击者可以收集网络通信,包括传递的凭据,尤其是通过不安全、未加密协议发送的凭据。这还可能启用后续行为,如网络嗅探或传输数据操纵。DHCP基于客户端-服务器模型,具有两个功能:从DHCP服务器向客户端提供网络配置设置的协议,以及为客户端分配网络地址的机制。典型的服务器-客户端交互如下:1.客户端广播DISCOVER 消息。2.服务器响应OFFER 消息,其中包含可用的网络地址。3.客户端广播REQUEST 消息,其中包含提供的网络地址。4.服务器用ACK 消息确认,客户端接收网络配置参数。攻击者可能在受害者网络上伪装成恶意DHCP服务器,合法主机可能从该服务器接收恶意网络配置。例如,恶意软件可以充当DHCP服务器,向受害计算机提供攻击者控制的DNS服务器。通过恶意网络配置,攻击者可以实现AiTM位置,通过攻击者控制的系统路由客户端流量,并从客户端网络收集信息。DHCPv6客户端可以通过向All_DHCP_Relay_Agents_and_Servers多播地址发送INFORMATION-REQUEST(代码11)消息,在不分配IP地址的情况下接收网络配置信息。攻击者可能使用其恶意DHCP服务器响应此请求消息,提供恶意网络配置。攻击者也可能滥用DHCP欺骗执行DHCP耗尽攻击(即服务耗尽泛洪),通过生成许多广播DISCOVER消息耗尽网络的DHCP分配池,而不是建立AiTM位置。 |
T1557.001 |
中间人攻击:LLMNR / NBT-NS中毒攻击和SMB中继攻击 |
通过响应LLMNR/NBT-NS网络流量,攻击者可以欺骗用于名称解析的权威来源,以强制与攻击者控制的系统进行通信,此行为可用于收集或传递认证材料。链路本地多播名称解析(LLMNR)和NetBIOS名称注册和解析服务(NBT-NS)是微软的Windows组件,可以作为主机标识的替代方法,LLMNR是基于域名系统(DNS)数据包格式的允许在同一个本地链路上的主机为其它主机执行名称解析的协议,NBT-NS通过NetBIOS名标识本地网络上的系统。攻击者可以通过响应LLMNR (UDP 5355)/NBT-NS (UDP 137)流量来欺骗受害者网络上的权威名称解析源,就好像他们知道请求的主机的身份一样,从而有效地给服务下毒,以便受害者将与受攻击者控制的系统通信,如果请求的主机属于需要标识/身份验证的资源,则用户名和NTLMv2哈希将被发送到攻击者控制系统,攻击者就可以通过监控端口流量的工具收集通过网络发送的哈希信息,或者通过网络嗅探,并通过离线暴力破解哈希以获取明文密码。在某些情况下,攻击者已经可以访问一个位于通信之间的身份认证路径中的系统,或者当使用凭据的自动扫描功能尝试向攻击者控制的系统进行身份验证时,则可以截取并中继NTLMv2哈希值,以访问和执行针对目标系统的代码,中继可以和投毒相结合发生,也可独立发生。有几种工具可以被用来毒害本地网络中的名称服务,如:NBNSpoof、Metasploit和Responder。 |
T1557.002 |
中间人攻击:ARP缓存中毒 |
攻击者会攻击地址解析协议(ARP)缓存,将自己放在两个或多个互联网设备之间,以支持后续的行为,如网络嗅探或数据转发操作。ARP协议用于将IPV4地址解析为链路层地址,如媒体访问控制层地址(MAC地址),本地网段中的设备通过使用链路层地址相互通信,如果网络设备没有特定的网络设备的链路层地址,则其将向本地网络中广播ARP请求,将IP地址转为MAC地址,具有与IP地址相关联的MAC地址的设备会直接回应,发出ARP请求的网络设备将记录这个响应,并保存到其ARP缓存中。攻击者可以被动地等待ARP请求的发送,然后以攻击者的MAC地址进行回复,从而欺骗受害者,使受害者相信其正在与目标网络设备进行通信。为了使ARP缓存中毒,攻击者的应答会比拥有合法IP地址的所有者更快,攻击者还可以向本网段中所有的设备主动发送一个ARP应答,恶意宣布特定IP地址的所有权。ARP协议是无状态且不需要身份验证的,因此设备会错误地在其ARP缓存中添加或更新IP地址对应的MAC地址。攻击者可以利用ARP缓存中毒作为网络流量的中间人,此时可以收集或篡改数据,如凭证,特别是那些通过不安全、未加密的协议发送的凭证。 |
T1003 |
操作系统凭据转储 |
攻击者可能从操作系统或软件中转储凭据以获取用户的账户登录和凭据材料,这些凭据通常以Hash或明文的形式存在,然后使用凭据进行横向移动或访问受限的信息。 |
T1003.002 |
操作系统凭据转储:安全账户管理器 |
攻击者可能试图通过内存技术或存储SAM数据库的Windows注册表从安全账户管理器(SAM)数据库中提取凭据信息。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数据库以检测哈希。注意:RID 500帐户是本地内置管理员,RID 501是访客帐户,后来新建的用户账户的RID都是从1000开始。 |
T1003.004 |
操作系统凭据转储:LSA Secrets |
具有SYSTEM权限的攻击者可能会尝试访问LSA(本地安全机构),获取各种不同的凭据材料,如服务账户凭据。LSA Secrets存储在注册表的HKEY_LOCAL_MACHINE\SECURITY\Policy\Secrets中,LSA机密可以从内存中进行转储。Reg可以用于从注册表中提取LSA Secrets,Mimikatz可以用于从内存中提取Secrets。 |
T1003.007 |
操作系统凭据转储:Proc文件系统 |
攻击者可以从Proc文件系统或/proc中存储的信息中收集凭据。Linux上的Proc文件系统包含操作系统运行状态的大量信息,用root权限运行的进程可以使用此功能获取其它正在运行程序的实时内存,如果这些程序中任何一个程序以明文形式存储密码或将密码哈希存储在内存中,则可以分别获取这些值以进行使用或暴力破解。从Proc文件系统或/proc中存储的信息中收集凭据的功能已经在MimiPenguin实现,MimiPenguin是一个受Mimikatz启发的开源工具。该工具转储进程内存,然后通过查找文本字符串和正则表达式的模式来收集密码和哈希,以了解给定的程序(如Gnome Keyring、sshd和Apache)如何使用内存来存储诸如此类身份验证构件。 |
T1003.001 |
操作系统凭据转储:LSASS内存 |
攻击者可能尝试访问存储在LSASS进程内存中的凭据材料。用户登录后,系统会生成并存储各种凭据材料到LSASS进程内存中,这些材料可以被Administrator用户或SYSTEM收集,并用于使用备用身份认证材料进行横向移动。与内存技术一样,LSASS进程内存也可以从目标主机中进行转储,并在本地系统上进行分析。举个例子,在目标主机上使用procdump:procdump -ma lsass.exe lsass_dump。在本地,使用以下命令运行Mimikatz:sekurlsa::Minidump lsassdump.dmp、sekurlsa::logonPasswords。Windows安全支持提供(SSP)DLL在系统启动时被加载到LSASS进程中,其一旦加载到LSA中,SSP DLLs便可以访问Windows中存储的加密和明文密码,如任何登录用户的域密码或智能卡PINs。SSP配置存储在两个注册表项中:HKLM\SYSTEM\CurrentControlSet\Control\Lsa\Security Packages和HKLM\SYSTEM\CurrentControlSet\Control\Lsa\OSConfig\Security Packages。攻击者可以修改这些注册表项以添加新的SSP,这些SSP将会在系统下次启动时或当Windows API AddSecurityPackage函数被调用时加载。 |
T1003.005 |
操作系统凭据转储:域凭据缓存 |
攻击者可能尝试访问用于在域控不可用情况下进行身份验证的缓存凭据。在Windows Vista或更高版本上,哈希的格式为DCC2(域缓存凭据第二版),也被称为MS-Cache v2 hash。默认缓存凭据的数量各不同,并且可以在系统中进行更改,此哈希不允许通过传递哈希(pass-the-hash)攻击,而是需要使用密码破解来恢复明文密码。具有SYSTEM权限,可以使用诸如Mimikatz、Reg和secretsdump.py之类的工具或程序来提取缓存的凭据。注意:Windows Vista的缓存凭据是使用PBKDF2派生的。 |
T1003.008 |
操作系统凭据转储:/etc/passwd 和 /etc/shadow |
攻击者可能会尝试转储/etc/passwd和/etc/shadow文件内容以进行密码脱机破解,大多数现代Linux操作系统结合使用/etc/passwd和/etc/shadow将用户账户信息(包括密码哈希)存储在/etc/shadow中。默认情况下,/etc/shadow只有root权限可读。Linux实用程序unshadow可用于以一种适用于密码破解程序的格式(如John格式)来合并两个文件(/etc/passwd和/etc/shadow):# /usr/bin/unshadow /etc/passwd /etc/shadow > /tmp/crack.password.db |
T1003.003 |
操作系统凭据转储:NTDS |
攻击者尝试去访问或者创建活动目录域数据库的副本以窃取凭据信息,以及获取其它域成员信息,如设备、用户和访问权限。默认情况下,NTDS文件(NTDS.dit)位于域控制器的%SystemRoot%\NTDS\Ntds.dit中。除了在活动的域控上查找NTDS文件外,攻击者也可以搜索包含相同或相似信息的备份。以下工具和技术可用于枚举NTDS文件和整个活动目录哈希内容:Volume Shadow Copy、secretsdump.py、Using the in-built Windows tool, ntdsutil.exe、Invoke-NinjaCopy |
T1003.006 |
操作系统凭据转储:DCSync |
攻击者可能会通过利用Windows域控的应用程序接口(API),使用DCSync技术模拟来自远程域控的备份进程,以获取访问凭据和其它敏感信息。域控上的Administrators、Domain Admins和Enterprise Admin组或computer accounts的成员可以运行DCSync,进而从活动目录中提取密码数据,其中包括潜在有用账户(如KRBTGT和Administrators)的当前和历史哈希。进而这些哈希可以用于创建“黄金票据”,以用于传递票据或更改账户操作中所述的账户密码。DCSync功能已经包含在Mimikatz的lsadump模块中,Lsadump还包含NetSync,其可以通过旧版复制协议来执行DCSync。 |
T1539 |
窃取Web会话Cookie |
攻击者可能会窃取web应用程序或服务会话cookie,并作为经过身份验证的用户使用它们访问web应用程序或Internet服务,而无需凭据。用户对网站进行身份验证后,Web应用程序和服务通常将会话cookie用作身份验证令牌。即使没有多次使用Web应用程序,Cookie通常也可以长期有效。cookie可以在磁盘上、浏览器的进程内存中以及到远程系统的网络流量中找到。此外,目标机器上的其他应用程序可能会在内存中存储敏感的身份验证cookie(例如,向云服务进行身份验证的应用程序)。会话cookie可用于绕过某些多因素身份验证协议。有一些攻击是针对本地系统web浏览器cookie的恶意软件。还有诸如Evilginx 2和Muraena之类的开源框架,它们可以通过中间人代理收集会话cookie,中间人代理可以由攻击者设置并用于网络钓鱼活动。攻击者获取有效的Cookie后,他们可以执行Web会话Cookie技术以登录到相应的Web应用程序。 |
T1040 |
网络嗅探 |
攻击者可能会通过嗅探网络流量以捕获有关环境的信息,包括通过网络传递的身份认证信息。网络嗅探是指使用系统上的网络接口监听或捕获通过有线或无线连接发送的信息,攻击者可以将网络接口设置为混杂模式,以被动地接收通过网络传输的数据,或者使用跨端口来捕获大量数据。通过此技术捕获的数据可能包含用户的凭据,尤其是通过不安全、未加密的协议发送的数据,例如LLMNR/NBT-NS中毒和SMB中继之类的名称服务解析技术的毒化可以将流量重定向到攻击者所控制的主机以便捕获网站、代理和内部系统的凭据。通过网络嗅探也可知道配置信息,如正在运行服务的、版本号和其它网络特征(如IP地址、主机名和VLAN ID号),这些信息对于后续的横向移动或防御规避是必须的信息。 |
T1558 |
窃取或伪造Kerberos票据 |
Kerberos是一种在现代Windows域环境中广泛使用的身份验证协议。在称为“域”的Kerberos环境中,有三个基本部分:客户端,服务和密钥分发中心(KDC)。客户端请求访问服务,并通过交换源自KDC的Kerberos票据,在成功进行身份验证后,将授予客户端访问权限。KDC负责身份验证和票据授予。攻击者可能试图通过窃取或伪造Kerberos票据,以实现未经授权的访问。 |
T1558.004 |
窃取或伪造Kerberos票据:AS-REP破解 |
预身份验证可防止离线密码破解,启用后,请求访问资源的用户将通过发送带有时间戳(会使用用户密码的哈希值进行加密处理)的身份验证服务请求(AS-REQ)消息来与域控制器(DC)通信,当且仅当DC能够使用用户的密码哈希成功解密时间戳后,DC才会向用户发送包含票据(TGS)的身份验证响应(AS-REP)消息,AS-REP消息中一部分内容是已用用户的密码进行签名。对于发现的没有启用预身份验证的账户,攻击者可能会发送没有加密的时间戳AS-REQ消息,并接收带有TGT数据的AS-REP消息,该数据可能通过不安全加密算法(如RC4)加密,与Kerberoasting相似,攻击者可以将该消息进行脱机暴力破解,获取用户密码的明文。通过使用Windows工具(例如带有LDAP筛选器的PowerShell),可以用注册到域内有或没有特殊特权的帐户来列出所有已禁用预身份验证的域帐户,另外,攻击者也可以发送AS-REQ消息,如果DC无错误响应,则该账户不需要预身份认证,并且返回的AS-REP消息中已经包含加密的数据。密码的破解可能会用来实现持久化、特权提升和横向移动。 |
T1558.001 |
窃取或伪造Kerberos票据:黄金票据 |
攻击者可以使用黄金票据来请求服务票据(TGS),从而可以访问特定的资源,黄金票据需要攻击者和密钥分发中心(KDC)交互,才能获取到TGS。KDC服务运行在域控上,KRBTGT是Kerberos密钥分发中心(KDC)的服务账户,负责加密和签名所有Kerberos票据,可以使用OS凭据转储和对域控的特权访问来获取KRBTGT密码哈希。 |
T1558.002 |
窃取或伪造Kerberos票据:白银票据 |
白银票据的使用范围比黄金票据的小,因为白银票据只能让攻击者访问特定的资源(如MSSQL)和托管资源的系统。但是,与黄金票据不同的是,具有伪造白银票据能力的攻击者不需要与密钥分发中心(KDC)进行交互,就可以创建TGS票据,从而使检测更加困难。可以使用OS凭据转储或Kerberoasting获取到目标服务的密码哈希。 |
T1558.003 |
窃取或伪造Kerberos票据:Kerberos票据破解 |
服务主体名称(SPNs)用于唯一标识Windows服务的每个实例,为了启用身份认证,Kerberos要求SPN至少与一个服务登录账户(专门负责运行服务的账户)相关联。攻击者拥有一个有效的Kerberos票据(TGS),会向域控(DC)请求任意SPN的一个或多个Kerberos服务票据(TGS),一些票据使用RC4加密算法,这意味着与SPN相关联账户的Kerberos 5 TGS-REP etype 23哈希作为加密票据的私钥,因此很容易被离线暴力破解出明文密码。针对从网络流量中捕获到的服务票据,也可以采用离线暴力破解的方式获取到明文密码。密码的破解可能会用来实现持久化、特权提升和横向移动。 |
T1555 |
从密码存储获取凭据 |
攻击者通过搜索常用存储密码的位置获取用户凭据。在系统中密码存储的几个位置与操作系统或应用相关,也有一些存储密码的特定应用程序,以方便用户管理和维护。一旦获得凭证,它们就可以被用来执行横向移动和访问受限信息。 |
T1555.002 |
从密码存储获取凭据:Securityd内存 |
攻击者可以获得root的访问权限(允许他们读取securityd的内存),然后他们可以扫描内存,在相对较少的尝试中找到正确的密钥序列来解密用户的登录密钥链,这为攻击者提供了用户、WiFi、邮件、浏览器、证书、安全笔记等的所有明文密码。在El Capitan之前的OSX中,具有root访问权限的用户可以读取已登录用户的明文密钥链密码,因为苹果的密钥链实现允许缓存这些凭据,这样用户就不会被反复提示输入密码。苹果的securityd工具拥有用户的登陆密码,并使用PBKDF2进行加密并将主密钥存储在内存中,苹果还使用一组密钥和算法来加密用户的密码,但一旦找到主密钥,攻击者只需迭代其它值即可解锁最终密码。 |
T1555.001 |
从密码存储获取凭据:密钥链 |
攻击者可以从系统收集密钥链存储数据以获取凭证。密钥链是macOS的内置方式,用于跟踪用户的密码和许多服务和功能(如WiFi密码、网站、安全笔记、证书和Kerberos)的凭据。密钥链存储于~/Library/Keychains/、/Library/Keychains/、/Network/Library/Keychains/目录中。macOS中内置的security命令能够对这些凭据进行管理。为管理其凭据,用户必须使用其它凭据来访问密钥链。如果攻击者知道登录密钥链的凭据,则他们可以访问存储在此保险库中的所有其它凭据。默认情况下,密钥链的密码短语是用户的登录凭据。 |
T1555.005 |
从密码存储获取凭据:密码管理器 |
攻击者可能从第三方密码管理器获取用户凭据。密码管理器是旨在存储用户凭据的应用程序,通常存储在加密数据库中。凭据通常在用户提供解锁数据库的主密码后可访问。数据库解锁后,这些凭据可能被复制到内存中。这些数据库可以作为文件存储在磁盘上。攻击者可能通过从内存中提取主密码和/或明文凭据来从密码管理器获取用户凭据。攻击者可能通过利用凭据访问漏洞从内存中提取凭据。攻击者还可能尝试通过密码猜测暴力破解以获取密码管理器的主密码。 |
T1555.003 |
从密码存储获取凭据:从Web浏览器获取凭据 |
攻击者可以通过读取特定于目标浏览器的文件从web浏览器获取凭据。Web浏览器通常会保存诸如网站用户名和密码等凭据,这样以后就不需要手动输入。Web浏览器通常在凭证存储中以加密格式存储凭据;但是,存在从web浏览器提取纯文本凭据的方法。如,在Windows系统上,可以通过读取数据库文件AppData\Local\Google\Chrome\User Data\Default\Login Data并执行SQL查询SELECT action_url, username_value, password_value FROM logins;然后可以通过将加密凭据传递给Windows API函数CryptUnprotectData来获得明文密码,进而使用受害者的缓存登录凭据作为解密密钥。攻击者对常见的web浏览器执行了类似的程序,如FireFox、Safari、Edge等。Windows将Internet Explorer和Microsoft Edge凭据存储在由Windows凭据管理器管理的凭据锁中。攻击者也可以通过搜索web浏览器进程内存来获取凭据,以查找通常匹配凭据的模式。攻击者在从web浏览器获取凭据后,攻击者可能会尝试在不同系统和/或帐户之间回放凭据,以扩展访问。在从web浏览器获得的凭据与特权帐户(例如域管理员)重叠的情况下,可能会大大增加攻击者攻击的目标。 |
T1555.004 |
从密码存储获取凭据:Windows凭据管理器 |
攻击者可能从Windows凭据管理器获取凭据。凭据管理器在凭据锁(以前称为Windows Vaults)中存储用于登录网站、应用程序和/或通过NTLM或Kerberos请求身份验证的设备的凭据。Windows凭据管理器将网站凭据与应用程序或网络凭据分存储在两个锁中。作为Web浏览器凭据的一部分,Internet Explorer和Microsoft Edge网站凭据由凭据管理器管理,并存储在Web凭据锁中。应用程序和网络凭据存储在Windows凭据锁中。凭据锁将凭据存储在加密的.vcrd文件中,位于%Systemdrive%\Users[Username]\AppData\Local\Microsoft[Vault/Credentials]\下。加密密钥可以在名为Policy.vpol的文件中找到,通常位于凭据所在的同一文件夹中。攻击者可以通过多种机制列出Windows凭据管理器管理的凭据。vaultcmd.exe是一个原生Windows可执行文件,可用于通过命令行界面枚举存储在凭据锁中的凭据。攻击者也可能通过直接读取凭据锁内的文件来收集凭据。Windows API(如CredEnumerateA)也可能被滥用来列出凭据管理器管理的凭据。攻击者还可能从凭据备份中获取凭据。可以通过运行rundll32.exe keymgr.dll KRShowKeyMgr,然后在“存储的用户名和密码”GUI上选择“备份…”按钮来执行凭据备份和恢复。密码恢复工具也可能从凭据管理器获取明文密码。 |
T1552 |
不安全的凭证 |
攻击者可能会搜索受感染的系统,以查找和获取不安全存储的凭据。这些凭证可以存储在系统上的许多位置,包括纯文本文件(例如Bash History)、操作系统或特定于应用程序的存储库(例如Registry中的凭证)或其他专用文件(例如私钥)。 |
T1552.005 |
不安全的凭证:云实例元数据API |
攻击者可能会尝试访问云实例元数据API(Cloud Instance Metadata API)来收集凭据和其他敏感数据。大多数云服务提供商都支持云实例元数据API,允许应用程序访问有关正在运行的虚拟实例的信息。可用信息通常包括名称,安全组和其他元数据,其中包括敏感数据(例如凭据和UserData脚本)或其他机密信息。任何可以访问该实例的人都可以访问实例元数据API。如果攻击者掌握了正在运行的云实例,则他们可能直接查询Instance Metadata API,以标识授予对其他资源的访问权限的凭据。此外,攻击者可能利用对外提供服务的Web代理中的服务器端请求伪造(SSRF)漏洞,使攻击者可以通过对实例元数据API的请求来访问敏感信息。 |
T1552.002 |
不安全的凭证:注册表中的凭据 |
攻击者可能会在受感染系统上的注册表中搜索不安全存储的凭据。Windows注册表存储系统或其他程序可以使用的配置信息。攻击者可以通过查询注册表查找已存储供程序或服务使用的凭据和密码。这些凭据有时会用于自动登录。 |
T1552.004 |
不安全的凭证:私钥 |
攻击者可能会在受感染的系统上搜索私钥证书文件,以获取不安全存储的凭据。专用加密密钥和证书用于身份验证,加密/解密和数字签名。通用密钥和证书文件扩展名包括:.key,.pgp,.gpg,.ppk,.p12,.pem,.pfx,.cer,.p7b,.asc。攻击者也可能会查看常见的密钥目录,例如*nix系统下的~/.ssh或Windows系统下的C:\Users(username).ssh\目录中的SSH密钥。这些私钥可用于向SSH等远程服务进行身份验证,或用于解密其他收集的文件(如电子邮件)。现在已发现存在工具可以搜索受感染的系统以寻找与加密密钥和证书有关的文件扩展名。部分私钥需要输入密码或密码才能进行操作,攻击者还可能使用Input Capture进行键盘记录,或尝试将密码短语离线进行暴力破解。 |
T1552.003 |
不安全的凭证:Bash历史记录 |
攻击者可能会在受感染的系统上搜索bash命令历史记录,以获取不安全存储的凭据。Bash历史记录会记录用户在命令行上键入的命令。用户注销后,历史记录将保存到用户的.bash_history文件中,而且目录在用户的主目录:~/.bash_history。通常,此文件跟踪用户的最后500个命令。用户可能在命令行上输入用户名和密码作为程序的参数,攻击者可以通过在文件中查找潜在的凭据。 |
T1552.001 |
不安全的凭证:文件中的凭证 |
攻击者可能会在本地文件系统和远程文件共享中搜索包含不安全存储的凭据的文件。这些文件可以是用户创建的用于存储自己的凭据的文件,包含系统、服务密码的配置文件、包含嵌入式密码的源代码/二进制文件。可以通过OS Credential Dumping从备份或保存的虚拟机中提取密码。也可以从Windows域控制器上存储的组策略首选项中获取密码。在云环境中,经过身份验证的用户凭据通常存储在本地配置和凭据文件中。在某些情况下,可以将这些文件复制并在另一台机器上重复使用,或者可以读取其中的内容,然后将其用于身份验证,而无需复制文件。 |
T1552.006 |
不安全的凭证:组策略首选项 |
攻击者可能会尝试在组策略首选项(GPP)中查找不安全的凭据。GPP是允许管理员创建具有嵌入式凭据的域策略的工具,这些策略允许管理员设置本地帐户。这些组策略存储在域控制器上的SYSVOL中,这意味着任何域用户都可以查看SYSVOL共享并解密密码(使用已公开的AES密钥)。 |
T1552.007 |
不安全的凭证:容器API |
攻击者可能通过容器环境中的API收集凭据。这些环境中的API(如Docker API和Kubernetes API)允许用户远程管理其容器资源和集群组件。攻击者可能访问Docker API以收集包含云、容器和环境中各种其他资源凭据的日志。具有足够权限的攻击者(如通过pod的服务账户)也可能使用Kubernetes API从Kubernetes API服务器检索凭据。这些凭据可能包括Docker API身份验证所需的凭据或Kubernetes集群组件的密钥。 |
T1649 |
窃取或伪造身份验证证书 |
攻击者可能窃取或伪造用于身份验证的证书,以访问远程系统或资源。数字证书通常用于签名和加密消息和/或文件。证书也用作身份验证材料。例如,Azure AD设备证书和Active Directory证书服务(AD CS)证书绑定到身份,可用作域账户的凭据。身份验证证书既可以被窃取也可以被伪造。例如,AD CS证书可以从加密存储(注册表或文件中)、放错位置的证书文件(即不安全的凭据)或通过各种加密API直接从Windows证书存储中窃取。具有适当注册权限的域内用户和/或计算机也可以从企业证书颁发机构(CA)请求和/或手动续订证书。此注册过程定义与证书关联的各种设置和权限。值得注意的是,证书的扩展密钥用法(EKU)值定义签名、加密和身份验证用例,而证书的主题备用名称(SAN)值定义证书所有者的备用名称。滥用证书作为身份验证凭据可能启用其他行为,如横向移动。与证书相关的配置错误也可能通过允许用户通过与证书关联的身份(SAN)模拟或承担特权账户或权限,从而提供特权提升的机会。尽管用户密码重置,通过窃取或伪造在证书有效期内可用作有效账户的证书,这些滥用也可能启用持久性。身份验证证书也可以被窃取和伪造用于计算机账户。能够访问根(或从属)CA证书私钥(或保护/管理这些密钥的机制)的攻击者还可以通过伪造受害者域的任意身份验证证书(称为“黄金”证书)来建立持久性。攻击者还可能针对证书和相关服务,以访问其他形式的凭据,如黄金票据授予票证(TGT)或NTLM明文。 |
T1528 |
窃取应用程序访问令牌 |
攻击者可以窃取用户应用程序访问令牌,作为获取访问远程系统和资源的凭据的手段,这可以通过社会工程实现,通常需要用户操作来授予访问权限。应用程序访问令牌用于代表用户发出授权的API请求,并且通常用作在基于云的应用程序和软件即服务(SaaS)中访问资源的方式。OAuth是一种普遍实施的框架,向用户发布令牌以访问系统。希望访问基于云的服务或受保护的API的应用程序可以通过各种授权协议使用OAuth 2.0进入,常用的示例序列是Microsoft的授权代码授予流程。OAuth访问令牌使第三方应用程序能够以应用程序请求的方式与包含用户数据的资源交互,而不需要获得用户凭证。攻击者可以通过构建恶意应用程序来利用OAuth授权,恶意应用程序被设计为允许使用目标用户的OAuth令牌访问资源,攻击者将需要在授权服务器上完成其应用程序的注册,例如,使用Azure Portal、Visual Studio IDE、命令行界面、PowerShell或REST API调用的Microsoft Identity Platform。然后,攻击者可以通过鱼叉式钓鱼链接向目标用户发送链接,诱使受害者授权访问该应用程序。一旦授予了OAuth访问令牌,应用程序就可以通过应用程序访问令牌获得对用户帐户特性的潜在长期访问权限。攻击者的目标是Gmail、Microsoft Outlook和Yahoo Mail的用户。 |
T1606 |
伪造Web凭据 |
攻击者可能伪造可用于访问Web应用程序或Internet服务的凭据材料。Web应用程序和服务(托管在云SaaS环境或本地服务器中)通常使用会话Cookie、令牌或其他材料进行身份验证和授权用户访问。攻击者可能生成这些凭据材料以获取对Web资源的访问。这与窃取Web会话Cookie、窃取应用程序访问令牌和其他类似行为的不同之处在于,凭据是由攻击者新创建和伪造的,而不是从合法用户那里窃取或拦截的。Web凭据的生成通常需要秘密值,如密码、私钥或其他加密种子值。伪造后,攻击者可能使用这些Web凭据访问资源(如使用替代认证材料),这可能绕过多因素和其他认证保护机制。 |
T1606.002 |
伪造Web凭据:SAML令牌 |
攻击者如果拥有有效的SAML令牌签名证书,可能会伪造具有任何权限声明和生存期的SAML令牌。SAML令牌的默认生存期为一小时,但有效期可以在令牌中conditions元素的NotOnOrAfter值中指定。此值可以使用LifetimeTokenPolicy中的AccessTokenLifetime进行更改。伪造的SAML令牌使攻击者能够跨使用SAML 2.0作为单点登录(SSO)机制的服务进行身份验证。攻击者可能利用私钥破坏组织的令牌签名证书来创建伪造的SAML令牌。如果攻击者具有足够的权限以自己的Active Directory联合服务(AD FS)服务器建立新的联合信任,他们可能会生成自己的受信任令牌签名证书。这与窃取应用程序访问令牌和其他类似行为的不同之处在于,令牌是由攻击者新创建和伪造的,而不是从合法用户那里窃取或拦截的。如果伪造的SAML令牌声称代表高特权账户,攻击者可能获得Azure AD管理特权。这可能导致使用替代认证材料,从而可能绕过多因素和其他认证保护机制。 |
T1606.001 |
伪造Web凭据:Web Cookie |
攻击者可能伪造可用于访问Web应用程序或Internet服务的Web Cookie。Web应用程序和服务(托管在云SaaS环境或本地服务器中)通常使用会话Cookie进行身份验证和授权用户访问。攻击者可能生成这些Cookie以获取对Web资源的访问。这与窃取Web会话Cookie和其他类似行为的不同之处在于,Cookie是由攻击者新创建和伪造的,而不是从合法用户那里窃取或拦截的。大多数常见的Web应用程序都有标准化和文档化的Cookie值,可以使用提供的工具或接口生成。Web Cookie的生成通常需要秘密值,如密码、私钥或其他加密种子值。伪造后,攻击者可能使用这些Web Cookie访问资源(Web会话Cookie),这可能绕过多因素和其他认证保护机制。 |
T1621 |
多因素认证请求生成 |
攻击者可能尝试绕过多因素认证(MFA)机制并通过生成发送给用户的MFA请求来获取账户访问权限。拥有有效账户凭据的攻击者如果无法访问作为额外凭据和安全控制所需的2FA或MFA机制,可能无法完成登录过程。为规避此限制,攻击者可能滥用自动生成推送通知到MFA服务(如Duo Push、Microsoft Authenticator、Okta或类似服务)的功能,使用户授予对其账户的访问权限。在某些情况下,攻击者可能不断重复登录尝试,向用户 bombardMFA推送通知、SMS消息和电话呼叫,可能导致用户最终因”MFA疲劳”而接受认证请求。 |
T1212 |
访问凭据的利用 |
软件的漏洞可以存在于程序、服务或操作系统软件或内核本身中,攻击者通过利用漏洞来触发软件错误来执行攻击者控制的代码时,就利用了软件漏洞。当攻击漏洞利用成功后,当前有效的访问凭据和身份验证机制也可以被攻击者利用,以此作为获取有用凭据的途径或规避获取系统访问权限的方法。其中一个例子是MS14-068漏洞,它是针对Kerberos协议的,可用于使用域用户权限伪造Kerberos票证,利用凭证访问权还可能导致特权升级,具体取决于目标过程或获取的凭证。 |
T1110 |
暴力破解 |
在不知道某个账户或某一组账户密码的情况下,攻击者可能会使用重复或迭代机制来系统的猜解密码。可以通过与检查票据有效性的服务交互进行暴力破解密码,也可以利用先前获取的凭据(如密码哈希)进行暴力破解密码。 |
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 / Terminal Services (3389/TCP)、HTTP/HTTP Management Services (80/TCP & 443/TCP)、MSSQL (1433/TCP)、Oracle (1521/TCP)、MySQL (3306/TCP)、VNC (5900/TCP)。除了管理服务外,攻击者还可以“使用联合身份验证协议来针对单点登录(SSO)和基于云的应用程序”,以及面向外部的电子邮件应用程序(例如Office365)进行密码猜解。在默认的环境中, LDAP和Kerberos连接尝试很少会通过SMB触发Windows“登陆失败”事件(事件ID 4625)。 |
T1110.002 |
暴力破解:密码破解 |
当攻击者获取到凭据材料(如密码哈希)时,攻击者会使用密码破解技术去尝试恢复可用的凭据(如纯文本密码)。操作系统凭据转储可用于获取密码哈希,到目前为止,当不能通过“哈希传递”进行攻击时,才会去根据密码哈希破解出密码的明文。攻击者可能使用系统的猜测用于计算哈希的密码,或者使用预先计算的彩虹表来破解密码哈希。破解密码哈希通常是在目标网络意外的攻击者所控制的系统上完成,成功破解出来的明文密码可用于登录账户访问系统、资源和服务。 |
T1110.003 |
暴力破解:密码喷洒 |
攻击者可能会针对不同账户使用单个或少量的常用密码,以尝试获取有效账户的凭据。密码喷洒是使用一个密码(如“Password01”)或少量密码,这些密码可能与域的复杂性策略相匹配,攻击者使用这个或这些密码登录网络上不同的账户,以避免因为暴力破解使用较多错误密码登录账户而导致的账户锁定。通常,在进行密码喷涂时,会针对常用端口上的管理服务。普遍针对的服务包括以下内容:SSH (22/TCP)、Telnet (23/TCP)、FTP (21/TCP)、NetBIOS / SMB / Samba (139/TCP & 445/TCP)、LDAP (389/TCP)、Kerberos (88/TCP)、RDP / Terminal Services (3389/TCP)、HTTP/HTTP Management Services (80/TCP & 443/TCP)、MSSQL (1433/TCP)、Oracle (1521/TCP)、MySQL (3306/TCP)、VNC (5900/TCP)。除了管理服务外,攻击者还可以“使用联合身份验证协议来针对单点登录(SSO)和基于云的应用程序”,以及面向外部的电子邮件应用程序(例如Office365)进行密码喷洒攻击。在默认的环境中, 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 / Terminal Services (3389/TCP)、HTTP/HTTP Management Services (80/TCP & 443/TCP)、MSSQL (1433/TCP)、Oracle (1521/TCP)、MySQL (3306/TCP)、VNC (5900/TCP)。除了管理服务外,攻击者还可以“使用联合身份验证协议来针对单点登录(SSO)和基于云的应用程序”,以及面向外部的电子邮件应用程序(例如Office365)进行撞库。 |
T1187 |
强制认证 |
服务器消息块 (SMB) 协议通常用于 Windows 网络中的身份验证和系统间的通信,以访问资源和文件共享。当 Windows 系统尝试连接到 SMB 资源时,它将自动尝试对当前用户进行身份验证并将凭据信息发送到远程系统。此行为在企业环境中很典型,因此用户无需输入凭据即可访问网络资源。当 SMB 阻塞或失败时,Windows 系统通常使用基于 Web 的分布式编写和版本控制 (WebDAV) 作为备用协议。WebDAV 是 HTTP 的扩展,通常通过 TCP 端口 80 和 443 运行。攻击者可以利用此行为通过强制 SMB 身份验证访问用户帐户散列。攻击者可以通过鱼叉式网络钓鱼向用户发送附件,其中包含指向攻击者控制的外部服务器的资源链接(即模板注入),或将特制文件放在特权帐户的访问路径(例如放在桌面上的 .SCF 文件)或受害者可访问的公共共享文件中。当用户的系统访问不受信任的资源时,它将尝试身份验证,并通过 SMB 向攻击者控制的服务器发送包括用户散列凭据的信息。通过访问凭据散列,攻击可以执行离线爆破来获得对明文凭据的访问权,或者重用它来进行哈希传递 (Pass-the-Hash)。有几种不同的方式可以实现这一点。一些具体的民间使用包括:- 鱼叉式网络钓鱼附件,包含在打开时自动加载的资源的文档。(如,模板注入)。例如,文档可以包含类似于 file[:]//[remote address]/Normal.dotm 的请求来触发 SMB 请求。- 修改后的。LNK 或。SCF 文件,其图标文件名指向外部引用,如 [remote address]\pic.png 这将强制系统在呈现图标时加载资源以重复收集凭据。 |
T1056 |
捕获输入 |
攻击者可能会采用捕获用户输入的方法来获取凭据或收集信息。在系统正常使用过程中,用户通常提供不同的凭据,如登陆页面、系统对话框。输入捕获机制可能对用户是透明的(例如凭据API挂钩),或者依赖于欺骗用户使他们认为这是真正服务提供的输入(例如Web门户网站捕获)。 |
T1056.001 |
捕获输入:键盘记录 |
攻击者可能记录用户的键盘输入记录,以拦截用户输入的凭据证书。当OS凭据转储无效时,按键记录很有可能被用于获取新的访问凭证,且可能要求攻击者在相当长的一段时间内拦截系统上的按键记录,才能成功获取凭据。键盘记录是最流行的输入捕获类型,其具有多种截获键盘的方式:(1)Hooking API 调用进程被用于处理按键,与凭据 Hooking API不同,其只关注与用于处理按键数据的API函数;(2)从硬件缓存区读取原始按键数据;(3)修改Windows注册表;(4)自定义驱动程序;(5)修改系统镜像可能会为攻击者提供进入网络设备操作系统的入口,以读取登录会话的原始按键。 |
T1056.003 |
捕获输入:Web门户网站捕获 |
攻击者可能在面向外部(互联网)的门户上安装代码(如VPN登陆页面),以捕获尝试登陆该服务的用户的凭据,例如:登陆页面会在用户登陆服务之前记录下用户提供的凭据。输入捕获的这种变化可以在攻击后发生,使用合法的管理访问作为通过外部远程服务和有效账户以维护网络访问的备份措施,或者作为利用面向外部的Web服务的初始危害的一部分。 |
T1056.002 |
捕获输入:GUI输入捕获 |
攻击者可能会模仿通用操作系统GUI组件,以提供给用户一个看似合法提示用来提示用户输入凭据。当需要除当前用户权限之外的权限运行程序时,操作系统会提示用户输入适当的凭据来提升权限运行任务(例如:绕过用户账户控制)。攻击者会模仿正常需要输入凭据的功能给用户一个看似合法的提示来提示用户输入凭据,例如:假冒安装程序需要额外的权限或假冒恶意软件删除套件,这种类型的提示可用于通过各种语言(例如:AppleScript 和 PowerShell)来收集凭据。 |
T1056.004 |
捕获输入:凭据 API Hooking |
攻击者可能会使用Windows应用程序接口(API)功能来收集用户凭据。恶意Hook机制可能用于捕获API调用,这些API调用中包含了用户的身份认证凭据参数,与Keylogging不同,此技术专门针对API函数中包含显示用户凭据参数的函数,Hook可以重定向这些函数,具体的方法可以参考一下:Hooks程序,可以拦截、执行指定得代码以响应诸如消息、按键和鼠标输入等事件;导入地址表(IAT)Hook,其可以修改进程的IAT,该IAT中存储了指向导入API函数的指针;内联Hook,其会重新API函数中第一个字节以重定向代码流。 |
T1111 |
双因素身份验证拦截 |
建议使用双因素或多因素身份验证,这提供比仅使用用户名和密码更高级别的安全性,但组织应该了解可以用来拦截和绕过这些安全机制的技术。攻击者可能攻击身份验证机制(如智能卡),以获取对系统,服务和网络资源的访问权限。如果使用智能卡进行双因素身份验证 (2FA),则在正常使用期间需要使用键盘记录器获取与智能卡关联的密码。通过插入的卡和对智能卡密码的访问,攻击者可以利用受感染的系统连接到网络资源,并用插入的硬件令牌代理身份验证。如果将智能卡用于两步验证,则在正常使用期间将需要使用键盘记录程序来获取与智能卡关联的密码。通过插入的卡和智能卡密码,攻击者可以使用受感染的系统连接到网络资源,以使用插入的硬件令牌代理身份验证。攻击者还可以使用键盘记录程序来类似地将其他硬件令牌作为目标,例如RSA SecurID。捕获令牌输入(包括用户的个人识别码)可以提供临时访问(即,重播一次密码直到下一次值转换),还可能使攻击者可靠地预测未来的身份验证值(允许访问算法和任何其他方法)种子值,用于生成附加的临时代码)。攻击者可能会拦截2FA的其他方法并使用它们进行身份验证。一次性代码通常通过带外通信(电子邮件,SMS)发送。如果设备和/或服务不安全,则可能容易受到拦截。尽管这些身份验证机制主要是由网络犯罪分子关注的,但它们已成为高级参与者的目标。 |
T1556 |
修改身份验证进程 |
攻击者可能恶意修改身份验证过程的部分内容,以泄露凭据或绕过身份验证机制,受到攻击的凭据和访问权限可用于绕过防止在网络系统上对各种资源的访问控制,甚至可以被用于持久化远程访问系统和外部可用服务,例如VPNs、Outlook Web Access和远程桌面。 |
T1556.003 |
修改身份验证进程:可插拔验证模块 |
攻击者可能会修改可插拔身份验证模块(PAM)以访问用户凭据或者启用未经授权的账户访问。PAM是配置文件、动态库和执行文件的模块化系统,可指导许多服务的身份验证。常见的身份验证模块是pam_unix.so,其在/etc/passwd和/etc/shadow中检索、设置和验证账户身份信息。攻击者可能修改PAM系统的组件以创建后门,PAM组件(如pam_unix.so)可以进行修补,以获取任意攻击者提供的值作为合法凭据。恶意的修改PAM系统也可以用于窃取凭据,攻击者可以代码感染PAM资源以获取用户凭据,因为与PAM组件交换的值可能是明文,PAM不存储密码。 |
T1556.002 |
修改身份验证进程:密码过滤器DLL |
攻击者可能将恶意密码过滤器动态链接库(DLL)注册到身份验证过程中,以在验证用户凭证的时候获取凭据。Windows密码筛选器是域账户和本地账户密码策略强制执行的机制,筛选器作为一个DLL进行实现,其包含一种根据密码策略验证潜在违反密码策略的方法。筛选器DLL可以位于本地计算机(作用于本地账户)和域控(作用域域账户)上,在本地安全机构(LSA)中注册新密码之前,LSA会要求每个要求每个注册过滤器进行验证,在每个注册的过滤器都确认有效之前,任何潜在的更改都不会发生。攻击者可以注册恶意密码过滤器,已从本地计算机或整个域中获取凭据,为了执行正确的验证,筛选器必须从LSA中接受明文凭据,每次提出密码请求时,恶意密码筛选器都会接受这些明文凭据。 |
T1556.007 |
修改身份验证进程:混合身份 |
攻击者可能修补、修改或以其他方式后门化与本地用户身份绑定的云身份验证过程,以绕过典型的身份验证机制、访问凭据并启用对账户的持久访问。许多组织维护在本地和基于云的环境之间共享的混合用户和设备身份。这些可以通过多种方式维护。例如,Azure AD包括三种在Active Directory和Azure AD之间同步身份的选项:密码哈希同步(PHS),其中特权本地账户在Active Directory和Azure AD之间同步用户密码哈希,允许对Azure AD的身份验证完全在云中进行直通身份验证(PTA),其中Azure AD身份验证尝试被转发到本地PTA代理,该代理针对Active Directory验证凭据*Active Directory联合服务(AD FS),其中在Active Directory和Azure AD之间建立信任关系AD FS还可与其他SaaS和云平台(如AWS和GCP)一起使用,这些平台会将身份验证过程移交给AD FS并接收包含混合用户身份和特权的令牌。通过修改与混合身份相关的身份验证过程,攻击者可能能够建立对云资源的持久特权访问。例如,攻陷运行PTA代理的本地服务器的攻击者可能会将恶意DLL注入AzureADConnectAuthenticationAgentService 进程,该进程授权所有尝试对Azure AD进行身份验证的尝试,并记录用户凭据。在使用AD FS的环境中,攻击者可能编辑Microsoft.IdentityServer.Servicehost 配置文件以加载恶意DLL,该DLL为具有任何声明集的任何用户生成身份验证令牌,从而绕过多因素身份验证和已定义的AD FS策略。在某些情况下,攻击者可能能够从云中修改混合身份验证过程。例如,攻陷Azure AD租户中全局管理员账户的攻击者可能能够通过Web控制台注册新的PTA代理,类似地允许他们获取凭据并以任何用户身份登录Azure AD环境。 |
T1556.006 |
修改身份验证进程:多因素认证 |
攻击者可能禁用或修改多因素认证(MFA)机制,以启用对已攻陷账户的持久访问。一旦攻击者通过攻陷缺乏MFA的账户或采用MFA绕过方法(如多因素认证请求生成)获得网络访问,他们可能会利用其访问权限修改或完全禁用MFA防御。这可以通过滥用合法功能来实现,例如将用户排除在Azure AD条件访问策略之外、注册新的但易受攻击/攻击者控制的MFA方法,或通过手动修补MFA程序和配置文件以绕过预期功能。例如,修改Windows主机文件(C:\windows\system32\drivers\etc\hosts )以将MFA调用重定向到本地主机而不是MFA服务器,可能导致MFA过程失败。如果实施了”故障开放”策略,任何otherwise成功的身份验证尝试都可能被授予访问权限而不强制执行MFA。根据攻击者的范围、目标和权限,MFA防御可能会针对单个账户或与更大组(如受害者网络环境中的所有域账户)绑定的所有账户禁用。 |
T1556.001 |
修改身份验证进程:域控身份验证 |
攻击者可能会在域控上修补身份验证过程,以绕过典型的身份验证机制并启用对账户的访问。恶意软件可能被用于向域控上的身份验证过程中注入虚假凭据,以创建用于访问任意用户账户和凭据的后门(如万能钥匙)。万能钥匙通过企业域控身份验证过程(LSASS)上具有凭据的补丁来工作,该凭据可以使攻击者绕过标准的身份验证系统,一旦打上该补丁,攻击者可以使用注入的密码作为任何域用户账户成功进行身份认证(直到通过重启域控从内存中删除万能钥匙),认证访问可能在单因素环境下实现对主机或资源的不受限制的访问。 |
T1556.005 |
修改身份验证进程:可逆加密 |
攻击者可能滥用Active Directory身份验证加密属性来获取Windows系统上的凭据。AllowReversiblePasswordEncryption属性指定是否启用或禁用账户的可逆密码加密。默认情况下,此属性是禁用的(而是将用户凭据存储为单向哈希函数的输出),除非遗留或其他软件需要,否则不应启用。如果启用了该属性和/或用户在启用后更改了密码,攻击者可能能够获取在启用该属性后创建/更改的密码的明文。要解密密码,攻击者需要四个组件:1.来自Active Directory用户结构userParameters的加密密码(G$RADIUSCHAP)2.同样来自userParameters的16字节随机生成值(G$RADIUSCHAPKEY)3.全局LSA密钥(G$MSRADIUSCHAPKEY)4.远程访问子身份验证DLL(RASSFM.DLL)中硬编码的静态密钥有了这些信息,攻击者可能能够重现加密密钥并随后解密加密的密码值。攻击者可以通过本地组策略编辑器、用户属性、细粒度密码策略(FGPP)或通过ActiveDirectory PowerShell模块在各种范围内设置此属性。例如,如果域功能级别设置为”Windows Server 2008″或更高,攻击者可能会实施并应用FGPP到用户或组。在PowerShell中,攻击者可能使用类似于Set-ADUser -AllowReversiblePasswordEncryption $true的命令对用户设置进行相关更改。 |
T1556.004 |
修改身份验证进程:网络设备认证 |
攻击者可能使用修补系统映像在操作系统中对密码进行硬编码,从而绕过网络设备上本地账户的本机身份验证机制。修改系统映像可能包含将代码植入到操作系统中,以供攻击者使用特定的密码进行访问,修改包括特定密码,该密码通过补丁植入到操作系统的映像中。尝试进行身份验证时,插入的代码将首先检查用户输入的密码是否正确,如果正确则授予访问权限,否则植入的代码将传递凭据,以验证可能有效的凭据。 |