欢迎访问本站!

首页科技正文

usdt无需实名买入卖出(www.caibao.it):【高级持续性威胁跟踪】红队视角看Sunburst后门中的TTPs

admin2021-01-1274安全技术二进制安全

针对SolarWinds供应链攻击简介

最近FireEye披露的UNC2452黑客组织入侵SolarWinds的供应链攻击让平安从业职员印象深刻。一是影响规模大,SolarWinds官方称受影响的客户数目可能有18000家。二是攻击者留下的后门程序-Sunburst,十分隐藏和具有迷惑性,剖析以为攻击者对SolarWinds Orion产物明白水平很深。

有证据解释,早在2019年10月,UNC2452黑客组织就一直在研究通过添加空类来插入代码的能力。因此将恶意代码插入原始SolarWinds.Orion.Core.BusinessLayer.dll的时间可能很早,甚至可能是在软件构建编译之前。这就导致SolarWinds官方无意间对包罗4000行恶意代码的DLL举行了数字签名,这样容易让恶意代码提升权限,而且很难被人发现。熏染的Origin软件第一个版本是2019.4.5200.9083,在此几个月的时间内,用户通过下载受到熏染的产物版本被熏染。现在原始dll文件中没有发现存在动态拓展、也不存在横向移动等后渗透阶段的相关能力支持。

Sunburst后门总体流程

总体流程图

<cernter>(Sunburst的供应链攻击各阶段-图源:微软)</cernter>
Sunburst后门总体流程可以简朴地归纳综合为以下几个阶段:
(1)SolarWinds.BusinessLayerHost.exe加载SolarWinds.Orion.Core.BusinessLayer.dll,并执行其中的恶意代码。
(2)代码通过9层环境检查,来判断当前环境上下文是否平安,是否应该继续执行。
(3)若是检查通过,实验使用DGA算法天生的域名发送DNS上线通知,并检查DNS剖析效果是否知足自身运行要求。
(4)DNS上线通知乐成,则会实验使用两种User-Agent和3种署理模式,与C2服务器建立起HTTP控制通道。
(5)Sunburst后门自己能处置的控制指令并不多,攻击者可以下载自定义的Payload,例如Cobalt Strike beacon,即TEARDROP举行进一步操作。
Sunburst后门的代码都在SolarWinds.Orion.Core.BusinessLayer.dll这个文件中,这是个C,编写的.NET assembly,可以直接反编译查看源代码,剖析其运行逻辑。主要涉及的三项手艺为代码执行(Execution)、环境检测(Discovery)和C2通讯(Command and Control)。

TTPs提取与剖析

代码执行/Execution

红队视角

无论是红队后渗透照样真实APT攻击,第一步要在受害者的机械上运行起来控制程序(agent/implant/artifact)。Windows系统上的代码执行的方式有许多,也可以从多种角度举行分类和总结。这里作者将之分为以下三类:
(1)BYOB: Bring Your Own Binary,就是把后门、工具、武器编译成exe文件,上传到目的主机上并运行。这也是最直接的执行方式。瑕玷是需要不停的编译和上传、要处置杀软和EDR的静态检测等等。
(2)LotL: Living off the Land,可以明白为就地取材,行使Windows系统和应用程序来加载执行恶意代码,典型的案例就是行使powershell的攻击。这种方式行使白名单程序来加载,会有一定规避检查的优点,但会发生显著的父子历程关系和历程参数,容易被猎捕。
(3)BYOL: Bring Your Own Land,这也是FireEye提出的一种方式,在使用前两种方式建立了基本的代码执行能力后,在内存中加载并运行Windows的PE文件、.NET assembly文件。优点是跳过了静态文件查杀,不会显著发生历程间挪用关系和历程挪用参数,瑕玷是需要自己开发内存加载执行的代码,许多通例的下令需要自己重新实现。

Surburst现实攻击技巧

