计算机病毒入侵与检测.docx

上传人:b****4 文档编号:24445627 上传时间:2023-05-27 格式:DOCX 页数:17 大小:192.86KB
下载 相关 举报
计算机病毒入侵与检测.docx_第1页
第1页 / 共17页
计算机病毒入侵与检测.docx_第2页
第2页 / 共17页
计算机病毒入侵与检测.docx_第3页
第3页 / 共17页
计算机病毒入侵与检测.docx_第4页
第4页 / 共17页
计算机病毒入侵与检测.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

计算机病毒入侵与检测.docx

《计算机病毒入侵与检测.docx》由会员分享,可在线阅读,更多相关《计算机病毒入侵与检测.docx(17页珍藏版)》请在冰豆网上搜索。

计算机病毒入侵与检测.docx

计算机病毒入侵与检测

大连理工大学

 

本科实验报告

 

课程名称:

计算机病毒与入侵检测

学院(系):

软件学院

专业:

网络安全

班级:

网络0901

学号:

200992389

学生姓名:

郭鹏飞

 

2011年9月19日

本练习由单人为一组进行。

   首先使用“快照X”恢复Windows系统环境。

一.网页恶意代码

1.恶意网页1

   新建记事本HostilityCode1.txt,在文本中编写如下代码,保存代码并退出,更改扩展名.txt为.html,双击HostilityCode1.html页面,观察页面效果。

   页面效果:

_____黑白交替、不断闪烁_______________。

   并说明其实现原理:

___利用死循环切换页面颜色_________________。

2.恶意网页2

   新建记事本HostilityCode2.txt,在文本中编写如下代码,保存代码并退出,更改扩展名.txt为.html,双击HostilityCode2.html页面,观察页面效果。

no

functionopenwindow()

{

for(i=0;i<1000;i++)

window.open(“http:

//10.0.0.50”)

}

   页面效果:

_____不断弹出网页_______________。

   并说明其实现原理:

_______在循环中调用Javascript的window.open函数____________。

二.svir.vbs病毒专杀工具设计

1.观察svir.vbs病毒感染现象

   

(1)查看病毒要感染和修改的目标项。

   进入实验平台,点击工具栏中的“实验目录”按钮,进入脚本病毒实验目录,使用UltraEdit或记事本打开svir.vbs病毒文件查看其源码。

   由病毒源码可知,病毒首先要复制自己的副本到指定目录,然后在注册表中添加启动项,再感染指定目录下的文件,最后显示发作信息。

因此我们要查看这些相关项在病毒发作前的状态。

根据病毒源码,查看如下项:

●         系统目录下的病毒副本

   在“C:

\WINDOWS”目录及其子文件夹中搜索是否有文件“MSKernel32.vbs”。

●         注册表中的开机启动项

   HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\MSKernel32

●         指定感染目录下的文件

   查看C:

\JLCSS\TOOLS\Virus\ScriptVir\中的子目录及不同类型的文件是否都变成以“.vbs”结尾的脚本文件。

   

(2)双击“svir.vbs”运行病毒文件。

   (3)重复查看病毒要感染和修改的目标项是否有被病毒感染的现象。

   (4)重启计算机观察是否有病毒发作现象。

2.手工查杀病毒

   

(1)结束病毒进程。

   打开“任务管理器”结束Windows脚本宿主进程。

   “svir.vbs”是用VBS脚本语言编写的,它是通过Windows脚本宿主“wscript.exe”程序解释执行的,所以结束病毒进程就是结束“wscript.exe”进程。

   

(2)删除系统目录中的病毒副本。

   在C:

\WINDOWS目录及其子文件夹中搜索文件MSKernel32.vbs,并删除。

   (3)修改注册表。

   打开“注册表编辑器”找到注册表项HKEY_LOCAL_MACHINE\Software\Microsoft\

Windows\CurrentVersion\Run\MSKernel32,将其删除。

   (4)恢复被感染的文件。

   在病毒发作后,指定感染目录下病毒要感染项都生成以原文件名命名,以“vbs”为扩展名的病毒副本,原来的文件被修改了文件属性,成为了隐藏文件。

●         删除病毒文件

   在病毒指定感染目录及其子目录中,删除所有被病毒感染后生成的以“.vbs”为扩展名的文件。

●         恢复文件属性

   打开“资源管理器”,单击“工具”|“文件夹选项”|“查看”,选中“显示所有文件和文件夹”,单击“确定”后显示被隐藏起来的文件。

   右键单击隐藏文件选择“属性”,在“常规”选项卡中取消对“隐藏”的选择,单击“确定”恢复文件属性。

3.设计脚本病毒专杀工具查杀病毒

  

(1)根据实验原理介绍的相关知识编程实现针对“svir.vbs”的专杀工具。

要求专杀工具能够实现如下功能:

●         删除病毒在系统目录中创建的副本。

●         删除病毒在注册表中创建的开机启动项。

●         删除病毒在指定目录中感染的文件,并恢复被隐藏的原文件的属性。

●         结束病毒发作时弹出的消息框进程。

   

(2)运行病毒文件“svir.vbs”。

   (3)运行专杀工具对病毒“svir.vbs”进行查杀。

思考问题:

1.脚本病毒有什么弱点?

需要wscript.exe才能执行

大连理工大学

 

本科实验报告

 

课程名称:

计算机病毒与入侵检测

学院(系):

软件学院

专业:

网络安全

班级:

网络0901

学号:

200992389

学生姓名:

郭鹏飞

 

2011年9月19日

主机安全审计

本练习由单人为一组进行。

首先使用“快照X”恢复Linux系统环境。

一.查看连接时间日志

连接时间日志是保持用户登录进入和退出时间的文件。

1.查看系统已登录用户(使用工具查看/var/run/utmp日志)

(1)进入实验平台,单击工具栏“控制台”按钮进入工作目录。

输入命令:

w,查看系统已登录用户。

显示信息如图4-4-1所示。

图4-4-1当前已登录用户

显示信息第一行是汇总信息,包括系统当前时间、系统启动到现在的时间、登录用户数目、系统在最近1秒、5秒和15秒的平均负载。

其后每行显示的是每个用户的各项数据,其中包括:

登录帐号、登录终端名称,远程主机名称,登录时间、空闲时间,JCPU、PCPU、当前正在运行的命令行。

其中JCPU时间指的是和该终端(tty)连接的所有进程占用的时间。

这个时间里并不包括过去的后台作业时间,但却包括当前正在运行的后台作业所占用的时间。

而PCPU时间则是指当前进程所占用的时间。

(2)同组主机telnet登录本机(用户名:

guest;口令:

guestpass),本机再次通过w命令查看系统已登录用户。

(3)与“w”命令功能相似的命令还有“who”、“users”命令,请在控制台中运行这两个命令并查看运行结果与“w”命令的异同。

2.查看登录用户历史(使用工具查看/var/log/wtmp日志)

(1)在控制台中输入命令:

last,查看近期用户或终端的登录情况。

显示信息如图4-4-2所示。

图4-4-2登录用户历史

显示信息中包括用户登录时间。

如果关心某一个用户的登录历史,可以在“last”命令后面加上用户名参数,上例中使用“lastroot”命令就会得到关于用户root的登录信息。

(2)在实验中我们会发现,last命令会列出好多用户登录历史,这样不利于我们查找,有时候我们只希望打印出最近的用户登录历史,选项n用来打印出最近的n个用户的登录历史,在控制台输入命令:

last-n5,能够得到最近5个用户的登录历史。

3.查看用户的上一次登录历史(使用工具查看/var/log/lastlog日志)

在控制台输入命令:

lastlog,查看所有用户的最近登录情况,如图4-4-3所示。

图4-4-3用户登录历史

显示信息表明用户guest上一次登录时间是2008年1月17日18:

43:

30,而用户gdm从来没有登录过。

4.查看当前用户使用过的命令(查看bash_history)

(1)在控制台中输入命令:

touchnew-file.txt,新建文件new-file.txt。

(2)关闭当前控制台,重新打开一新控制台,进入当前用户主目录,而后继续输入命令:

cat.bash_history,查看当前用户使用过的命令。

二.查看系统服务日志

1.http日志查看(查看/var/log/httpd/目录下日志)

(1)首先进入http服务日志所在目录/var/log/httpd/,若日志文件access_log存在,将其内容清空,可通过命令:

echo"">/var/log/httpd/access_log实现。

(2)请同组主机访问本机Web服务。

(3)本机再次查看access_log日志内容。

2.ftp日志查看(查看/var/log/xferlog日志)

按照1中的实验步骤,同组主机访问本机FTP服务,查看xferlog日志内容。

三.文件完整性检查

对Linux文件系统中的任何文件进行完整性检查,以此确定文件是否被更改过。

这里我们以用户口令文件/etc/passwd为例,通过系统工具md5sum来实现对该文件的完整性检查。

(1)使用md5sum对/etc/passwd文件生成摘要,具体命令如下:

md5sum/etc/passwd>md5result,其中md5result为自定义的文件名。

(2)在passwd未做任何变动的情况下,对该文件进行完整性检查,具体命令如下:

md5sum-cmd5result,其中参数-cmd5result表示从md5result文件中读取源文件摘要,并进行文件完整性检查。

若passwd文件无变动(生成摘要到当前时间段内),则会出现“passwd:

OK”的信息提示。

(3)使用vim编辑器编辑/etc/passwd,对文件进行任意改动,存盘退出(先按esc键,接着键入“:

wq”回车)。

「注」关于passwd文件的更多解释见实验五|练习一|任务二。

对passwd文件进行完整性检查,由于passwd已被修改过,所以检查后的信息提示为:

“passwd:

FAILED”。

四.利用安全审计工具对Linux系统进行安全审计

在该实验步骤中我们利用第三方安全审计工具LSAT对Linux系统进行本地安全检查。

LSAT—LinuxSecurityAuditingTool,是一个较新的本地安全检查程序,它能够找出那些经常被忽略的常见系统配置错误。

另外,它是模块化的,很容易创建额外的检查,由其生成的本地安全审计报告具有很好的可读性,默认的报告文件为lsat.out。

(1)单击工具栏“控制台”按钮,进入lsat所在工作目录。

该目录中有两个原始文件:

lsat执行文件和exclude1.txt文本文件。

由exclude1.txt文件指定了lsat运行时所要检查的系统安全块。

(2)文件exclude1.txt枚举出了lsat扫描检查所涉及的范围,包括文件权限、rpm安装包、用户帐号、系统通用配置、host文件检查等诸多方面。

该文件默认只要求lsat对inetd、passwd、ftpusers和ipv4进行安全检查。

你可以对要检查的安全块进行扩充,只需在相应行前加“#”号即可对该模块进行安全检查。

(3)对系统进行安全检查,在控制台中输入命令:

./lsat-xexclude1.txt-oresult.txt。

其中,-x表示根据exclude1.txt进行安全检查,-o则指定了输出的审计报告名为result.txt(若不指定输出文件,默认为lsat.out),审计报告可以自定义其它文件名。

执行过程提示信息如图4-4-4所示。

图4-4-4lsat提示信息

(4)阅读审计报告,在控制台中输入命令:

catresult.txt|more,命令“more”用于分页显示文件。

图4-4-5是审计报告中的一个片断:

图4-4-5审计报告片断

在图4-4-5所示片断中,lsat建议将系统用户lp、sync、news及uucp删除掉,因为这些账户可能存在不安全因素。

该片断显示的只是lsat报告的部分审计结果,同学们可对lsat得出的审计报告进行仔细的阅读,按其建议(或警告)信息对系统进行相应的修订操作。

大连理工大学

 

本科实验报告

 

课程名称:

计算机病毒与入侵检测

学院(系):

软件学院

专业:

网络安全

班级:

网络0901

学号:

200992389

学生姓名:

郭鹏飞

 

2011年9月25日

本练习由单人为一组进行。

   首先使用“快照X”恢复Windows系统环境。

一.验证利用OllyDBG修改病毒感染程序

   

(1)进入实验平台,单击工具栏“实验目录”按钮,进入文件型病毒实验目录。

新建文件夹“text”,将文件夹“hei”下的hei0.exe(未感染病毒的可执行程序)复制到text目录中。

点击工具栏“LaborDayVirus”按钮,将目录中的LaborDayVirus.exe也复制到text目录中。

将系统时间调整为5月1日,双击text目录下LaborDayVirus.exe感染hei0.exe文件,观察hei0.exe感染病毒前后的大小变化。

   

(2)单击工具栏“OllyDBG”按钮启动ollyDbg1.10,单击文件菜单中的“打开”项,选择要修复的hei0.exe。

由于病毒修改了原程序的入口点,因此会有程序入口点超出代码范围的提示,如图10-2-1所示。

图10-2-1 入口点警告提示

   单击“确定”按钮继续,程序会停在病毒修改后的程序入口点(hei0.exe的入口点为0x00403200)上,在代码中找到最后一个jmp指令处(病毒感染完成后将跳转回原程序),按F2设置断点,按F9运行,程序会在刚设置的jmp断点上中断,查看EAX寄存器的值(EAX=0x401000注意上面提到的断点,下面还会用到),按F7单步执行到下一条指令地址,点选鼠标右键或选择“插件”菜单项,选择菜单中的用ollyDump脱壳调试进程,选中重建输入表方式1,方式2各脱壳一次,分别保存为1.exe、2.exe。

测试两个程序是否还具有病毒的传染特性_________1.exe不具有,2.exe具有__________________?

   「注」由于重建输入表的方式不同,可能造成某一种导出方式导出的文件无法正常运行,在实验中可以两种方式都导出执行文件,选择可以执行的一种方式来清除病毒。

二.病毒感染机制分析

   

(1)准备一个没有感染病毒的可执行程序和一个感染病毒的可执行程序,将其分别重命名为hei0.ex_,hei.ex_,并复制到一个新的目录下用于调试、对比。

   

(2)进入实验平台,点击工具栏中的“PE”按钮,使用PEExplorer分别打开hei.ex_和hei0.ex_文件,对比两个文件入口点(OEP--AddressofEntryPoint)和ImageBase并分别记录。

OEP

ImageBase

hei0.ex_

Ox00001000H

Ox00400000H

hei.ex_

Ox00003200H

Ox00400000H

Hei:

Hei0:

      

点击“View”菜单中的“SectionHeaders”进入SectionHeaders页面,比对SectionHeader的数据信息并记录到下面表格。

VirtualSize

VirtualAddress

SizeofRawData

PointtoRawData

hei0.ex_的.data

Ox00000027H

Ox00403000H

Ox00000200H

Ox00000800H

hei.ex_的.data

Ox00001A00H

Ox00403000H

Ox00001A00H

Ox00000800H

Hei0:

Hei:

   由于一般文件型病毒只有代码段,数据和代码都存在一起。

所以可以断定hei.ex_的.data段多出的数据即为病毒代码和数据。

   (3)进入实验平台,单击工具栏中“UE”按钮,打开UltraEditor,选择“文件”菜单中的“比较文件”功能对hei0.ex_和hei.ex_进行二进制比对,可以发现在hei.ex_文件的0xa00处开始的数据块为存储于.data节的病毒代码。

   「注」该段数据在.data节是因为hei0.ex_和hei.ex_的.data节都开始于各自文件偏移的PointtoRawData处。

这段数据是病毒代码是因为0xa00-0x800+0x43000=0x43200(感染病毒文件hei.ex_OEP的虚地址(VA))。

   (4)使用UltraEditor打开hei.ex_定位光标到hei.ex_的.data块的PointtoRawData位置,并以16进制形式查找hei0.ex_的入口点(注意字节顺序),将查找到的数据的文件偏移记录_____201C_____。

计算该偏移的保护模式内存虚拟地址:

_____40481C____________。

   (5)定位上面例子中hei.exe的jmp断点,在jmp指令上面会发现如下的汇编代码。

   答:

RVA1000

    0x40481c在病毒代码之后为被加载到内存的病毒数据的存储区,0x1000为hei0.exe OEP的RVA0x1000在反汇编代码中的表示是0010。

   (6)进入实验平台,单击工具栏中的“实验目录”按钮,利用上面的方法分别对实验目录下的1、2、3子目录下的文件进行调试,注意比对感染病毒文件和原文件特征,将各个病毒文件的最后一个跳转指令的目的地址记录到如下表。

文件

原文件的入口地址

感染病毒文件的入口地址

感染病毒文件的最后一个跳转目的地址

mspaint.exe

00034CF5

00053800

01034CF5

notepad.exe

000073A5

00013000

010073A5

write.exe

0000119B

00003A00

0100119B

(7)通过以上的分析,就可以初步断定,该病毒的感染方式是:

________计算宿主文件的原入口地址,进入宿主文件,执行宿主文件的同时发作,修改原宿主文件的入口地址_____________。

三.设计专杀工具

   参考例程vk.exe源码(位于目录C:

\JLCSS\TOOLS\VirusExperiment\Filevirus\下),编写病毒专杀程序,清除laborDayVirus.exe病毒。

   通过任务二,了解到LaborDayVirus.exe病毒的感染机制,这里通过所学的知识对病毒进行清除。

   

(1)查找病毒寄存特征。

   入口点在代码节(.text)之外,病毒代码存储于最后一节、且在病毒代码段后的一个双字为原程序代码入口RVA(在.text节范围内)。

   文件病毒代码以0xE58BE0FF结尾。

   (以上特征是对简化后的病毒特征的总结、实际中的病毒要复杂的多);

   

(2)查找原程序入口点。

   (3)修改程序入口点为原程序入口点。

   (4)修改病毒感染的最后一个节表的SizeOfRawData,使之大小变为去掉病毒代码时的大小。

   (5)修改PE文件选项头中的SizeOfImage为去掉病毒代码后的大小。

   (6)清除病毒代码数据。

   (7)保存清除病毒代码后的文件。

思考问题:

1.PE文件中RVA到VA的转换方法?

答:

内存虚拟地址是当PE文件被映射到内存中去时PE文件中的数据的内存地址,这个地址就是PE文件被映射到内存的起始地址加上这个数据的文件地址;RVA就是当PE文件作为一个可执行映像被加载器加载到内存后,文件中的数据相对于文件的加载点的相对偏移字节数。

转换方法:

假设这个RVA所属的section的sectionheader为curSectionHeader.要得到的VA=待转换的RVA+(curSectionHeader.PointorToRawData-curSectionHeader.VirtualAddress)+该可执行文件映射到内存的起始地址。

2.PE文件中RVA到文件偏移的转换方法?

答:

数据相对偏移h=数据RVA-节RVA

数据相对偏移h=数据的文件偏移–节的文件偏移

根据上面两个等式可以得到数据在文件中的偏移量的算法为:

数据的文件偏移=(数据RVA-节RVA)+节的文件偏移

3.文件偏移到RVA的转换方法?

答:

数据RVA=数据的文件偏移-节的文件偏移+节RVA

4.PE文件中的标志字段又那些?

答:

Name1字段,Name1字段定义了节的名称,字段的长度为8个字节。

VirtualSize字段,代表节的大小,这是节的数据在没有进行对齐处理前的实际大小。

VirtualAddress字段,指出节被装载到内存中后的偏移地址。

PointerToRawData字段,指出节在磁盘文件中的所处的位置。

这个数值是从文件头开始算起的偏移量。

SizeOfRawData字段,指出节在磁盘文件中所占的空间大小。

Characteristics字段,这是节的属性标志字段。

5.PE文件中的几个核心结构?

答:

DOSMZheader,MS—DOS实模式残余程序,PE文件标志,PE文件头,PE文件可选头,各段头部。

6.PE文件中的几个核心结构的功能?

了解个结构成员的功能?

答:

DOSMZheader:

所有PE文件(甚至32位的DLLs)必须以一个简单的DOSMZheader开始。

有了它,一旦程序在DOS下执行,DOS就能识别出这是有效的执行体,然后运行紧随MZheader之后的DOS程序。

以此达到对Dos系统的兼容。

(DOSMZheader总共占用64byte)

MS-DOS实模式残余程序:

实际上是个有效的EXE,在不支持PE文件格式的操作系统中,它将简单显示一个错误提示,大多数情况下它是由汇编器/编译器自动生成。

通常,它简单调用中断21h服务9来显示字符串"ThisprogramcannotruninDOSmode"。

(在我们写的程序中,他不是必须的,可以不于以实现,但是要保留其大小,大小为112byte,为了简洁,我们就用00来填充。

)PE文件标

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1