情报回顾
近期监测发现8月16日11时左右金山云官方被演习红队攻击,WPS云端官方升级文件被投毒,升级包中包含阿里云助手软件(远控程序)。
请尽快检查Windows终端是否存在阿里云助手软件(进程名为aliyun_assist_service,文件aliyun_agent_latest_setup.exe,木马回连IP地址:39.98.177.61。现告知各单位注意防范此类钓鱼,提高个人安全意识,不要点击来历不明链接及附件。
样本来源
https://s.threatbook.com/report/file/98a675d90eba03e1ebe08348e4e305cc72b5797f42ef28718078b9dbca9d3c88
样本分析
1. 微步云沙箱在线分析结果
情报显示样本是个木马程序,可能存在远控分析,判定原因主要是存在恶意ip地址39.98.177.61
在微步搜索ip后发现,被五人标记为远控恶意ip,还是要逆向调试一下,看看程序具体做了什么:
2.逆向调试分析
将程序扔到ida中,先搜索一下恶意ip地址,再到具体函数中进行分析:
具体分析一下各个参数赋值过程,既然微步提到了远控或者数据传输,那一定要建立TCP连接,就一定会涉及到赋值传输ip地址和端口号。
这里我们发现先将ip地址赋值给了v2,紧接着赋值给了字符数组v13[1],在这几行代码中,分别给v13[0]到v13[3]共四个位置赋值,而且v13一直到达了函数尾部,因此这个v13应该就是建立连接的参数数组:
似乎静态不太好看,我们下个断点动调起来。我们先把wireshark打开,可以先整体用步过从头走一遍,看看是哪个函数建立的连接,同时有些参数是由函数返回值得到的,同样要注意这些返回值会不会涉及到端口之类的参数。我下在了开始位置,其实应该比较靠下,靠个人经验来下就好。(请一定在虚拟机中调试,调试前记得做备份)
通过动调我们发现,是在倒数第二个函数sub_B463E0调用时,wireshark出现了与恶意ip的数据包,且程序调用了各种通信dll,所以接下来我们重点看看这个函数做了什么。
同样的步骤,我们发现主要功能在sub_B468A0之中。sub_AEB860()函数的功能是启动这几个网络通信dll。同样,下方的sub_B1F880()函数调用了用户配置和网络管理dll。
其中sub_8FF660()函数用于打开本机一个端口,用于和恶意ip的80端口进行数据交换,此时会正式和恶意ip开始建立tcp连接。直到第122行sub_B19540(v35[2], *(_QWORD *)(v55[15] + 40i64), *(_QWORD *)v55[15], *(_QWORD *)(v55[15] + 8i64));发送tcp数据包交互数据。且每一次循环至此时,都会建立新的thread,确保木马的tcp连接保持在线状态。
总结
1.攻击流程
2.防守流程