-
-
给力免杀及相关负载分析报告
-
发表于: 2014-11-24 12:58 1239
-
—— 免杀方法、流行负载、免杀效果和应对方式
一、免杀器介绍
给力免杀是一款用于帮助恶意软件躲避杀毒软件静态查杀的工具。运行后点击【生成】按钮即免杀完毕。
生成的恶软由多个文件组成,有DLL,LNK,BAT,BMP等,并且其中部分那文件为隐藏方式。
以下是另外两种常见的文件组合方式:
(2)
总的来说,它们基本上由这么几种文件组成:
1. DLL/EXE:“白加黑”加载时,被杀软判定为“白”的EXE文件、注入过恶意代码的可执行文件;
2. 经过加密的数据文件:内部为经过加密的恶软程序,大部分为后门程序。
3. 用于迷惑用户的图片文件:根据散播时的场景不同而不同,基本是网游中道具的价格表。
4. 用于激活恶意软件的快捷方式:内部为使用rundll32.exe加载恶意DLL的命令行。
二、免杀使用的手段
1、填充随机字符串,MD5每次不同
首先,为了避免基于哈希值的云查杀,每次生成的PE文件内容均不同。具体做法是每次生成的文件时,PE头里DOS程序中的字符串会被随机替换。
2、免杀器的每次更新,会选用不同的宿主PE文件
根据9月、10月截获的样本,目前已经使用过的PE(DLL/EXE)的文件名大致为81个:
timelog.dll wenvear.dll Bluedell.dll Fqi.exe
clocktime.dll sukebeta.dll youxitu.dll bnozema.dll
clockdata.dll qiyiview.dll Heg.exe bpmuches.dll
logmain.dll Ycb.exe HSInst.dll tinmem.dll
bolodui.dll NetKfc.dll BmpSea.dll NetReal.dll
obamasi.dll godedell.dll gambidy.dll Ucx.exe
kesira.dll datatime.dll BTfent.dll timelog.dll
rarext.dll 截图.exe MTPlayer.dll Blackdell.dll
joyplay.dll 最新价格jpg.exe PopApples.dll beerpep.dll
tenbook.dll Ldo.exe MPVBase.dll Ubw.exe
atlbook.dll feilibi.dll fkvcdit.dll MidMedeas.dll
rarpdg.dll Yfy.exe malaig.dll SkinH.dll
fatadell.dll review.dll ATMbus.dll nigula.dll
yesira.dll Sos.exe dll.dll beercup.dll
fifaba.dll veoceo.dll beayear.dll BmpTry.dll
timelog.dl Ihl.exe nvmove.dll youmitu.dll
dll.dat 七星护符.exe Wiy.exe Ebd.exe
tuview.dll yotall.dll bpmanys.dll Gpkitclt.dll
myfirst.dll Netfans.dll BmpJpg.dll rushion.dll
ranger.dll volvos.dll macknews.dll InstallApp.dll
打开这个看.exe
3、采用不同的恶意代码激活方式
A.利用异常处理获得执行机会。以样本80FCDDD8FC98343F0C5FBB4D88511A6E(channel.dll,2014-11-7由用户上传的免杀器生成)为例,这种方式修改了C++程序中,try-catch实现机制中的函数指针,在程序发生异常时,获得执行机会。如下图:
B. 替换或增加导出函数。以样本A3D4FFC53F68E80881546E4B8E361B5D(MdPlayer.dll,2013-12-20截获)为例,导出表的最后一个导出函数是恶意代码的开始,经过几条无效的浮点指令后,便转入Loader的功能代码。如下图:
C. 直接修改或覆盖内部函数。将恶意代码以直接替换原正常函数的方式注入到EXE/DLL内部,或者注入代码后修改某一函数调用指令,将程序执行流程引入恶意代码。以下列举三个相关样本:
1、修改正常程序指令流中的Call指令,将Call的目标地址设为恶意代码地址。样本(MD5:8461d8183bd68500d25833630f6aa7dc,HAutorun.EXE,截获于 2014/5/16)中,正常文件的某条Call指令被修改,调用目标被指向了一段用于解密Loader的代码。如图:
2、直接覆盖程序内部函数体。样本EB4B87A2EDF5DA5867ED3E78CA370883(Gpkitclt.dll,截获于2013/12/28)中,将原来的DLLMain函数的内容替换为一段用于解密Loader的代码。如图:
3、覆盖原程序中的某一小段代码片段。在样本946578E38A3DA1964C68987538793D7B中,可以看到下图红框中的代码段,明显与上下文代码功能不符。它的作用便是将Loader的代码复制后启动。
三、制造及传播
这一年多的时间里,每天都会新增不少由给力免杀生成的恶软。以一个位于广东省湛江市的I P(113.86.141.87)为例,它在今年10月份,制造了73个免杀过的恶软程序。
给力免杀产出的恶软,主要在IM群中,以网游道具交易为名进行传播,主要IM有:QQ、YY,原因是QQ是目前最大的PC端IM软件,而YY则是网游用户经常使用的IM软件。
恶软散播者会建立相应的游戏道具交易群,在网游内发送邮件进行钓鱼,诱骗受害者加入IM群,受害者也可能通过IM的群搜索功能主动找到IM群。受害者加入群后,会被告知:需要知道价格,单独询问群管理员。当单独询问群管理员时,便会收到对方发来的“价格表”,通过一些列简单的招数,诱使受害者激活《价格表》中携带的恶软,完成恶软植入。
以下是与两位恶软散播者的聊天过程,展示了他们如何诱骗用户:
四、外界感染量
经过九、十两月对给力免杀产出的恶软进行了监控,百度杀毒共帮助用户拦截不同威胁7487例。这些受害者中,其中通过QQ接收到恶软的用户为3279名,而通过YY接收到恶软的用户为803名。以下是全国各地区截获量统计以及全国分布图:
可以看出,经过免杀的恶软传播覆盖了全国各个地区。广东省的受害者以及制毒者最多。
五、加载器代码简要分析
加载器(Loader)代码均被插入在正常程序文件中,在所有截获的样本中,它们的存在形式大致有以下几种:
1、Loader将内部数据解密为映像并调用,以样本970C2B1EACD3CDEC9B10C38440BB7BB为例,从导出函数MemDraw开始执行,进入decode_and_run,如下图:
decode_and_run在初始化解密用的KEY后开始解密,被解密数据为文件内的_encode_data:
需要被解密数据为:
2、Loader代码打开外部数据文件,将文件内数据解密为PE映像并调用。以样本CC08F953618682043E817B4C5428C126为例,通过替换DLLMain函数的内容,直接进入了Loader代码,主要逻辑便是打开数据文件,解密后动态加载PE映像执行。‘
六、流行负载简要分析
我们选取了一个今年9月份截获的恶软文件包进行分析,包含的重要文件如下:
价格表.exe 9F03684CF2060A1B0BCA8095958A7248
HSInst.dll CC08F953618682043E817B4C5428C126
pic 1EA9B41A5FE73E1F08BC3EA4EC72A9C6
png 7AA8CC3A0F7353AB12604006D8F5E2B3
1、行为概述
“价格表.exe“执行时加载“HSInst.dll”,“HSInst.dll”中的Loader对第一个数据文件(pic)进行解密,得到DLL2的内容并直接加载至进程中。DLL2执行,解密另一个数据文件(png),得到DLL3内容并直接加载至进程中,DLL3为后门程序,负责完成所有的恶意功能。DLL3为一个后门程序,具有:基本的文件、注册表远程操作、屏幕截取、音视频截取、键盘记录、下载执行、远程桌面开启等功能。用户的计算机中毒后,便成为“肉鸡”任人控制。
2、初始化以及伪装
DLL3有一个导出函数Run,一切从这里开始。
第一步解出后门上线需要用到的URL,实际上已经类似明文了,将后面的0xC0经过处理变成00,解密方式是与特定字符异或再相加。
(URL解密函数)
之后调用rundll32.exe显示真正的图片,这也是伪装的必要部分。
之后开启线程尝试连接,目标地址就是之前解密得到的URL,IP地址与微博地址都会尝试。
如果是通过微博的方式可以从目标微博首页的签名处获得一个IP地址(下图中红色框中的字符串),这个IP将被用于之后的连接控制服务器。有意思的是,这个微博的用户名叫“在线收获”,不知此人共计收获了多少“肉鸡”。
通过腾讯微博的搜索功能,共计发现了1256名类似的用户。这些用户的资料的家乡字段,基本在广东湛江,这也进一步说明广东省湛江市为最大的此类恶意软件源头。
3、篡改现有模块文件,实现自启动
使用了免杀同样的手法,将一小段启动代码注入到现有模块文件中。当这些模块被加载时,这段启动代码被执行,进而启动了后门程序的执行流程。
通过遍历进程,定位特定的几款软件(多为网游)进程,接着对这些程序启动时必须加载的动态库进行代码注入,达到自启动的目的。被关注的程序包括:《畅游》,《星辰变》,《第九大陆》,《御龙在天》,《问道》,《53客服》。
《畅游》判断代码
《星辰变》判断代码
《第九大陆》判断代码
《御龙在天》判断代码
《53客服》判断代码
当发现系统当中存在目标程序时,便会从这些进程主映像的文件路径下选择某个特定的DLL或者OCX模块进行注入,而腾讯的两款游戏是通过注册表查找的方式。程序被选择注入的文件对应关系如下:
程序名称 被选择注入的DLL/OCX
畅游 zlib1.dll
星辰变 check.dll
第九大陆 bdcap32.dll
御龙在天 tenhotfix.dll
问道 report.dll
53客服 snapshotocx.ocx
client.exe* openal32.dll
注入完成之后,会在该路径下生成一个快捷方式xxx.lnk,这个LNK文件指向之前被复制到%APPDATA%目录下的原始EXE的副本。
被注入代码的模块中,恶意代码通过篡改入口点开始的第一条CALL(E8)指令获得执行机会,而具体的功能代码,则被放置到入口点所节的尾部空隙处。
插入的代码非常短小,其功能就是执行之前创建的快捷方式。代码如下:
4、后门功能
C&C功能派发函数结构:
整个命令派发为一个switch,不同的功能号执行对应的操作。大部分子功能通过创建新线程的方式来实现,主要包括:
- 使用GetRawInputData获取键盘输入:
- 使用GDI函数进行屏幕截图:
- 视屏音频监控功能:
- 修改远程连接默认端口:
其他功能不再一一列举,总体来说,后门功能较为全面。
七、免杀效果测试
2014年11月7日,使用用户提交的给力免杀生成channel.dll,并提交至VirScan和VirusTotal进行扫描,无一引擎对其报毒,扫描结果见URL:
VirScan(0/39) : http://r.virscan.org/report/c9421252e8739eed827cf9ffbd98c245
VirusTotal(0/53):https://www.virustotal.com/en/file/5109819176b68341f9a84a580612cabb5b022b41d7eee48cdfaadd5a01d7e7ab/analysis/1415330413/
接着,以九、十两月截获的7487个样本为测试集,使用360杀毒5.0以及百度杀毒3.0进行对测试。之所以选择360杀毒,原因为给力免杀之前主要的免杀对象为360杀毒。
360杀毒的测试结果,总体检出率为: 4986/7487= 66.60%,并不理想,结果如图:
(11/7最新,无常规引擎)
分析其扫描日志,其中由Trojan.Generic报毒的有2645项,由QVM报毒的有2215项,QVM的检出贡献连一半都没达到。
百度杀毒3.0的测试结果为:Win32.Trojan.BonBonLdr.a检出量为7264,CCE引擎检出量为99,总计检出率为7448/7487 = 99.48%,结果如图:
2014年11月17日,随机抽取一个11月1日截获的样本,提交至VirScan和VirusTotal,检出结果均不理想,只有VirusTotal上的Rising检出,结果URL如下:
VirSacn(0/39): http://r.virscan.org/report/d0131475945bc31317d78ef29bd0b7a6
VirusTotal(1/55):https://www.virustotal.com/en/file/3cbb8d0b76e0d24d65d7769cd0e1588c111e31801ba08e178d2e7c0d3d8a11dd/analysis/1416222217/
而百度杀毒3.0的“雪狼”引擎则可以检出这个样本,结果如下图。
接着,又选取了11月1日至17日截获的2401个样本作为测试集进行测试。360杀毒5.0测试结果为:总检出率为:1610/2401=67.06%,其中,QVM检出量为884,约占总检出量的一半。截图如下:
(11/17最新,无常规引擎)
一、免杀器介绍
给力免杀是一款用于帮助恶意软件躲避杀毒软件静态查杀的工具。运行后点击【生成】按钮即免杀完毕。
生成的恶软由多个文件组成,有DLL,LNK,BAT,BMP等,并且其中部分那文件为隐藏方式。
以下是另外两种常见的文件组合方式:
(2)
总的来说,它们基本上由这么几种文件组成:
1. DLL/EXE:“白加黑”加载时,被杀软判定为“白”的EXE文件、注入过恶意代码的可执行文件;
2. 经过加密的数据文件:内部为经过加密的恶软程序,大部分为后门程序。
3. 用于迷惑用户的图片文件:根据散播时的场景不同而不同,基本是网游中道具的价格表。
4. 用于激活恶意软件的快捷方式:内部为使用rundll32.exe加载恶意DLL的命令行。
二、免杀使用的手段
1、填充随机字符串,MD5每次不同
首先,为了避免基于哈希值的云查杀,每次生成的PE文件内容均不同。具体做法是每次生成的文件时,PE头里DOS程序中的字符串会被随机替换。
2、免杀器的每次更新,会选用不同的宿主PE文件
根据9月、10月截获的样本,目前已经使用过的PE(DLL/EXE)的文件名大致为81个:
timelog.dll wenvear.dll Bluedell.dll Fqi.exe
clocktime.dll sukebeta.dll youxitu.dll bnozema.dll
clockdata.dll qiyiview.dll Heg.exe bpmuches.dll
logmain.dll Ycb.exe HSInst.dll tinmem.dll
bolodui.dll NetKfc.dll BmpSea.dll NetReal.dll
obamasi.dll godedell.dll gambidy.dll Ucx.exe
kesira.dll datatime.dll BTfent.dll timelog.dll
rarext.dll 截图.exe MTPlayer.dll Blackdell.dll
joyplay.dll 最新价格jpg.exe PopApples.dll beerpep.dll
tenbook.dll Ldo.exe MPVBase.dll Ubw.exe
atlbook.dll feilibi.dll fkvcdit.dll MidMedeas.dll
rarpdg.dll Yfy.exe malaig.dll SkinH.dll
fatadell.dll review.dll ATMbus.dll nigula.dll
yesira.dll Sos.exe dll.dll beercup.dll
fifaba.dll veoceo.dll beayear.dll BmpTry.dll
timelog.dl Ihl.exe nvmove.dll youmitu.dll
dll.dat 七星护符.exe Wiy.exe Ebd.exe
tuview.dll yotall.dll bpmanys.dll Gpkitclt.dll
myfirst.dll Netfans.dll BmpJpg.dll rushion.dll
ranger.dll volvos.dll macknews.dll InstallApp.dll
打开这个看.exe
3、采用不同的恶意代码激活方式
A.利用异常处理获得执行机会。以样本80FCDDD8FC98343F0C5FBB4D88511A6E(channel.dll,2014-11-7由用户上传的免杀器生成)为例,这种方式修改了C++程序中,try-catch实现机制中的函数指针,在程序发生异常时,获得执行机会。如下图:
B. 替换或增加导出函数。以样本A3D4FFC53F68E80881546E4B8E361B5D(MdPlayer.dll,2013-12-20截获)为例,导出表的最后一个导出函数是恶意代码的开始,经过几条无效的浮点指令后,便转入Loader的功能代码。如下图:
C. 直接修改或覆盖内部函数。将恶意代码以直接替换原正常函数的方式注入到EXE/DLL内部,或者注入代码后修改某一函数调用指令,将程序执行流程引入恶意代码。以下列举三个相关样本:
1、修改正常程序指令流中的Call指令,将Call的目标地址设为恶意代码地址。样本(MD5:8461d8183bd68500d25833630f6aa7dc,HAutorun.EXE,截获于 2014/5/16)中,正常文件的某条Call指令被修改,调用目标被指向了一段用于解密Loader的代码。如图:
2、直接覆盖程序内部函数体。样本EB4B87A2EDF5DA5867ED3E78CA370883(Gpkitclt.dll,截获于2013/12/28)中,将原来的DLLMain函数的内容替换为一段用于解密Loader的代码。如图:
3、覆盖原程序中的某一小段代码片段。在样本946578E38A3DA1964C68987538793D7B中,可以看到下图红框中的代码段,明显与上下文代码功能不符。它的作用便是将Loader的代码复制后启动。
三、制造及传播
这一年多的时间里,每天都会新增不少由给力免杀生成的恶软。以一个位于广东省湛江市的I P(113.86.141.87)为例,它在今年10月份,制造了73个免杀过的恶软程序。
给力免杀产出的恶软,主要在IM群中,以网游道具交易为名进行传播,主要IM有:QQ、YY,原因是QQ是目前最大的PC端IM软件,而YY则是网游用户经常使用的IM软件。
恶软散播者会建立相应的游戏道具交易群,在网游内发送邮件进行钓鱼,诱骗受害者加入IM群,受害者也可能通过IM的群搜索功能主动找到IM群。受害者加入群后,会被告知:需要知道价格,单独询问群管理员。当单独询问群管理员时,便会收到对方发来的“价格表”,通过一些列简单的招数,诱使受害者激活《价格表》中携带的恶软,完成恶软植入。
以下是与两位恶软散播者的聊天过程,展示了他们如何诱骗用户:
四、外界感染量
经过九、十两月对给力免杀产出的恶软进行了监控,百度杀毒共帮助用户拦截不同威胁7487例。这些受害者中,其中通过QQ接收到恶软的用户为3279名,而通过YY接收到恶软的用户为803名。以下是全国各地区截获量统计以及全国分布图:
可以看出,经过免杀的恶软传播覆盖了全国各个地区。广东省的受害者以及制毒者最多。
五、加载器代码简要分析
加载器(Loader)代码均被插入在正常程序文件中,在所有截获的样本中,它们的存在形式大致有以下几种:
1、Loader将内部数据解密为映像并调用,以样本970C2B1EACD3CDEC9B10C38440BB7BB为例,从导出函数MemDraw开始执行,进入decode_and_run,如下图:
decode_and_run在初始化解密用的KEY后开始解密,被解密数据为文件内的_encode_data:
需要被解密数据为:
2、Loader代码打开外部数据文件,将文件内数据解密为PE映像并调用。以样本CC08F953618682043E817B4C5428C126为例,通过替换DLLMain函数的内容,直接进入了Loader代码,主要逻辑便是打开数据文件,解密后动态加载PE映像执行。‘
六、流行负载简要分析
我们选取了一个今年9月份截获的恶软文件包进行分析,包含的重要文件如下:
价格表.exe 9F03684CF2060A1B0BCA8095958A7248
HSInst.dll CC08F953618682043E817B4C5428C126
pic 1EA9B41A5FE73E1F08BC3EA4EC72A9C6
png 7AA8CC3A0F7353AB12604006D8F5E2B3
1、行为概述
“价格表.exe“执行时加载“HSInst.dll”,“HSInst.dll”中的Loader对第一个数据文件(pic)进行解密,得到DLL2的内容并直接加载至进程中。DLL2执行,解密另一个数据文件(png),得到DLL3内容并直接加载至进程中,DLL3为后门程序,负责完成所有的恶意功能。DLL3为一个后门程序,具有:基本的文件、注册表远程操作、屏幕截取、音视频截取、键盘记录、下载执行、远程桌面开启等功能。用户的计算机中毒后,便成为“肉鸡”任人控制。
2、初始化以及伪装
DLL3有一个导出函数Run,一切从这里开始。
第一步解出后门上线需要用到的URL,实际上已经类似明文了,将后面的0xC0经过处理变成00,解密方式是与特定字符异或再相加。
(URL解密函数)
之后调用rundll32.exe显示真正的图片,这也是伪装的必要部分。
之后开启线程尝试连接,目标地址就是之前解密得到的URL,IP地址与微博地址都会尝试。
如果是通过微博的方式可以从目标微博首页的签名处获得一个IP地址(下图中红色框中的字符串),这个IP将被用于之后的连接控制服务器。有意思的是,这个微博的用户名叫“在线收获”,不知此人共计收获了多少“肉鸡”。
通过腾讯微博的搜索功能,共计发现了1256名类似的用户。这些用户的资料的家乡字段,基本在广东湛江,这也进一步说明广东省湛江市为最大的此类恶意软件源头。
3、篡改现有模块文件,实现自启动
使用了免杀同样的手法,将一小段启动代码注入到现有模块文件中。当这些模块被加载时,这段启动代码被执行,进而启动了后门程序的执行流程。
通过遍历进程,定位特定的几款软件(多为网游)进程,接着对这些程序启动时必须加载的动态库进行代码注入,达到自启动的目的。被关注的程序包括:《畅游》,《星辰变》,《第九大陆》,《御龙在天》,《问道》,《53客服》。
《畅游》判断代码
《星辰变》判断代码
《第九大陆》判断代码
《御龙在天》判断代码
《53客服》判断代码
当发现系统当中存在目标程序时,便会从这些进程主映像的文件路径下选择某个特定的DLL或者OCX模块进行注入,而腾讯的两款游戏是通过注册表查找的方式。程序被选择注入的文件对应关系如下:
程序名称 被选择注入的DLL/OCX
畅游 zlib1.dll
星辰变 check.dll
第九大陆 bdcap32.dll
御龙在天 tenhotfix.dll
问道 report.dll
53客服 snapshotocx.ocx
client.exe* openal32.dll
注入完成之后,会在该路径下生成一个快捷方式xxx.lnk,这个LNK文件指向之前被复制到%APPDATA%目录下的原始EXE的副本。
被注入代码的模块中,恶意代码通过篡改入口点开始的第一条CALL(E8)指令获得执行机会,而具体的功能代码,则被放置到入口点所节的尾部空隙处。
插入的代码非常短小,其功能就是执行之前创建的快捷方式。代码如下:
4、后门功能
C&C功能派发函数结构:
整个命令派发为一个switch,不同的功能号执行对应的操作。大部分子功能通过创建新线程的方式来实现,主要包括:
- 使用GetRawInputData获取键盘输入:
- 使用GDI函数进行屏幕截图:
- 视屏音频监控功能:
- 修改远程连接默认端口:
其他功能不再一一列举,总体来说,后门功能较为全面。
七、免杀效果测试
2014年11月7日,使用用户提交的给力免杀生成channel.dll,并提交至VirScan和VirusTotal进行扫描,无一引擎对其报毒,扫描结果见URL:
VirScan(0/39) : http://r.virscan.org/report/c9421252e8739eed827cf9ffbd98c245
VirusTotal(0/53):https://www.virustotal.com/en/file/5109819176b68341f9a84a580612cabb5b022b41d7eee48cdfaadd5a01d7e7ab/analysis/1415330413/
接着,以九、十两月截获的7487个样本为测试集,使用360杀毒5.0以及百度杀毒3.0进行对测试。之所以选择360杀毒,原因为给力免杀之前主要的免杀对象为360杀毒。
360杀毒的测试结果,总体检出率为: 4986/7487= 66.60%,并不理想,结果如图:
(11/7最新,无常规引擎)
分析其扫描日志,其中由Trojan.Generic报毒的有2645项,由QVM报毒的有2215项,QVM的检出贡献连一半都没达到。
百度杀毒3.0的测试结果为:Win32.Trojan.BonBonLdr.a检出量为7264,CCE引擎检出量为99,总计检出率为7448/7487 = 99.48%,结果如图:
2014年11月17日,随机抽取一个11月1日截获的样本,提交至VirScan和VirusTotal,检出结果均不理想,只有VirusTotal上的Rising检出,结果URL如下:
VirSacn(0/39): http://r.virscan.org/report/d0131475945bc31317d78ef29bd0b7a6
VirusTotal(1/55):https://www.virustotal.com/en/file/3cbb8d0b76e0d24d65d7769cd0e1588c111e31801ba08e178d2e7c0d3d8a11dd/analysis/1416222217/
而百度杀毒3.0的“雪狼”引擎则可以检出这个样本,结果如下图。
接着,又选取了11月1日至17日截获的2401个样本作为测试集进行测试。360杀毒5.0测试结果为:总检出率为:1610/2401=67.06%,其中,QVM检出量为884,约占总检出量的一半。截图如下:
(11/17最新,无常规引擎)
赞赏
看原图
赞赏
雪币:
留言: