首页 微博热点正文

迪奥香水,美国中央情报局网络武器库剖析与发表,饮料

导言

2017年3月7日,维基解密初次在其网站对外曝光了美国中央情报局(CIA)相关材料,而且代号为Vault7[参阅链接: 5],而且从当月直至9月7日每周都会对外宣布其间一个项目的相关材料内容[4]。在这批走漏材猜中,首要触及其相关网络兵器库和举动项目的代号和对应文档介绍,鲜有详细的触及implant(植入物)的技能完成和运用细节。

2017年4月,国外安全厂商赛门铁克迪奥香水,美国中央情报局网络兵器库剖析与宣布,饮料和卡巴斯基别离发布了对相关网络兵器库的研讨陈述,其别离命名为Longhorn[1]和The Lamberts[2]。在相关的研讨陈述中给出了触及多种网络兵器的命名和分类,以及其归属的相关性判别依据等,但触及实践技能剖析的内容仍然很少。

奇安信要挟情报中心红雨滴团队对前史曝光的CIA网络兵器及相关材料进行研讨,并发现了多种网络兵器文件,而且依据剖析的成果与现有揭露材料内容进行了相关和断定。而且咱们还发现这些网络兵器曾用于进犯我国的方针人员和组织,其相关进犯活动首要发生在2012年到2017年(与Vault7材料揭露时刻相吻合),而且在其相关材料被曝光后直至2018年底,仍然保持着部分进犯活动,方针或许触及国内的航空职业。

本陈述是结合对详细网络兵器样本的技能剖析,并与揭露情报中的相关材料和代号相对应起来。

贺卫方处理成果

网络兵器 Athena(雅典娜)项目

简介

Athena(雅典娜)项目是维基解密于2017年5月19日宣布的,其用于在Windows体系(从XP到Windows 10)上供给长途信标(beacon)和程序加载的木马程序,从其功用介绍也能够推断出其更或许用于获取到进犯安身时,向方针主机植入的进犯模块,并用于加载和履行下阶段载荷。Athena是由CIA与美国本乡的Siege Technologies公司合作开发的(后者于2016年被Nehemiah Security收买)。

咱们找到了和Athena相关的样本文件,而且发现其便是卡巴斯基陈述中提及的Black Lambert。

Loader模块

这儿对样本进行剖析,该样本也在卡巴陈述中的Black Lambert中所提及,该样本曾呈现在运用Windows 字体0day缝隙CVE-2014-4148的进犯事情中。能够看到其导出函数并不是正常的字母姓名,而是一个数字编号。咱们也发现这一特征在多迪奥香水,美国中央情报局网络兵器库剖析与宣布,饮料种进犯样本中呈现,这也契合Vault7相关走漏材猜中,其关于相关进犯代码的开发的约好战略。

样本运转之后首要会检测一些windows中的指定进程是否存在(能够看到这些都是一些比较罕见的windows相关进程),假如存在则获取对应的processid,不然获取当时进程的processid,用于之后的注入。

其从样本指定偏移的方位读取payload,这个字段的偏移经过遍历节表,找到正常节代码终究的部分,该部分是一个去掉头的payload,获取到对应的方位后,读取其间的内容并修正对应的pe头,而且加载履行。

Payload模块

Loader模块开释的pe文件如下所示,从该后门的函数量能够看出这是一个功用杂乱的进犯模块,其进口函数为winlib_1。

其完成了非常丰富的操控指令,其间也包含一些特别功用,如:

支撑GUI程序的后台点击;

支撑作为地道转发东西;

运用同享命名管道施行横向移动和模块履行。

字符串解密算法

该后门对其间运用的字符串都进行了加密,每一个加密的字符串实践上是以下的格局保存的,即前四个字节保存了加密字符中block的个数,经过xor key保存,每个block 4个字节,经过do,while循环中的算法解密。

操控指令

操控指令相关相同是加密寄存,下面临解密后的部分重要指令进行阐明:

指令功用cmd_at 该指令用于计划任务相关的设置。 cmd_idlewatch 该指令首要经过GetLastInputInfo监控机器设备的活动状况 cmd_wincontrol 经过postMessage向指定gui发送音讯,结合SendInput鼠标左键的操作,再合作一开端设成矫置的躲藏桌面,以完成对用户机器上恣意GUI运用的操控。 cmd_catInstall 该指令首要经过DCOM loader设置IPC$,ADMIN$同享的办法以完成在局域网的传达。

其间cmd_catInstall经过同享的办法传达下发后续的载荷,代码下发之后删去该同享,所以这儿其实需求进犯者获取到相关设备的拜访凭据,不然无法设置对应的同享。

相关和归属

从下图能够看到Payload模块完成的指令简直涵盖了维基解密走漏的Athena项目文档中所提及的一切相关操控指令。这也是咱们将Black Lambert和Athena项目相相关的原因。

下阶段植入物

下阶段植入物是由Payload模块经过IPC$同享办法下发和履行的,而且在剖析进程中,咱们的确找到了相关的佐证依据。

下阶段植入物为一个dll模块,其落地文件名或许以随机字符串文件名或伪装成网络协议相关,如Winhttp32,winDNS,winftp32,winrdp64等。其发动首要经过两种办法:一是经过长途IPC管道运用regsvr3 2注册装置,二是初次在方针机器装置后,后续以服务形状履行和耐久性保持。结合其发动办法特色,估测该模块首要用于内网横向移动阶段,并保持耐久性。

这儿咱们以模块名为winhttp32.dll为例剖析,其首要经过服务的办法发动:

将本身注册为NativeService的服务。

其经过命名管道的办法,和本身复制的子进程进行通讯。

其完成了包含能够注入代码到进程,获取体系版别信息以及履行代码的三种功用。

相关和归属

在剖析进程中,咱们发现下阶段植入物用于运转不止一种载荷类型,其间常见的为分发运转Fluxwire Node模块,以及别的一种不知道的履行模块。

Fluxwire Node

简介

Fluxwire是CIA为了完成mesh networking而创立的项目,在走漏的文档中包含了一份关于Fluxwire的Lin水饴是什么ux版别操控端的介绍和运用手册:

经过手册内容,能够看到整个fluxwire是支撑多个渠道,覆盖了window,linux,mac os等,且支撑多个指令集的渠道。

从文档中能够看到fluxwire一直到2015年11月都还在更新,惋惜的是整个fluxwire的文档首要在阐明相关的进犯端运用,对用于沦陷机器上植入的木马的规划并未详细介绍,仅仅阐明其植入朱英禄的模块称为Node姜文被传心梗逝世。

Node模块

如下所示能够看到其依赖于两个参数,这两个参数为指令行中的argc,argv。Node模块发动时的确会传入一个文件途径参数,并一般伪装成数据文件,结合Node模块的功用剖析,咱们估测该数据文件才是详细的功用核迪奥香水,美国中央情报局网络兵器库剖析与宣布,饮料心完成。

进入fun_Entry,首要判别参数是否为2,即是否传入了途径参数,之后读取参数途径文件中的内容,并查找指定偏移的方位,依据该偏移进行后续的解密及倒入表的修正。

寻觅偏移的算法如下,找到0x4286A1F5,且这今后0x2c为0xF3D781AF的地址。

之后调用后续的模块,因为传入的文件无法获取,因而不知道进犯的后续。

在剖析中,咱们发现Node模块一般伪装成Netmeet.exe,而Netmeet是微软在Win95到WinXP内置的VoIP程序,Vista今后被移除。这或许便是在后续的沦陷机器上咱们没有找到希斯莱杰脸是真伤对应伪装成netmeet载荷的原因之一。

相关和归属

在剖析的样本中包含了一个PDB途径未被移除。

多宝余

c:\users\bot\fluxwire-cmake\delta\mswin-x86\build\base\cmake\ddk_node\objfre_wxp_x86\i386\node.pdb

c:\users\bot\fluxwire-cmake\delta\mswin-x86\build\base\cmake\ddk_node\objfre_wxp_x86\i386\node.pdb

