学习对抗策略,技巧和常识(ATT @ CK)。 企业策略。 第8部分

横向运动


链接到所有部分:
第1部分。获得初始访问权限(Initial Access)
第2部分。执行
第3部分。紧固(持久性)
第4部分。特权提升
第5部分。逃避防御
第6部分。获取凭据(凭据访问)
第7部分。发现
第8部分。横向运动
第9部分。数据收集(Collection)
第十部分渗透
第11部分。命令和控制

横向运动战术( 英语为“横向运动”-横向,横向,横向运动 )包括敌人获取和控制连接到受攻击网络的远程系统的方法,并在某些情况下在连接的远程系统上启动恶意工具到受攻击的网络。 横向网络移动使攻击者无需使用其他工具,例如远程访问实用程序(RAT),即可从远程系统获取信息。

作者对使用本文中包含的信息可能造成的后果不承担任何责任,并对某些表述和术语中可能存在的错误表示歉意。 发布的信息是对MITER ATT&CK内容的免费转载。

苹果脚本


系统: macOS
权限:用户
描述: AppleScript语言提供了使用Apple Event的功能-作为进程间通信(IPC)的一部分,应用程序之间交换的消息。 使用Apple Event,您可以与在本地或远程打开的几乎所有应用程序进行交互,从而触发事件,例如打开窗口和按下键。 使用以下命令运行脚本: Osascript -e []
攻击者可以使用AppleScript秘密打开与远程主机的SSH连接,从而为用户提供虚假对话框。 AppleScript也可以用于更常见的攻击类型,例如Reverse Shell组织。

保护建议:必须对运行的AppleScript脚本进行强制性验证,以得到受信任的开发人员的签名。

应用部署软件


系统: Windows,Linux,macOS
描述:恶意用户可以使用企业网络管理员使用的应用程序部署工具来安装恶意应用程序。 完成这些步骤所需的权限取决于系统配置:访问软件安装服务器可能需要某些域凭据,并且本地特权可能已足够,但是,可能需要管理员帐户才能进入应用程序安装系统并开始部署过程系统。 通过访问集中式公司应用程序安装系统,攻击者可以在受攻击网络的所有系统中远程执行代码。 这种访问可用于在网络中移动,收集信息或产生特定效果,例如,清洁所有主机上的硬盘驱动器。

安全建议:仅允许有限数量的授权管理员访问应用程序部署系统。 提供可靠的隔离,并使用防火墙限制对关键网络系统的访问,限制帐户特权,配置组安全策略和多因素身份验证。 确保有权访问软件部署系统的帐户数据是唯一的,并且不在整个网络中使用。 定期安装修补程序和应用程序安装系统更新,以防止它们通过利用漏洞获得未经授权的远程访问。 如果将应用程序安装系统配置为仅分发签名的二进制文件,则请确保信任的签名证书不在其上,而是存储在无法远程访问或受限制和控制的系统上。

DCOM(分布式组件对象模型)


系统: Windows
权限:系统管理员
描述: DCOM是一种协议,它扩展了组件对象模型(COM)的功能,从而允许软件组件不仅可以在本地系统内进行交互,还可以使用远程过程调用(RPC)技术通过网络与其他系统的应用程序组件进行交互。 COM是Windows API的组件。 通过COM,客户端对象可以调用服务器对象方法,通常是DLL或.exe文件。 与本地或远程服务器COM对象进行交互的权限是使用注册表中的ACL定义的。 默认情况下,只有管理员可以通过DCOM远程激活和运行COM对象。

敌人可以使用DCOM在网络上横向移动。 通过DCOM,在具有适当特权的用户上下文中工作的攻击者可以通过Office应用程序和其他包含不安全方法的Windows对象远程执行任意代码。 DCOM还可以执行现有文档中的宏,以及直接通过Microsoft Office中创建的COM对象调用动态数据交换(DDE),而无需创建恶意文档。 DCOM还可以为攻击者提供可以在攻击的其他阶段使用的功能,例如特权升级或固定访问。

