61阅读

隐藏注册表中的键值-如何用注册表隐藏自定磁盘盘符?

发布时间:2018-04-21 所属栏目:隐藏注册表中的键值

一 : 如何用注册表隐藏自定磁盘盘符?

隐藏硬盘分区盘符,有多种修改注册表的方法,这只是其中最简单的一种,省去另外几种复杂繁琐的方法,但是另外几种修改注册表的方法也有优点,但在这里便不在讲述。同时如果要用软件修改的话,那就用优化大师或超级兔子。下面就随小编一起去看看具体的操作吧!

方法:

1、点击“开始”菜单——点击“运行”——输入“regedit”,点击确定打开注册表。

2、打开注册表进入以下路径:HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer

3、选中Explorer,在右侧空白处右键单击选择“新建 -> 二进制值”,然后将新建的键值名称修改为“NoDrives”

4、键值修改如下图,修改好后重启即可生效

二 : windows安全必须关注的注册表键值

(1)Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run


(2)RunOnce
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce

(3)RunServicesOnce
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce

(4)RunServices
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices

(5)RunOnceEx
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnceEx
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnceEx
(该键是Windows XP/2003特有的自启动注册表项)
(6)UserInit
HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Winlogon\UserInit
(合法值为:c:\windows\system32\userinit.exe)

(7)load
HKEY_CURRENT_USER\Software\Microsoft\WindowsNT\CurrentVersion\Windows\load

(8)镜像劫持
HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Image File Execution Options

(9)禁止任务栏、文件夹选项、注册表等
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableTaskMgr
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableRegedit

(10)禁止修改IE浏览器主页
HKEY_CURRENT_USER\Software\policies\Microsoft\internet explorer\control panel\homepage
值为1 表示禁止修改
HKEY_CURRENT_USER\Software\policies\Microsoft\internet explorer\main\Startpage
(以上适合win200 2003 xp)

vista 、win7 设置如下:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\Start Page


(11)隐藏磁盘分区
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoDrivers


(12)修改文件关联
HKEY_CLASSES_ROOT\textfile\shell\open\command
HKEY_LOCAL_MACHINE\Software\CLASSES\textfile\shell\open\command

(13)SPI
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinSock2\Parameters\Protocol_Catalog9\Catalog_Entries

(14)BHO
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects
此键下是系统注册的所有BHO的CLSID
GUID(Global Unique Identifier) 也成为Class ID 简称CLSID

(15)CLSID
HKEY_CLASSES_ROOT\CLSID\
在此键下的ID 对应着系统里面的不同程序、组件

(16)IE默认前缀
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\URL\DefaultPrefix

(17)
HKEY_CURRENT_USER\Software\policies\Microsoft\internet explorer\MenuExt
IE网页右键菜单
HKEY_LOCAL_MACHINE\Software\policies\Microsoft\internet explorer\Extension registry key
对应于IE工具栏上的按钮或者在IE的工具菜单中非默认安装的项目

(18)IE高级选项�
HKEY_LOCAL_MACHINE\Software\policies\Microsoft\internet explorer\AdvancedOptions
对应于IE选项高级选项卡下面的项目

(19)IE扩展
HKEY_LOCAL_MACHINE\Software\policies\Microsoft\internet explorer\Plugins

(20)IE默认设置
c:\windows\inf\iereset.inf(IE默认配置信息)

(21)IE可信区域

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\InternetSettings\ZoneMap\Domains
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\InternetSettings\ZoneMap\Domain
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\InternetSettings\ZoneMap\Ranges
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\InternetSettings\ZoneMap\Ranges


IE授权区域与识别码对应关系

区域 区域映射
My Computer 0

Intranet 1

Trusted 2Internet 3

Restricted 4


=======================================================================


协议与授权区域的对应关系

HTTP 3

HTTPS 3

FTP 3

@vit 1

shell 0

=========================================================================

对应的注册表键值:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\InternetSettings\ZoneMap\ProtocolDefaults
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\InternetSettings\ZoneMap\ProtocolDefaults



(22)域名劫持
HKEY_LOCAL_MACHINE\System\CurrentControlSet\services\tcpip\Parameters\Interfaces\{0F3EE3DD-D14D-4925-8671-87F4D7244B91}\NameServer

HKEY_LOCAL_MACHINE\Software\Class\PROTOCOLS
额外的协议和协议劫持,黑客通过将我们计算机使用的标准的协议驱动更改为劫持程序所提供的驱动来实现

