首页
社区
课程
招聘
[原创]APT Turla样本分析
发表于: 2022-7-17 11:31 11682

[原创]APT Turla样本分析

2022-7-17 11:31
11682

Turla,又名Snake,Uroburos,Waterbug,WhiteBear。由GData在2014年披露后,卡巴斯基、赛门铁克、ESET持续对该组织进行追踪和分析。根据该组织使用的恶意文件的编译时间,最早可以追溯到2011年。通过对代码及功能对比,可以追溯到2006年检测名称为Agent.BTZ的恶意文件与该组织有关联。因此可以推测出该组织早在2006年就已经开始进行攻击。

Turla组织使用了rootkit技术对计算机进行监控,完成数据窃取功能。这个方法在Windows早期版本的系统中非常实用,可以有效隐藏在计算机中,拥有较高权限。从Windows vista开始,微软加强了对第三方驱动加载过程的控制,需要获取证书并由用户同意才可以正常安装。因此Turla组织转而使用更复杂的侵入过程并植入不带rootkit套件的远控软件对信息进行采集,但这增大了被发现的几率。

Turla组织攻击目标包括政府机构,使馆,教育,研究和制药公司等。最初在攻击美国情报部门后被披露。近几年,该组织攻击了德国外交部,法国相关公司的服务器,窃取了大量的情报信息。

一二三阶样本都是DLL文件,导出表中包含10个函数,但仅"LocalDataVer"和"DllMain"函数可用,样本在沙箱中不能分析出恶意行为,推测其他无用函数用于干扰沙箱分析。由于样本流程非常复杂且包含大量加解密行为,所以直接动态分析。

使用rundll32.exe加载一阶DLL并启用函数"LocalDataVer",运行后样本尝试创建或访问"C:\\Program Files (x86)\\Adobe\\Acrobat Reader DC\\Reader"、"C:\\ProgramData\\Adobe\\ARM"目录,并分别于目录下释放二阶样本"lib3DXquery.dll",配置文件"Reader_20.021.210_47.dat"。随后样本寻找rundll32.exe并启动二阶样本"lib3DXquery.dll"的"LocalDataVer"函数,最后删除一阶样本自身。

二阶样本启动后创建互斥体"Global\\Adobe Update Module",读取配置文件"Reader_20.021.210_47.dat"前5个字节,作为读取文件长度(本文是119字节),再读取文件从第6个字节以后的119字节作为配置文件内容并解密到内存中。打开服务管理器创建新服务"Adobe Update Module"并将二阶样本运行指令写入注册表,达到样本自启动目的。最后读取文件"Reader_20.021.210_47.dat",解密出三阶样本并于内存中启动。

三阶样本先读取配置文件"Reader_20.021.210_47.dat"到内存,再通过寄存器动态寻址方式获取解密函数地址解密配置信息。读取注册表信息获取UA头,最后以POST方式向"newshealthsport.com/sport/latest.php"发送请求。



表 基本信息


使用rundll32.exe加载一阶DLL并启用函数"LocalDataVer",运行后样本尝试创建或访问"C:\\Program Files (x86)\\Adobe\\Acrobat Reader DC\\Reader"、"C:\\ProgramData\\Adobe\\ARM"目录,并分别于目录下释放二阶样本"lib3DXquery.dll",配置文件"Reader_20.021.210_47.dat"。随后样本寻找rundll32.exe并启动二阶样本"lib3DXquery.dll"的"LocalDataVer"函数,最后删除自身。

1.创建目录"C:\\Program Files (x86)\\Adobe\\Acrobat Reader DC\\Reader"、"C:\\ProgramData\\Adobe\\ARM"。

图 目录创建

2.创建文件"Reader_20.021.210_47.dat"、"lib3DXquery.dll"。

图 创建Reader_20.021.210_47.dat配置文件

图 创建lib3DXquery.dll

3.运行一段时间后ping 127.0.0.1 3次后删除自身。

图 删除自身

4.请求域名newshealthsport[.]com

图 域名请求

1.样本解密出路径"C:\\Program Files (x86)\\Adobe\\Acrobat Reader DC\\Reader"并尝试打开"Reader"目录,如果失败则执行命令"ping 127.0.0.1" 3次后删除自身。如果成功访问目录,则创建或访问另一目录"C:\\ProgramData\\Adobe\\ARM"。

图 Adobe目录创建

图 删除自身

图 Arm目录创建

2.样本解密字符"%WinDir%\\System32"从而寻找"System32"目录并尝试打开rundll32.exe。


图 查找rundll32.exe

3.尝试在"ARM"目录下创建新二进制文件"Reader_20.021.210_47.dat",在"Reader"目录下创建新DLL "lib3DXquery.dll"。


图 配置文件Reader_20.021.210_47.dat

图 二阶样本

4.使用"rundll32.exe"加载"lib3DXquery.dll"的"LocalDataVer"模块,运行完后删除自身。


图 启动二阶样本

图 删除自身




表 基本信息


二阶样本启动后创建互斥体"Global\\Adobe Update Module",读取配置文件"Reader_20.021.210_47.dat"前5个字节,作为读取文件长度(本文是119字节),再读取文件第6个字节以后的119字节作为配置文件内容并解密到内存中。打开服务管理器创建新服务"Adobe Update Module"并将二阶样本运行指令写入注册表,达到样本自启动目的。最后读取文件"Reader_20.021.210_47.dat",解密出三阶样本并于内存中启动。

1."Global\\Adobe Update Module"作为互斥体名,创建临时互斥体"crglmu"随后释放。

图 互斥体创建

图 互斥体创建


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2022-7-17 11:42 被戴夫的小推车编辑 ,原因:
上传的附件:
收藏
免费 7
支持
分享
打赏 + 80.00雪花
打赏次数 1 雪花 + 80.00
 
赞赏  Editor   +80.00 2022/07/20 恭喜您获得“雪花”奖励,安全圈有你而精彩!
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//