APT15组织研究白皮书

2019-08-08 87785人围观 ,发现 2 个不明物体 网络安全

Ke3chang组织也被称为APT15,该组织的攻击行为于2012年第一次被曝光,该组织当时利用远程后门攻击全世界的高价值目标。该组织活动最早可以追溯到2010年,在火眼2013年报告中显示该组织当时针对目标为欧洲外交组织。2012-2015年记录显示该组织攻击者更新了TidePool恶意软件,后来2016-2017年RoyalCLI和RoyalDNS等工具被一同发现用于攻击英国政府。2018年,Ke3chang组织使用新版Mirage RAT以及精简版的MirageFox等工具。我们一直在跟踪与该组织相关的恶意攻击行为,并有很多有价值的发现。

我们在2015-2019年间发现了关于该组织使用的新版恶意软件家族,包括BS2005后门和RoyalDNS恶意软件。之后,我们发现名为Okrum的后门,该后门与该组织使用的恶意软件有很大关联。在2016年12月第一次发现该后门,2017年该后门被用于斯洛伐克,比利时,智利,危地马拉和巴西等目标。

本文将对此前未记录的恶意软件家族和从2015年到2019年检测到的其他Ke3chang恶意软件进行深入的技术研究。我们会从代码、运作方式、目标等方面分析Okrum后门与Ke3chang组织的关联性。

调查时间表

2015年:Ketrican

2015年,我们在欧洲国家发现了新的可疑活动。攻击背后的团体对斯洛伐克特别感兴趣,发现了很多恶意软件样本,克罗地亚、捷克共和国和其他国家也受到影响。

我们对这些攻击中使用的恶意软件分析显示,该样本与Ke3chang的BS2005后门以及2016年发现的针对印度大使馆的恶意软件有密切联系。

2016-2017:Okrum

在2016年末发现了一个新的的后门,并将其命名为Okrum。Okrum恶意软件与Ketrican 2015后门专注于斯洛伐克的相同目标。

2017年:Ketrican和RoyalDNS工具

我们发现Okrum后门被用来放置2017年全新版本的Ketrican后门,这几种恶意软件间的关系也逐渐清晰明朗。

2017年,受Okrum恶意软件(以及2015年Ketrican后门)影响的相同群体再次成为攻击者的目标。 这一次,攻击者使用了新版本的RoyalDNS恶意软件和Ketrican 2017后门。

2018年:Ketrican

在2018年,我们发现了一个新版本的Ketrican后门,其中包含一些代码改进。

2019年:Ketrican

该组织在2019年仍然活跃,在2019年3月,我们发现了一个新的Ketrican样本,该样本是从2018年的Ketrican后门发展而来的。 它攻击了与2018年后门相同的目标。

此事件时间表显示攻击者专注于相同类型的目标,但使用不同的恶意工具集来攻击它们。 下图显示了与先前记录的Ke3chang活动以及相关的ESET检测结果。

1.PNG

Okrum恶意软件

在2016年底我们发现了一个未知的后门并命名为Okrum。该后门第一次发现时被用于安装Ketrican。最新版的Ketrican已经被用于该组织BS2005恶意软件家族之中。此外,Okrum后门与该组织先前使用过的后门具有相似的接入口,这也表明了他们属于同一个家族。

Okrum技术细节

Okrum后门的功能与Ke3chang组织使用的其他后门程序相同,允许攻击者下载和上载文件,执行二进制文件或运行shell命令。 后门还可以自更新、调整配置中的休眠时间。后门本身是一个动态链接库,可以安装和加载组件。 在我们的调查过程中发现这两个组成部分会经常发生变化。 每隔几个月,作者就会改变加载器和安装程序的实现代码,以避免被检测。在本文发布时,ESET系统已检测到7个版本的加载器和2个版本的安装程序。

我们无法找到恶意软件的原始攻击媒介和删除程序,但我们确定了Okrum恶意软件中使用的几个组件:

1、可选择的0号加载器

2、1号加载器

3、安装程序