(23)用户样式表劫持
键值:
HKEY_CURRENT_USER\Software\Microsoft\internet explorer\Style\User Stylesheets

(24)AppInit_DLLs注册表值自启动载入

HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Windows\AppInit_DLLs

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping\win.ini\Windows\AppInit_DLLs

user32.dll能够被许多进程或是程序使用,也包括一些自启动进程,AppInit_DLLs注册表值包含了当user32.dll被载入时将会被载入的一连串动态链接库

(25)Winlogon Notify

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify


(26)ShellServiceObjectDelayLoad
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayLoad

ShellServiceObjectDelayLoad键值下面的文件会被计算机外壳程序Explorer.exe自动载入
ShellServiceObjectDelayLoad下面的键值指向的是CLSID

(26)SharedTaskScheduler
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\SharedTaskScheduler
随windows启动而被载入

(26)服务
服务时windows启动的时候自动载入的程序,这些服务程序无论是否有使用者登录到计算机都会被载入,而且常用于处理系统任务

删除服务

1、命令行命令sc dete servername

2、注册表删除
Windows Registry Editor Version 5.00
[- ........] 保存为reg文件,导入注册表即可删除该项

删除键值

[..........]
"键值名"=-
导入即可

3、相关的服务删除工具

(27)IE收藏夹、IE浏览历史、cookies
HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders

(28)禁止C$、D$、ADMIN$一类的缺省共享
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters,在右边的 窗口中新建Dword值,名称设为
AutoShareServer值设为0
新建Dword值AutoShareWks 0(xp win7 vista)

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters] "AutoShareServer"=dword:00000000 "AutoShareWks"=dword:00000000 // AutoShareWks 对pro版本// AutoShareServer 对server版本// 0

禁止管理共享admin$,c$,d$之类默认共享

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\LSA] "restrictanonymous"=dword:00000001 //0x1 匿名用户无法列举本机用户列表//0x2 匿名用户无法连接本机IPC$共享(可能sql server不能够启动


(29)隐藏重要文件/目录
可以修改注册表实现完全隐藏: “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Fol der\Hi-ddenSHOWALL”,鼠标右击“CheckedValue”,选择修改,把数值由1改为0

(30)防止SYN洪水攻击

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 新建DWORD 值,名为SynAttackProtect,值为2

(31) 禁止响应ICMP路由通告报文

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfacesinterface 新建DWORD值,名为PerformRouterDiscovery 值为0

(32)防止ICMP重定向报文的攻击

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 将EnableICMPRedirects 值设为0

(33)不支持IGMP协议
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters 新建DWORD 值,名为IGMPLevel 值为0


(34)终端服务的默认端口为3389,可考虑修改为别的端口。
修改方法为: 服务器端:打开注册表,在 “HKLM\SYSTEM\Current ControlSet\Control\Terminal Server\Win Stations” 处找到类似RDP-TCP的子键,修改PortNumber值。 客户端:按正常步骤建一个客户端连接,选中这个连接,在“文件”菜单中选择导出,在指定位置会 生成一个后缀为.cns的文件。打开该文件,修改“Server Port”值为与服务器端的PortNumber对应的 值。然后再导入该文件(方法:菜单→文件→导入),这样客户端就修改了端口。


(35)修改系统默认日志存储位置
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Eventlog
日志文件大小限制
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\****\MaxSize
更换日志存储位置
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\****\File

(36)Schedluler(任务计划)服务
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SchedulingAgent

(37)禁止建立空连接(对匿名连接的限制):

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\restrictanonymous 设置为1

(38)wins客户端启用wins代理
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\NetBT\Parameters

EnableProxy 类型DWORD

(39)
HKEY_CURRENT_USER\Software\Microsoft\office\
微软office软件相关选项

(40)tcp半连接数

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters\TcpMaxHalfOpenRetried
---可以定义TCP半连接数的大小(适用于win2000系统)

HKEY_LOCAL_MACHINESYSTEM\CurrentControlSet\Services\Tcpip\Parameters\EnableConnectionRateLimiting
若无EnableConnectionRateLimiting键值表示你的系统没有tcp/ip连接限制,如有且值为0也表示你的系统没有tcp/ip
连接限制,值为1表示受tcp/ip连接限制,将其修改为0即可取消限制。(适用于vista sp2 和win7)