保护建议:使用注册表,为COM应用程序配置单独的安全设置:代码> HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes \ AppID。
考虑使用dcomcnfg.exe实用程序或在注册表中禁用DCOM支持: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole\EnableDCOM=SZ:N
启用Windows防火墙,默认情况下会阻止创建DCO​​M实例。 打开有关MS Office文档中COM对象启动的安全查看和通知。

远程服务的利用


系统: Windows,Linux,macOS
权限:用户
描述:要执行任意代码,攻击者可以利用利用程序,服务,操作系统软件甚至操作系统内核中的错误的漏洞利用程序。 在最初的入侵之后利用远程服务的漏洞的目的是提供对系统的远程访问,以便在网络中移动。

首先,对手需要确定具有漏洞的系统。 这可以通过扫描网络服务或其他检测方法来完成,例如搜索表明漏洞存在的常见易受攻击的软件和缺少的修补程序,或者搜索用于检测和阻止漏洞的远程利用的安全工具。 服务器很可能是在导航网络时使用的重要目标,但是如果工作站为对手提供任何优势或访问其他资源,它们也将面临风险。

共享服务(例如SMB,RDP)以及可在内部网络上使用的应用程序(例如MySQL和Web服务器服务)中的漏洞是已知的。 根据易受攻击的服务的权限,对手还可以使用横向移动额外获得特权升级。

安全提示分割网络和系统,以减少对关键系统和服务的访问。 通过仅向需要服务的人授予权利来最大程度地减少服务的可用性。 定期检查您的内部网络是否有新的和潜在的漏洞服务。 最小化服务帐户的权限和访问以限制覆盖范围。

定期更新软件,实施管理内部主机和服务器上应用程序补丁程序安装的过程。 制定网络威胁分析程序,以确定威胁的类型和级别,在此期间可以对组织使用攻击,包括零日漏洞的攻击。 使用沙箱可以使敌人很难使用未知或未纠正的漏洞执行操作。 其他类型的微分段和应用程序虚拟化也可以减轻某些类型的利用的影响。 诸如Windows Defender Exploit Guard(WDEG)和Enhanced Mitigation Experience Toolkit(EMET)等旨在发现漏洞利用过程中所使用行为的安全软件可用于防御漏洞利用。 验证控制流的完整性是识别和阻止利用软件漏洞的另一种方法。 列出的许多安全功能可能不适用于所有程序和服务;兼容性取决于目标应用程序的体系结构和二进制文件。

取决于可用的工具,捍卫方很难检测到漏洞的利用。 软件利用可能并不总是成功或导致不稳定的操作或被攻击进程的异常终止。 请注意危害指标,例如,进程的异常行为,磁盘上可疑文件的外观,异常的网络流量,触发检测工具的迹象以及进程注入。

登录脚本


系统: Windows,macOS
描述:攻击者可以使用创建新的或修改现有的登录脚本的功能-每当特定用户或特定用户组登录系统时就会执行的脚本。 如果攻击者获得了对域控制器上登录脚本的访问权限,则他可以对其进行修改以在域中的所有系统上执行代码,以便在网络上横向移动。 根据登录脚本的权限,可能需要本地或管理凭据。
在Mac上,与登录项不同(在用户上下文中运行),登录脚本( Login / Logout Hook )可以作为root用户运行。

安全建议:限制管理员特权以创建登录脚本。 识别和阻止可用于修改登录方案的潜在危险软件。 Windows AppLocker可能会阻止启动未知程序。

传递哈希


系统: Windows
说明:传递哈希(PtH)是一种无需通过明文形式即可访问其密码的身份验证方法。 该方法是绕过要求密码的标准身份验证步骤,并直接转到使用密码哈希的身份验证部分。 对手使用凭据访问技术捕获真实密码的哈希,然后将这些哈希用于PtH身份验证,该身份可用于在本地或远程系统上执行操作。

要在安装了KB2871997更新的Windows 7及更高版本上运行“传递哈希”攻击, 需要有效的域用户凭证或管理员哈希(RID 500)。

保护建议:监视系统和域日志,以识别帐户登录的异常活动。 禁止访问现有帐户。 在Windows 7及更高版本的系统上,安装KB2871997修补程序以限制对默认本地管理员组中的帐户的访问。

为了最小化实现通过哈希的可能性,请在用户通过网络登录时通过编辑注册表或组策略中的相应项来禁用UAC的远程启动:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\LocalAccountTokenFilterPolice

GPO:Computer Configuration > [Policies] > Administrative Templates > SCM: Pass the Hash Mitigation: Apply UAC restriction to local accounts on network logons

限制不同系统中帐户的重合,以防止它们受到损害并降低敌人在系统之间移动的能力。 确保本地管理员的内置和创建的凭据具有复杂的唯一密码。 不允许域用户成为多个系统上本地管理员组的成员。 为了检测“通过哈希”攻击,将对所有登录和凭据使用事件进行审核,并进行差异检查(例如,在多个系统上同时使用一个帐户)。 与可疑活动(例如,创建和执行二进制文件)相关的异常登录也可能表示恶意活动。 与域和非匿名帐户(具有SID S-1-5-7的用户)无关的NTLM LogonType 3类型的身份验证事件(网络条目)也应该是可疑的。

通过票


系统: Windows
说明:传递票证(PtT)是Kerberos票证身份验证方法,无法访问帐户密码。 Kerberos身份验证可以用作将对手移动到远程系统的第一步。
在PtT期间,对手使用凭证转储技术来捕获现有帐户的有效Kerberos票证。 根据访问级别,可以获得用户服务票证或票证授予票证(TGT)。 服务票证允许访问特定资源,而TGT可以用于从票证服务(TGS)请求服务票证以访问用户有权访问的任何资源。

可以为使用Kerberos作为身份验证机制的服务获得Silver Ticket(伪造的TGS),并用于生成用于访问特定资源和资源所在系统(例如SharePoint)的票据。

可以通过使用密钥分发服务帐户KRBTGT的NTLM哈希来获得Golden Ticket(用于在任何用户(包括不存在的用户)中无限制访问资源的Kerberos票证),这可以为AD中的任何帐户生成TGT。

保护建议:监视系统中的异常凭据。 限制整个系统之间的凭证匹配,从而防止在发生破坏时造成损害。 确保本地管理员帐户具有复杂的唯一密码。 不允许用户成为多个系统的本地管理员。 限制域控制器和受限服务器的域管理员帐户权限。 将其他管理员功能委派给各个帐户。

要抵消以前生成的Gold Ticket,请两次重置KRBTGT内置帐户的密码,这将使使用KRBTGT密码哈希和从Golden Ticket收到的其他Kerberos票证创建的所有Golden Ticket失效。

使用诸如Applocker或软件限制策略之类的应用程序白名单工具尝试识别并阻止可用于接收Kerberos票证和进一步身份验证的未知或恶意软件。

为了检测PtT攻击,我们建议审核所有Kerberos身份验证事件,并使用凭据进行差异分析。 与其他可疑活动(例如,编写和运行二进制文件)相关的异常远程身份验证事件可以指示恶意活动。
在两次重置KRBTGT密码后使用Golden Ticket时,在域控制器上会生成事件ID4769。 状态代码0x1F表示对加密字段的完整性检查失败,并表示尝试使用无效的Golden Ticket。

远程桌面协议


系统: Windows
权限:远程桌面用户,用户
说明:远程桌面是操作系统的典型功能,它允许用户使用远程计算机上的图形界面登录到交互式会话。 Microsoft将其RDP协议的实现称为“ 远程桌面服务(RDS)” 。 还有其他实现和第三方工具可提供对RDS等远程服务的图形访问。 如果相应的服务已打开,则敌人可以通过RDP / RDS连接到远程系统,以扩展访问范围,并允许攻击者使用已知凭据进行访问。 以前,对手可能会使用凭据访问技术来获取可与RDP一起使用的凭据。 反对者还可以结合使用RDP和Windows Accessibility Abuse技术来保护自己在系统中的安全。

