病毒查杀

2018-05-16 17:17 更新

(环境有限,无图)

文章来源 i春秋

手动查杀病毒流程

手动查杀病毒木马有一套“固定”的流程总结如下:


①排查可疑进程。因为病毒往往会创建出来一个或者多个进程,因此我们需要分辨出哪些进程是由病毒所创建,然后删除可疑进程。


②检查启动项。病毒为了实现自启动,会采用一些方法将自己添加到启动项中,从而实现自启动,所以我们需要把启动项中的病毒清除。


③删除病毒,在上一步的检查启动项中,我们就能够确定病毒主体的位置,这样就可以顺藤摸瓜,从根本上删除病毒文件。


④修复被病毒破坏的文件。这一步一般来说无法直接通过纯手工完成,需利用相应的软件,不是我们讨论的重点。


第一步、排查可疑的进程


开始实验:先截图任务管理器,


然后运行熊猫烧香后


找到命令提示符,输入tasklist这个命令,然后回车,看到现在运行的所有进程


把现在的进程和之前的对比。


会发现多出了的程序


那么。就可以认为这个就是由病毒所创建出来的进程


使用:taskkill这个命令


在命令后面加上:/f(说明强制删除)


然后在/f后面跟上/im(文件的镜像)和它的pid值


如:taskkill/f/im 1548 然后回车


已成功终止掉pid为1548的进程



第二步、检查启动项


找到运行,输入:msconfig


找到菜单上的启动,然后可以看到


spoclsv这个启动项,这个程序的本体在


:windows\system32\drivers\里面


然后也可以看到它在注册表中看见了一个键值,也是他的位置。


在运行中,输入:regedit打开注册表。然后看着它的键值,找到它的位置,就可以看到一个名为:svcshare的这个名称,


然后在系统配置里面取消spoclsv的启动项


然后选择确定!


然后再刷新一下注册表就可以看到spoclsv的启动项已经没有了。



第三步、删除病毒


刚刚已经通过启动项知道了病毒的位置


打开命令提示符


输入它的位置


:windows\system32\driver( 回车)


接着输入:dir spoclsv.exe看下它是否存在


存在后,然后接着删除


使用:del /f(强制删除)+病毒的名称


del/f spoclsv.exe (回车)


在用dir spoclsv.exe查看一下


已经删除!


但事实上,这个病毒不单单将自身复制到


dtivers目录下,它还将自己复制到每个盘的根目录下!还可以通过dir看下


没有发现病毒,是因为病毒隐藏起来了!


输入dir/ah(a代表属性,h代表隐藏)这个命令是要显示属性为隐藏的文件,回车


就可以看到隐藏的程序,要注意的是


:autorun.inf(这个是病毒的自启动)


:setup.exe(这个也是病毒的本体程序)


输入:del/ah/f autorunq.inf(回车)


(因为程序是隐藏的,所以+/at)


在查看下:dir/at(已经没有autorun了)


也可以用命令来删除隐藏的文件


输入:attrib -s -r -h setup.exe


(-s -r -h→先削掉它的系统属性,再削掉它的只读属性,再削掉他的隐藏属性)


然后再跟单这个文件的名称(回车)


在输入:dir/at看下,文件已经隐藏了


在输入:dir查看,就可以在正常属性中看到setup.exe了


输入:del/f setup.exe    直接删除


1.tasklist:现在运行的进程

 

2.taskkill/f/im 1548 :强制删除文件镜像的pid值。pid(1548)值可更改


3.msconfig:启动项   


4.regedit:注册表     


5.dir:查看      dir/ah:查看隐藏的进程      6.del/f+(文件的名称):强制删除     7.del/ah/f+(文件的名称):强制删除隐藏的文件      


8.attrib -s -r -h+(文件名) (把隐藏的文件显示为正常)



第二节、熊猫烧香之行为分析-学习笔记


分析目的:编写出病毒的专杀程序


实验工具:process Monitor(监控病毒)


实验文件:setup.exe


1.打开软件,找到筛选器(Filter),调制为


:process Name;接着输入病毒名称,开始监控;


发现病毒行为:


1.创建了名为:spcolsv.exe的进程,路径为:c:\windows\system32\drivers


2.在命令行的情况下,用net share命令解除系统命令的共享


3.删除安全软件的注册表中的启动项


4.在注册表的 CurrentVersion\Run下的


创建了svcshare的一个启动项


5.修改注册表中的Advanced;使得隐藏的文件无法通过普通的操作而显现出来


6.将自身隐藏拷贝到根目录下的:


setup.exe中;并且创建autorun.inf的病毒自启动


7.在某些目录中创建Desktop_.ini隐藏文件


8.不断的局域网发起连接


不断的向外发包。


注册表的监控:


打开筛选器.输入:Operation;


在第三个空接着找到:RegSetValue


文件的监控:


打开筛选器,找到:Operation


第三个空接着找到:CreateFile


监控病毒:


打开筛选器,找到

rocess Name


第三个空填:病毒名称


查看病毒在注册表中删除了那些键值:


打开筛选器,找到:Operation


第三个空:RegDeletValue(删除键值)


查看病毒添加了那些键值:


打开筛选器,找到:Operation