(4

1)TCP连接延迟


HKEY_LOCAL_MACHINESYSTEM\CurrentControlSet\Services\Tcpip\Parameters\TcpTimedWaitDelay

TcpTimedWaitDelay默认是1e(30秒)(win7及其2008)

(42)tcp用户最大使用端口
HKEY_LOCAL_MACHINESYSTEM\CurrentControlSet\Services\Tcpip\Parameters\MaxUserPort

(43)关闭无效网关的检查
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\EnableDeadGWDetect"=dword:00000000
(2000、xp)
(44)不允许释放NETBIOS名
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\"NonameReleaseOnDemand"=dword:00000001
(2000sp2、xp)

(45)禁止Guest账户访问日志
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Eventlog\
将其3个子键Application、Security、System 下面的RestrictGuestAccess值改为1
(46)禁止显示上一次登陆的用户名
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\winlogon
修改Dontdisplaylastusername为1
(47)禁用文件名创建
取消windows server2008和windows server2003为兼容以前微软文件名命名方式带来的性能损失
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\FileSystem\
设置NtfsDisable8dot3NameCreation为1
当然这个键项下面还有其他一些关于文件系统方面的设置,如是否加密,扩展名等
(48)取消因为使用例如DOS、Win16、0S/2、Posix应用系统下面的程序子系统可能带来的隐患
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\SubSystems
将Optional改为0000
删除OS2、posix项
同时找到:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WOW 删除其下的子键

找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
删除其下的OS2libpath项

找到HKEY_LOCAL_MACHINE\software\Microsoft\os /2 Subsystem for nt 删除其下所有子键
(49)不支持IGMP协议
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\
修改IGMPLevel 为0(50)修改终端服务的默认端口
找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp
修改PortNumber为变更后的值
同时找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
修改PortNumber为变更后的值要记得和上面一样


(50)防护系统不受一定拒绝服务的攻击
防止受SYN泛滥攻击
找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\
添加
DWORD值
SynAttackProtect为2
Tcpmaxhalfopen值为100
Tcpmaxhalfopenedretried的值为80
Tcpmaxportsexhausted为5

(51)加强防备拒绝服务攻击
终止半开放的TCP连接数,找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\
条件DWORD Tcpmaxconnectresponseretransmission为3

(52)TCP空链接计时器
找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\
添加DWORD Keepalivetime为300000,计数单位为毫秒,即为5分钟
(53)不轻易改变MTU的值
找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\
设置DWORD :EnablePMTUDiscovery为0

(54)禁止IP路由
找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\
修改DWORD :IPEnableRouter为0

(55)禁止光盘自动启动
[HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\polices\Explorer
设置Nodrivetypeautorun为149

(56)只有本地用户才可以访问软盘

找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
修改allocatefloppyes为1

(57)只允许本地用户可以访问光盘

找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
修改AllocateCDRoms为1

(58)关机时清除页面文件

找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management
修改DWORD :ClearPageFileAtShutdown为1

(59)HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Seting\MaxConnectionPerServer ======IE每一个服务连接数

(60)

完全禁止系统模认工享
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\DelegateFolders\{59031a47-3f72-44a7-89c5-5595fe6b30ee}]

(61)

3389替换服务-----------------------
中修改[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TermService]
c:\winnt\system32\copy termsrv.exe service.exe
c:\winnt\system32\cd..
c:\winnt\sc \\127.0.0.1 config Alerter binpath= c:\winnt\system32\service.exe

(62)、
现在很多优化软件都有“已安装软件检测”和“软件卸载”的功能,比Windows自带的“添加或删除程序”功能要强大,其实就是扫描了下面的注册表项,有兴趣的网友可以分别展开来研究一下。
HKEY_CLASSES_ROOT\Installer\Products
HKEY_CURRENT_USER\Software\Microsoft\Installer\Products
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

(63)、
让注册表编辑器失忆:先找到
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit
然后右键单击Regedit,选择权限->Administrator,勾选上“拒绝”,如图所示,最后确定。

(64)、
windows文件保护
-描述
路径:SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon:SFCDisable
windows文件保护功能

-目前异常状况
注册表键值为空

-正常时
注册表键值为00000000

(65) 安全中心

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Security Center

(66) 右键扩展
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions

三 : 注册表中启动键值

