Fareit木马分析与防护

2015-11-14 361609人围观 ,发现 1 个不明物体 网络安全观点

11月5日,我们的分析系统TAC在某行截获未知病毒样本,随即进行样本分析,后续该病毒被命名为Fareit木马。Fareit木马,主要是通过发送垃圾邮件,骗取用户点击运行exe文件来入侵目标主机,进而窃取FTP客户端保存的站点信息与用户密码。

本文对该木马的执行过程及行为进行了详细分析,并从执行检测、网络防护、终端防护等方面给出方法及整体解决方案。文章中呈现的分析过程较为详细,可以成为木马分析的实操手册,并可以为类似的信息窃取类木马分析及防护提供经验借鉴。

Fareit木马

此次的样本被大多数厂商命名为Fareit木马,主要通过发送垃圾邮件,骗取其他人点击运行exe文件来入侵目标主机,窃取FTP客户端保存的站点信息与用户密码。该木马专攻FTP等信息集散地,将数据传送到http://tekboss.xyz等域名,以期获取更多关键信息。

与此木马类似, 我们近期检测到多起发往恶意IP的流量数据包, 结合终端平台分析, 发现此次TAC在某行截获的样本,属于Fareit信息窃取器家族的一个新变种。截止本报告发布时至,全球监测到3071个样本,其中变种样本多达944个。Fareit家族在全球分布中,美国占59.5%,中国占31%。

数据显示,Fareit家族自2012年起就开始进行信息窃取, 最初只是用来下载恶意软件, 但随着时间推移, 已逐步发展成为了专门从事数据泄漏的工具.。2013年5月, 印度政务网站被攻击,Fareit在其中扮演着木马下载和信息窃取的任务.。随着变种新版本的不断改进和全球化扩散, Fareit家族的一些变种已经集成了C&C等功能, 形成了颇具规模的僵尸网络.。有数据表明, Fareit家族中的一个变种还会攻击比特币矿机,盗取比特币,并隐藏在用户机器中使其变成黑客的肉鸡.。2015年4月统计, 由Fareit感染的肉鸡组成的僵尸网络,每天可以发送77亿封垃圾邮件, 并通过邮件传播恶意软件盗取网银, 比特币等用户信息。

样本信息

TAC截获的Fareit变种样本

可能的影响

家族变种非常多,多攻击有价值信息集散地或金融产品集散地;
此次截获的样本发生在银行,这说明国内金融单位已经成为Fareit的攻击目标;
此次样本有隐藏及欺骗行为,且有代码注入行为。相关家族变种已达900多个,且有向僵尸网络发展的趋势;

Fareit木马感染全球态势

Fareit木马感染国内情况

木马分析

首先使用第三方工具ProcessMonitor, Wireshark查看样本执行过程中的主要行为;
使用OllyDBG调试样本,样本创建了两个进程,但是两个进程之间没有通信,所以可以使用OllyDBG附加的方式,在ResumeThread的时候,附加新创建的进程,样本的主要功能都在新创建的进程中实现;

行为分析

2015年11月6日,在截获样本后的第二天,各杀毒软件开始升级各自的病毒库及特征码,下图中可以看到 virustotal对该样本的检测结果,55个检测工具,12个工具检测结果为病毒。整体行为分析细节较多,这里摘要如下:

virustotal对样本的检测结果

下图是使用ProcessMonitor工具,对样本执行过程中进程的监控结果

ProcessMonitor监控进程

 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文件, 这个批处理文件主要作用是删除样本文件与该批处理文件:

1.  :ktk
2.
3.
4.del      %1
5. if          exist      %1      goto     
6.ktk
7.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主要通过垃圾邮件传播, 并针对性的盗取用户网银账户, 比特币账户等信息. 据安全专家建议,为了防御此类木马,大家在使用电脑的过程中,请不要随便打开陌生人的邮件附件, 请及时更新系统补丁和浏览器。

NGTP整体解决方案

在面对木马乃至0Day攻击的情况下,下一代威胁防御解决方案(NGTP解决方案)可以从容不迫的应对,该方案聚焦APT攻击链条,检测和防御APT攻击链中攻击,潜伏和盗取三个主要环节。重点检测和防御在攻击尝试阶段,进入后的潜伏和扩展攻击阶段,以及最终盗取数据目的阶段。

威胁情报

威胁情报的获取及响应都体现了防御能力的建设程度,威胁情报服务体系至少包含了威胁监测及响应、数据分析及整理、业务情报及交付、风险评估及咨询、安全托管及应用等各个方面,涉及研究、产品、服务、运营及营销的各个环节,通过研究、云端、产品、服务等立体的应急响应体系,向企业和组织及时提供威胁情报,并持续对对匿名者攻击事件进行关注,可以有效保障客户业务的顺畅运行。

完整报告下载

*作者:绿盟科技(企业账号),转载请注明来自FreeBuf黑客与极客(FreeBuf.COM)

更多精彩

这些评论亮了

  • 财神9403 回复
    不得不说,绿盟技术大不如前了
    )6( 亮了
发表评论

已有 1 条评论

取消
Loading...

特别推荐

推荐关注

活动预告

填写个人信息

姓名
电话
邮箱
公司
行业
职位
css.php