攻击者还可能试图劫持涉及合法用户远程会话的RDP会话。 通常,当您尝试窃取会话时,用户会收到通知和确认消息,但是,使用终端服务控制台具有系统级权限,您可以在不提供凭据和用户确认的情况下拦截会话: C:\Windows\system32\tscon.exe [ , ]
可以通过活动会话或中止会话在远程或本地完成此操作。 通过劫持域管理员或特权更大的用户,它还可能导致特权升级。 以上所有操作都可以使用内置的Windows命令完成,或者可以将相应的功能添加到渗透测试工具中,例如RedSnarf

保护建议:禁用不需要的RDP服务,从“ 远程桌面用户”组中删除不必要的帐户和组,启用防火墙中安全区域之间的RDP流量阻止规则。 定期检查“ 远程桌面用户”组的成员。 从允许通过RDP登录的组列表中删除管理员组。 如果需要远程访问,则限制远程用户的权限。 使用远程桌面网关和多因素身份验证进行远程登录。 不要让RDP可从Internet访问。 通过定义超时和远程会话可以处于活动状态的最大时间来修改GPO。 更改GPO以指示断开连接的远程会话在主机服务器上保持活动状态的最长时间。

由于RDP的使用可能是一个完全合法的过程,因此恶意活动的指标可以是远程登录后发生的访问模式和操作,例如,用户登录到他们通常在以下情况下不访问或登录到多个系统的系统:时间相对较短。为了防止RDP会话被拦截,建议您监视tscon.exe的使用并创建在其参数中使用cmd.exe /k这两种服务的服务cmd.exe /c

远程文件复制


系统: Windows,Linux,macOS
权限:用户
说明:可以将文件从一个系统复制到另一个系统,以在操作期间部署敌方工具或其他文件。可以通过C&C通道,或使用其他工具使用其他协议,例如FTP,从攻击者控制的外部系统中复制文件。也可以使用诸如scp,rsync,sftp等内置工具将文件复制到Mac和Linux。敌人还可以在内部受害者系统之间横向复制文件,以支持网络移动和远程命令执行。可以使用文件共享协议通过SMB连接网络资源,也可以使用与Windows Admin Shares或RDP的身份验证连接来完成此操作。

保护建议:使用IDS / IPS系统通过签名来识别恶意流量或通过FTP等众所周知的工具和协议进行的异常数据传输,以减少网络级别的活动。签名通常用于检测唯一的协议指示符,并且基于特定攻击者或工具使用的特定混淆技术,并且对于不同的恶意软件家族和版本,签名很可能会有所不同。攻击者可能会修改C2工具的签名或创建协议,从而避免被众所周知的安全工具检测到。

作为一种检测手段,建议监视通过SMB通过网络监视文件的创建和传输。具有外部网络连接并在系统内创建文件的异常进程可能令人怀疑。FTP等实用程序的非典型用法也可能令人怀疑。还建议分析网络数据中是否存在异常数据流,例如,客户端发送的数据明显多于从服务器接收的数据。通常没有网络连接的网络进程也是可疑的。检查数据包的内容以查找与使用的协议和端口不匹配的连接。

远程服务


系统: Windows,Linux,macOS
描述:攻击者可以使用有效帐户登录旨在接受网络连接的服务,例如telnet,SSH或VNC。此后,对手将能够代表已登录系统的用户执行操作。

安全注意事项限制远程服务可以使用的帐户数量。尽可能使用多因素身份验证。限制具有较高威胁风险的帐户的权限,例如,配置SSH,以便用户只能运行某些程序。防止凭据访问技术这可能会使攻击者获得有效的凭据。将与远程服务关联的登录使用活动与异常行为或其他恶意或可疑活动相关联。在尝试推进网络之前,攻击者很可能需要使用检测技术来了解环境以及系统之间的关系

通过可移动媒体复制