.注册表中启动键值 1. 什么是自启动,什么是被动启动
自启动,想必大家再熟悉不过了。很多木马,病毒为了使自己在电脑重启后,依然能存活在主机中,使用各种猥琐的自启动方式,不过用的最多的还是“HKLM\Software\Microsoft\Windows\CurrentVersion\Run”,事实上,这个注册表键基本上都被木马,病毒用烂了。当然还有一些大家不熟悉的注册表键也可以用来实现自启动。本文第二部分将揭示这些注册表键。
“被动启动”,原本没有这个名词,是我自己提出的,呵呵!欢迎拍砖!为什么提出这个“被动启动”呢?主要是考虑到有些注册表键可以用来实现一些程序的依附启动或间接触发启动,不像自启动那样,随系统启动而自动的运行起来。因此我称这些注册表键的启动方式为被动启动。举个例子吧,“HKCR\exefile\Shell\Open\command”,如果你改这个注册表键的默认值为你的程序路径的话,知道这意味着什么吗?这意味着,当你open任意1个exe文件时候,这个exe不会运行,而是执行你刚才指定的程序。这就是说,你的程序的运行不是随系统自启动的,而是由于用户open了exe文件,而触发启动的。当然了,关于被动启动的注册表键还有很多很多,要比自启动多的多,被动启动最大的作用就是可以唤醒潜伏在系统系统中的病毒,木马,一旦这些病毒,木马活过来后,即可再次想方设法让自己永久的存在于整个系统的各个角落里。同样,在本文的第二部分对这些被动启动,将有详细的介绍和说明。
本文下面将在罗列清楚目前我所知的自启动和被动启动的基础上,提出防御思路,并实现1个防御系统,供大家参考,欢迎讨论!

2. 注册表中哪些涉及自启动,哪些涉及被动启动
2.1 自启动相关注册表键
2.1.1 Run系列
HKLM\Software\Microsoft\Windows\CurrentVersion\Run
HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKLM\Software\Microsoft\Windows\CurrentVersion\RunServices
HKLM\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKCU\Software\Microsoft\Windows\CurrentVersion\Run
HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce
这些应该是最常见的自启动方式。
Winlogon系列
HKLM\Software\Microsoft\Windows NT\CurrentVersion\WinlogonShell
HKLM\Software\Microsoft\WindowsNT\CurrentVersion\Winlogon\Notify
HKLM\Software\Microsoft\Windows NT\CurrentVersion\WinlogonUserinit
HKLM\Software\Microsoft\Windows NT(www.61k.com)\CurrentVersion\WinlogonUIHost
HKCU\Software\Microsoft\Windows NT\CurrentVersion\WinlogonShell
HKCU\Software\Microsoft\WindowsNT\CurrentVersion\Winlogon\Notify
HKCU\Software\Microsoft\Windows NT\CurrentVersion\WinlogonUserinit
HKCU\Software\Microsoft\Windows NT\CurrentVersion\WinlogonUIHost
这些是系统登陆时,自启动相关的一些注册表键和valuename。
Services系列
HKLM\SYSTEM\CurrentControlSet\Services
HKLM\SYSTEM\CurrentControlSet\Services\VxD
包括服务和驱动、内核模块的加载
Session Manager系列
HKLM\System\ControlSet001\Control\Session Manager BootExecute
HKLM\System\ControlSet002\Control\Session Manager BootExecute
HKLM\System\CurrentControlSet\Control\Session ManagerBootExecute
HKLM\System\ControlSet001\Control\Session Manager\KnownDlls
HKLM\System\ControlSet002\Control\Session Manager\KnownDlls
HKLM\System\CurrentControlSet\Control\SessionManager\KnownDlls
HKLM\System\CurrentControlSet\Control\SessionManager\Environment ComSpec
其中BootExecute的值类型为REG_MULTI_SZ,并且指定的程序只能调用NativeAPI函数,是最基本的Windows应用程序,否则不能正常运行。
Windows Load
  HKCU\Software\Microsoft\Windows Nt\CurrentVersion\Windowsload
  当把load的值改为自己程序路径时,下次开机,就会伴随系统一起启动。
