06月03, 2019

Absolute(绝对定位)软件安全事件分析

LoJack/CompuTrace软件背景介绍

Absolute(绝对定位)软件公司是一家加拿大公司,专门研究终端安全和数据风险管理解决方案,该公司总部位于加拿大不列颠哥伦比亚省温哥华和德克萨斯州奥斯汀,在英国雷丁设有地区办事处。该公司的主要安全产品是LoJack for Laptops(最初称为CompuTrace),是一款专业的电脑盗窃保护软件,其功能包括远程锁定,删除文件以及地理位置定位找到被盗电脑的功能,类似于苹果手机的“find my iPhone”功能。

image.png

该软件的核心安全技术是Absolute(绝对定位)软件公司已获得专利的计算机驻留技术,软件被内置于设备自身的BIOS固件中无法被删除,该公司同时与联想、戴尔、苹果、微软、惠普、富士、东芝、松下、三星、华硕、宏基等各大电脑厂商成为合作伙伴,各大厂商的部分品牌电脑在出厂时在BIOS固件中内置了该软件,以提供失窃电脑的收费寻回服务。

image.png

LoJack/CompuTrace安装抽样统计

我们抽样统计了近6个月内LoJack/CompuTrace的国内品牌电脑安装情况,软件安装数量在百万台级别以内。其中知名品牌安装情况,数量第一的是联想品牌电脑,排名第二的是无法定位品牌的未知电脑,其他知名品牌依次为华硕、戴尔、宏基等品牌电脑,与目前市场上品牌占有率的宏观趋势相似,抽样统计数据表明Absolute(绝对定位)软件与各大品牌电脑商都达成了战略合作。

image.png

LoJack/CompuTrace安全事件分析

美国cert曾在2018年5月11日发布安全公告(https://www.us-cert.gov/ncas/bulletins/SB18-134), 警告2008年和2009年版本的LoJack/CompuTrace软件的三个安全漏洞,其中CVE-2009-5150和CVE-2009-5151是Absolute(绝对定位)软件在2014年修复的安全漏洞,疑似被俄罗斯APT组织(APT28又称Pawn Storm、Sofacy、Sednit、Fancy Bear)利用制作后门程序。而CVE-2009-5152漏洞只存在于部分戴尔品牌的机器中。

CVE-2009-5150

Absolute Computrace Agent V80.845和V80.866没有给磁盘的配置区块进行数字签名,允许攻击者通过修改磁盘内部的配置数据,设置客户端程序与目标search.namequery.com网站之外的网站的通信。该漏洞允许本地用户执行任意特权代码,即使在该用户失去访问权限并且重新格式化所有磁盘分区之后。

CVE-2009-5151

Absolute Computrace Agent V70.785的存根组件可以从磁盘的分区间空间执行代码,而不需要该代码的数字签名,这允许攻击者在BIOS上执行代码。该漏洞允许特权本地用户实现对BIOS的持久控制,即使在该用户更改磁盘后也有效。

CVE-2009-5152

Absolute Computrace Agent于2009年在某些戴尔Inspiron系统上发布的软件,与戴尔客户端配置实用程序(DCCU)一起存在竞争条件漏洞。该漏洞允许本地用户通过精心设计的TaskResult.xml将Computrace Agent的激活状态更改为出厂默认状态。

同期2018年5月,国外的Arbor Networks公司发现了利用Absolute Computrace Agent漏洞的木马样本,这些恶意样本修改了该软件的配置数据,将该软件的代理程序rpcnetp.exe的正常通信篡改为与恶意C&C服务器通信,改造成后门程序进行进一步的远程控制,该恶意软件被命名为LoJax。

2018年9月27日,ESET安全公司公布报告发现了另外的LoJax样本,该样本也同样修改了客户端的配置数据,并且恶意样本的C&C服务器与俄罗斯APT组织(APT28又称Pawn Storm、Sofacy、Sednit、Fancy Bear)曾使用的SedUploader木马中的C&C服务器相同。

LoJack/CompuTrace 技术细节分析

2009年Core Security Technologies安全公司曾首次曝光过LoJack/CompuTrace软件漏洞,2014年卡巴斯基安全公司进一步深入分析了LoJack/CompuTrace的软件漏洞,即Absolute(绝对定位)软件公司在2014年修复的CVE-2009-5150和CVE-2009-5151漏洞。下面我们对老版本的存在漏洞的LoJack/CompuTrace软件的技术细节进行分析,该软件的核心功能驻留在设备的BIOS固件上.在windows系统引导时替换了系统的文件,安装自己的服务连接网络,并下载完整版本的agent.实现远程管理的功能.

image.png

Computrace Agent 是windows的一个应用,分为small版本和full版本,small版本嵌入在BIOS PCI Option Rom或UEFI固件中,根据Absolute Software的专利US patent 20060272020中的描述,称其为mini CDA(Communications Driver Agent),用来检测full版本是否在工作,如果没有,则从网络下载并安装full版本.

根据专利描述,驻留模块存在于BIOS Option ROM.

image.png

BIOS Option ROM Option ROM 包含一个节,内含厂商提供的Computrace 模块并由硬件制造商刷入Flash.

image.png

阶段1: BIOS模块

阶段1(BIOS初始化完成后)用于执行Option Rom中的模块.Computrace 代码查找可用的磁盘,分析磁盘分区表,如果符合FAT/FAT32/NTFS,定位windows安装路径和autochk.exe的路径.接下来,创建autochk.exe的备份,在FAT磁盘上是autochk.exe,在NTFS磁盘上是autochk.exe:BAK(交换数据流).这个可以作为Computrace 启用的线索.

阶段2: autochk.exe

在阶段2中,修改后的autochk.exe启动,拥有通过WindowsNT Native API访问文件系统和注册表的权限.主要功能是释放rpcnetp.exe并修改注册表创建了一个名为rpcnetp的服务,并恢复原autochk.exe.

技术细节分析

1. 检测autochk.exe的备份文件

首先检测标志位,如果标志位为0 则开始检测autochk.exe备份文件,\SystemRoot\System32\AUTOCHK.EXE:BAK或者\SystemRoot\System32\AUTOCHK.BAK是否存在,如果存在则设置标志位并返回;如果标志位为1则会修改权限和文件属性然后执行删除;

image.png

2. 释放autochk.exe文件

从内存中读取数据依次写入到

\SystemRoot\System32\rpcnetp.exe 和

\SystemRoot\SysWOW64\rpcnetp.exe中;

image.png

3. 创建系统服务rpcnetp

image.png

4. 加载ntdll

image.png

5. 恢复autochk.exe

image.png

阶段3: rpcnetp.exe

这个模块为small Computrace Agent即mini CDA (Communication Driver Agent).使用C编写,大小约为17K.

此模块作为windows服务启动,但是其行为并不仅限于服务.这个文件拷贝自身到另一个dll文件,修改PE头部标记,由exe改为dll,并载入到内存.之后rpcnetp.exe以暂停状态创建了一个名为svchost.exe的子进程,注入了刚刚创建的rpcnetp.dll到svchost.exe中.注入成功后恢复进程执行.svchost.exe以当前登录用户的身份创建iexplore.exe进程,同样是暂停状态创建,并注入了同样的rpcnetp.dll.

当iexplore.exe恢复执行时,连接到Absolute的服务器,获取命令并下载full版本Agent.

技术细节分析

  1. dll自加载:

    如果样本以dll的方式载入,能够获取导出函数"rpcnetp",则设置标志位并返回。否则,样本以exe的方式启动时,则执行402810。

image.png

  1. 修改为dll文件

image.png

  1. 创建svchost进程并挂起,将刚刚生成的rpcnetp.dll文件注入到这个程序中,注入成功后重新运行svchost这个进程。

创建进程代码如下:

image.png

远程dll注入代码如下:

image.png

  1. svhost进程运行后会使用本地登录的用户权限创建一个iexplore的子进程并再次使用rpcnetp.dll进行注入

image.png

同Absolute的服务器209.53.113.223:80(search.namequery.com)连接

image.png

5.下载操作:

svchost和iexplore通过互相通信:

image.png image.png

  1. iexplore获取内容,svchost读取内容并最终获取以下文件:rpcnetp.dll,wceprv.dll,identprv.dll,NTAgent.exe,Ugrd.exe,rpcnet.dll

iexplore的发包操作:

image.png)image.png

