导语:自动运行型木马可以使用各种方法来建立自己与命令与控制(C&C)服务器之间的通信线路,然后在被攻击计算机上任意妄为,如:偷窃数据,利用受攻击机器攻击其他计算机,匿名发送垃圾邮件等等。通常,这个通信线路建立的过程都是通过HTTP
自动运行型木马可以使用各种方法来建立自己与命令与控制(C&C)服务器之间的通信线路,然后在被攻击计算机上任意妄为,如:偷窃数据,利用受攻击机器攻击其他计算机,匿名发送垃圾邮件等等。通常,这个通信线路建立的过程都是通过HTTP或其他TCP/IP连接完成的。然而,趋势科技的研究人员最近遇到了一个僵尸网络,它使用了一个不常见的方法来作为C&C通道,该方法利用了的是FTP服务器的系统控制后门。
使用FTP服务器作为C&C通道有一个明显的优势,由于该方法不太常见,所以会让管理员和研究人员忽略对它的监测。不过这么做也有其缺点,就是使得C&C的流量可以被其他人监测到,包括安全研究人员。此外,由于攻击者的编码错误,这个系统控制后门并不总是运行正确的命令。
攻击流程
攻击是从带有宏的恶意文档开始的,随着Word文档的打开而自动运行。通过对这些文件进行跟踪研究,攻击目标可能与红十字会和世界卫生组织有关,而且所有的文件都提到了朝鲜。下图就是研究人员以“w2km_syscona”的勒索软件为例,来检测这些被受害目标打开过文件的整个过程。
每个文档包含两个长字符串,攻击者使用Base64编码来自定义这些字母。这一技术曾在2012年年底所发现的Sanny恶意软件家族中出现过。如下图所示,Base64解码功能可以让自定义字母突显出来。
它与早期的Sanny攻击有着惊人的相似之处。这两种攻击都使用了相对罕见的C&C服务器技术,它们的结构相似,就连某些关键编码也是相同的。除此之外,本次攻击也使用了与朝鲜有关的文件而该文件同样被Sanny使用过。所以,根据以上的一些证据,研究人员怀疑Sanny和本次发现的这个新的恶意软件的幕后开发者是同一个组织。
对每个Base64字符串的解码,都会产生一个Cabinet文件。其中一个字符串包含一个32位版本的恶意软件,另一个字符串包含64位版本的恶意软件。使用expand命令将相应的版本(基于OS版本)提取到%Temp%文件夹中,并执行uacme.exe(cabinet文件中的一个文件)。
BAT_SYSCON.A,BKDR_SYSCON.A和TROJ_SYSCON.A是我在这些cabinet文件中检测到的3个恶意文件。
提取cabinet文件并执行其内容的命令
cabinet文件中的所有文档列表
绕过UAC实现恶意安装
顾名思义,Uacme.exe决定了操作系统的版本。所以基于该信息,恶意软件可以直接执行install.bat(这主要针对较旧的Windows版本)或将dummy.dll注入到taskhost(ex)进程中,该进程会尝试在没有出现UAC提示符的情况下执行install.bat。下图就是Uacme.exe和绕过UAC的过程。
接下来,Install.bat会将两个文件:ipnet.dll(主文件)和ipnet.ini(配置文件)复制到%Windows%System32中,然后使用sc命令行实用程序配置新的恶意COMSysApp服务。等服务参数添加到注册表后,就可以启动恶意服务,删除%Temp%目录中的所有以前创建的文件。经过这两个步骤,攻击者就设置好了后门程序的自动启动例程,并删除了之前攻击活动的一些痕迹,这使得该恶意程序很难被检测出来,下图就是恶意安装过程。
服务配置的重要参数是“type=own”,根据MSDN的文档介绍,它具有自己的svchost.exe进程,其中运行的是ipnet.dll。 参数“start = auto”将在每次重新启动计算机时启动svchost.exe进程。
Ipnet.ini文本文件的编码方式与两个Cabinet文件相同,下图就是配置文件。
译者注:MSDN即《Microsoft Developer Network》,是微软一个期刊产品,专门介绍各种编程技巧。
如果对配置进行解码,你就会发现一个免费的FTP服务提供商的URL以及一组登录凭据。
系统控制后门的获取
恶意软件首先会获取计算机名称,之所以要获取计算机名称,就是要用它来对攻击目标进行定位识别。然后,恶意软件使用配置文件中的凭据登录到FTP服务器,输入/htdocs/ directory,并监控现有的.txt文件名。 如果文件名包含“To EVERYONE”,则表示该文件是一个可以被任何人处理的文件。 如果文件名包含“to computer_name”,则代表该文件只能由受匹配的computer_name的受害者计算机处理,而且处理痕迹稍后也会被删除。
但执行完后门处理命令后,恶意软件会通过“cmd /c tasklist >%ws”命令调出所有当前运行的进程,然后对这些进程进行封装,编码并上传到FTP。从下图可以看出,计算机名称,进程执行的日期和时间都是在“From %s (%02d-%02d %02d-%02d-%02d).txt ”上传以后发生的。
这表明受害者的计算机和攻击者之间的通信是通过上传的文件完成的,不过,这些文件通常都是用相同的自定义Base64编码进行压缩和编码的。
压缩文件是使用Shell自动化服务完成的,由于Shell自动化服务是Windows自带的,所以不需要用到外部库。恶意软件首先通过执行下图中的指令创建一个22字节长的空.zip文件。新创建的十六进制的.zip文件的内容是“504b0506000000000000000000000000000000000000”,它基本上是一个空的.zip文件。
创建空.zip文件的指令
在浏览器中打开的空.zip文件
然后恶意软件使用Folder.CopyHere方法将文件复制到空的.zip文件中,所以这些文件都是由操作系统压缩的。 根据MSDN文档的介绍,以下标志都是在文件复制时要用到的:
0x1000 =仅在本地目录下运行,不要递归地进入子目录。
0x0400 =如果发生错误,请不要显示用户界面。
0x0010 =对于显示的任何对话框,都回复为“Yes to Al”。
0x0004 =不显示进度对话框。
使用Folder.CopyHere方法的标识
使用了这些标志之后,就可以确保在恶意运行当中不会出现任何对话框,也不会向受害者显示错误提示。这意味着,所有这些操作都隐藏在后台进行的。
压缩完成后,压缩文件会以Base64编码,并上传到FTP服务器。对于从FTP服务器下载的文件来说,如果要对其进行逆向操作,目前来看只能由其开发者进行。
C&C通信协议
下表列出了自动运行型木马进行监控和处理的命令:
下图是处理C&C命令的过程:
下面是研究者所发现的一些使用此方法发出命令的示例:
示例1
命令:
编码:
IxXDK=NK2KKQK=zK2KXxKB-K0KXTKUKKIxKeKPxKINX8KBNK0xXpKBWKnNX6KUjKIWXZKBNK
结果:
-yT/XXNKKKKKKyD8J6G=UtS6=KKKKXWKKKKzKKKKIVSH0hSjnbz1IFPH-OSi2yR80b8M2=nA0=-WnFYJ2yM-SORi-yTXKZNKPKKKKKKKu4VtdTI2AbzIKKKK=KKKKKxKKKKKKKKKKNKWKKKKKKKKK=P8C=Ypr=S6LF9ZCPXLXNIKKKKKKNKXK/7KKKXUKKKKKKKv
此结果包含了autoexec.bat文件的内容。
示例2
命令:
编码:
IxXDK=NK2KKQK=zK2KX6K=NK2KKQK=NK2KX/K/7KVKKWKUIK9WKWK=NKwNXJKUKKLxXQKUHKnKKQKBzK2KK5KUjKtWKWK/jKKKKQ
结果:
-yT/XXNKKKK2KyHRLOQ26PNrulo0KPtgJWK2KKKKC=SDoUMA0FczVC81jHAJQpYW4j=VU-LAYKl……..
此结果包含了C:中所有的文件。
示例3
命令:
#…encoded file…#LxX8KBzKnNXJKUKKLxXhK=-oWX3K=OK0xX1KUKKzNKHKUKKLxX3KBNKnNXjKBNKKKKv
解码:
结果:
这样,攻击者就会发送一个编码版本的Nirsoft的实用程序mailpv.exe,然后使用上面的参数执行。
恶意软件中的错误代码
不过,研究人员在命令循环处理的过程中发现一处输入漏洞,即恶意软件将命令视为宽字符格式的字符串。下图的代码段中的第二个wsprintfA函数的第一个格式参数应该是“%ws”,但却被错误地写成了“%s”。 因此,在实际攻击中,只有lpExistingFileName的第一个字符被传播到了&CommandLine(显示命令行)。
这就意味着,只要其中一个函数的参数文件名称出现错误时,就可成功阻止进程执行。因此,研究人员提醒IT管理员可通过该种方式阻止黑客利用FTP的系统控制后门作为C&C通道。
错误的代码片段
总结
虽然通过FTP进行的C&C通信有其一定的优势,可能恶意软件开发者的目的是使用这种方法避免被检测到,但他们可能没有意识到该方法将使研究人员很容易地监控他们的行为和受害者的数据。
IT管理员应该知道,连接到外部FTP服务器不仅可以进行数据提取,还可以显示C&C的活动。
IOCs
有以下SHA256哈希值的文件均受到了此次攻击,而且研究人员将此攻击定义为w2km_syscona:
34e968c067f6a360cc41a48b268c32a68421567f0329d4f9f8e2850fb4e27c8c
63ca182abb276e28aec60b9ef1eab5afc10bfb5df43f10a11438d8c0f7550c5c
a07251485a34dd128d80860737b86edd3eb851f57797f2f8fb6891a3cb7a81b3
cff8d961f3287f9ca75b65303075343bdbe63bb171d8f5b010bbf4fa30450fc4
f4987d127320cb5bfb8f49fc26435e01312bdd35a4e5e60db13546046584bd4e
有以下SHA256哈希值的文件均受到了此次攻击,而且研究人员将此攻击定义为bat_syscona:
2c958cd3838fcae410785acb0acf5a542d281524b7820d719bb22ad7d9fcdc7c
e4226645bad95f20df55ef32193d72c9dafcf060c3360fd4e50b5c08a986a353
f01e440764b75b72cab8324ba754d89d50d819a1b2db82ca266f1c307541a2b0
有以下SHA256哈希值的文件均受到了此次攻击,而且研究人员将此攻击定义为bkdr_syscona:
1f9afb142827773cefdb29f06ed90e0476c0185d4c8b337439b3be27e61ed982
65e4212507bb52e72e728559df5ad38a4d3673b28104be4b033e42b1c8a264e8
9b62a013b579f01e3c4c3caf3c9bc02eb338ce9859496e02016ba24b8908d59a
9be95f5954202d7b159c5db928851102f23eae88c087892663781cf8edc0753a
bec437d1979d16505ca8fc896fa8ce9794f655abd39145a82330343b59c142c5
cfb2161b5aebf0c674c845e2428e24373edd4c74a2fb15de527d6763a62dd74e
有以下SHA256哈希值的文件均受到了此次攻击,而且研究人员将此攻击定义为troj_syscona:
25c08d5e77fada975f31a0e0807b7ea1064aae80f5de43790f6ada16159ae1c2
2d261eb478bafaabd7dc12752b1c0aadba491d045573fe2e24cdac5588e2c96b
2f6df307dbe54b8a62a35ea2941a7d033bfdfbb545a7872cb483aea77ec6a10b
3319a156c84e85a4447fa40b0f09aabb84092b5c3a152ad641ee5692741b9194
3fcda66e87eec4f90b50f360460fa46448249e6e177de7ff8f35848353acfaaa
65380ab72bb6aa6ffcd2ea781fe2fa4f863a1b4a61073da7da382210c163b0f9
7daec65f8fee86227d9f9c81ed00d07c46b44e37968bd2894dc74bf311c63651
b7c970f1f65850fa859549f2cf3c2284b80ec464496b34f09bc53c4456e10d1f
d495295466428a52263c8725070a9cf7c2446c6115bddc2de662949afd39f9a9