系统: Windows
说明:该技术涉及使用Windows中的自动运行功能执行恶意程序。为了欺骗用户,可以对“合法”文件进行预先修改或替换,然后由攻击者将其复制到可移动设备中。同样,有效载荷可以在可移动设备的固件中或通过初始媒体格式化程序来实现。

保护建议:在Windows中禁用自动运行功能。在组织的安全策略级别限制可移动设备的使用。应用防病毒软件。

SSH捕获(SSH劫持)


系统: macOS,Linux
说明:Secure Shell(SSH)是Linux和macOS上的标准远程访问工具,允许用户通过加密的隧道(通常使用密码,证书或非对称加密密钥对)连接到另一个系统。为了从受威胁的主机通过网络前进,对手可以通过拦截与另一个系统的现有连接,利用活动SSH会话中通过公钥身份验证与其他系统建立的信任关系。这可能是由于SSH代理本身的入侵或对代理套接字的访问造成的。如果攻击者可以在系统中获得root用户访问权限,那么进一步捕获SSH会话将是一项艰巨的任务。破坏SSH代理还会拦截SSH凭据。SSH劫持技术与使用远程服务技术不同,因为它集成到现有SSH会话中,而不是使用有效帐户创建新会话。

:确保SSH密钥对具有强密码,如果未得到适当的保护,请避免使用密钥存储技术(例如ssh-agent)。确保将所有私钥安全地存储在只有合法所有者才能使用复杂且经常更改的密码才能访问的位置。验证文件权限是否正确,并加强系统以防止root特权被提升。不允许通过具有root用户特权或其他特权帐户的SSH进行远程访问。确保在没有明确要求的系统上禁用了代理转发。考虑到根据网络环境及其使用方式,本身就可以使用SSH合法,SSH的可疑或恶意使用指标可能是获得访问权限和随后行为的各种模式。例如,在短时间内登录通常无法访问或连接到多个系统的系统的帐户。还建议您跟踪不同用户使用的用户SSH代理的套接字文件。

公用Webroot(共享Webroot)


系统: Windows
说明:攻击者可以将恶意内容放置在具有公共webroot目录或另一个用于在网络内部网段中提供Web内容的公共目录的网站上,然后使用Web浏览器导航到该内容以强制服务器执行该内容。通常,恶意内容是在Web服务器进程的上下文中启动的,通常取决于Web服务器的配置方式,这会导致本地系统或管理特权。这种用于共享和远程执行代码的机制可用于移动到运行Web服务器的系统。例如,运行带有公开webroot的PHP的Web服务器可能允许攻击者在访问特定页面时将RAT工具下载到Web服务器操作系统。

保护建议:如果系统和Web服务器没有得到适当的保护,则允许用户进行开放式开发,内容测试和启动自己的Web服务器的网络特别容易受到攻击:特权帐户的使用不受限制,无需身份验证就可以访问网络资源,并且网络/系统的网络隔离。确保通过Web服务器可访问的目录的权限正确。拒绝远程访问网站的根目录(webroot)或其他用于提供Web内容的目录。禁止在webroot目录中执行。确保Web服务器进程的权限仅是必需的。不要使用内置帐户;相反,创建特定帐户以限制不必要的访问或在多个系统上进行交叉许可。

使用进程监视来确定何时文件是由Web服务器不正常的进程写入Web服务器的,或者何时文件是在管理时间段之外写入的。使用进程监视来确定正常进程并随后检测通常不在Web服务器上运行的异常进程。

污染共享内容


系统: Windows
权限:用户
描述:可以通过向托管文件添加恶意程序,脚本或利用代码来破坏公共网络驱动器和其他存储内容。用户一旦打开损坏的内容,便可以执行恶意部分以在远程系统上启动恶意代码。对手可以使用上述方法进行横向推进。

