计算机感染病毒后通常会出现一些容易发觉的异常表现行为,如计算机启动速度慢、程序运行卡顿、文件损坏或丢失以及出现间歇性断网等。通过计算机行为的异常表现,然后反推问题的根源,再通过适当的杀毒方法进行病毒清除。下面是一个服务器出现异常的案例:笔者打开服务器时异常卡顿,打开任务管理发现svchost运行程序占用CPU资源达到99%以上,严重影响了服务器的运行,这是病毒的一种典型表现。
1病毒特征分析
1.1Svchost进程分析
Svchost.exe是Windows操作系统中的核心进程文件,从动态链接库(DynamicLinklibrary,DLL)中加载的通用主机进程,该进程是系统运行的基础进程之一,且不能被中止(3)。因为svchost.exe是一个基础进程,可以访问很多系统资源和文件,所以svchost.exe非常容易被病毒所利用。被病毒利用之后,系统常会弹出svchost.exe错误,当然svchost.exe病毒也有不少专杀工具。很多木马程序喜欢伪装成这个服务程序来逃过查杀。为进一步确认,笔者通过资源管理器观察了一下这个进程的更多属性,发现了更多异常之处。
1.2怪异的命令行参数
该进程是通过一串命令启动起来。具体命令是:svchost-ogulf.moneroocean.stream:10001-uxxxxx–do⁃nate-level=1
1.3可疑的管理员账户
经查证,进程svchost.exe的启动用户是Administrator,是这台计算机的超级管理员。windows默认的系统管理员账号是预留出来的,系统默认情况下隐藏这个账号,除非在计算机上没有其他账号可用。超级用户只能有一个,但进一步查看Admin⁃istrator的文件夹,居然有两个,这说明服务器存在病毒,需要我们进一步深入分析。
2解密
2.1参数的含义
参数中的gulf.moneroocean.stream看起来是个域名,尝试访问之后,发现是门罗币的网站,那么该病毒极有可能与门罗币有关。Monero中文翻译成门罗币,是区款连比特币的一种。参数合起来的意思是:通过gulf.moneroocean.stream服务器从事挖矿活动,将受益放到账户为xxxxx的钱包地址当中,受益的1%捐赠给这个木马的开发人员。
2.2真假账户
至于真假账号的问题,我们猜想可能是某一个账号采用了特殊字符,而windows文件系统无法正常显示这个字符,于是看起来和真正的administrator是一样的。为了证实这一点,我们把两个文件夹的名字拷贝到notepad++里,果然原形毕露了。有一个账户用的A其实是希腊字符的A,在windows下看起来和A一模一样。如果不够细心的话,很容易认为这个进程就是Administrator起来的,进而容易误判它为系统进程,达到鱼目混珠的目的。
3手动查杀病毒
手动杀毒不会像杀毒软件那样,受病毒库大小的制约,特别是对于那些新病毒,手动杀毒技术明显优于使用杀毒软件进行杀毒(5)。其次,手动杀毒技术的人工参与性质决定了它拥有充分的灵活性,这是作为计算机程序的杀毒软件无法比拟的。手动杀毒技术能够跟踪单个病毒运行、了解病毒习性,从而在灭杀病毒后完美修复曾被起破坏的系统。通过分析,可以确认这就是门罗币的挖矿木马病毒,从任务管理器将它直接关掉是很简单的事,但是难保他凭借什么触发器再启动起来,所以需要找到它的启动位置并把它彻底删除才是根本的解决办法。手动杀毒一般应从几方面入手:1)查内存,排查可疑进程。目的是为了将病毒从内存中清除掉。2)查启动项,删除病毒启动项。3)通过病毒启动项判断病毒所在位置,从根本上删除病毒。4)修复系统,常见的病毒会对系统部分损坏,必须对损坏的文件或系统进行修复。首先,为了保证操作的流畅性,我们先将资源占用率降下来。通过资源管理器只给这个进程分配1个CPU,使之最大CPU占用率不超过25%,这样我们的手动操作就变得无比流畅。其次,为了找到这个可执行程序的地址,需要在资源管理器增加路径一栏PATH,可以获取路径。这里采用了Powershell来获取可执行文件的物理地址。通过powershell的命令,我们得出病毒可执行文件的物理地址为:c:windowsfontssessvhost.exe。不仅隐藏在系统目录,而且在伪装成windows的字体文件。但是用这个地址实际上也是不存在的。用资源管理器找不到这个地址,直接在地址栏输入地址也不行。经过一番查证,这种情况是因为病毒已经被操作系统标记为系统文件,并加以隐藏,所以用户的资源管理器是无法访问到的。需要使用dos命令来访问该目录。果然通过dos命令是可以进入到这个文件夹内部,但是却查看不到任何文件。通过dos,在dir命令后面加个参数/ah,就可以让病毒原形毕露。接下来用copy命令将这个程序拷贝出来,就可以发现他的真身了。注意copy命令仍然要增加参数/h,否则拷贝一样会失败的。随后就是关闭进程,再使用del命令将病毒删除即可。至此,此次服务器中毒事件已完美解决,没有系统损坏及文件丢失。
4工具软件的使用
4.1PowerShell的使用方法技巧
随着微软对Win10系统的不断升级,内置的默认命令行工具也逐渐从Cmd迁移到了PowerShell。WindowsPowerShell作为新一代的命令行自动化管理工具,因其简洁高效成为众多管理员喜爱的工具,也是微软推荐的管理工具。(6)但须注意,PowerShell与Cmd各自的资源占用情况不同。当我们运行Cmd时,大概只需占用不到1M的内存,几乎可以忽略不计。而使用PowerShell时,需要占用大约20M的内存,两者几乎相差40~50倍。因此,如果你的电脑比较老旧,性能较低,使用Cmd无疑可以获得更高的流畅性。如果电脑配置较高,用PowerShell是一个不错的选择,功能强大,效率高。
4.2Notepadd++显示特殊字符
Notepad++是Windows操作系统下的一套文本编辑器,有完整的中文化接口及支持多国语言编写的功能(UTF8编码)。功能比Windows中的Notepad(记事本)强大,除了可以用来制作一般的纯文字说明文件,也十分适合编写计算机程序代码。Notepad++不仅有语法高亮度显示,也有语法折叠功能,并且支持宏以及扩充基本功能的外挂模组。
4.3通过任务管理器显示进程的参数,并限制其资源使用量Windows
任务管理器提供了有关计算机性能的信息,并显示了计算机上所运行的程序和进程的详细信息;如果连接到网络,那么还可以查看网络状态并迅速了解网络是如何工作的。它的用户界面提供了文件、选项、查看、窗口、关机、帮助等六大菜单项,其下还有应用程序、进程、性能、联网、用户等五个标签页,窗口底部则是状态栏,从这里可以查看到当前系统的进程数、CPU使用比率。
5经验与收获
本次杀毒行动使我们受益匪浅。不管是知识运用上,还是工具的使用上,都是一次很重要的尝试,也验证了我们的技术水平。现将用到的知识和工具列出如下:1)Notepadd++显示特殊字符。利用本命令,将文本内容考入Notepad++,就能将真实的文本内容显示出来。从而识别出病毒文件。2)通过任务管理器显示进程的参数,并限制其资源使用量。通过任务管理器能的参数设置,改变CUP的使用状况。通过powershell获取进程的可执行程序地址。3)通过命令拷贝显示/操作隐藏的系统文件,有些Dos命令加上特殊的参数,能起到事半功倍的作用。总而言之,手动杀毒技术需要很高的操作系统功底,对于网络管理员是一种应该掌握的技能,对于一般的使用人员应慎重使用。手动杀毒能够深入自动杀毒软件所不能涉及的死角,在杀毒软件无法发挥作用或者已经被病毒破坏的情况下,及时发现病毒并成功猎杀病毒,尽可能保护计算机系统,减少损失,采用应急手段的方法之一。基本的计算机安全维护还是要靠防火墙,杀毒软件,杀木马软件来完成保护。
参考文献:
[1]赖英旭,刘思宇.计算机病毒与防范技术(第二版)[M].清华大学出版社,2019.
[2]韩筱卿,王建锋,钟玮.计算机病毒分析与防范大全[M].北京:电子工业出版社,2008.
[4]刘滋,王点,王斌.区块链隐私保护技术[J].计算机与设计,2019(6).
[5]蔡剑锋.基于新理念的杀毒软件[J].信息安全与通信保密,2006,4(9):142-144.
[6](道·琼斯)WindowsPowerShell.实战指南(第2版)[M].人民邮电出版社.
《手动清除计算机病毒案例分析》来源:《电脑知识与技术》,作者:马振伟