标题 | 简介 | 类型 | 公开时间 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
详情 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
[SAFE-ID: JIWO-2024-1540] 作者: ecawen 发表于: [2018-05-13]
本文共 [680] 位读者顶过
绿盟威胁情报中心(NTI)检测到多起Zebrocy攻击事件,是APT攻击组织Sednit利用Zebrocy样本对韩国、瑞士国家的相关目标发起过窃密活动,该样本的主要以大使馆、外交部及外交官类为目标,影响较广,绿盟科技专家对其攻击流程和原理进行分析并制定防护方案,请用户及时关注并注意防护。 [出自:jiwo.org]
Zebrocy样本是一组APT工具,包含一系列downloader样本及一系列backdoor样本,这组样本是著名APT攻击者队伍Sednit组织(也称APT28)正在部署并维护的后门组件家族,在近两年中,这一家族被大规模采用来攻击各国大使馆、外交部及外交官等目标。 卡巴斯基于2017年首次在APT趋势报告中提到该组件家族,并将其命名为Zebrocy。 该组件家族包括使用AutoIt和Delphi编写的下载器和使用Delphi编写的后门程序,通过邮件附件进行传播,具备能抵抗沙箱行为分析的高度的隐蔽性并能对受害者电脑进行部分控制,攻击者利用这一组件作为侦查阶段使用的工具,将会根据该工具反馈的结果及信息来选择性的部署更为强大的Xagent或者Xtunnel后门。
Zebrocy样本的攻击流程
Zebrocy样本的执行流程
Zebrocy样本影响范围涉及到18个国家该样本的主要目标是对大使馆、外交部及外交官类目标进行窃密活动。因此它主要影响Windows系统,可以在受感染的计算机上维持后门,接收并执行远程控制指令,为后续进一步的入侵活动打下基础。
绿盟威胁情报中心(NTI)情报显示,在过去的两年中,Sednit组织正利用Zebrocy样本对以下国家的相关目标发起过窃密活动: 阿塞拜疆 波斯尼亚和黑塞哥维那 埃及 格鲁吉亚 伊朗 哈萨克斯坦 韩国 吉尔吉斯斯坦 俄罗斯 沙特阿拉伯 塞尔维亚 瑞士 塔吉克斯坦 土耳其 土库曼斯坦 乌克兰 乌拉圭 津巴布韦 Zebrocy样本的技术分析绿盟科技TAC产品检测分析
(由于其特殊的反沙箱机制,所有版本的后门程序组件经由TAC动态分析皆未能检测到威胁。) Zebrocy样本包括下载器和后门程序两个组件这组样本主要分为两种组件,即下载器和后门程序。 其中,下载器组件中使用URL编码来提交感染者的本机系统详细信息(通过调用SYSTEMINFO以及TASKLIST命令获得),若攻击者认为这是一个有价值的目标,则攻击者可以通过向该目标回复经过十六进制编码的PE文件内容来使受感染者下载下一个组件,本例中,受感染者下载的组件依然是下载器,其执行后会下载及部署后门程序。 后门程序能够和攻击者的C&C服务器进行通信,接收并执行包括屏幕截图、文件传输、命令执行在内的各种远程控制指令,方便攻击者对被感染主机实施进一步的控制活动。此外,后门程序使用基于判断系统当前时间戳与运行时刻进行对比实现的超长延迟机制可阻止许多沙箱的动态分析,此外该部分组件中尽量少添加壳/花指令/有特殊含义的字符串,将敏感字符串使用十六进制编码后存储在样本中,使特征码未被解析前,对该组件静态的分析也难以发现可疑之处。 Zebrocy样本使用HTTP_POST网络协议下载器的网络协议如下所示:
样本使用HTTP_POST方式与服务器进行通信,所有服务器需要知道的上线包内容全部写在包中,flagBegin标识在该样本中表现为字符串”pol=”,代表服务器接收数据的头部。 time是以符合如下正则表达式的格式书写的,代表当前的时间:
driveList代表受感染者的驱动列表,以URL编码方式发送。 runningPath代表样本运行时的路径,可用于区分一些沙箱环境,同样采用URL编码。 systemInfo为SYSTEMINFO及TASKLIST这两条windows命令的回显数据,也是采用URL编码的。 后门程序的网络协议如下所示:
Login_package同样是使用HTTP_POST方式进行数据传输,各个部分解析如下: flagBegin:符合如下正则表达式特征,标志上线包的开始。
tempFilename中记载了临时文件的目录以及指令所在tmp文件的准确路径,可以防止伪造,以及窥探沙箱/养马场的用户名信息。 hexEncoded_content中保存有以十六进制编码过后的加密数据,服务器端通过解析这些数据来接收客户端的上线请求或指令回显,其编码前的前8字节为后方数据解密后的长度,由于单个长度为0xFFFFFFFFFF(约为1TB)以上的包在用户环境中是不可能出现的,因此这一序列中必定包含”000000″的字符串序列。 由于加密数据是采用AES-ECB方式进行加密的,故后方的加密数据长度必定为16的整数倍。其加密方式是从明文中每次取16字节的数据块,使用32字节的AES密钥加密一次,不足16字节则用”\x00″补齐(zeropadding),最后把每块加密后的数据连接起来形成的,因此解密时亦需要每16字节使用如下密钥进行一次解密,并拼接其结果:
以下是上线包加密前包含的数据: U3RhcnQ6IDIwMTgtNC0yNyAxNzo1NToyOCAtIFt2NS4wXQ==:8CA5CA4250432D41-WARNING-[2018-04-27 17-55-28]-486.txt 这段数据是将样本自身的版本信息使用base64编码以后,加上特定的字符串哈希、时间戳等信息后添加.txt后缀伪装成文件名后发送给攻击者的,根据指令执行结果不同其内容可能有所变化。 flagEnd:符合如下正则表达式特征,宣告上线包的结束。
在Command字段中,解密的方式依然是从长度的8字节以后开始,每次取16字节进行解密并拼接结果,需要注意的是使用的密钥和Login_package使用的密钥有所不同,本例中样本使用的密钥如下所示:
Zebrocy攻击者定位
根据绿盟威胁情报中心(NTI)的情报,该事件中所涉及IP地址分别位于如下区域:
绿盟科技提供现场检测服务
绿盟科技木马专杀解决方案
附录IOC
|