本次供应链攻击的Sunburst后门存在于SolarWinds.Orion.Core.BusinessLayer.dll文件中,它的运行需要SolarWinds.BusinessLayerHost.exe这个正当的历程来加载,可以明白为是一种变形的Living off the Land执行方式。类似于DLL挟制,但相比于通例的DLL挟制,这类修改原始DLL的供应链攻击后门显得加倍隐藏。往往有以下特点:
(1)修改原有的DLL,不会发生多余的DLL文件落地
(2)程序加载DLL运行,不会发生子历程和历程参数
(3)供应商的信托历程不在通例历程检测名单,已知Windows lolbins检测规则无效
本次的DLL后门,可以看到作者很注重隐藏(OpSec),代码中透露着检测匹敌的头脑,其隐藏技巧表现为:
(1)DLL正当的数字签名,很大水平上规避了静态文件查杀:

(2)代码通过建立新线程,执行SolarWinds.Orion.Core.BusinessLayer.dll.OrionImprovementBusinessLayer库目录下的Initialize函数更先恶意动作。DLL入口函数挪用栈较深,通过6层的挪用才更先执行代码,动态跟踪需要破费更多精神:

(3)代码使用自定义hash算法,常量字符串都举行hash处置,制止敏感字符串在传输流量和内陆文件扫描时发现。现实使用的地方有9处,下图是历程名检测部门:

环境检测/Discovery

红队视角

红队手艺传统手艺往往高度关注历程列表检测、驱动列表检测的技巧:

,

欧博亚洲官网开户网址

欢迎进入欧博亚洲官网开户网址(Allbet Game):www.aLLbetgame.us,欧博官网是欧博集团的官方网站。欧博官网开放Allbet注册、Allbe *** 、Allbet电脑客户端、Allbet手机版下载等业务。

,

历程检测

对于杀软和平安软件的检测,我们通常使用taskllist /v和tasklist /svc来检查历程和服务,可以以为这是一种手工判断+LotL的方式。这里推荐两款自动化的检测剧本和工具,人人可以凭据自己的需求举行革新,连系内存加载实现BYOL的方式来检查平安软件。
(1)ProcessColor.cna,一款Cobalt Strike的插件剧本,可以辅助我们符号出常见的平安软件、监控软件、剖析软件。

(2)Seatbelt的InterestingProcesses下令,C,开发的多功效信息搜集工具,可单独使用,可连系其他程序实现内存加载。

驱动检测

既然历程和服务都检测了,那么检测这些驱动有什么意义吗?

在通例的情形下,检查历程和服务名称就可以领会当前系统的平安软件运行情形,然则一些高级系统管理员会修改历程和服务的名称,我们就没办法判断了。Sunburst后门在环境检测中还检查了系统驱动,这些驱动大部门都是杀软和EDR产物使用的。这一点是值得红队职员借鉴的,下面以sy *** on为例举行说明。

图中左侧为通例的sy *** on安装,我们可以在历程和服务中找到sy *** on。右侧只是简朴地把sy *** on举行重命名,安装之后我们在历程和服务的名字中已经找不到sy *** on了,只能找到修改后的名称。这个时刻查看驱动就很必要了,由于sy *** on默认安装的驱动路径和名字并没有改变,如下图:

纵然管理员在安装sy *** on的时刻将默认的驱动名称也改了,然则每个驱动都有一个唯一的altitude,要修改这个成本就很高了。sy *** on的altitude是385201,如下图,可以对比上图,这个是稳定的:

Sunburst实现的机制