其间的pdb途径包含了fluxwire和node的关键词。咱们直接google相关关键词,能够找到走漏的fluxwire相关文档时刻是在2015年11月,而咱们看到的包含了pdb的文件却是在2015年3月进行的进犯,因而存在嫁祸的或许性较小。

结合文档中对Node发动办法的介绍:

从文档中咱们能够得知其Node程序在Windows下会以cmd.exe或许CreateProcess两种办法发动。在剖析进程中咱们的确找到了两种发动办法的依据,然后一种发动为则是经过winhttp32模块发动后经过命名管道履行的。

另一种横向移动模块

在剖析中,咱们找到了另一个直接经过winhttp32模块发动的载荷,但代码完成和fluxware node不同。

其主函数很简略,便是一个简略的loader。

首要经过动态获取函数地址的办法,获取到socket相关的函数,之后经过xor0x7F的办法解密的对应的cc。经过解密咱们发现cc仅仅一个内网地址,因而根本能够确认,该模块是用于进犯者现已操控了内网中的一台主机,并将其转化为了对应的cc节点。

下载cc下发的模块,经过处理后设置内存页特点,并发动。

咱们在研讨Fluxwire运用手册时,其的确是支撑在内网下做更多模块下发,而且有的还支撑命名管道的通讯办法。因为缺少必要的依据链,咱们暂时无法猜想该模块和Node的更多相关性。

Gray Lambert

咱们找到了几个样本和卡巴陈述中的Gray Lambert相似,因为暂未和CIA已知项目联络起来,所以这儿连续卡巴的命名。

Loader模块

poolstr.dll是一个服务发动的dll,其能够由winhttp32模块发动。

其首要会读取资源,并解密。原始资源和解密后的字符串如下。

经过拜访注册表的SYSTEM\CurrentControlSet\Services,这儿应该是运用的lanmanserver,并写入Parameters下的ServiceDll。

接下来动态获取文件相关API,分配内存,并创立线程

从上述来看该dll应该是首要保持耐久化的。

另一个Loader模块

msapi32.dll相同是一个服务dll。其有两个资源文件:

在线程中首要解密两个资源,1024资源是解密开释文件的途径:

然后从1023资源解密t博美文娱lb文件,并写入方针途径,终究将其运转。

咱们在一个主迪奥香水,美国中央情报局网络兵器库剖析与宣布,饮料机上看到poolstr.dll和msapi32.dll简直同军门密爱之娇妻难驯时存在,咱们估测poolstr是用来耐久化运转msapi32.dll的。

Payload模块

mwapi32是一个网络流量监控和过滤模块,是由msapi32.dll从资源开释加载。

其首要测验经过驱动获取过滤的流量。该dll会从下图的注册表项获取Deion值,其间存储的是驱动注册的文件名,然后完成和驱动的通讯。

若不存在对应驱动,那么其选用Windows的ETW机制来完成网络流量的过滤。其会发动ndiscap服务。

接着经过etw机制对网络日志进行监控。

其注册的监控session名为“K432ISD”加上一个UUID字符串。

White Lambert

在剖析进程中,咱们发现了多个样本与卡巴宣布的White Lambert相似,其包含一个用户态dll和NDIS过滤驱动。

用户态模块

该样本为一个dll,其导出函数如下所示,其首要功用在DllMain中,该样本终究加载一个驱动。能够看到部分导知名相同以数字序号的办法存在。

DllMain中敞开新线程以履行首要的功用。

样本中的首要字符串经过加密,加密算法如下,前四字节中保存了xor 后的长度,之后按4字节一个block的形式进行解密。

之后从中解密出两个驱动,并别离加载,其间驱动的加密办法和字符串共同,并经过RtlDecompressBufferat解紧缩,相关驱动的信息保存到一段名为var_Driverinfo的内存中,其间榜首个加载的驱动应该是一个测验驱动,第二个驱动才是真实的西檬之家歹意代码。

var_Driverinfo格局如下所示

之后设置对应的服务注册表,并经过函数NtLoadDriver将对应的驱动加载运转起来。

能够看到榜首个驱动为speedfan.sys,第二个驱动为UNC.sys。

能够看到speedfan实践上是一款体系监控相关的软件。

