T1001 |
数据混淆 |
攻击中特别是在C2信道是比较隐匿(不一定是加密),使得内容比较难以被发现或者分析,来隐藏控制命令。具体的方法比较多,例如向协议流量添加垃圾数据、使用隐写术或模拟合法协议。 |
T1001.003 |
数据混淆:协议模拟 |
攻击者可以冒充合法协议或Web服务流量,来掩盖命令和控制活动并阻碍分析工作。通过模拟合法协议或Web服务,攻击者可以使他们的命令和控制流量与合法网络流量融合在一起。攻击者可能冒充伪造的SSL / TLS握手,以使后续流量看起来像是SSL / TLS加密的,有可能干扰某些安全工具,或者使流量看起来像与受信任实体有关。 |
T1001.002 |
数据混淆:隐写术 |
隐写技术可用于隐藏系统之间传输的数字消息中的数据,此隐藏信息可用于命令和控制受感染的系统。在某些情况下,使用隐写术嵌入的文件(例如图像或文档文件)的传递可用于命令和控制。 |
T1001.001 |
数据混淆:垃圾数据 |
通过将随机或无意义的数据添加到用于命令和控制的协议中,攻击者可以防止采用琐碎的方法来解码、解密或以其它方式分析流量。比如:将垃圾数据添加后用效数据之前或者后面,或者在有效字符之间写入垃圾字符。 |
T1008 |
备用信道 |
如果主信道受到威胁或无法访问,攻击者可能会使用备用信道,以维持可靠的C2通道并具绕过网络中的数据传输阈值限制。 |
T1071 |
使用应用层协议通信 |
攻击者与远程系统通信的命令,多数情况下是这些命令的执行结果,将会嵌入到客户端与服务器之间的正常协议流量中,使之难以被发现。攻击者可以利用许多不同的应用层协议,例如web浏览、文件传输、邮件或DNS协议,对于内网中不同节点之间的通信常用SMB、SSH、RDP。 |
T1071.004 |
使用应用层协议通信:域名解析协议通信 |
域名解析协议在计算机网络中提供管理功能,因此在网络中非常常见,即使在完成网络身份认证之前,也可能允许DNS通信,DNS数据包包含许多字段和头信息,可以在其中隐藏数据,通常称之为DNS隧道。目前绝大多数的防火墙和网络都会开放DNS服务,DNS数据包不会被拦截,因此可以基于DNS协议建立隐蔽信道,从而顺利穿过防火墙,在客户端和服务器之间传输数据。 |
T1071.003 |
使用应用层协议通信:邮件协议通信 |
邮件协议(例如SMTP/SMTPS/POP3/IMAP)在网络中很常见,这些协议产生的数据包具有许多的字段和头信息,攻击者可以在其中隐藏数据,数据也可以直接隐藏在邮件本身中,攻击者可能滥用这些协议与远控系统进行通信,同时还会模仿正常的预期流量。 |
T1071.002 |
使用应用层协议通信:文件传输协议通信 |
传输文件的协议(例如FTP/FTPS/TFTP)在环境中非常常见,这些协议产生的数据包具有许多字段和头信息,攻击者可以在其中隐藏数据,数据也可以隐藏在传输的文件中,攻击者可能会滥用这些协议与远控系统进行通信,同时还会模仿正常的预期流量。 |
T1071.001 |
使用应用层协议通信:Web协议通信 |
Web流量协议的HTTP/HTTPS在环境中非常常见,HTTP/HTTPS数据包的许多字段和头信息,可以在其中隐藏数据。攻击者可能会滥用这些协议在受害者网络内与远程控制系统进行通信,同时还会模仿正常的预期流量。 |
T1090 |
代理 |
攻击者可以使用连接代理来引导系统之间的网络通信,通过充连接代理来当命令和控制服务器的网络通信中介,以避免直接连接到受害者的基础设施。许多工具可以通过代理或端口重定向来开启流量重定向,包括HTRAN、ZXProxy和ZXPortMap。攻击者通过使用这些类型的代理来管理命令和控制通信,减少同时出站网络连接的数量,达到部分连接断开时提供网络可用性,或者在受害者之间穿越现有的可信通信路径的目的,从而避免被怀疑。攻击者可能会将多个代理链接起来,以进一步掩盖恶意流量的来源。攻击者还可以利用内容分发网络(CDN)中的路由方案来代理命令和控制流量。 |
T1090.002 |
代理:外部代理 |
攻击者可以使用外部代理充当到命令和控制服务器进行网络通信的中介,以避免直接连接到受害者的基础网络。许多工具可以通过代理或端口重定向来启用流量重定向,包括HTRAN、ZXProxy和ZXPortMap。攻击者通过使用这些类型的代理来管理命令和控制通信,达到连接断开时提供弹性,或者在受害者之间穿越现有的可信通信路径的目的,从而避免被怀疑。外部连接代理通常使用端口重定向器来掩盖C2流量的目的地。受害环境之外的受损系统以及已购买的基础架构(如基于云的资源或虚拟专用服务器)都可以用于这些目的。选择代理时,可以基于对从失陷系统到代理的连接进行调查的可能性较低的代理。受害者系统将直接与Internet上的外部代理进行通信,然后该代理会将通信转发到C2服务器。 |
T1090.003 |
代理:多级代理 |
为了掩盖恶意流量的来源,攻击者可以将多个代理链接在一起。通常,防御者能够识别出在进入其网络之前经过的最后一个代理流量。防御者可能无法在最后一跳代理之前识别任何先前的代理流量。一般要求防御者通过多个代理来跟踪恶意流量以识别其来源,此技术使识别恶意流量的原始来源变得更加困难。这种行为的一种特殊变体是使用洋葱路由网络,例如公开可用的TOR网络。针对网络基础结构,尤其是路由器,攻击者可能会利用多个受到攻击的设备在企业的广域网(WAN)中创建多级代理链。通过对系统镜像进行补丁修改利用,攻击者可以向受影响的网络设备添加自定义代码,在这些节点之间实现洋葱路由。这种自定义的洋葱路由通过网络传输加密的C2流量,从而使攻击者可以与洋葱路由网络内的任何设备进行通信。这种方法依赖于网络边界桥接方法,以便于攻击者跨越互联网受保护的网络边界,进入目标的广域网。像ICMP这样的协议可以用作传输协议。 |
T1090.004 |
代理:域前置 |
攻击者可以利用内容交付网络(cdn)中的路由方案和托管多个域名的其他服务,来混淆HTTPS流量或通过HTTPS隧道传输流量到预期目的地。域前置包括在TLS报头的SNI字段和HTTP报头的Host字段中使用不同的域名,如果两个域都来自同一个CDN,则CDN可以在解开TLS标头后路由到HTTP标头中指定的地址。该技术的一种变体,“无域”前置,利用了留为空白的SNI字段,即使CDN尝试验证SNI和HTTP主机字段是否匹配(如果忽略了空白SNI字段),也可以完成前置动作。例如,如果domain-x和domain-y是同一个CDN的客户,可以将domain-x放在TLS头中,将domain-y放在HTTP头中,流量看起来是要去域x,但是CDN可能会把它路由到域y。 |
T1090.001 |
代理:内部代理 |
攻击者可以使用内部代理在失陷的环境中指挥和控制两个或多个系统之间的流量。许多工具可以通过代理或端口重定向来启用流量重定向,包括HTRAN、ZXProxy和ZXPortMap。攻击者通过使用这些类型的代理来管理命令和控制通信,减少同时出站网络连接的数量,达到连接断开时提供弹性,或者在受害者之间穿越现有的可信通信路径的目的,从而避免被怀疑。内部代理连接可以使用公共的点对点(p2p)网络协议,如SMB,以更好地融入环境。通过使用一个被破坏的内部系统作为代理,攻击者可以隐藏C2流量的真正目的地,同时减少对大量外部系统连接的需要。 |
T1092 |
通过可移动媒体通信 |
攻击者在可能断开连接的网络上,通过可移动媒体在在受害者主机间执行命令,从而将命令从一个系统传输到另一个系统上。通过可移动媒体在两个系统间进行通信,这两个系统均已被攻陷,且可能与互联网连接的系统首先被攻陷,其次通过可移动媒体进行了横向移动。命令和文件将从断开连接的系统上被传送到攻击者可以直接访问的Internet连接的系统。 |
T1095 |
非应用层协议 |
攻击者可能使用非应用层协议在主机和C2服务器之间或网络内部感染的主机之间通信,使用的协议多多种可能,包括网络层协议(如ICMP)、传输层协议(如UDP)、会话层协议(如Socket Secure)以及重定向/隧道协议(如Serial over LAN)。主机之间的ICMP协议通信就是一个例子,因为ICMP协议是Internet协议套件的一部分,其需要由所有IP兼容的主机来实现,但是它却不像其它Internet协议(如TCP 、 UDP协议)那样受到监控,且ICMP协议可能被攻击者用来作为隐蔽通信。 |
T1102 |
Web服务 |
攻击者可以使用现有的合法外部 Web 服务将命令转发到受攻击系统。这些命令还可以包括指向命令与控制 (C2) 基础结构的指针。攻击者可能会在带有嵌入式(通常是混淆/编码的)域名或 IP 地址的 Web 服务上发布内容,即所谓的死点解析器。一旦感染,受害者就会主动接触这些解析器,并被它们重新引导。作为 C2 机制的流行网站和社交媒体可能会提供大量的掩护,因为在达成攻击之前,网络中的主机可能已经在与它们进行通信。使用常见的服务,比如 Google 或 Twitter 提供的服务,可以让攻击者更容易地隐藏在预期的干扰中。Web 服务提供者通常使用 SSL/TLS 加密,这为攻击者提供了额外的保护。使用 Web 服务还可以通过恶意软件二进制分析保护后端 C2 基础设施不被发现,同时还可以支持操作弹性(因为这个基础设施可能会动态更改)。 |
T1102.003 |
Web服务:单向通信 |
攻击者可以使用现有的合法外部Web服务作为将命令发送到受感染系统的方法,而无需通过Web服务通道接收返回输出。受损的系统可能会利用流行的网站和社交媒体来托管命令和控制(C2)指令。那些受感染的系统可能会选择将这些命令的输出通过另一个C2通道发送回,包括发送到另一个不同的Web服务。或者,在攻击者想要向系统发送指令且不希望响应的情况下,受到威胁的系统可能根本不返回任何输出。 |
T1102.002 |
Web服务:双向通信 |
攻击者可以使用现有的合法外部Web服务作为通过Web服务通道向受感染系统发送命令或从受感染系统接收输出的手段。受损的系统可能会利用流行的网站和社交媒体来托管命令和控制(C2)指令。然后,那些受感染的系统可以通过该Web服务通道将这些命令的输出发送回去。返回流量可能会以多种方式发生,具体取决于所使用的Web服务。例如,返回流量可以采取以下形式:被破坏的系统在论坛上发布评论,向开发项目发出请求请求,更新Web服务上托管的文档或通过发送Tweet。 |
T1102.001 |
Web服务:Dead Drop Resolver |
攻击者可能会在具有嵌入式(通常是混淆/编码)域或IP地址的Web服务上发布内容,称为Dead Drop Resolver。一旦感染,受害者将与这些解决者联系并重定向。流行的网站和充当C2机制的社交媒体可能会提供大量掩盖,这是因为网络内的主机在入侵之前已经在与它们进行通信的可能性。使用常见服务(例如Google或Twitter提供的服务)可使攻击者更容易隐藏在预期的噪音中。Web服务提供商通常使用SSL / TLS加密,从而为攻击者提供了额外的保护。Dead Drop Resolver的使用还可以保护后端C2基础结构免受恶意软件二进制分析的发现,同时还可以实现操作弹性(因为该基础结构可以动态更改)。 |
T1104 |
多级信道 |
攻击者可能会在不同条件或某些功能下使用命令和控制而创建多级信道,使用多级信道可能会混淆命令和控制通道,从而使检测更加困难。远程访问工具将回调第一级命令和控制服务器以获取指令,第一级具有自动收集主机基本信息、更新工具和上传其它文件的功能。此时可以上传第二个远程访问工具(RAT),已将主机重定向到第二季的命令和控制服务器,第二季具有更加全面的功能,并允许攻击者通过反弹shell和其它的RAT功能和系统进行交互。不同级信道可能会在没有重叠基础结构的情况下单独托管,如果发现并阻止了原始的第一级通信路径,则加载程辉可能具有备用的第一级通信回调或备用通道。 |
T1105 |
入口工具转移 |
攻击者可能会将工具或其它文件从外部系统通过受感染环境的入口转移到受感染的环境中。攻击者通过命令和控制通道可以从外部攻击者控制系统中复制文件,将工具移入受害者网络中,或者通过其它工具(例如FTP)的协议进行文件的复制,也可以使用scp、rsync和 sftp等工具在Mac或Linux上复制文件。 |
T1132 |
数据编码 |
攻击者通过对数据进行编码,以使命令和控制流量的内容更加难以检测。可以使用标准数据编码系统对命令和控制(C2)信息进行编码,使用的数据编码可能符合现有的协议规范,包括使用ASCII、Unicode、Base64、MIME或者其它二进制文本和字符编码,一些数据编码系统也会对数据进行压缩,例如gzip。 |
T1132.001 |
数据编码:标准编码 |
攻击者可能使用标准数据编码系统对数据进行编码,以使命令和控制流量的内容更加难以检测。可以使用符合现有协议规范的标准数据编码系统对命令和控制(C2)信息进行编码,常见的数据编码方案有ASCII、Unicode、十六进制、Base64、MIME或者其它二进制文本和字符编码,一些数据编码系统也会对数据进行压缩,例如gzip。 |
T1132.002 |
数据编码:非标准编码 |
攻击者可能使用非标准数据编码系统对数据进行编码,以使命令和控制流量的内容更加难以检测。可以使用与现有协议规范不同的非标准数据编码系统对命令和控制(C2)信息进行编码,非标准编码数据方案可以基于标准数据编码方案或与之相关,如针对HTTP请求的消息正文使用修改后的Base64编码方案进行编码。 |
T1205 |
端口试探 |
攻击者可能使用流量信令来隐藏开放端口或其他用于持久性或C&C的恶意功能。流量信令涉及必须使用能够触发系统特殊响应的魔法值(magic value)或序列值,例如打开封闭端口或执行恶意任务。在打开端口之前,发送一系列具有某些特征的数据包,序列包发送完成后,可以通过基于主机的防火墙或定制软件来打开端口。攻击者可以与已经打开的端口进行通信,但是侦听该端口的服务仅在传递了适当的魔法值后才响应命令或触发其他恶意功能。 |
T1205.002 |
端口试探:套接字过滤器 |
攻击者可能会将过滤器附加到网络套接字以监控,然后激活用于持久化或命令与控制的后门。具有提升权限的攻击者可以使用诸如libpcap 库之类的功能来打开套接字并安装过滤器,以允许或禁止某些类型的数据通过套接字。过滤器可能适用于通过指定网络接口(如果未指定,则为每个接口)传递的所有流量。当网络接口接收到与过滤器条件匹配的数据包时,可以在主机上触发其他操作,例如激活反向shell。为了建立连接,攻击者向目标主机发送与已安装过滤器条件匹配的特制数据包。攻击者已使用这些套接字过滤器触发植入程序的安装、进行ping回连以及调用命令shell。与这些套接字过滤器的通信也可以与协议隧道结合使用。过滤器可以安装在任何安装了libpcap 的类Unix平台上,或使用Winpcap 的Windows主机上。攻击者可能使用带有pcap_setfilter 的libpcap 或带有SO_ATTACH_FILTER 选项的标准库函数setsockopt 。由于套接字连接在收到数据包之前不活动,因此由于主机上缺乏活动、低CPU开销以及对原始套接字使用的可见性有限,此行为可能难以检测。 |
T1205.001 |
端口试探:端口敲门 |
攻击者可以使用端口敲门技术来隐藏用于持久化或C&C的开放端口。为了启用端口,攻击者将访问一系列预先设定好的顺序端口,在完成顺序端口访问后,基于主机的防火墙将会打开对应端口。可以通过不同的方法来分析信号包以触发通信。最初由Cd00r实现的是使用libpcap库来嗅探相关数据包;另一种方法是利用原始套接字,该套接字使恶意软件能够使用已打开供其他程序使用的端口。 |
T1219 |
远程访问软件 |
攻击者可以使用合法的桌面支持和远程访问软件(例如Team Viewer,Go2Assist,LogMein,AmmyyAdmin等)与网络内的目标系统建立交互式命令和控制通道。这些服务通常被用于合法的技术支持软件,并且可能被目标环境中的应用程序控制所允许。攻击者经常使用VNC,Ammyy和Teamviewer等远程访问工具。可以建立和使用远程访问工具,作为冗余访问的替代通信通道,或作为与目标系统建立交互式远程桌面会话的一种方式。远程访问软件也可能被用作恶意软件的一个组成部分,以建立反向连接,反向连接到服务或攻击者控制的系统。像TeamViewer这样的管理工具已经被一些组织用来针对俄罗斯政府和其他感兴趣的国家机构。 |
T1568 |
动态解析 |
攻击者建立动态C2连接通道,以逃避常规检测和补救措施。恶意软件通过与攻击者的C2网络服务之间共享通用的算法就可以实现。这些计算算法可用于动态调整参数,例如恶意软件用于命令和控制的域名,IP地址或端口号。攻击者可能在备用通信通道的情况下来使用动态解决方案。当失去与主要C2服务器的联系时,恶意软件可能会采用动态解决方案来重建命令和控制. |
T1568.002 |
动态解析:域名生成算法 |
攻击者可以利用域生成算法(DGA)来动态标识命令和控制流量的目标域,而不是依赖于静态IP地址或域的列表。这样做的好处是,防御者很难阻止,跟踪或接管命令和控制通道,因为恶意软件用于操作的域可能会检查成千上万个。DGA通过生成每个字母来构造域名时,可以采取看似随机或“乱码”字符串的形式(例如:istgmxdejdnxuyla.ru)。或者,某些DGA通过将单词(而不是字母)串联在一起来使用整个单词作为单位(例如:cityjulydish.net)。许多DGA基于时间,在每个时间段(每小时,每天,每月等)生成一个不同的域。其他人也结合了种子值,使防御者很难预测未来的领域。攻击者可能出于后备渠道的目的而使用DGA。当失去与主要命令和控制服务器的联系时,恶意软件可能会使用DGA作为重新建立C2通道的手段。 |
T1568.001 |
动态解析:Fast Flux DNS |
攻击者可以使用Fast Flux DNS将C2通道隐藏在一系列快速变化的IP地址中。该技术使用专用的域名,并为其分配了多个IP地址,这些域名会以高频交换,并结合使用轮询IP地址和DNS资源记录的短生存时间(TTL)。最简单的”Single Flux”方法涉及注册和注销地址,作为单个DNS名称的DNS A(地址)记录列表的一部分。这些注册的平均寿命为5分钟,从而导致IP地址解析的不断变化。相反,”double-flux”方法注册和注销地址作为DNS区域的DNS名称服务器记录列表的一部分,从而为连接提供了额外的弹性。使用”double-flux”,其他主机可以充当C2主机的代理,从而进一步隔离了C2通道的真实来源。 |
T1568.003 |
动态解析:域名计算 |
攻击者可以通过根据DNS返回的地址进行计算,来确定C2通道使用的IP和端口,而不是依赖预先定义的端口或者真实IP地址,这种IP和端口的计算可以绕过对C2通道上的过滤。 |
T1571 |
非标准端口 |
攻击者通常使用不相关的协议与端口进行通信。举个例子:HTTPS协议通过端口8080或端口587,而不是传统的443端口。攻击者可能会将协议使用的标准端口进行修改,以绕过玩过数据的过滤或混淆网络数据的分析。 |
T1572 |
协议隧道 |
攻击者可以在单独的协议中通过隧道与受害者系统进行网络通信,避免检测/网络过滤和/或访问其他不可达的系统。协议隧道包括显式地将一个协议封装到另一个协议中。这种行为可能通过混入现有的流量或提供一层加密(类似于VPN)来隐藏恶意流量。隧道技术还可以路由无法到达预期目的地的网络数据包,例如SMB、RDP、其他被网络设备过滤或不通过Internet路由的流量。有多种方法可以将一个协议封装到另一个协议中。例如:攻击者可以执行SSH隧道(也称为SSH端口转发),通过加密的SSH隧道转发任意数据。攻击者可能在动态解析过程中滥用协议隧道,称为HTTPS上的DNS (DoH),用于解析C2基础设施的查询可以封装在加密的HTTPS包中。攻击者还可以结合代理或协议模拟来利用协议隧道,以进一步隐藏C2通信和基础结构。 |
T1573 |
加密信道 |
攻击者通过使用加密算法对C2流量进处理,而不是依赖基本通信协议处理,可以有效的进行信道隐藏。这样处理虽然有加密算法,但是如果能获取到相应的样本或者配置文件信息来分析或者获取密钥,也可能有效的发现这样的信道。 |
T1573.001 |
加密信道:对称加密 |
攻击者通过已知的对称加密算法来隐藏C2流量而不是依赖通信协议提供的内置保护机制。对称加密算法使用相同的密钥进行明文加密和密文解密。常见的对称加密算法包括AES,DES,3DES,Blowfish和RC4。 |
T1573.002 |
加密信道:非对称加密 |
攻击者通过采用已知的加密算法来隐藏C2流量而不是依赖通信协议提供的内置保护机制。非对称密码学,也称为公共密钥密码学,加密双方使用一个密钥对:一个可以自由分发的公共密钥,一个私有的密钥。由于密钥的生成方式,发送方使用接收方的公钥加密数据,而接收方使用其私钥解密数据。这样可以确保只有指定的收件人才能读取被加密的数据。常见的公共密钥加密算法包括RSA和ElGamal。因为通信效率的原因,很多协议(包括SSL/TLS)会使用非对称密码来建立或传输密钥;在连接建立后,会使用对称加密。但是因此,这些协议被归类为非对称密。 |
T1659 |
内容注入 |
攻击者可以通过在线网络流量向系统注入恶意内容,从而获得访问权限并与受害者持续通信。攻击者不会将受害者引诱到托管在受感染网站上的恶意负载(即“驱动目标”和“驱动入侵”),而是首先通过受感染的数据传输通道访问受害者,然后操纵流量和/或注入自己的内容。这些受感染的在线网络通道还可用于向已受感染的系统传递其他负载(即“入口工具传输”)和其他数据。攻击者可能通过多种方式向受害者系统注入内容,包括:中间型攻击,即攻击者介于合法的在线客户端-服务器通信之间(注意:这与中间人攻击类似,但有所不同,中间人攻击仅描述企业环境中的 AiTM 活动)从侧面看,恶意内容被注入到客户端,伪装成对合法在线服务器请求的响应内容注入通常是由于上游通信渠道受到损害而造成的,例如在互联网服务提供商(ISP)层面发生的“合法拦截”情况 |
T1665 |
隐藏基础设施 |
攻击者可能会操纵网络流量,以隐藏和逃避对其 C2 基础设施的检测。这可以通过多种方式实现,包括识别和过滤来自防御工具的流量、屏蔽恶意域以混淆自动扫描工具和安全研究人员的真实目的地、以及以其他方式隐藏恶意工件以延迟发现并延长攻击者基础设施的效力,否则这些基础设施可能会被识别、阻止或彻底摧毁。C2 网络可能包括使用代理或 VPN 来伪装 IP 地址,这可以让攻击者混入正常网络流量并绕过条件访问策略或反滥用保护。例如,攻击者可能使用虚拟私有云来欺骗他们的 IP 地址,使其更接近受害者的 IP 地址范围。这也可能绕过依赖源 IP 地址地理位置的安全措施。攻击者还可能尝试过滤网络流量,以多种方式逃避防御工具的检测,包括阻止/重定向常见的事件响应程序或安全设备用户代理。根据 IP 和地理围栏过滤流量也可以避免自动沙盒或研究人员的活动(即虚拟化/沙盒逃避)。隐藏 C2 基础设施还可以通过资源开发活动(例如“获取基础设施”和“攻陷基础设施”)来支持。例如,使用广受信任的托管服务或域名(例如知名的 URL 缩短提供商或 C2 网络的营销服务)可能使攻击者能够呈现良性内容,一旦满足特定条件,便会将受害者重定向到恶意网页或基础设施。 |