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启动方式
这是一种特殊的启动方式,很少有人知道。