当用户获得对共享网络目录的访问权限时,还有另一种技术可以使用其他几种传播恶意软件的方法。其本质是修改快捷方式(快捷方式修改)目录(.lnk)使用伪装,以便标签看起来像以前隐藏的真实目录。恶意.lnk具有内置命令,该命令将执行隐藏的恶意文件,然后打开用户期望的真实目录。在经常使用的网络目录中实施此技术会导致频繁的反复感染,结果,攻击者可以广泛访问系统,甚至可以访问新的特权更高的帐户。

保护建议:通过最小化具有写权限的用户数来保护共享文件夹。使用可以在一开始就检测或阻止攻击的实用程序,例如Microsoft Mitigation Experience Toolkit(EMET)。通过使用不使用文件和目录共享的基于Web的文档管理和协作服务,减少横向推广的潜在风险。

使用诸如AppLocker或软件限制策略之类的工具,识别并阻止可用于破坏内容的潜在危险和恶意软件
建议经常扫描共享网络目录,以查找恶意文件,隐藏的.LNK文件以及其他特定于特定目录的文件类型。怀疑应由将许多文件写入或覆盖到公用网络目录中的进程以及从可移动媒体执行的进程引起。

第三方软件(第三方软件)


系统: Windows,Linux,macOS
权限:用户,管理员,系统
说明:网络上用于管理目的的第三方软件和软件部署系统(SCCM,VNC,HBSS,Altris等)可被攻击者用来远程运行连接到此类系统的所有主机上的代码。实施此技术所需的权限取决于特定的系统配置。本地凭据可能足以访问软件部署服务器;但是,可能需要管理员帐户才能启动软件部署。

保护建议:检查软件部署系统的安全级别。确保对软件管理系统的访问受到限制,控制和保护。严格使用强制性预批准策略进行远程软件部署。向数量有限的管理员提供对软件部署系统的访问权限,确保隔离软件部署系统。确保用于访问软件部署系统的凭据是唯一的,并且未在公司网络上的其他服务中使用。如果将软件部署系统配置为仅运行经过签名的二进制文件,则请验证受信任证书没有存储在软件部署系统本身中,而是位于无法远程访问的系统上。

Windows管理员共享


系统: Windows
权限:用户
说明: Windows系统具有隐藏的网络文件夹,只有管理员才能访问它们,并且具有远程复制文件和其他管理功能的能力。 Windows管理员共享的示例:C $,ADMIN $,IPC $。
反对者可以将此技术与现有管理员级别帐户结合使用,以通过服务器消息块(SMB)远程访问系统,使用RPC与系统进行交互,传输文件并使用执行技术来运行迁移的二进制文件。基于通过SMB / RPC的经过身份验证的会话的执行方法示例包括计划任务,启动服务和WMI。反对者还可以使用NTLM哈希值通过哈希传递来访问管理共享。带有有效凭据的net use命令可用于将远程系统连接到Windows Admin Shares。

保护建议:不要对不同系统上的本地管理员帐户使用相同的密码。确保密码复杂且唯一,以免被猜测或破解。禁用远程登录到内置的本地管理员帐户。不允许用户帐户成为多个系统的本地管理员组的成员。

识别并阻止潜在危险和恶意软件,这些软件可用于通过AppLocker或软件限制策略来操作SMB和管理员共享

提供集中收集和存储登录凭据。Windows事件转发使您可以收集成功/不成功使用可用于导航网络的帐户的数据。跟踪连接到管理共享的远程用户的操作。跟踪用于连接到网络共享的工具和命令(例如Net实用程序)的使用,或搜索可远程访问的系统。

Windows远程管理(WinRM)


系统: Windows
权限:用户,管理员
说明: WinRM是允许远程用户与系统进行交互的服务和协议的名称(例如,启动文件,更改注册表,更改服务。要启动,请使用winrm命令和其他程序,例如PowerShell。

安全建议:禁用WinRM服务,如有必要,通过具有单独帐户和权限的WinRM隔离基础架构请遵循WinRM的指导原则来设置身份验证方法和使用ho防火墙 限制访问WinRM并仅允许某些设备访问。

Source: https://habr.com/ru/post/zh-CN439026/


All Articles