SolarWinds.Orion.Core.BusinessLayer.dll中的恶意代码对于运行环境的检查十分严酷,一共有9层检测机制,只有当所有检测条件都通过时,其才会执行上线操作。
| 序号 | 检测机制 |
| ------------ | ------------ |
|1|通过哈希判断当前加载恶意DLL的历程名字是solarwinds.businesslayerhost.exe|
|2|恶意DLL的最后写入时间比当前时间至少提前12到14天,说明其会隐蔽半个月左右才会执行|
|3|检查硬编码的命名管道583da945-62af-10e8-4902-a8f205c72b2e,制止多历程重复执行|
|4|检查恶意复用的设置选项ReportWatcherRetry,ReportStatus项不能为3,即Truncate退出状态|
|5|检查当前装备所在域,域名中不能包罗哈希值校验的黑名单patternHashes中的一些字符串;域名不能匹配到正则表达式“(?i)([^a-z]|^)(test)([^a-z]|$)”,该表达式主要用来检查当前域名是不是测试用的域名;"(?i)(solarwinds)",预测该表达式主要用来检测是否处于sloarwinds公司办公环境|
|6|检查第一个非回环启用网卡,不在IP黑名单中|
|7|检测历程Hash黑名单(含137个历程),确保当前环境中没有平安相关软件和服务程序,如:Windbg、 Autoruns、 Wireshark,并实验关闭服务名单中的服务|
|8|检查当前环境中是否存在13个平安软件的驱动程序,如:groundling32.sys|
|9|主机剖析“api.solarwinds.com”为指令的IP地址|

C2通讯/Command and Control

代码运行起来,检测环境上下文是平安的,最后的一步就是和C2服务器举行通讯了。Sunburst后门通过自定义的DGA算法天生C2域名,通过自定义DNS通道举行上线通知,通过自定义HTTP通道举行指令下发与数据回传。

红队视角

对于红队来说,最通例的出网协议是HTTP[S]和DNS协议,然则大多数情形是手动判断目的的 *** 环境厥后选择C2通讯的方式。虽然能够修改和自定义C2通讯协议,无疑是规避流量检测的好方式,然则相对的成本会比较高,需要同时兼顾客户端和服务端,还需要保证通讯质量。浅易的做法是行使后渗透框架自身的设置来修改C2流量特征,好比Cobalt Strike、Empire、Covenant等工具都支持Malleable C2 profile的设置。
Sunburst后门这种使用DNS和HTTP协议连系的方式,让作者想起了Sliver C2这款工具的DNS Canary功效。虽然DNS Canary不是用来举行C2通讯的,然则提供了一种红队监测蓝队是否剖析了自己implant的思绪。
Sliver C2天生的implant默认会使用符号混淆来制止杀软查杀,不会泛起敏感字符串。然则当使用--canary/-c参数时,会将指定的DNS域名以常量字符串的形式嵌入implant中。并天生一个举世无双的DNS域名,若是蓝队职员剖析我们的implant,发现这个域名,只要逆行了DNS剖析,我们的C2服务器就会收到DNS查询请求,这说明我们的行动已经被发现。
如下图,红队职员在建立implant的时刻,设置DNS canary为mews.cs.local,在天生的implant中,嵌入了mqrrzkj.news.cs.local.和kvn3g0-.news.cs.local两个域名。

当蓝队剖析样本,实验剖析域名时,C2服务器就会收到告警。

告警信息如下:

Sunburst后门在该阶段的亮点

(1)很具有迷惑性的DnsRecords代码,用通例的变量名表达其他现实意义。
(2)对DGA天生的域名剖析的IP地址,举行白名单、黑名单、守候名单的判断,确定 *** 剖析环境是否平安才会继续执行。
(3)HTTP协议的一种User-Agent会接纳SolarWinds产物的User-Agent,加倍靠近真实可信的流量。
(4)出网会检测署理设置,通过无署理、系统署理和SolarWinds自己设置的署理三种方式是实验出网,毗邻C2服务器。
(5)高度迷惑性的C2服务器响应。
(6)高度迷惑性的DGA算法。
上述动作的具体表现为:

(1)具有高度迷惑性的DNS上线请求:恶意代码发送DNS请求并将返回的CNAME信息将保留至DnsRecords工具。