4、png后门

2.PNG

下图列举了Okrum的后门组件:

3.PNG

加载器

尽管1号加载一直在发生变化但其功能都是为了安装Okrum后门。0号加载器是可选择,它可以把1号加载器加载到内存之中。

早期版本1号加载器

早期1号加载器与后门捆绑在文件末尾。最后4字节为后门大小,后门是利用RC4算法加密,秘钥为硬编码。以下两个秘钥为分析样本时的秘钥:

0x4540DCA3FE052EBA0183D9FA36DA7F98

0xCDABDCA3FE2934B10893DFA1FA7D3698

程序加载时会去确认自身没有处在被分析或者是沙盒之中。程序设置了4个检测,如下图所示:

4.PNG

1、两次调用 GetTickCount,两次调用间隔为20s的睡眠。如果时间没有发生变化,程序就会终止。

2、两次调用 GetCursorPos,如果x-axis标志位发生变化,程序终止。

3、调用GetGlobalMemoryStatusEx,如果实际物理内存不足1.5G,程序终止。

4、只有当鼠标左键点击超过三次后payload才会执行。

如果所有的检测都通过了,加载器就会解密后门并运行。

后期版本1号加载器

后期1号加载器与早期版本有所不同,它不会与加密的后门文件绑定在一起,后门文件会隐藏在png图片中。如果图片被浏览,前端显示的为IE浏览器图片,加载器会在去定位加密后门。所有的加载器都假定图片已经存储在C:\program files或其子文件夹。

5.PNG

加载器会寻找特定结构的文件:

1、图片签名头4个字节为:0x89504E47

2、图片zTXt头部: 0x7A545874

3、图片IEND头部: 0x49454E44

4、 0×01跟在IEND头部后

加密的payload都嵌入在zTXt块中。 根据PNG格式规范,这个块中应包含压缩文本,例如许可信息等。 但是,zTXt块对于显示图像并不重要,因此PNG解析器可以在格式错误时忽略它。因此,图像即使存在损坏的zTXt部分,也可以正确呈现。

使用带有硬编码密钥的Tiny加密算法(TEA)对有效载荷进行解密并加载。 在所有加载器中硬编码具有相同的解密密钥:

0x3E6A125F2387541296A3DC560C69AD1E

已发现的五个加载器具有完全相同的功能,但实现不同。其中一个名为Ntmssvc的服务,需要服务安装程序,其他服务是独立可执行文件。 其中两个加载器强制进行异常处理来隐藏其有效负载。但是,所有加载器都可以定位,解密和加载后门。

安装程序

SHA-1: A426BCC6317F0D49F0F0B68091E8161C512E22C3

我们检测到的第一个安装程序是Ntmssvc服务安装程序。因为具有相同服务名称和PE时间戳,推测此组件与1号加载器同时使用。

组件有两种模式,由命令行参数安装或卸载。它会创建或删除一个名为Ntmssvc的服务,该服务会模仿合法的Removable存储服务,但实际上,它在系统启动时会加载Okrum。

SHA-1: F0E2C3AF0297C80C0A14E95E151FC7DC319ACFC3

该安装程序与1号加载器中的一个版本具有相同的时间戳,因此推测该两个组件需要组合使用。

该安装程序会在系统运行前执行特定文件。程序有两个模行,执行时需要三个参数:md、tn、fp。

md1:新建一个隐藏tn任务,该任务可以在用户登录时执行fp文件

md2:在启动文件夹下创建tn快捷方式,快捷方式指向fp文件

后门实现

Okrum后门是一个dll文件,有三个导出功能。

DllEntryPoint

Reflective loader (_xyz/_Rld)

Main payload (_abc/_space)

1号加载程序使用异常处理方法解密并加载后门。 后门具有有效的可执行文件DOS标头,但也可以理解为是shellcode。 这允许第1阶段组件将后门DLL加载到其地址空间,并执行JMP或CALL指令执行shellcode。 shellcode首先调用反射加载器导出功能(reflective loader exported)来重定位和解析, 然后执行后门。