2.2 被动启动相关注册表键
2.2.1 文件关联操作系列
HKCR\exefile\Shell\Open\command
HKCR\comfile\Shell\Open\command
HKCR\batfile\Shell\Open\command
HKCR\piffile\Shell\Open\command
HKCR\scrfile\Shell\Open\command
HKCR\cplfile\Shell\Open\command
。。。。。。
当然除了这些文件以外,还有很多格式的文件,例如txt,jpg,bmp等。另外除了打开操作,还有打印等操作,也可以实现被动启动。
2.2.2 Command Processor
HKCU\Software\Microsoft\Command Processor AutoRun
当把AutoRun的值指定为你的程序时,那么以后在启动cmd进程之前会首先启动你指定的程序。如果要使你的程序的隐蔽性更好一些,可以做成1个没有GUI界面的程序。这样用户根本不会觉察。
2.2.3 LSA系列
HKLM\System\CurrentControlSet\Control\Lsa AuthenticationPackages
HKLM\System\CurrentControlSet\Control\Lsa NotificationPackages
HKLM\System\CurrentControlSet\Control\Lsa Security Packages
这3个valuename的值类型是REG_MULTI_SZ,值所指定的程序必须是动态链接库,dlll形式。另外LSA是LocalSecurity Authority,是和本地安全认证相关的。
2.2.4 屏幕保护程序
HKCU\ControlPanel\desktop SCRNSAVE.EXE
事实上,我们经常看到的屏幕保护程序scr文件也是1种可执行文件,可以直接改exe文件为scr文件。SCRNSAVE.EXE这个valuename的值描述的是当前屏幕保护程序的路径,一旦被设置成1个假冒的scr文件木马,那么这个木马就会在下次系统触发屏幕保护时被动启动。
2.2.5 Internet Explorer系列
HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\BrowserHelper Objects
HKLM\Software\Microsoft\Internet Explorer\Explorer Bars
HKCU\Software\Microsoft\Internet Explorer\Explorer Bars
HKCU\Software\Microsoft\Internet Explorer\URLSearchHooks
HKCU\Software\Microsoft\Internet Explorer\Toolbar
HKCU\Software\Microsoft\Internet Explorer\Extensions
HKLM\Software\Microsoft\Internet Explorer\ActiveXCompatibility
HKCU\Software\Microsoft\Windows\CurrentVersion\Ext\Stats
在Browser HelperObjects键下添加1个新键,即可注册1个新的BHO,新建的名称必须是{CLSID}这样的形式。这样下次Browser启动时,你的dll就被加载到进程中。
其他键和Browser HelperObjects键类似。
2.2.6 AppInit_Dlls
HKLM\Software\Microsoft\Windows NT\CurrentVersion\WindowsAppInit_Dlls
2.2.7 Explorer系列
HKLM\Software\Classes\protocols\Filter
HKLM\Software\Classes\protocols\Handle
HKLM\Software\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayload
HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\SharedTaskScheduler
HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\SharedExecuteHooks
HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\ShellFolder
HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers
2.2.8 镜像劫持被动启动
HKLM\Software\Microsoft\WindowsNT\CurrentVersion\Image File Execution Options
在此键下建立1个新键,新键的名称就是你要劫持的程序名称,例如avp.exe,然后在这个新键下添加1个valuename为Debugger的值,值就是你指定的木马程序的路径,这样下次再运行avp.exe之际,你的程序就会运行,而avp.exe是不会运行的。
2.2.9 RPC系列
HKLM\Software\Microsoft\Rpc\ClientProtocols
HKLM\Software\Microsoft\Rpc\SecurityService
2.2.10 WOW系列
HKLM\Software\CurrentControlSet\Control\WOWcmdline
HKLM\Software\CurrentControlSet\Control\WOWwowcmdline
WOW是Windows OnWindows,WOW技术使得在xp等NT内核操作系统上可以运行那些为旧版操作系统开发的应用程序,这样我们便可以正常的运行Windows98的甚至是Windows3.2的计算器程序等。

以上是我整理的关于自启动和被动启动的注册表键,有些比较好用,有的使用起来比较麻烦,需要多做实验,多测试。