svchost写文件等操作:

image.png

阶段4: rpcnet.exe

当rpcnet服务启动成功后,其立即尝试连接远程的服务器.流程和rpcnetp服务相似.创建svchost.exe子进程,svchost继续以当前登录用户的身份创建iexplore.exe.和rpcnetp类似,和Absolute的服务器通信时创建了很多线程。这个服务从系统的多个位置查找配置数据:注册表,磁盘保留空间以及自身,其连接的服务器和端口和rpcnetp服务相同,配置文件设定了连接的服务器,攻击者正是通过篡改配置数据将Absolute的服务器设为自己的恶意C&C服务器,修改劫持这个通信过程,将该功能变成后门进行进一步的攻击。

总结

Absolute(绝对定位)软件预置在多款知名品牌的计算机BIOS固件中,定位是一款防盗追踪的安全软件,其核心技术使用了底层的计算机驻留技术几乎无法被删除,通过我们的技术分析可以发现,该软件的技术实现过程过于粗暴,容易让不知情的用户怀疑被感染了木马病毒。但该服务属于该公司和各大品牌的电脑厂商合作共同推销的收费服务,该软件预置是作为安全功能存在,有官方正规的客服渠道可以关闭,我们暂未发现其有未经用户授权的恶意行径。

用户在开启该安全功能后,会向Absolute公司发送地理位置信息,通过我们的技术分析可以发现Absolute公司对开启该功能的计算机是拥有完全控制能力的,通过我们的抽样数据显示Absolute公司拥有控制我国百万数量级别的电脑的能力。

从过往Absolute公司暴露出来的安全问题来看,Absolute公司自身的安全情况是令人担忧的,虽然目前该公司已经修复了公开的漏洞,但不排除仍存在其他未被暴露的安全问题,同时俄罗斯APT组织(APT28又称Pawn Storm、Sofacy、Sednit、Fancy Bear)的活动也从侧面显示,该公司已经成为国家级APT组织的重点攻击目标。

本文链接:https://blogs.360.cn/post/Absolute_software_analysis.html

-- EOF --

Comments