背景:
最近,XShell远程终端工具发现被加入了恶意代码,目前官方就此事也做出了回应,要求使用者尽快下载最新版本。腾讯安全反病毒实验室就此跟进分析,对此次带有后门的XShell工具进行了分析。
技术分析:
概述:
整个恶意过程可以通过下图来展示
整个作恶过程分为3部分,第一部分是被patch的XShell启动后,执行到恶意的shellcode1。shellcode1解密后续数据后,执行该段代码shellcode2。第二部分shellcode2运行后会判断注册表项,如果不存在Data键值,则会收集用户信息,通过DNS 协议传走,并获取云端配置数据写回到注册表。第三部分,如果注册表项中有该键值,则会开始执行后续的恶意行为,通过注册表中的key来解密出shellcode3,最终会创建svchost进程,并盗取主机信息。下面我们就分别介绍一下各个过程。
XShell启动:
Xshell.exe启动后会调用自己的nssock2.dll,在sub_1000c6c0函数出,调用VirtualAlloc申请一段内存后,解密数据赋值到这段内存后,调用并执行。
Shellcode2部分:
Shellcode1解出shellcode2后就去调用执行。shellcode2动态加载获取系统函数后,会调用CoCreateGuid生成一个Guid,这个Guid会在后续上报信息时用到。
随后调用 RegCreateKeyExA 创建 /HKEY_LOCAL_MACHINE/SOFTWARE/66094805 注册表项,这里的数字路径是随机产生的。
通过判断此表项中是否存在Data键值,来决定后续流程。
如果不存在则会进行数据上报。数据上报的方式比较独特,通过DGA域名随机算法,每个月产生一个随机域名。
随后会调用getNetWorkParam,getUserName获取计算机名和用户名,并与前面的Guid以及标志位rood拼接成45个字符的上报数据。
在经过两次加密处理,最终将45字符的上报数据加密成90字符。
然后将这个长域名,发往知名的域名解析器,通过域名解析将用户上线信息传到黑客的后台服务器。
随后木马会通过调用recvfrom来接受服务端下发的数据
对接收到的数据进行判断后,便把数据写入到之前的注册表项
/HKEY_CURRENT_USER/SOFTWARE/66094805的Data键中。
写入的数据包括下一步要解密执行shellcode3时用的key1和key2。
shellcode3:
随后发现Data键值存在数据后,便准备调用解密函数来解密执行shellcode3了,这里的a1,a2就是从云端获取到的key1和key2.
解密执行后,运行shellcode3,会创建一个日志文件
C:/ProgramData/CCGQWCS/HACM/OQO/RUAAAYKK,然后在里面写入以下数据
随后会创建傀儡svchost.exe进程,注入后运行恶意代码。
IOC:
通过每个月的DGA算法,可以获取到一些域名
ribotqtonut.com (2017年7月)
nylalobghyhirgh.com (2017年8月)
jkvmdmjyfcvkf.com (2017年9月)
bafyvoruzgjitwr.com (2017年10月)
xmponmzmxkxkh.com (2017年11月)
tczafklirkl.com (2017年12月)
SHA256:
462a02a8094e833fd456baf0a6d4e18bb7dab1a9f74d5f163a8334921a4ffde8
696be784c67896b9239a8af0a167add72b1becd3ef98d03e99207a3d5734f6eb
536d7e3bd1c9e1c2fd8438ab75d6c29c921974560b47c71686714d12fb8e9882
c45116a22cf5695b618fcdf1002619e8544ba015d06b2e1dbf47982600c7545f
515d3110498d7b4fdb451ed60bb11cd6835fcff4780cb2b982ffd2740e1347a0
查杀与建议:
1,目前NetSarang公司已经发布公告,如果有运维人员使用了公告中提到的受影响版本,请尽快升级。
2,运维人员发现IOC中列出的域名请求时,请尽快进行排查。
3,已经中毒的电脑,建议查杀后,应尽快修改服务器的密码。
*本文作者:腾讯电脑管家,转载请注明来自 FreeBuf.COM
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/tech/aiops/54994.html