对一款病毒(木马)程序的分析
普通用户一听到病毒(木马)软件,就会觉得很神秘,虽然它听起来比较专业不是普通用户所能掌握的,其实它们并不如想象中的那么神秘,所有病毒(木马)软件都要借助一定的媒介和载体,网络和优盘(移动设备等)是病毒传播的主要媒介。病毒和木马程序表现在细微之处,那就是它们必须在磁盘中以文件形式存在,它们会采取一定的策略和多种方法来隐藏自己,因此通过跟踪和分析病毒文件可以彻底的清除病毒(木马)程序。本文就是从文件的角度去清除一款病毒程序。
(一)识别病毒
在本文中已经对木马病毒文件进行了精确的定位,即文件wmgtpvd.exe为病毒文件。病毒文件的定位有以下几种方式:
(1)使用杀毒软件对磁盘文件进行杀毒扫描,扫描结束后,病毒软件会显示查杀结果,在这些结果中,查杀到的病毒文件往往以红色进行醒目显示。
(2)使用抓包工具进行端口监听。计算机启动后,默认状况下不进行任何正常应用程序的网络连接,如果在抓包工具中发现有网络连接,那么可以认为,系统可能存在木马程序,在对外进行网络连接。
(3)使用一些进程查看软件进行查看。
(二)查看病毒属性
选中“wmgtpvd.exe”文件后,右键单击,在弹出的菜单中选择“属性”,然后在“wmgtpvd.exe属性”中选择“版本”进行版本信息等查看,如图1所示。
图1 查看病毒程序文件属性
说明:
(1)通过文件属性可以查看该木马程序的产品版本、产品名称、公司以及语言等信息。通过文件属性主要了解该病毒可能是来自那个国家,不过有些病毒编写者会混淆语言,比如病毒编写者是日本人,他的本国语言应该是日语,但他编写的语言采用英语,因此查看文件属性中显示为“English”,不能判断该程序就是英国人编写的。
(2)通过文件的描述进行相关搜索和判断。透过文件描述来判断该程序是否为系统或者应用程序正常文件。这个判断往往跟经验相关,普通用户判断相对较难。不过网络搜索可以解决该问题。打开浏览器后可以在百度以及Google等搜索引擎中查找该文件的相关信息,如图2所示。在Google中没有查到该病毒文件的任何信息,后面我又在百度中进行了搜索,也没有任何结果。该文件太过于生疏,因此极有可能是非流行病毒程序。由于目前网络用户过亿,很多用户会在碰到病毒后将碰到的问题发表在bbs等处以获取帮助。
图2 通过Google等搜索引擎查找病毒信息
(三)通过工具软件打开病毒文件,获取病毒文件相关信息
对于exe文件不要直接运行,可以使用Winhex或者UltraEdit等工具软件使用二进制格式方式打开病毒文件,打开后依次从上往下查看右边的信息,如图3所示,可以发现该病毒文件是以将病毒插入到svchost.exe进程,且会访问网站地址:[url]http://zht.9966.org/worldmanage/default.aspx[/url]。
图3 使用UltraEdit打开病毒文件
说明:
(1)一般来讲病毒文件不会将所有的字符串处理掉,因此总会在文件中保留一部分字符串,通过UltraEdit、WinHex等文件编辑或者OD等汇编工具打开病毒文件后可以查看留在文件中的字符串。通过这些字符串往往可以获取一些重要信息,例如木马访问网站地址、木马释放文件、启动方式等。
(2)一般来讲,病毒软件往往都会被加壳,在查看文件时可以先使用PEid、Fi等探壳程序进行查壳,直接将病毒文件拖进Peid窗口即可,如图4所示,知道该文件没有加壳,采用Microsoft Visual C++6.0编写而成。
图4 使用PEid查看病毒的壳
(3)在查看本病毒文件中还发现存在“cluslib.dll”这个文件,如图5所示,该文件应该是一个服务加载程序。
图5 获取服务加载程序
(四)清除病毒文件
清除病毒文件有多种方法,一种就是使用杀毒软件查杀,该方式只能对已知病毒进行查杀,另外就是手工清除病毒文件,手工清除有纯粹的手工删除,还有一种是借助安全检查软件来辅助删除。下面给出一个手工删除病毒文件的流程。
(1)使用经常管理器或者任务管理器结束病毒打开的进程。
(2)找到病毒文件所在的具体目录,然后将病毒文件删除掉。
(3)删除病毒服务启动选项。
(4)从注册表中查找跟病毒文件名称相关的信息,找到后,如果确认跟病毒相关则删除掉。
(5)重新启动计算机。使用端口检查器以及进程查看器查看病毒是否仍然连接网络和打开新的进程,如果没有则表示病毒彻底的被清除掉了。
在对本病毒处理时,首先打开DOS命令提示符到目录使用“dir cluslib.dll /s /a”命令查看文件,找到文件后使用兵刃(Icesword)软件中的文件强制删除将该文件删除掉,然后删除病毒主程序wmgtpvd.exe,最后删除注册表中有关wmgtpvd.exe、cluslib.dll的信息。重启计算机后,对进程和端口检查,一切正常,对该病毒处理完毕。
本文转自 simeon2005 51CTO博客,原文链接:http://blog.51cto.com/simeon/74305