文件PE头是有效的,因此可以执行很多通用的指令方法。 在原始的未加密的版本中,后门也可以直接执行任何可执行文件加载DLL。 也可以使用DLL导出的反射加载器将其直接注入另一个进程。 这些技术有可能被使用在一些旧版本的恶意软件,在研究过程中我们只发现DOS头中shellcode的执行行为。

6.PNG后门总体情况

Okrum可以通过模拟登录用户调用ImpersonateLoggedOnUser API,以获得管理员权限。它会自动收集有关受感染计算机的以下信息:

计算机名字、用户名、ip地址、dns、系统版本信息、架构、用户代理信息以及本地信息(如语言、国家等)。

通信开始时它会与C&C服务器进行通信,并协商用于进一步通信的AES密钥。如果不成功则使用硬编码密钥。 然后,它发送收集到的pc信息并在服务端进行登记注册。 最后,它启动一个循环,受感染的计算机会查询后门命令然后在本地解析它。

后门通信方式

Okrum利用http协议与服务器通信:

http head 请求协商aes秘钥

http get 请求命令或下载文件

http post 请求上传文件

如果在受感染的系统上配置了任何代理服务器,Okrum就能够识别并使用它们他们发出HTTP请求。

7.PNG

在向服务端发送数据时,数据被嵌入在头部cookie中,在服务端向客户端发送数据时,数据被嵌入在头部的Set-Cookie字段中。如上图所示。

数据通常是由一系列的参数和数值组成,比如:

tm=01/09/2018 12:30:00&hn=My-Computer&un=JohnDoe&dm=my.dns.
suffix&ip=127.0.0.1&os=Windows Server 2016&fg=finance

通信过程中传递的参数与请求类型也有关系。在从客户端向服务端发送数据时,参数用来标记受感染电脑身份和查询行为;在其他的通信联系中可以用来确定执行的命令和其他数据格式。同时发现Ke3chang行动名称会作为请求的一部分发送到服务器,以帮助攻击者跟踪操作。 在分析的Okrum样本中,我们遇到了三个系列名称:

finance

green7

rehake

通信数据经常会利用aes-cbc和base64加密,秘钥会由双方协商决定。

此外,恶意软件为了隐蔽自己与C&C服务器的通信行为和数据,攻击者会注册一些看似合法的域名。例如,用于斯洛伐克目标的样本模仿与斯洛伐克地图门户(support.slovakmaps [。] com)的域名进行通信。

后门命令

后门命令由嵌入在远程服务器的消息中的ct参数确定。计算此值的哈希并与硬编码表进行比较。在解释命令之后,Okrum会睡眠一段时间。Okrum后门仅支持基本命令,这表明它是第一阶段的后门,之后可由攻击者手动执行更复杂的命令。 下图为后台命令的完整列表。

8.PNGOkrum使用的辅助工具

由于Okrum后门在技术上并不复杂,因此大多数恶意活动必须是通过手动输入shell命令或利用其他工具和软件来执行,这是Ke3chang常用做法。并不是所有使用的工具都是恶意软件,其中一些是常见的程序,如RAR等。我们在研究中发现了用于转储密码,枚举网络会话等恶意工具。

下图列出了到Okrum恶意软件使用的程序。

9.PNG

Ke3chang组织在2015-2019年活动情况

从2015年到2019年,我们检测到来自Ke3chang的新版本Ketrican以及RoyalDNS的恶意软件。通过这些新发现的样本,把它们与之前属于Ke3chang的恶意软件系列进行比较归纳。 

Ke3chang在2015年的活动情况——Kertican后门

所有分析的Ketrican 2015后门样本都支持Ke3chang中使用的基本命令集,例如下载和上载文件,执行程序和shell命令,以及在配置时间内休眠。 每个文件都有一个硬编码,C&C服务器域名和URI。从2015年发现的Ketrican样本中提取的IoC列表可以在下表中找到。

11.PNG

工作目录

BS2005和2015 Ketrican样本中共同特征是它们会在工作目录中创建Windows命令提示符的副本,然后利用它来解析后门命令。 BS2005和Ketrican后门都使用类似的命令行模式,使用命令提示符副本执行文件或shell命令,并将其输出重定向到文件,如图所示。

12.PNG

恶意软件创建的工作目录文件存储在Windows特殊文件夹下(例如Local Settings)。 特殊文件夹位置在不同版本后门中会有所不同,但始终可以通过访问以下注册表项来检索文件夹的路径:[HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Shell Folders]

Shell Folders注册表项受Windows支持以实现向后兼容性,但不是访问这些文件夹的推荐方法。该技术在当时并不是常用的方法。

反调试反沙盒技术

样本之间共同点还有用于检测模拟环境或沙箱的启发式算法。 GetTickCount函数在循环之前和之后调用并迭代999,999,990次。 如果返回值在调用前后没有变化,则检测到模拟仿真环境或沙箱,并自行终止。根据FireEye报告,来自Ke3chang的BS2005样本中的至少一个具有完全相同的启发算法。在所有发现的Ketrican后门中也找到相同的启发式算法。

如图所示:

13.PNG网络通信

与BS2005系列一样,2015 Ketrican样本使用IWebBrowser2 COM接口控制Internet Explorer浏览器进程,使其网络通信看起来合法。 数据经过加密和编码,并使用HTTP协议发送。来自服务器的响应是一个HTTP页面,其后门命令和参数包含在隐藏的输入字段中。 不同样本的数据具有的特定格式,但模式相同,如图所示。

14.PNG

数据传输

在BS2005恶意软件样本中,在将数据发送到远程服务器之前对数据使用特定的两步转换。 首先,数据使用自定义算法加密,然后是Ubase64编码。

在其中一个样本中,使用以下加密算法:

每个字节都用0×27加上它的位置索引字节

每个字节字节与其位置索引字节进行异或

除了常量之外,其他样本中也使用相同的变换。在2015年发现的样本中,恶意软件仍然采用这种方法,Ketrican 2015后门只是改变了加密算法,其他的数据转方法换并未改变。在一些样本中,有的也使用类似的弱加密算法,有的加密算法已更改为AES。

21.PNG其他方面

我们在2015年发现的关于后门的判定在后来的Palo Alto报告中得到了证实。该报告是关于对TidePool恶意软件家族的研究,其中包括我们分析的两个样本。 

Palo Alto 的研究人员称,TidePool恶意软件家族是BS2005恶意软件的变种,这也符合我们的研究结果。但是,仅凭这一事实并不足以判定2015年检测到的恶意软件样本属于

Ke3chang,因为我们必须考虑不同APT组织之间恶意软件重用的可能性。正如FireEye报告中所述,Ke3chang使用的源代码可能在不同的开发人员或开发团队之间共享。因此,我们不能假设使用此恶意软件的任何人都隶属于Ke3chang组织。然而,我们可以确认2015年发现的样本具有相同的目标,并与Ke3chang组织的目标类型相同,都是针对外交组织。

因此可以判断,在2015年发现的Ketrican样本确实归属于Ke3chang组织。

Ke3chang在2017年的活动情况——Kertican

上一节中描述的2015年Ketrican样本和2017年的Okrum样本可以很容判定是同一组织的两个独立部门。此外,我们发现了两个恶意软件之间的直接链接,一个Okrum后门曾被用来植入2017年的Ketrican后门。该后门PE时间戳设置为2017年8月8日。分析表明Ke3chang组织后门的演变过程中具有相同的代码风格。有些时候,攻击者已经将Okrum后门换为新编译的Ketrican后门。

2017年检测到的样本与Ke3chang的BS2005后门非常相似。支持同一组网络通信的命令和方法,主要特征仍保持不变不变。在攻击者继续更新后我们发现了之前见过的相同代码部分。后门使用的工作目录文件夹已更新为新值(从Appdata / Local设置到Templates / AppData)。在将收集的数据发送到C&C服务器之前(使用与BS2005中相同的技术),使用了相同的转换,但是加密算法已更新为AES或RC4。攻击者还继续使用不同的域名来控制和识别受害者。下表列出了从2017年检测到的Ketrican样品中提取的IoC。

