简述
近日,非常流行的远程终端Xshell被发现被植入了后门代码,用户如果使用了特洛伊化的Xshell工具版本可能导致所敏感信息被泄露到攻击者所控制的机器。
Xshell特别是Build 1322在国内的使用面很大,敏感信息的泄露可能导致巨大的安全风险,我们强烈建议用户检查自己所使用的Xshell版本,如发现,建议采取必要的补救措施。
Xshell 5.0 Build 1322
Xshell 5.0 Build 1325
Xmanager Enterprise 5.0 Build 1232
Xmanager 5.0 Build 1045
Xftp 5.0 Build 1218
Xlpd 5.0 Build 1220
1.基本流程
Xshell相关的用于网络通信的组件nssock2.dll被发现存在后门类型的代码,DLL本身有厂商合法的数据签名,但已经被多家安全厂商标记为恶意:
360威胁情报中心发现其存在加载执行Shellcode的功能:
调试发现shellcode_1(为了与后面的shellcode区分开来,这里使用shellcode_*来命名)会再解出一段shellcode_2,然后动态加载需要的Windows API,跳转到新的shellcode_2中;而shellcode_2会创建注册表项:HKEY_CURRENT_USER\SOFTWARE\-[0-9]+(后面的数字串随机生成),通过RegQueryValueExA查询该注册表项下”Data”键值来执行不同的功能流程。
功能流程1
当”Data”的值不存在时,进入上传信息流程,该流程主要为收集和上传主机信息到每月一个的DGA域名,并保存服务器返回的配置信息,步骤如下:
获取当前系统时间,根据年份和月份按照下面的算法生成一个长度为10-16的字符串,然后将其与”.com”拼接成域名。
年份-月份和 生成的域名对应关系如下:
2017-06 | vwrcbohspufip.com |
2017-07 | ribotqtonut.com |
2017-08 | nylalobghyhirgh.com |
2017-09 | jkvmdmjyfcvkf.com |
2017-10 | bafyvoruzgjitwr.com |
2017-11 | xmponmzmxkxkh.com |
2017-12 | tczafklirkl.com |
2018-01 | vmvahedczyrml.com |
2018-02 | ryfmzcpuxyf.com |
2018-03 | notyraxqrctmnir.com |
2018-04 | fadojcfipgh.com |
2018-05 | bqnabanejkvmpyb.com |
2018-06 | xcxmtyvwhonod.com |
2018-07 | tshylahobob.com |
接着,将前面收集的网络、计算机、用户信息按照特定算法编码成字符串,然后作为上面的域名前缀,构造成查询*. nylalobghyhirgh.com 的DNS TXT的数据包,分别向8,8,8,8 | 8,8,4,4 | 4,2,2,1 | 4,2,2,2 | [cur_dns_server]发送,然后等待服务器返回。
服务器返回之后(udp)校验数据包,解析之后把数据拷贝到之前传入的参数中,下一步将这些数据写入前面设置的注册表项,也就是HKEY_CURRENT_USER\SOFTWARE\-[0-9]+的Data键中。这些数据应该是作为配置信息存放的,包括功能号,上次活跃时间,解密下一步Shellcode的Key等等。
功能流程2
当RegQueryValueExA查询到的Data键值存在数据时,则进入后门执行流程,该流程利用配置信息中的Key解密shellcode_3并执行,解密出的shellcode_3主要功能是建立后门。
解密shellcode_3的算法如下:先取出shellcode2偏移0x3128处的original_key,接着取key的最后一个byte对偏移0x312C处长度为0xD410的加密数据逐字节进行异或解码,每次异或后original_key再与从配置信息中读取的key1、key2进行乘、加运算,如此循环。
original_keykey1 | 0x340d611e |
key1 | 0xC9BED351 |
key2 | 0xA85DA1C9 |
解密之后跳转到shellcode_3中,在shellcode_3中还存在3次解密再分配的过程,三次解密加载之后,将写入一个文件C:\ProgramData\YICIO\PMIEYKOS\IYM\XIEUWSOY(红色部分为随机名称),这个文件应该是日志文件。接着会遍历系统进程寻找”winlogon.exe”,然后启动svchost.exe并通过WriteProcessMemory、CreateRemoteThread注入代码,同时进行网络访问,上传当前系统、网络信息,其中用到的C2地址如下,可以确认notped.com是另一个Xshell后门相关的非DGA恶意域名。
2. 代码特点
样本使用到的技术很多,例如动态加载、花指令、反调试、多层解密、代码注入等,使用的这些技巧大大增加了安全人员分析工作所需要花费的时间,也能有效躲避杀软检测,并使一些分析工具产生异常而无法正常执行恶意代码流程。下面举例说明一下使用到的技巧:
代码中加入了大量的JMP类型花指令,还有一些无效的计算,比如下图中红框中ECX;
在每次获取API地址之后,都会检测API代码第一字节是否等于0xcc,如果等于则结束后续行为,否则继续;
Shellcode通过自身的配置信息,通过一个for循环,循环4次。每次根据EDI定位配置信息,通过下面的结构体来获取要拷贝的数据的大小,将所有需要的数据拷贝到申请的内存中。然后解密数据。
3. 关联分析
8月的域名为 nylalobghyhirgh.com,360威胁情报中心显示此域名为隐私保护状态:
此域名目前在7月23日被注册,8月3日达到解析量的顶峰,360网络研究院的数据显示解析量巨大,达到800万。
所有的请求类型为NS记录,也就是说域名极有可能被用来析出数据而不是用于C&C控制,这与前面的分析结论一致。
而notped.com作为已知的相关恶意域名,我们发现其注册人为Yacboski Curtis,从而找到了一些其他的关联域名,具体见后面的IOC节,由于这些域名并没有找到对应的连接样本,目前只是怀疑,不能确定就是其他的相关恶意域名。
使用了特洛伊化的Xshell的用户极可能导致本机或相关所管理远程系统的敏感信息泄露。
检查目前所使用的Xshell版本是否为受影响版本,如果组织保存有网络访问日志,检查所在网络是否存在对于下节IOC域名的解析记录,如发现,则有内网机器在使用存在后门的Xshell版本。
目前厂商已经在Xshell Build 1326及以后的版本中处理了这个问题,请升级到最新版本,修改相关系统的用户名口令。
IOC
域名 | 说明 |
vwrcbohspufip.com | 2017年6月DGA域名 |
ribotqtonut.com | 2017年7月DGA域名 |
nylalobghyhirgh.com | 2017年8月DGA域名 |
jkvmdmjyfcvkf.com | 2017年9月DGA域名 |
bafyvoruzgjitwr.com | 2017年10月DGA域名 |
xmponmzmxkxkh.com | 2017年11月DGA域名 |
tczafklirkl.com | 2017年12月DGA域名 |
vmvahedczyrml.com | 2018年1月DGA域名 |
ryfmzcpuxyf.com | 2018年2月DGA域名 |
notyraxqrctmnir.com | 2018年3月DGA域名 |
fadojcfipgh.com | 2018年4月DGA域名 |
bqnabanejkvmpyb.com | 2018年5月DGA域名 |
xcxmtyvwhonod.com | 2018年6月DGA域名 |
tshylahobob.com | 2018年7月DGA域名 |
notped.com | C&C域名,注册人Yacboski Curtis |
paniesx.com | 同注册人Yacboski Curtis可疑域名 |
techniciantext.com | 同注册人Yacboski Curtis可疑域名 |
dnsgogle.com | 同注册人Yacboski Curtis可疑域名 |
operatingbox.com | 同注册人Yacboski Curtis可疑域名 |
文件HASH | |
97363d50a279492fda14cbab53429e75 | 文件名nssock.dll |
18dbc6ea110762acaa05465904dda805 | 文件名nssock.dll |
22593db8c877362beb12396cfef693be | 文件名nssock.dll |
82e237ac99904def288d3a607aa20c2b | 文件名nssock2.dll |
3b7b3a5e3767dc91582c95332440957b | 文件名nssock2.dll |
https://www.netsarang.com/news/security_exploit_in_july_18_2017_build.html