某针对韩国网银的后门程序分析

0x1 前言

最近,360互联网安全中心捕捉到一枚针对韩国网银的后门程序,该后门程序与2014-2015年爆发的KRBanker木马攻击手法相似,极有可能是同一团伙所为。KRBanker木马是一种结构复杂,针对性强的银行木马,它利用网络挂马等方式欺骗用户下载安装,通过监听劫持DNS协同本地数据打包上传的方式盗取用户网银账户信息。此次捕获的样本相对于之前的木马在功能上有所改进,不再是单一的DNS劫持,而是具有后门的特征,并根据用户计算机实际情况利用控制端指令下达进行相应攻击。

0x2 样本简介

从该样本的基本信息中“Netman Enterprise”字样可以猜测,该样本可能是由网络人远程控制软件改造而成或者是网络人远程控制软件的定制版。除此之外,程序被加上了Themida/Winlicense2.x的壳,且关键算法代码都进行了VM处理。从样本特征以及加壳手法可以看出,该后门程序由中国的犯罪团伙所编写,这和KRBanker木马的攻击源与攻击目的如出一辙。由于国内主流浏览器加强了对网银的保护,导致针对国内网银的攻击成本增加,许多犯罪团伙将矛头指向了网银防护较为薄弱的韩国。

1

图1 程序信息中的“Netman Enterprise”字样

        在网络人远控的框架中,程序设定了极具针对性的特定功能,例如遍历韩国网银账户信息相关文件夹,检查相关域名等。除外,程序的主要功能都利用脚本执行,这也加强了躲避杀软检测的能力,而一些功能选项则是通过远程端进行指令下达来进行。样本的执行流程如下所示。

hyabcd (3)

0x3 样本具体分析

程序所有用到的算法都进行了VM处理,但由于VM自身的缺陷以及作者的忽略,函数流程并没有进行VM处理。由于VM代码执行速度缓慢,作者此举的用意也可能是加快程序主要功能的执行操作以提升程序效率。

3

图2 被VM处理的代码

        程序对经过BASE64加密后的字符串进行解密,得到用于修改启动项的注册表子键 “SOFTWAREMicrosoftWindowsCurrentVersionRun”,并将自身路径写入键值中。

4

图3 解密前后字符串对比

5

图4 写注册表启动项

        接着程序会通过VBS脚本获取MAC地址,并将其保存为由连续数字构成的字符串,方便下一步将MAC信息上传到远程端。脚本代码如下所示。

6

图5 获取MAC地址脚本

        在进行前期不需要ip地址协助的工作后,程序开始获取所需要的ip地址,获取方式也非常常见,即通过QQ昵称获取ip地址。相比较利用动态域名获取ip以及直接连接上线ip等方式,这种方式可以躲避对相关域名的拦截,当上线ip被封后可以只修改qq昵称而不需要对程序进行修改。截至发稿时,昵称中的ip已被替换。

7

图6 请求QQ昵称

123

图7 QQ昵称中含有上线地址

        在获取上线ip之后,程序会将之前获取的MAC地址进行加密后以如下的方式发送出去。

9

图8 MAC地址发送方式

        之后,程序会修改浏览器主页为www.naver.com。 www.naver.com是韩国最大的门户网站,程序此举是为了在之后用户访问该网站时对DNS端口进行监听,从而确定用户是否尝试对网银相关网页访问,如果用户对这些网站进行访问,或者搜索关键字中含有相关字符,则对相关网站的访问进行监听,在适当时机劫持页面转向钓鱼网页,从而盗取用户网银账户。

10

图9 修改浏览器主页

        修改浏览器主页之后,程序会遍历韩国网银用于存储用户信息的相关文件夹,例如C:\NPKI,C:\Program FilesNPKI等。

11

图 10 遍历相关文件夹

        如果发现存在相关文件夹则利用VBS脚本将相关文件复制到临时文件夹中。脚本代码如下。

12

图11 复制文件脚本

        在复制操作完成之后,程序将文件夹压缩打包上传到服务器。为了达到静默执行的目的,程序将需要调用的zipfldr.dll运行方式设为静默运行,且不弹出窗口,然后调用VBS脚本进行文件夹压缩操作。这一步窃取了存在于用户计算机中有关网银的本地数据。

13

图12 修改zipfldr.dll运行方式

14

图13 执行压缩操作的VBS代码

        同样,在对相应文件进行压缩打包操作之后,程序将压缩文件利用POST的方式发送到服务器。发送方式如下。

15

图14 压缩文件发送地址

        接着程序开启SOCKET,绑定1174端口并监听该端口,等待远端进行连接操作。不难看出,相对于之前爆发的KRBanker木马在本地执行完所有操作的特点,该木马通过连接远端获取控制命令和相关字符串,增加木马的灵活性,且提高木马的执行效率。

16

图15 程序监听本机1174端口

        当本地与远程客户端连接成功后,程序将开启新线程用于接收远端发送的数据。

17

图16 接收远端发送的数据

        程序会判断接收到的数据是否合法,并与内存中存储的字符串进行比对,以确定接收到的是数据还是脚本代码。如果接收到的是内存中存在的字符串则为需要使用的数据,否则为需要执行的代码。由于该ip地址已无法访问,因此无法获得接下去的代码执行流程,但对比之前的KRBanker木马不难推断,程序会监听DNS流量,一旦发现用户访问相关的网银网站,则会劫持相应域名转到作者预先设定好的钓鱼网站。而从本地挖出的字符串特征也可以得出,程序重点关注.kr.gbn和.kr后缀的域名,这些也是韩国网银域名最常用的后缀。

18

图17 对接收字符串进行判断比较

19

图18 一些域名后缀解密前后对比

0x4 总结

相比较之前的KRBanker木马,该针对韩国银行的后门程序更加灵活,这也说明了该后门程序更容易对用户造成危害。 当跨国网络犯罪数量日益增长之时,各国杀软厂商更应该进行协同配合抵御跨国网络攻击,阻止跨国网络犯罪的发生。而用户也更应该警惕来自其他国家的网络攻击,因为此类攻击难以追根溯源。网络世界的安全不仅要依靠杀软这层铠甲,也需要用户对于恶意攻击的警惕之心。