23.PNG

Ke3chang在2017年的活动情况——RoyalDNS

2017年,受Ketrican 2015和Okrum后门影响的目标又出现新的恶意软件:RoyalDNS,该恶意软件已被确认归属于Ke3chang组织。它主要特性是使用DNS协议与C&C服务器通信。RoyalDNS与C&C服务器通信需要检索本地配置的DNS服务器列表,然后恶意软件通过记录查询C&C域,来自DNS服务器响应中封装了后门命令。 

图中展示了DNS查询的示例:

31.PNG

Ke3chang在2018年的活动情况——Kertican

在2018年,我们发现了新的Ketrican样本,在所有已经发现的样本该样本变化最大。

加载DLL的选项已添加到命令集中。加密算法已被XOR替换(C卷的卷序列号被用作key)。2018年的Ketrican后门与BS2005家族相同的网络通信方法,通过IWebBrowser2 COM实例发出的HTTP请求,返回具有隐藏输入字段的HTML页面。不同的是,后门不是使用CoCreateInstance API函数直接创建COM对象实例,使用的是registration-free COM技术。2018年的Ketrican后门与Ke3chang组织使用的后门另一个共同点是,修改特定的注册表项和值,以削弱一些安全设置,可以帮助他们进一步拓展他们的攻击方法。

例如,可以通过设置以下内容来禁用Internet Explorer增强安全配置:

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\

ZoneMap]

“IEHarden” = 0

该功能广泛存在于该组织下的恶意软件:BS2005和Tidepool恶意软件系列以及2015年,2017年和2018年发现的Ketrican样本中更改了同一组注册表项。 

Ke3chang在2019年的活动情况——Kertican

在2019年3月,我们检测到两个新的Ketrican样本,其中一个类似于2018年的Ketrican后门,另一个样本是从该后门演变而来。 2019年版本也使用了与早期Ketrican样本相同的注册表值。与之前的Ketrican存在一个值得注意的不同点:取消了对每一条powershell指令启动一个cmd进程,只有一个匿名通道用来进行通信。

总结

Ke3chang(也就是APT15)一直以来被安全研究人员所关注,该组织主要针对外交实体等高价值受害者与他们相关的地缘政治进行攻击渗透,整个攻击行为跨越近10年且仍在继续。

在本文中,主要记录了ESET检测到的新发现的恶意软件Okrum,以及在斯洛伐克,比利时,智利,危地马拉和巴西记录的其他Ke3chang活动,并确定了这一切攻击活动归属于Ke3chang组织。Okrum与Ke3chang组织使用的恶意软件相同,在技术上并不复杂,但我们当然可以看到它背后的攻击者试图通过各种防御策略来保持其攻击行为不被发现。例如将恶意有效载荷嵌入PNG图像中,采用多种反仿真和反沙箱技巧,以及实施中代码实现的频繁更改。从Ketrican样本中可以看到从2015年到2019年的演变和代码改进。

还有待解决的问题就是恶意软件如何种植到受害者机器上,ESET将继续跟踪Ke3chang组织的攻击行为。

附录

附录内容包括该研究机构研究样本中发现的域名、秘钥以及样本哈希等,由于附录较长在这里不全部列举,如想参考查询请移步https://www.welivesecurity.com/wp-content/uploads/2019/07/ESET_Okrum_and_Ketrican.pdf

*本文作者:Kriston,转载请注明来自FreeBuf.COM

相关推荐
发表评论

已有 2 条评论

取消
Loading...

这家伙太懒,还未填写个人描述!

79 文章数 9 评论数 2 关注者

特别推荐

推荐关注

活动预告

填写个人信息

姓名
电话
邮箱
公司
行业
职位
css.php