火焰病毒分析.docx
- 文档编号:10253850
- 上传时间:2023-02-09
- 格式:DOCX
- 页数:19
- 大小:113.76KB
火焰病毒分析.docx
《火焰病毒分析.docx》由会员分享,可在线阅读,更多相关《火焰病毒分析.docx(19页珍藏版)》请在冰豆网上搜索。
火焰病毒分析
火焰病毒分析
一、病毒简介与特性
2012年5月,关于Flame病毒(伊朗译为“火焰”,也有的实验室称其为“skyWiper”)的相关报道横空问世,其感染范围主要是中东地区.该病毒的体积十分庞大并且结构极为复杂,被称为有史以来最复杂的病毒,它由一个20MB大小的模块包组成,共包含20个模块,且每个模块有着不同的作用,病毒编制使用了至少5种加密算法、3种压缩算法、5种文件格式。
受害者波
及范围广泛,从个人到国家机构及学术和教育体系等。
据外界现有分析,该恶意软件已经非常谨慎地运作了至少两年时间,它不但能够窃取文件,对用户台式机进行截屏,通过USB驱动传播,禁用安全厂商的安全产品,并可以在—定条件下传播到其他系统,还有可能利用微软Windows系统的已知或已修补的漏洞发动攻击,进而在特定网络中大肆传播Ⅲ.
“火焰”病毒特性
通过研究分析发现该病毒会利用特殊软件仔细选择攻击的地域和目标这宁趋级武器”(Duqu)病毒攻击方式大不相同.”火焰”病毒是—种比Duqu更为复杂的攻击工具包,具有蠕蛐特征,其主要特性是捕获数据和窃取信息,该威胁的攻击目标主要分布在欧洲东部和中部。
在满足条件的情况下,该病毒可在局域网和可移动介质上进行复制.—旦某计算机系统被感染,”火焰”病毒就开始-系列的操作,通过连接火焰的C&C(Command&Control)服务器,攻击者能够获取网络流量截屏、录a、捕获键盘等数据。
并利用加载其它模块,扩大自身的功能特性。
研究表明在火焰病毒代码中使用了罕见的Lua语言:
通常情况下为了便于隐藏恶意程序都是采用简洁的程序语訇出膏编写,而“火焰”并非如此,使用大量代码进行隐藏是该病毒的新特性之一:
它的另—特性则是可以i己录来自洼接或内置话筒的音频文件,并能够通过多种方法窃取数据信息;”火焰”的第三个特性主要是针对蓝牙设备的控制和管理,当连接计算机系统的蓝牙设备处于开启状态,并进行数据传输时,“火焰”病毒则会收集传输的数据。
通过环境配置,它可以将被感染的机器变成跳板,通过蓝牙提供并显示该病毒在该机器上运行的有关信息.
二、病毒行为概述
2.1病毒创建的目录:
C:
\ProgramFiles\CommonFiles\MicrosoftShared\MSSecurityMgr\
2.2病毒生成的文件:
:
C:
\WINDOWS\Ef_trace.log
C:
\WINDOWS\system32\mssecmgr.ocx
C:
\WINDOWS\system32\nteps32.ocx
C:
\WINDOWS\system32\boot32drv.sys
C:
\WINDOWS\system32\advnetcfg.ocx
C:
\WINDOWS\system32\ccalc32.sys
C:
\WINDOWS\system32\msglu32.ocx
C:
\WINDOWS\system32\soapr32.ocx
C:
\WINDOWS\temp\~HLV473.tmp
C:
\WINDOWS\temp\~HLV927.tmp
C:
\WINDOWS\temp\~HLV084.tmp
C:
\WINDOWS\Temp\~ms02aO.tmp
C:
\WINDOWS\TEMP\~dra53.tmp
C:
\WINDOWS\TEMP\~rf288h.tmp
C:
\ProgramFiles\CommonFiles\MicrosoftShared\MSSecurityMgr\mscrypt.dat
C:
\ProgramFiles\CommonFiles\MicrosoftShared\MSSecurityMgr\ssitable
C:
\ProgramFiles\CommonFiles\MicrosoftShared\MSSecurityMgr\rccache.dat
C:
\ProgramFiles\CommonFiles\MicrosoftShared\MSSecurityMgr\lmcache.dat
C:
\ProgramFiles\CommonFiles\MicrosoftShared\MSSecurityMgr\ntcache.dat
C:
\ProgramFiles\CommonFiles\MicrosoftShared\MSSecurityMgr\dstrlogh.dat
2.3病毒新增的注册表项:
HKLM\SYSTEM\CurrentControISet\ControI\Lsa\AuthenticationPackages="mssecmgr.ocx"
三、病毒主要模块与模块危害
模块名称
模块危害
mssecmgr.ocx
主模块运行后会将其资源文件中的多个功能模块解密释放出来,并将它们注入到多个系统进程中。
它通过调用Lua来执行脚本完成指定功能。
advnetcfg.ocx
由主模块释放:
截取屏幕信息。
msglu32.ocx
由主模块释放:
遍历系统中的各种类型的文件,读取特定文件类型文件的信息,将其写入到SQL数据库中,同时也可以收集文件中与地域性相关的一些信息。
nteps32.ocx
由主模块释放:
用来键盘记录和截取屏幕信息。
对一些邮件域名进行监控
rpcns4.ocx
(soapr32.ocx)
用来收集信息的功能模块。
获取系统中的一些信息的,例如:
安装的软件信息、网络信息、无线网络信息、USB信息、时间以及时区信息等。
00004784.dll
(jimmy.dll)
是用来收集用户计算机信息,包括窗体标题、注册表相关键值信息,计算机名,磁盘类型等。
wusetupv.exe
收集本机各个接口的信息,进程信息,注册表键值信息。
DSMGR.DLL
(browse32.ocx)
用来删除恶意软件所有痕迹,防止取证分析
四、病毒模块功能分析
4.1MSSECMGR.OCX主模块分析
蠕虫主模块是一个文件名为mssecmgr.ocx的DLL文件,我们发现该模块已有多个衍生版本,文件大小为6M,运行后会连接C&C服务器,并试图下载或更新其它模块。
主模块不同时期在被感染的机器上文件名有不同,但扩展名都为“OCX”。
运行后的主模块会将其资源文件中的多个功能模块解密释放出来,并将多个功能模块注入到多个进程中,功能模块具有获取进程信息、键盘信息、硬件信息、屏幕信息、麦克风、存储设备、网络、WIFI、蓝牙、USB等多种信息的功能。
所记录的信息文件存放在%Windir%\temp\下。
该蠕虫会先对被感染系统进行勘察,如果不是其想要的攻击对象,它将会自动从被感染系统卸载掉。
蠕虫最有可能是通过欺骗微软升级服务器对本地网络传播和通过一个USB接入设备进行传播。
蠕虫还能够发现有关其周边设备的信息。
通过蓝牙装置,它会寻找其它设备,比如手机或笔记本电脑等。
此蠕虫和以往蠕虫有很大程度上的不同,首先主模块体积很大,并包含多个功能模块,内嵌Lua解释器和大量Lua脚本,进行高层的功能扩展。
启动方式比较特殊,具有多种压缩和加密方式。
4.1.1该病毒模块本地行为
1)添加注册表:
HKLM_SYSTEM\CurrentControlSet\Control\Lsa
AuthenticationPackages=mssecmgr.ocx
注:
该键值会达到开机加载mssecmgr.ocx的目的。
该文件路径为:
%system32%\mssecmgr.ocx。
2)文件运行后会释放以下文件:
通过对“146”资源进行释放并加载运行,以下为资源释放的模块:
%System32%\advnetcfg.ocx
%System32%\boot32drv.sys
%System32%\msglu32.ocx
%Syste32m%\nteps32.ocx
%Syste32m%\soapr32.ocx
%Syste32m%\ccalc32.sys
其他文件:
%Windir%\Ef_trace.log
在%ProgramFiles%\CommonFiles\MicrosoftShared\MSAudio目录下为各模块的配置信息和自身副本文件,从网络中更新或下载新模块配置也会在这里,列表如下:
Audcache
audfilter.dat
dstrlog.dat
lmcache.dat
ntcache.dat
mscrypt.dat
在分析过程中发现以上文件可能为病毒的配置文件,当病毒要进行一个操作前先读取此文件中的一块信息,然后完成其指定的操作。
病毒先将以上文件释放然后删除一次,最后又重新释放,推测为不同功能之间的重复操作导致。
wavesup3.drv(自身副本)
wpgfilter.dat
跟据“146”资源配置还可能会存在以下文件目录:
%ProgramFiles%\CommonFiles\MicrosoftShared\MSSecurityMgr
%ProgramFiles%\CommonFiles\MicrosoftShared\MSAudio
%ProgramFiles%\CommonFiles\MicrosoftShared\MSAuthCtrl
%ProgramFiles%\CommonFiles\MicrosoftShared\MSAPackages
%ProgramFiles%\CommonFiles\MicrosoftShared\MSSndMix
3)遍历安全进程列表
遍历系统中的安全软件的进程
4.1.2该病毒模块启动加载顺序
该病毒的加载方式有两种,一种是在注册表中添加键值,另一种是利用批处理文件来执行dos命令运行rundll32.exe加载主模块运行。
首先查询注册表HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\SeCEdit和查看%ProgramFiles%\CommonFiles\MicrosoftShared\MSAudio\wavesup3.drv文件是否存在。
写入HKLM\System\CurrentControlSet\Control\TimeZoneInformation\StandardSize值为:
114。
创建MSSecurityMgr目录,写入文件mscrypt.dat,在查询信息文件时每查询后会把更改时间写成1601-1-108:
00:
00,经过1分中后写入wpgfilter.dat文件在查询信息文件时每查询后会把更改时间写成1601-1-108:
00:
00,经过1分钟左右后写入wavesup3.drv文件查询后会把更改时间写成1601-1-108:
00:
00,写入文件wavesup3.drv后会写入audcache文件接着写入audfilter.dat文件。
然后查找以下文件:
C:
\DocumentsandSettings\Administrator\LocalSettings\Temp\dat3C.tmp
C:
\DocumentsandSettings\AllUsers\LocalSettings\Temp\dat3C.tmp
C:
\DocumentsandSettings\DefaultUser\LocalSettings\Temp\dat3C.tmp
C:
\DocumentsandSettings\LocalService\LocalSettings\Temp\dat3C.tmp
C:
\DocumentsandSettings\NetworkService\LocalSettings\Temp\dat3C.tmp
C:
\WINDOWS\Temp\dat3C.tmp
然后注入进程services.exe调用系统文件shell32.dll文件,并劫持shell32.dll内容,把wpgfilter.dat的内容加载到shell32.dll中,再加载audcache文件内容到shell32.dll中。
再加载wavesup3.drv文件,然后释放nteps32.exe文件、comspol32.ocx、advnetcfg.ocx、boot32drv.sys、msglu32.ocx,并将它们的时间改为Kernel32.dll文件的时间,以此躲避安全软件的检测。
然后注入到Winlogon.exe进程中调用系统文件shell32.dll文件,并劫持shell32.dll内容,把Netps32.ocx和Ccalc32.sys的内容加载到shell32.dll中。
并将它们的时间改为Kernel32.dll文件的时间,为了躲避安全软件的检测。
通过注入Explore.exe进程调用系统文件shell32.dll文件,并劫持shell32.dll内容,并使其创建iexplore.exe进程,把wpgfilter.dat的内容加载到shell32.dll中,然后再加载audcache文件内容到shell32.dll中。
几分钟后加载wavesup3.drv文件。
查询注册表系统服务项,连接微软升级服务器,然后再连接病毒服务器。
4.1.3病毒功能的实现细节
对该病毒的调试过程中发现其将所有的指针通过函数EncodePointer进行编码后存储到内部结构中(这也与Duqu的实现方式类似),当使用时再调用DecodePointer解码使用,这样做会使对其静态分析变得极其困难。
这个病毒使用了通过获取系统dll文件的导出函数表并循环查找指定函数的方法来动态获取函数地址,此方法是恶意代码的惯用手段该恶意代码在系统路径%ProgramFiles%\CommonFiles\MicrosoftShared下创建MSSecurityMgr文件夹,并将一些配置文件保存到此目录中。
恶意代码会在进程环境变量中保存系统关键目录(WINDOWS目录、SYSTEM32目录、系统临时目录)和自身程序的文件路径。
并通过文件查找的API函数来寻找Kernel32.dll文件,并将恶意代码所创建的文件或文件夹的时间设置为与Kernel32.dll文件相同。
起到隐藏痕迹的目的。
该恶意代码先将自身复制为%System32%\mssecmgr.ocx。
再通过修改注册表达到启动目的,修改的注册表键值为:
“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa”
下的“AuthenticationPackages”。
将其值中追加病毒的模块名如下图。
此注册表键值的作用是列出了用户身份验证程序包,当用户登录到系统时加载并调用。
从而达到开机启动的目的。
之后病毒通过遍历进程来查找explorer.exe进程并通过WriteProcessMemory将ShellCode写入到explorer.exe进程中。
并且通过CreateRemoteTheread函数创建远程线程执行ShellCode。
然后再利用OpenProcess打开services.exe进程,句柄为0x174
通过函数WriteProcessMemory向services.exe进程写入shellcode,这也是恶意代码的惯用手法,存在明显恶意行为的代码注入到系统进程中执行,以躲避杀软查杀,最后恶意代码通过函数CreateRemoteThread函数来创建远程线程,执行刚才写入到services.exe进程中的shellcode
4.2Soapr32.ocx模块分析
Soapr32.ocx是“火焰”病毒运行后释放的病毒文件之一,此模块是用来收集信息的功能模块。
soapr32.ocx模块中的很多功能都是获取系统中的一些信息的,例如:
安装的软件信息、网络信息、无线网络信息、USB信息、时间以及时区信息等。
通过对Soapr32.ocx模块的分析,我们总结出了该模块的以下功能信息:
获取系统中安装的网络适配器的特征:
IP地址、子网掩码、网关、DHCP设置等信息。
获取本地计算机与远程资源服务器的当前连接,它查询的信息主要是关于本地计算机与共享资源的连接:
连接状态、连接类型、用户名以及域名。
读取HOSTS文件的内容,查看是否存在重定向。
列举用户账户和用户组,获得属于'Administrators'组的用户。
收集共享资源信息,包括资源名称、类型和权限、连接数以及其它相关信息。
检查安装的Outlook、MicrosoftWord、InternetExplorer等版本
收集当前时间以及时区信息
检查当前管道'\pipe\srvsvc'
检查系统中可用的USB存储设备
获取所有驱动器并收集信息,例如驱动器类型、已使用空间等。
收集无线网络信息,例如WIFI网络名称、使用的加密类型、验证方法/协议。
收集共享资源信息,包括资源名称、类型和权限、连接数以及其它相关信息。
检测是否启用远程桌面连接,接着查询远程桌面信息,例如端口号、防火墙状态、开放的端口列表。
具体内容如下:
SOFTWARE\KasperskyLab\avp6\settings
SOFTWARE\Kerio
SOFTWARE\FarStone\FireWall
SOFTWARE\Symantec\InstalledApps
SOFTWARE\Symantec\SymSetup\Internetsecurity
SOFTWARE\TinySoftware\TinyFirewall
SOFTWARE\KasperskyLab\avp6\settings
Soapr32.ocx模块尝试遍历进程查看系统运行的进程中是否有以下进程存在:
avp.exe
ccevtmgr.exe
ccsetmgr.exe
vsmon.exe
zlclient.exe
Outpost.exe
mcshield.exe
MpfService.exe
soapr32.ocx模块在temp目录下释放临时文件,TMP文件中的内容为加密内容:
C:
\WINDOWS\Temp\~mso2a0.tmp
C:
\WINDOWS\Temp\~mso2a2.tmp
Soapr32.ocx模块遍历ProgramFiles下所有目录:
检查注册表时区信息
0006FE0880000002|hKey=HKEY_LOCAL_MACHINE
0006FE0C1001B57B|Subkey="SYSTEM\CurrentControlSet\Control\TimeZoneInformation"
0006FE1000000000|Reserved=0
0006FE1400020019|Access=KEY_READ
0006FE180006FE24\pHandle=0006FE24
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]
"forceguest"=dword:
00000001
网络访问:
本地帐户的共享和安全模式:
仅来宾-本地用户以来宾身份验证。
这时,当局域网其他机器访问本机时,不会弹出对话框,就可以直接进入。
收集无线网络信息,例如WIFI网络名称、使用的加密类型、验证方法/协议。
4.3Advnetcfg.ocx模块分析
Advnetcfg.ocx是“火焰”病毒运行后释放的病毒文件之一,我们通过对此模块的分析,了解到此模块的作用为截取屏幕信息。
Advnetcfg.ocx运行后会把自身和%windir%\system32\ccalc32.sys文件的创建时间、修改时间和访问时间修改和系统中的kernel32.dll一样。
Advnetcfg.ocx使用了字符串混淆技术,这和nteps32.ocx的算法是一样的。
4.4Nteps32.ocx模块分析
Nteps32.ocx是“火焰”病毒运行后释放的病毒文件之一,我们通过对此模块的分析了解到此模块的作用为键盘记录和截取屏幕信息。
Nteps32.ocx运行后会把自身和boot32drv.sys文件的创建时间、修改时间和访问时间修改,就和系统中的kernel32.dll一样。
4.4.1该模块行为一释放临时文件
"%windir%temp\~HLV927.tmp"
"%windir%temp\~HLV751.tmp"
"%windir%temp\~HLV084.tmp"
"%windir%temp\~HLV473.tmp"
"%windir%temp\~HLV294.tmp"
以上临时文件对应着其不同的功能记录文件并做加密处理。
例如:
键盘记录、截屏信息等。
4.4.2该模块行为二查看注册表中是否有卡巴斯基的注册表项
HKLM\SOFTWARE\KasperskyLab
HKLM\SOFTWARE\KasperskyLab\AVP6
HKLM\SOFTWARE\KasperskyLab\protected\AVP7
如有则进行对卡巴斯基的关闭、卸载操作。
4.4.3该模块行为三检查域名列表信息,用来监视等操作
以下为部分域名列表信息:
.hotmail.
mail.
yahoo.co
4.5Msglu32.ocx模块分析
Msglu32.ocx是“火焰”病毒运行后释放的病毒文件之一,我们通过对此模块的分析了解到此模块是遍历系统中的各种类型的文件,读取特定文件类型文件的信息,将其写入到sql数据库中,同时也可以收集文件中与地域性相关的一些信息。
4.5.1该模块行为一检查卡巴斯基注册表项
HKLM\SOFTWARE\KasperskyLab\AVP6
HKLM\SOFTWARE\KasperskyLab\protected\AVP7
4.5.2该模块行为二检测进程中的如下进程列表,并将之结束
AntiHook.exe、EngineServer.exe、FAMEH32.exe、FCH32.exe、、FPAVServer.exe、FProtTray.exe、FrameworkService.exe、fsav32.exe、fsdfwd.exe、fsgk32.exe、fsgk32st.exe、fsguidll.exe、FSM32.exe、FSMA32.exe、FSMB32、fspc.exe、fsqh.exe、fssm32.exe、jpf.exe、jpfsrv.exe、mcagent.exe、mcmscsvc.exe、McNASvc.exe、McProxy.exe、McSACore.exe、Mcshield.exe、mcsysmon.exe、McTray.exe、mcupdmgr.exe、mfeann.exe、mfevtps.exe、MpfSrv.exe、naPrdMgr.exe、procexp.exe、PXAgent.exe、PXConsole.exe、shstat.exe、sp_rsser.exe、SpywareTerminator.exe、SpywareTerminatorShield.exe、UdaterUI.exe、VsTskMgr.exe
4.5.3该模块行为三遍历以下格式的文件
office各种格式文档(包括docx、xlsx、pptx等)
Autocad文件
Visio文件
Pdf文件
所有格式的图片文件
病毒在对上述的各个类型的文件进行遍历时,将会记录文件的下列信
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 火焰 病毒 分析