Speedfan.sys进口如下,简略创立了一下设备及对应的设备链接,对应的MajorFuncton中的dispatch函数也仅仅针对体系层的调用回来一些参数,因而这个当地猜想其效果应该是作为榜首个驱动先加载,以保证其能正确加载起来,再加载之后的歹意驱动。

歹意驱动如下所示,加载之后首要相同是经过和之前共同的算法在合作RtlDecompressBufferat解压出终究的驱动,并寻址到进口并调用。

驱动模块

这个驱动好像并不能经过osr driverloader的办法进行加载,因而估测其应该有自己完成的加载器。

这个驱动本身是一个加载器,解密出的内容是一个pe文件,其相同是个驱动。

后续解密的驱动是一个经过ndis流量过滤的rookit,经过过滤指定的cc流量以完成详细的功用,函数首要经过fun_Searchndissys保证体系中存在ndis.sys驱动,之后在函数fun_NdisRegisterProtocol中经过ndis注册了一个自有的协议,经过这个的回调来过滤对应网卡中的流量数据。

如下所示,fun_NdisRegisterProtocol中实践调用的是NdisRegisterProtocol,该函数用于注册一个自有的协议,其间的第三个参数中包含了对应的协议回调函数,这儿奇怪的是这些回调函数好像都没有完成,其间包含终究重要的ReceiveHandler(表明网卡收到数据时,会把对应的流量传入到该回调函数中),这儿需求留意的是,进犯者注册的自有协议名为“KAPERSKY”与卡巴斯基称号kaspersky仅一字之差。这个函数终究将NdisRegisterProtocol注册成功之后的ndis句柄给回来了。

前面大名鼎鼎自有协议在完成的时分并没有设置回调函数,可是事实上并非如此,经过回来的ndis句柄直接在内存中查找对应的TCPIP字段,然后将其间的内存地址替换成详细的函数,这儿猜想,应该是经过ndis句柄的办法查找回调函数在内存中的方位,并手动替换(因为驱动本身是在内核中,因而是能够经过一个句柄查找到详细的回调目标中函数指针的方位的)。

经过流量过滤出进犯这个特别流量,解析之后经过va_Dispitchtable调用指定的处理函数,如下所示能够看到THIS_IS_OUR_EOF,这句话的意思便是“这是咱们的流量”

整个样本支撑的功用如下所示:

指令 意义 Copy 复制文件 Move 移动文件 Rename 修正文件名 Info 获取体系信息 Exit 设置退出符号 Close 同上 Quit 同上 Uninstall 卸载该驱动 Ndisls 罗列自有协议信息 Dir 列目录 Ls 同上 Pwd 获取当时目录 Cd 切换目录 touch 创立文件 del 删去文件 rm 同上 Rmdir 删去目录 Mkdir 创立目录 Cat 检查文件 Type 同上 view 同上 Ps 罗列进程 lsmod 加载驱动 Kill 封闭进程 Fexec 文件履行 bexec 脚本履行 Close 文件句柄封闭 of 翻开文件 cf 封闭文件句柄 rf 读文件 wf 写文件 Backdoor.Trojan.LH1

咱们结合Twitter上一条相关推文进行扩展。

依据该推文的头绪进行拓宽,咱们发现其间一个样本被检出为LH1,即为赛门铁克陈述中大名鼎鼎的一哈尔贾类后门。

其注册为BiosSrv服务运转。

主体逻辑经过创立线程履行,而且随机休眠一段时刻。

其首要从资源傍边提取C2和PFX证书信息,其间101为PFX证书,102为域名。

PFX证书导出key为空,经过“opensslpkcs12 -in 1.pfx -out 1.key”指令导出其间的证书和私钥信息。

然后获取主机信息,包含Mac地址,核算机名,以及当时用户。

创立注册表SOFTWARE\\BiosInnovations,生成用户UUID,该UUID会作为标识并用于后续HTTPS通讯头部的X-MV-Host字段。

该模块与长途服务器域名进行HTTPS通讯,并接纳如下指令:

操控指令功用描绘相关网络行为初始行为,获取指令 GET /agent/checkin get-scanner获取扫描模块 GET /agent/get-scanner run-scanner运转扫描模块,并回传扫描成果 POST /agent/put-scan 回传扫描成果 exfil-file紧缩并回传文件 POST /agent/put-file 上传文件 destroy-agent毁掉 Green Lambert

Green Lambert为可履行文件,而且与LP(Listening Post)通讯。其也是仅有一个现在发现一起存在Windows版别和Mac版别的项目。

Windows版别

该样本为一个exe,经过剖析之后发现这个样本的首要功用用于和远端的LP进行衔接设置,一起具有浏览器相关凭据盗取及模块加载的功用。

代码的进口如下所示,首要经过函数fun_Init进行初始化,之后创立一个服务运转之后的主流程,服务名为smcsrv。

该萧泽样本中fun_init的操作中做了许多有意思的操作。

首要在fun_getallstr中一次解密出很多之后运用的字符串。

之后在fun_Getconf中解密出对应的装备文件,其间能够看到远端的LP装备。

在fun_InitfunBlock中按功用函数地址+功用字符的格局将对应的功用函数保存到一山东琴书刘世福专辑块内存中,如下所示能够看到其首要功用是设置对应的LP及简略的模块装载功用,其完成的指令集比Black Lambert少一些。

和LP通讯,初次衔接首要经过.login.php及getconf.php做登陆及装备文件更新的操作迪奥香水,美国中央情报局网络兵器库剖析与宣布,饮料。

经过getfile.php下载后续进犯代码。

经过upload2.php上传相关数据。

一起该样本经过拜访signons.sqlite文件获取firefox相关的凭据,需求留意的是firefox从2017年之后就将相关的文件由signons.sqlite变成logins.json。

经过pstorec.dll的PStoreCreateInstance函数来提取IE凭据信息。

运用guid “abe2869f-9b47-4cd9-a358-c22904dba7f7”解密保存的IE暗码。

如下所示能够看到该样本中生成的函数结构体和BlackLambert也是彻底共同的。

前期版别

咱们还发现一个dll版别,其间的装备文件没有加密,猜想是前期的版别。

提取一切Windows版别的GreenLambert如下所示,榜首列为装备文件中提取的样本id,其间赤色的版别在卡巴的文章中呈现过,而其他的版别则是之前不知道的,这儿猜想其每一个样本在进犯的举动中设定了特定的代号。

Mac OSX版别

Green Lambert存在一个Mac OSX版别。

其导出表中能够看出存在许多初始化履行的办法,其会在main函数前履行。其首要用于初始化一些功用函数指针和参数。没胸罩

例如这儿将对应的函数指针添加到一个链表中,保存在大局的指针中。

能够看到这儿有个版别号信息

这儿对20个InitFunc的接口功用进行总结:

函数名 功用 InitFunc_0 获取版别信息 InitFunc_1蔡妍不带罩的相片 经过/etc/init.d和/etc/rc.d写入ConfigInitdFile保持耐久化 InitFunc_2 经过写入多种shell的装备文件保持耐久化 InitFunc_3 经过写入XSession相关装备文件保持耐久化 InitFunc_4 从署理URL中解析网络署理 InitFunc_5 URL相关解析 InitFunc_6 常量赋值 InitFunc_7 生成UUID InitFunc_8 从体系环境变量获取署理装备 InitFunc_9 HTTP通讯函数初始化 InitFunc_10 HTTP通讯接口函数 InitFunc_11 HTTP署理函数初始化 InitFunc_12 本地环回接口处理 InitFunc_13 TCP通讯函数初始化 InitFunc_14 密钥链拜访,完成HTTP协议的登录拜访 InitFunc_15 API获取体系署理装备 InitFunc_16 运用LoginItem保持耐久化 InitFunc_17 运用StartupItems保持耐久化 InitFunc_18 运用LaunchAgent保持耐久化 InitFunc_19 获取home途径下装备文件获取署理装备 InitFunc_20 SSL通讯函数初始化

main函数中会解析传入的发动参数:

字符串解密算法

样本中一切字符串均被加密:

其间榜首个字符一般作家夏七年为0,第二个字符为待解密字符串长度,第三和第四字符核算成xor key,从第五个字符起为加密字符串。

其间榜首个字符一般为0,第二个字符为待解密字符串长度,第三和第四字符核算成xor key,从第五个字符起为加密字符串。

相关和归属

Green Lambert的Windows和Mac OS版别运用了简直彻底相同的字符串解密函数版别。

而Windows版别中解密的装备脚本的id字段和卡巴斯基文章大名鼎鼎的是共同的,因而确认这一系列的样本为Green Lambert。

其他

在剖析中,咱们还发现一些与CIA网络兵器相关的样本文件,但暂时未发现其与上述网络兵器之前的相互联络。

Stolen Goods

简介

Stolen Goods是CIA用来完成耐久性的一个项目,其用于耐久化Grasshopper装置器和Shellterm的shellcode注入程序。其触及的一些文件如下,咱们找到了其间一个迪奥香水,美国中央情报局网络兵器库剖析与宣布,饮料内存加载模块的样本。

内存加载模块

从Stolen Goods文档中发现有个样本射中。从文档上得知其应该是内存加载器。其首要动态获取底层文件读写API:

然后物理读写文件

读取文件后,核算其sha256值

将生成的sha256格局化为以下字符串的驱动途径,然后和其通讯。

然后从本身文件句柄中查找843和304号资源,并解密。但在这个dll中并未看到对应的资源文件。

终究将其加载到内存中。

操控根底设施

从维基解密宣布文档咱们得知CIA用于操控根底设迪奥香水,美国中央情报局网络兵器库剖析与宣布,饮料施布置的穷者嗜利项目名为HIVE,其由EDB部分所开发。下图是咱们依据走漏的HIVE材料对其内部阐明规划图进行了部分补白。

HIVE分为3个部分,implant,LP和CC。

HIVE分为赖诗滢3个部分,implant,LP和CC。

其间Blot为躲藏的服务器。Honeycomb是植入物的举动办理网关。

其通讯逻辑为:

1.挑选一个看似正常的域名(coverdomain)和商用VPS服务,其上装置组件。VPS服务器衔接Blot;

2.正常用户拜访时,因为敞开了可选验证符号(其运用了一个特别的HTTPS服务选项“Optional Client Authentication”),则不验证并定向到CoverServer;

3.植入物拜访时,会拜访Honeycomb。

1.挑选一个看似正常的域名(coverdomain)和商用VPS服务,其上装置组件。VPS服务器衔接Blot;

2.正常用户拜访时,因为敞开了可选验证符号(其运用了一个特别的HTTPS服务选项“Optional Client Authentication”),则不验证并定向到CoverServer;

3.植入物拜访时,会拜访Honeycomb。

在实践的剖析中,咱们在LH1和Green Lambert中的确发现了implant中存在和LP通讯的依据,而且在LH1中还运用了证书pinning来完成和长途的HTTPS通讯。

咱们对LH1中触及的域名进行前史注册状况查询,能够发现该域名在2014年7月被刊出,估测是否和相关活动被曝光有关:

进犯链

咱们结合上述剖析依照进犯链制作了相关网络兵器的运用进程和联络,并对其TTP进行横向比照。

Execution Credential Access Lateral Movement Persistence Exfiltrate/Monitor Command and Control Evasion Athena (Black Lambert) Y Y Y Y Fluxwire Node Y Y Y Gray Lambert Y Y Y Y White Lambert Y Y Y LH1 Y Y Y Y Green Lambert Y Y Y Y Y Y Stolen Goods Y Y

总结

奇安信要挟情报中心红雨滴团队对CIA网络兵器库中相关Implant进行了复盘剖析,并根据揭露陈述和内部要挟情报数据对其进行了分类和进犯链的复原测验。尽管部分环节仍旧存在依据缺失,但咱们根本能够结合详细样本和揭露走漏材料对CIA网络进犯活动进行愈加深化的知道,并找到其留下的痕迹和形式。

如有更多技能细节能够联络奇安信要挟情报中心红雨滴团队。

参阅链接

*本文作者:奇安信要挟情报中心,转载请注明来自FreeBuf.COM

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。