DNS查询若是请求失败,则设置随机7-9小时的休眠时间(代码如下图),举行休眠后再举行下一次实验。

如请求乐成,则首先判断是否存在CNAME信息,如不存在,则处置IP的最后两个字节,修改DnsRecords工具对应的字段:
length字段,此字段用于保留控制阶段应用的署理类型;
_type字段,此字段决议控制阶段使用的url以及对返回数据的解码方式;
A字段,此字段决议DNS请求查询阶段每次DNS请求之间的延时。
(2)对DGA天生的域名剖析的IP地址,举行白名单、黑名单、守候名单的判断:检测到IP处于任一黑名单,将导致状态更改为Truncate,从而导致后续操作所有终止,并作符号今后不再实验。IP黑名单列表:

IP地址 子网掩码 AddressFamilyEx类型
10.0.0.0 255.0.0.0 Atm内网IP黑名单
172.16.0.0 255.240.0.0 Atm内网IP黑名单
192.168.0.0 255.255.0.0 Atm内网IP黑名单
224.0.0.0 240.0.0.0 Atm内网IP黑名单
fc00:: fe00:: Atm内网IP黑名单
fec0:: ffc0:: Atm内网IP黑名单
ff00:: ff00:: Atm内网IP黑名单
41.84.159.0 255.255.255.0 Ipx外网黑名单
74.114.24.0 255.255.248.0 Ipx外网黑名单
154.118.140.0 255.255.255.0 Ipx外网黑名单
217.163.7.0 255.255.255.0 Ipx外网黑名单
20.140.0.0 255.254.0.0 ImpLink守候名单
96.31.172.0 255.255.255.0 ImpLink守候名单
131.228.12.0 255.255.252.0 ImpLink守候名单
144.86.226.0 255.255.255.0 ImpLink守候名单
8.18.144.0 255.255.254.0 NetBios白名单
18.130.0.0 255.255.0.0 NetBios白名单
71.152.53.0 255.255.255.0 NetBios白名单
99.79.0.0 255.255.0.0 NetBios白名单
87.238.80.0 255.255.248.0 NetBios白名单
199.201.117.0 255.255.255.0 NetBios白名单
184.72.0.0 255.254.0.0 NetBios白名单

上述表格中Atm代表内网IP黑名单,ImpLink代表外网IP黑名单,Ipx代表守候名单,NetBios代表白名单。若是返回的IP处于任一黑名单,则恶意代码退出而且设置符号永不再上线。
在举行历程、服务、驱动状态检查通事后,然后还会剖析官方域名“api.solarwinds.com”判断是否为指定IP地址,如磨练通过则进入后续的熏染逻辑,整个逻辑可以用下图示意:

(3)高度迷惑性的User-Agent:当恶意代码从C2域名的CNAME DNS响应中乐成检索到域,将发生一个新的执行线程,挪用HttpHelper.Initialize方式来与C2服务器通讯。

HttpHelper的组织函数会处置由DNS请求查询阶段决议的请求类型与署理类型,两种User-Agent,在正常情形下,第一种会用于Windows检查证书吊销列表。

第二种用于SolarWinds自己的通讯历程,将伪装为SolarWinds正常请求链接或静态资源。

(4)高度迷惑性的署理设置:出网署理主要分为三类,无署理、系统署理和红色箭头标明的SolarWinds自己设置的署理,从这点也可以看出黑客组织对于SolarWins的领会简直十分深入。

最后组成了一个 *** ON文本,在其中添加了前面形貌的userID,sessionID和一组其他不相关的数据字段。然后它将此 *** ON文档发送到C2服务器。
(5)高度迷惑性的C2服务器响应:若是C2通讯乐成,C2服务器将回复编码压缩后的数据,该数据中包罗后门要执行的下令。C2服务器可能还会回复有关要讲述的其他C2地址的信息:

登录并阅读全文

网友评论