第三个空:RegSetValue


第三节、熊猫烧香之专杀工具的编写

专杀工具的功能:


1.检查系统中的进程,将病毒进程结束掉,并将该进程在硬盘中隐藏的文件删除掉。


2.全盘检查病毒创建的文件,并删除,这里需要修改病毒文件的属性,并根据校验值来判定病毒文件。


3.修复病毒对注册表的更改,将病毒从自启动项中删除掉,以及修复文件的隐藏显示注册表项。


此前已经知道熊猫烧香病毒的行为,现在主要针对五条


:1.我们在查杀病毒的技术中有种方法类似于特征码查杀法,它并不从病毒内提取特征码,而是计算病毒的散列值,利用散列值就可以在查杀的过程中计算每个文件的散列,然后进行比较,这种方法简单易于实现,一般在病毒刚被发现的时候,在逆向分析前来使用,常见的计算散列的算法有:MD5、SHAE、CRC32等。这次我们用CRC32算法来计算病毒程序的散列值。


2.程序一共有两个参数,一个是指向缓冲区的指针,另一个是缓冲区的长度。首先将病毒文件全部读入到这个缓冲区里面,然后用CRC32函数来计算程序的散列值。通过散列值的计算我们就能生成专门针对于这个病毒程序的一个指纹特征,那么我们在我们的系统中,搜索这个病毒文件的时候,我们就可以根据它所计算的指纹特征进行匹配,一旦匹配成功了我们就可以确定匹配的这个程序就是我们所要删除的病毒程序。


3.查找进程:首先对系统中的进程拍一个快照,然后使用Process32First和Process32Next这两个api函数进行不断的循环查找(事实上有些

恶意代码

也会使用这三个东西来查找当前进程中的情况,这里我们在编写编写专杀工具也要查找进程中是否存在者病毒的进程,一旦查找到,下一步我们就将它删除掉)


4.提升权限:权限提升之后,当前的进程就可以访问一些受限的系统资源。提升权限用三个api函数来实现,OpenProcessToken、LookupPrivilegeValue和AdjustTokenPrivileges(有些病毒程序也会使用这个提升权限的函数,从而访问一些受限制的系统资源)


5.查找并且删除病毒所创建出来的一些文件:通过前面的分析我们知道这个病毒会在所有盘符的根目录的下面创建名为Desktop_.ini这样一个文件,我们要将其删除:


(1)遍历整个磁盘的文件,使用FindFirstFile和FindNextFile


(2)去除相关文件的属性,因为这个病毒创建的文件会自动的加上隐藏,系统和制度这几个属性,因此我们应该先用一段代码把属性去除,然后再用DeleteFile把它删除掉

此外,我们要在整个程序之前定义一个CString类型的名为csTxt这样的一个全局变量,用于将查杀的结果输出到我们所写的专杀工具的界面

主程序编写实际上就是对一键查杀这个按钮的事件进行程序的编写:


(1)结束内存中的spoclsv.exe的这个进程并删除病毒程序的本身,首先用上面编写的查找进程的函数FindTargetProcess查找spoclsv.exe这个进程


(2)先提升权限,然后打开并尝试结束病毒进程,用OpenProcess打开进程,打开成功之后使用TerminateProcess把病毒进程结束掉的操作。

(3)查找磁盘中是否也存在名为spoclsv.exe的病毒文件,因为前面我们知道熊猫烧香病毒会在我们的系统中创建spoclsv.exe这个程序。首先我们要获取系统目录,然后在系统目录的drivers目录下找到病毒程序,检查病毒是否存在,若存在打开病毒程序->获取病毒的大小->在内存中分配一块和病毒文件大小相同的空间->把这个病毒程序读取到内存中。


(4)利用CRC32算法来计算这个程序是否为我们的病毒程序,为了避免有些正常程序和病毒程序名字一样而不严谨,一旦校验值和散列值验证成功,首先依旧是去除熊猫烧香文件的隐藏、系统、只读属性利用dwFileAttributes函数->调用DeleteFile将spoclsv.exe彻底删除。


(5)删除每个盘符下的setup.exe、sutorun.inf、Desktop_.ini这三个文件:使用GetLogicalDriveStrings获取字符串类型驱动器列表(这个函数的返回值会返回当前所有函数的驱动器的字符盘符,每个驱动器会以四个字符进行返回值进行保存,如C盘为C:\0)->使用字符串拷贝函数将文件名与盘符连接起来->验证autorun.inf、setup.exe是否存在->存在的话用CRC32算法计算出它的散列值,当校验值和散列值验证成功,依旧是要先去除文件的属性->调用DeleteFile删除setup.exe和autorun.inf程序(依旧要先去除文件的属性)。


(6)因为前面调用GetLogicalDriveStrings每个驱动器会占用四个字符的空间,所以我们要加上四就到了下一个盘符的空间了。


(7)修复注册表的相关内容,前面我们已经知道熊猫烧香病毒会在CurrentVersion\Run下面创建一个键值实现病毒的自启动。所以我们首先查找这个自启动是否存在,若存在我们就先把它删除掉。


(8)修复文件的隐藏显示,其实就是将CheckedValue的值设置为1。

 


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号