3. 防御思路
为了不让病毒,木马使用这些自启动和被动启动方法,需要在注册表这一层面来防御,事实上就是1个RD,拦截到注册表操作时,只要检查操作的注册表有没有涉及到我们上面提到的注册表,如果发现操作的是上面的那些注册表键的话,拦截之,并询问用户如何处理。提供给用户六种选择:加入白名单、放行1次、放行至关机前、禁止1次、关闭进程、删除程序。
那么要Hook哪些注册表操作函数呢?我Hook的是一下这几个Native API函数:
NtCreateKey
NtDeleteKey
NtDeleteValueKey
NtRestoreKey
NtSetValueKey
NtLoadKey
NtLoadKey2
NtReplaceKey
前3个就不说了,大家太熟悉了。NtRestoreKey函数的作用是把1个hive文件中的注册表键和值导入到相应的注册表中;NtReplaceKey和NtRestoreKey差不多,只不过多了1个功能,就是它可以把被覆盖的注册表键和值备份到1个指定的hive文件中去。
另外,还要防止程序绕过NativeAPI,而调用CM开头的函数。这样系统就比较完善了,不易被绕过,一旦操作上面的注册表键,就会被拦截。如何防御程序调用CM开头的函数,大家可以思考下。

4. 防御系统的实现
本系统的实现是基于上期我写的1个程序——“程序行为监视器”。上次写的那个程序只有1个监视功能,没有拦截功能。要加入拦截功能需要重点考虑以下3个问题:
4.1 被保护注册表信息文件设计
该文件是用来记录那些被保护的注册表键和valuename,还可以记录下操作该注册表键的这种恶意行为的评分,如果1个程序的恶意行为评分超过一定阈值还可以起到报警的作用。另外还可以记录该行为的一些简单描述信息。我是这样设计该文件的:文件的每一行记录1个被保护的注册表。
Key ValueName Score Info
字段之间用TAB字符连接,于是在程序中就需要定义如下结构体:
//被保护注册表信息
typedef struct {
char key[MAXPATHLEN];//键名
char valuename[MAXVALLEN];//值名
int score;//评分
char info[MAXINFOLEN];//说明信息或提示信息
DWORD next;//下1个单元的指针
}REG_PROTECT,*PREG_PROTECT;
REG_PROTECT *reg_protect;//所有结构体的指针,也是链表的头指针
REG_PROTECT *current_reg_protect;//当前项目指针
int reg_protect_num=0;//被保护的注册表个数

4.2 白名单文件设计
白名单文件是用来保存用户放行并加入白名单的那些程序,和上面的那个文件类似,没一行代表一项白名单程序:
Path Type
字段之间用TAB字符连接,于是在程序中就需要定义如下结构体:
//白名单结构体
typedef struct{
char path[MAXPATHLEN];//程序完整路径
DWORD type;//类型,0-放行;1-放行1次;2-放行到关机前
DWORD next;//下1个单元的指针
}WHITE_LIST,*PWHITE_LIST;
WHITE_LIST *white_list;//所有结构体的指针,也是链表的头指针
WHITE_LIST *current_white_list;//当前项目指针
int white_list_num=0;//白名单中项目的个数

4.3 前台程序和后台驱动的交互
通信交互问题事实上在上期中的程序监视器中已经解决了,这里再提出来,主要是考虑到和上次的通信方式稍有不同,上次的通信主要是因为前台从后台获取Log信息,并实时的显示出来;而这次是要当驱动拦截到恶意行为后,通知前台,并让前台提示用户,询问用户如何处理,并接受用户的选择,把用户的选择返回给后台驱动,驱动再来做相应的工作。
为了使整个过程简单、高效。需要在前台开辟1个交互缓冲区,interactiveBuff,该缓冲区的使用规范如下:


5. 系统演示
系统启动后,点击“开启防御”,可以使系统处于防御状态,拦截上面提到的八个关于注册表的操作函数,并记录操作日志,显示在行为列表中,如下图所示:

一旦发现不信任的程序在操作受保护的注册表时,弹出一下对话框,提示用户,并询问用户如何处理,用户可以选择加入白名单,放行一次,放行至关机前,禁止操作,关闭进程,删除程序这六个处理方式。如下图所示:

用户还可以自主的管理白名单程序,可以添加1个新的程序,或者删除1个已经存在于白名单中的程序。如下图所示:


6. 总结
本文整理了关于自启动和被动启动相关的注册表内容,在整理的过程中不免有所遗漏,或是有不妥之处,欢迎与我讨论,交流学习!
另外在整理的过程中,还发现很多自启动和被动启动方式,在一些杀软中并没有设防,这给病毒,木马留下了很大的活动空间。希望本文能引起杀软的注意。

本文标题:隐藏注册表中的键值-如何用注册表隐藏自定磁盘盘符?
本文地址: http://www.61k.com/1139559.html

61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1