木马的检测及预防(Fareit木马分析与防护)
11月5日,绿盟威胁分析系统TAC在某行截获未知病毒样本,随即进行样本分析,后续该病毒被命名为Fareit木马。Fareit木马,主要是通过发送垃圾邮件,骗取用户点击运行exe文件来入侵目标主机,进而窃取FTP客户端保存的站点信息与用户密码。
本文对该木马的执行过程及行为进行了详细分析,并从执行检测、网络防护、终端防护等方面给出方法及整体解决方案。文章中呈现的分析过程较为详细,可以成为木马分析的实操手册,并可以为类似的信息窃取类木马分析及防护提供经验借鉴。
-
11月5日,绿盟威胁分析系统TAC截获未知病毒样本,并协助用户进行防御;
-
11月6日,virustotal站点显示55个检测工具,12个工具检测结果为病毒;
-
11月7日,绿盟科技北京研发中心提交样本分析报告;
-
11月13日,绿盟科技发布深入分析及防护方案。
绿盟科技威胁响应中心持续Fareit木马事件的进展,如果您需要了解更多信息,请
-
绿盟科技博客
-
http://blog.nsfocus.net/
-
绿盟科技威胁响应中心微博
-
http://weibo.com/threatresponse
-
绿盟科技微信号搜索公众号绿盟科技
Fareit木马
TAC截获的Fareit变种样本
Fareit木马样本 | |
文件名 | 2d908d38a3985f4e7a487ddcef164c6f.exe(文中重命名为123.exe) |
文件大小 | 348.0 KB ( 356352 bytes ) |
文件MD5 | 2d908d38a3985f4e7a487ddcef164c6f |
文件SHA1 | 409997693a8d025ace54bf0312cedc91d7175b73 |
文件SHA256 | 009d8e9025122e021733e91cb1635fac57eba22de65ce8a19ea73cd54c00314b |
文件CRC32 | A2BE5193 |
文件类型 | Win32 EXE(Win32 Executable Microsoft Visual Basic 6) |
杀软检测 | 经过56款杀毒软件检测,其中,12款报告是恶意软件;https://www.virustotal.com/en/file/009d8e9025122e021733e91cb1635fac57eba22de65ce8a19ea73cd54c00314b/analysis/ |
漏洞利用 | 无 |
可能的影响
-
家族变种非常多,多攻击有价值信息集散地或金融产品集散地;
-
此次截获的样本发生在银行,这说明国内金融单位已经成为Fareit的攻击目标;
-
此次样本有隐藏及欺骗行为,且有代码注入行为。相关家族变种已达900多个,且有向僵尸网络发展的趋势;
Fareit木马感染全球态势
Fareit木马感染国内情况
木马分析
-
首先使用第三方工具ProcessMonitor, Wireshark查看样本执行过程中的主要行为;
-
使用OllyDBG调试样本,样本创建了两个进程,但是两个进程之间没有通信,所以可以使用OllyDBG附加的方式,在ResumeThread的时候,附加新创建的进程,样本的主要功能都在新创建的进程中实现;
行为分析
2015年11月6日,在截获样本后的第二天,各杀毒软件开始升级各自的病毒库及特征码,下图中可以看到 virustotal对该样本的检测结果,55个检测工具,12个工具检测结果为病毒。整体行为分析细节较多,这里摘要如下:
virustotal对样本的检测结果
下图是使用ProcessMonitor工具,对样本执行过程中进程的监控结果
ProcessMonitor监控进程
]5 WireShark对网络行为的监控结果
恶意行为
经过行为分析,可以知道该样本主要是通过发送垃圾邮件,骗取其他人点击运行exe文件来入侵目标主机,窃取FTP客户端保存的站点信息与用户密码。
-
该样本主要用于窃取目标主机的FTP站点信息与用户密码
-
主要表现为:通过探测一些文件是否存在,来确认目标机是否安装有FTP客户端软件(GHISLER, CuteFTP, FlashFXP, FileZilla, ExpanDrive);如果目标机安装了FTP软件,则访问该FTP软件对应的用于保存站点信息与密码的文件;读取该文件内存,查找站点与密码,并将其上传到自己的服务器;
-
该样本会有一些行为进行自身的隐藏
-
主要表现为:<1> 如果没有安装FTP软件,样本会在C:\Documents and Settings\Administrator\Local Settings\Temp目录下创建一个BAT文件,该文件的作用是删除样本文件与BAT文件,用于自身的隐藏;<2> 样本创建两个子进程来执行恶意行为,并且设置两个子进程的用户名为explorer.exe进程的用户名,达到欺骗用户的效果。
-
该样本有代码注入的行为
-
主要表现为:样本创建两个与自己同名的进程,并将自己的一部分代码注入到两个子进程中,并注入ShellCode,启动子进程,使得子进程的行为与父进程行为不同。两个子进程的行为是相同的。
-
该样本执行过程有恶意网络行为
-
主要表现为:窃取FTP客户端保存的站点信息与用户密码,域名:tekboss.xyz, IP地址:198.105.221.5。
下图是样本整个执行过程流程图
Fareit样本执行流程
执行过程
以下部分对执行过程进行展开描述,便于安全从业者可以根据木马的执行特点,制定合适的防护方案。
文件操作
样本首先读取FTP客户端软件GHISLER, CuteFTP, FlashFXP, FileZilla, ExpanDrive的安装目录下的一些文件,通过查看这些文件是否存在,来确定目标主机上是否安装有FTP软件。
如果上述FTP软件安装在目标主机上,以CuteFTP为例,样本会读取sm.dat文件,该文件中保存了FTP的站点信息以及用户密码,如果存在这些文件,样本会将这些信息上传到自己的服务器198.105.221.5
下面是对Kernel32.CreateFileW函数下断点,截获的读取文件的一些主要的路径:
(此处太长,文字省略,请下载附件)
如果上述目录中的文件存在,则会将该文件读取到内存中,并对文件的内容进行搜索,主要目的是搜索是否保存了站点信息与用户密码,下面是将文件读取到内存的关键代码:
(此处太长,文字省略,请下载附件)
用于自删除的bat文件,这个批处理文件主要作用是删除样本文件与该批处理文件:
-
:ktk
-
del %1
-
if exist %1 goto
-
ktk
-
del %0
调用bat文件的代码(调用ShellExecuteA函数执行批处理文件,参数是样本文件):
-
0012FF48 00410869 /CALL 到 ShellExecuteA 来自 123.00410867
-
0012FF4C 00000000 |hWnd = NULL
-
0012FF50 004140FF |Operation = “open”
-
0012FF54 0067D8A0 |FileName = “C:\Users\John\AppData\Local\Temp\4719217.bat” ;批处理文件路径
-
0012FF58 0067DA30 |Parameters = ” “C:\Users\John\Desktop\123\123.exe” ” ;要删除的文件路径
-
0012FF5C 00000000 |DefDir = NULL
-
0012FF60 00000000 \IsShown = 0x0
网络操作
下面是用于发包的关键代码:
(此处太长,文字省略,请下载附件)
进程操作
样本通过CreateToolhelp32Snapshot, Process32First, Process32Next三个函数,找到explorer.exe进程,用OpenProcessToken获取进程的Token, 然后ImpersonateLoggedOnUser使当前进程模拟explorer.exe的权限,以administrator为当前进程的登录名。
(此处太长,文字省略,请下载附件)
样本是一个VB程序,在执行的过程中,创建两个新的进程,将当前进程的代码写入目标进程中,并注入ShellCode,让新进程执行特定的代码。ShellCode的代码如下:
-
00140000 E8 19000000 call 0014001E
-
00140005 05 FC010000 add eax,0x1FC
-
0014000A 8B08 mov ecx,dword ptr ds:[eax]
-
0014000C 89CE mov esi,ecx
-
0014000E 8B48 08 mov ecx,dword ptr ds:[eax 0x8] ; 123.00401C89
-
00140011 890E mov dword ptr ds:[esi],ecx
-
00140013 8B48 0C mov ecx,dword ptr ds:[eax 0xC]
-
00140016 894E 04 mov dword ptr ds:[esi 0x4],ecx
-
00140019 8B40 04 mov eax,dword ptr ds:[eax 0x4]
-
0014001C – FFE0 jmp eax
-
0014001E 8B0424 mov eax,dword ptr ss:[esp] ; 123.00401BF4
-
00140021 83E8 05 sub eax,0x5
-
00140024 C3 retn
-
00140025 E8 00000000 call 0014002A
样本创建新进程,并且写入代码的主要过程如下:
(此处太长,文字省略,请下载附件)
注册表操作
注册表操作主要功能是:
遍历HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\目录下的注册表项,用于查看目标主机系统内安装的软件。【用于查看是否有安装FTP软件】
下面是截取的几个注册表项:
-
SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\AddressBook UninstallString
-
SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Adobe Flash Player ActiveX UninstallString
-
SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Branding UninstallString
-
SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Connection Manager UninstallString
-
SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Connection Manager
-
SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\DirectAnimation
-
SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\DirectDrawEx
-
SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\DXM_Runtime
-
SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Explorer Suite_is1
-
SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Fontcore
-
SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\HaoZip
-
SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\IDNMitigationAPIs
-
SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\IE40
注册表操作的部分代码如下:
(此处太长,文字省略,请下载附件)
检测与防御
恶意软件大多会通过邮件的方式,将恶意软件作为附件传递到目标主机上,所以用户在打开不明来历的邮件时,应当特别注意。绿盟科技自主设计与研发的TAC设备,可以有效检测类似的未知攻击,防止恶意软件对用户带来不可预知的损失。
TAC虚拟执行检测技术
11月5日,在绿盟威胁分析系统TAC截获到Fareit木马样本时,发现仅有几款杀毒软件(6款杀毒引擎/总共55款)可以检测,当时各厂商对此木马命名尚未统一,还是一个未知恶意软件。之所以TAC可以快速检测到未知威胁,得益于核心的虚拟执行技术。
-
检测原理:
-
将恶意样本或恶意样本部分片段,置于虚拟环境中进行执行,然后记录样本的运行行为,通过运行行为来判断样本是否为恶意
-
传统的签名类设备,是基于特征串进行匹配(即抽取样本中的某些二进制字符序列来识别该样本)。这种基于特征串的匹配方式只能匹配已知的恶意样本,且很容易被各种加壳给轻易绕过,对于新出现的恶意样本则完全没有办法,需要不断地更新签名库来适应新的恶意样本出现。
-
虚拟执行技术是基于行为判断的,攻击行为的类型则变化要缓慢的多。不管新样本如何变化或加壳,运行之后最终都是要执行恶意行为(如执行shellcode、回连CnC等),这些行为一般情况下是没办法隐藏的。
-
虚拟执行分类
-
系统级虚拟执行目前有传统的基于监控的虚拟执行和基于动态翻译的虚拟执行,基于监控的虚拟执行只能做到级别的行为,一般传统的沙盒使用此技术。
-
而基于动态翻译的虚拟执行可以监控到指令级别,可以识别更多的恶意行为和虚拟执行逃逸行为,目前TAC采用了此技术。
-
根据虚拟环境的不同,又可以分为轻量级虚拟执行和系统级虚拟执行。
-
轻量级虚拟执行主要是实现指令片段的模拟执行,根据指令序列的逻辑行为来判断恶意样本。
-
系统级虚拟执行则完整模拟整个操作系统和应用程序环境,最大限度模拟真实环境,然后判断样本的运行行为。
-
虚拟执行逃避技术:
-
当然,目前也出现了针对虚拟执行技术的逃避技术,这些逃避技术可以逃离部分虚拟执行引擎的检测。
-
目前绿盟科技有针对这些逃避技术的检测技术,用来专门检测逃避虚拟执行的恶意样本。
NGTP网络防护技术
正是基于先进的虚拟执行技术,下一代威胁防御解决方案NGTP得以有效检测及防御Fareit木马攻击,网络防护由本地沙箱TAC,威胁防御模块IPS,绿盟安全信誉和ESPC管理等系统构成。NGTP防御木马乃至0Day漏洞攻击的流程:
-
第一步:要经过本地沙箱系统TAC的检测,TAC提供静态检测引擎和虚拟执行引擎,对恶意软件进行Shellcode静态分析,然后再进行虚拟执行。通过这两步分析,Fareit木马被检测出来;
-
第二步:TAC检测出恶意软件的来源,生成信誉信息,包括文件的信誉和攻击源IP等信息,同步到本地的安全管理中心ESPC,形成本地的信誉库;
-
第三步:NIPS从本地信誉库接收到恶意软件的信誉信息,对发起攻击的源IP实现阻断,并生成告警日志。
NGTP防御攻击的流程
金山终端防护建议
Fareit主要通过垃圾邮件传播, 并针对性的盗取用户网银账户, 比特币账户等信息. 据金山安全专家建议,为了防御此类木马,大家在使用电脑的过程中,请不要随便打开陌生人的邮件附件, 请及时更新系统补丁和浏览器. 可以使用金山毒霸(个人), V8 (企业)终端安全软件防护计算机系统和个人信息。
NGTP整体解决方案
在面对木马乃至0Day攻击的情况下,绿盟下一代威胁防御解决方案(NGTP解决解决方案)可以从容不迫的应对,该方案聚焦APT攻击链条,检测和防御APT攻击链中攻击,潜伏和盗取三个主要环节。重点检测和防御在攻击尝试阶段,进入后的潜伏和扩展攻击阶段,以及最终盗取数据目的阶段。
NGTP解决方案以全球威胁情报云为纽带,以未知威胁检测为核心,通过与传统终端、网关设备联动,实现跨厂商的威胁情报的共享,以及企业威胁态势可视化,最终达到提升企业APT威胁防护的能力的目标。
完整的报告请访问 http://blog.nsfocus.net/fareit-trojan-analysis-protection/
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com