网络安全 频道

Windows启动安全隐患详解

注意:由于Wininit.ini处理的文件是在Windows启动以前处理的,所以不支持长文件名;以上的文件复制、删除、重命名等均是不提示用户的情况下执行的。有些病毒也会利用这个文件对系统进行破坏,所以用户如果发现系统无故出现:

Please wait while Setup updates your configuration files. 

This may take a few minutes…

那么也许系统就有问题了。

4.Winstart.bat启动

这是一个系统自启动的批处理文件,主要作用是处理一些需要复制、删除的任务。比如有些软件会在安装或卸载完之后要求重新启动,就可以利用这个批处理复制和删除一些文件来达到完成任务的目的。如:

“@if exist C:\Windows\Temp\Proc.bat call C:\Windows\Temp\Proc.bat”

这里是执行Proc.bat文件的命令;

“call filename.exe > nul”

这里是去除任何在屏幕上的输出。

5.Autoexec.bat启动

Autoexec.bat应该是用户再熟悉不过的系统文件了。每次重新启动系统时在DOS下启动。恶意的程序往往会利用这个文件做一些辅助的措施。

不过,在Autoexec.bat文件中会包含有恶意代码。如format c: /y等;由于BAT恶意程序的存在,这个机会大大地增加了。比如最近很流行的SirCam蠕虫也就是利用了Autoexec.bat文件。

三、注册表启动

1.常规启动

在下面的注册表项中,\%path%\表示任意路径,file.exe表示需要运行的程序。

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices]

"Anything"="\%path%\file.exe"



[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce]

"Anything"="\%path%\file.exe" 



[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run]

?"Anything"="\%path%\file.exe" 



[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce] 

?"Anything"="\%path%\file.exe" 



[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]

????"Whatever"="c:\runfolder\program.exe" 



[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce]

????"Whatever"="c:\runfolder\program.exe"

注意:

(1)解除这里相应的自启动项只需删除该键值即可,但注意不要删除如SystemTray、ScanRegistry等这样的系统键值。

(2)如果只想不启动而保留键值,只需在该键值加入rem即可。如:“rem C:\Windows\a.exe”。

(3)在注册表中的自启动项中没有这两项:

[HKEY_LOCAL_MACHINE \Software\Microsoft\Windows\CurrentVersion\RunServices]、

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices]

关于:

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnceEx]

有特殊的语法。例如,运行Notepad.exe:

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnceEx]

"Title"="My Setup Title"



"Flag"=dword:00000002



HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnceEx\0001

"RunMyApp"="||notepad.exe"

语法为:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnceEx



Flags = 0x0000000



Title = "Status Dialog Box Title"



HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnceEx\Depend



0001 = "xxx1"



000X = "xxxx"



HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnceEx\0001



Entry1 = "MyApp1.exe"



EntryX = "MyApp2.exe"



HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnceEx\000x



…

上面的例子中,“xxx1,xxxx”是一个动态链接库(DLL)或.OCX文件名(如My.ocx或My.dll);“0001,000x”是部分名字。可以是数字和文字;“entry1,entryX”是指向一个要运行的程序文件的注册表串值。

下表给出键值的说明,Flags是一个定位在RunOnceEx键用来激活/禁止的DWORD值,具体如下:

2.特殊启动

在注册表中除了上述的普通启动方式以外,还可以利用一些特殊的方式达到启动的目的:

[HKEY_CLASSES_ROOT\exefile\shell\open\command] @="%1" %* 



[HKEY_CLASSES_ROOT\comfile\shell\open\command] @="%1" %* 



[HKEY_CLASSES_ROOT\batfile\shell\open\command] @="%1" %* 



[HKEY_CLASSES_ROOT\htafile\Shell\Open\Command] @="%1" %* 



[HKEY_CLASSES_ROOT\piffile\shell\open\command] @="%1" %*



[HKEY_LOCAL_MACHINE\Software\CLASSES\batfile\shell\open\command] @="%1" %*



[HKEY_LOCAL_MACHINE\Software\CLASSES\comfile\shell\open\command] @="%1" %*



[HKEY_LOCAL_MACHINE\Software\CLASSES\exefile\shell\open\command] @="%1" %*



[HKEY_LOCAL_MACHINE\Software\CLASSES\htafile\shell\open\command] @= "%1" %*



[HKEY_LOCAL_MACHINE\Software\CLASSES\piffile\shell\open\command] @="%1" %*

其实从注册表的路径上也许就隐约可以看出,这些都是一些经常被执行的可执行文件的键值。往往有些木马是可以更改这些键值从而达到加载的目的:

如果我们把“"%1" %*”修改为“file.exe"%1" %*”,则文件file.exe就会在每次执行某一个类型的文件(需要看修改的是哪一个文件类型)的时候被执行!

当然,可以被更改的不一定只是可执行文件,比如冰河就利用了TXT文件的键值:

[HKEY_CLASSES_ROOT\txtfile\shell\open\command]实现木马的一种启动方式。

四、其他启动方式

1.C:\Explorer.exe启动方式

这是一种特殊的启动方式,很少有人知道。

0
相关文章