Windows注册表修改实例完全指导手册.docx
- 文档编号:10876297
- 上传时间:2023-02-23
- 格式:DOCX
- 页数:15
- 大小:22.84KB
Windows注册表修改实例完全指导手册.docx
《Windows注册表修改实例完全指导手册.docx》由会员分享,可在线阅读,更多相关《Windows注册表修改实例完全指导手册.docx(15页珍藏版)》请在冰豆网上搜索。
Windows注册表修改实例完全指导手册
Windows注册表修改实例完全手册(下)
李进
5.防范黑客攻击(适用范围:
Windows9x/Me/NT/2000/XP)
注册表中有些参数,设置合适的话可以防范一些黑客技术的攻击。
DoS(拒绝服务)攻击是一种常见的黑客攻击方式,其中SYN淹没攻击是DoS中比较常见的。
我们在这里给出一个防范SYN攻击的设置方法。
(1)减小等待SYN-ACK包的时间
TCP在发送SYN-ACK包后,首先等待3秒钟,如果仍然没有回应,则将时间加大一倍,从3秒增大到6秒,再重发一次SYN-ACK,然后继续等待回应。
重发的次数定义在注册表中的一个双字节值项TcpMaxConnectResponseRetransmissions里,该值项位于注册表项HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters中。
默认值为3,表示重发次数为3次,先等待3秒后发送一次,然后等待6秒后发送一次,然后等待12秒发送一次,最后等待24秒,如果仍然接收不到回应,不再继续发送SYN-ACK,而是清除此次连接,并释放所有资源。
这样总共经过了45秒钟。
值为2表示重发次数为2次,总共的耗费时间为21秒,值为1表示重发次数为1次,总共的耗费时间为9秒。
0表示不重发SYN-ACK,耗费时间为3秒。
耗费时间越短,SYN攻击造成的影响就相应的要小一些。
此值项的默认值为3次。
如果系统容易受到SYN淹没攻击,可以将此值项修改为2。
(2)增大NetBT的连接块增加幅度和最大数目
NetBT(基于TCP/IP的NetBIOS)使用139号TCP端口,一般用在微软网络中,例如文件和打印服务。
在建立连接时,如果BetBT发现可用的连接块数目小于2个,会自动的再分配可用连接块。
NetBT每次增加的连接块的数目定义在注册表中的双字节值项BacklogIncrement中,该值项位于注册表项注册表项HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBt\Parameters下。
默认值为3,最小值为1,最大值位20。
增大此值可以在有众多连接时提升性能。
每个连接块消耗87个字节。
NetBT最多可以使用的连接块的数目定义在注册表项中双字节值项MaxConnBackLog中,默认为1000个,最大值可以取到40000个。
可以适当的增大此参数的值以允许更多的同时连接。
(3)配置动态Bakclog(适用于WindowsNT/2000/XP)
对于使用Sockets的Windows服务,如FTP,可以通过配置动态Backlog来提升在网络繁忙时的性能。
使用动态Bakclog,系统会预先分配一定的资源用于建立连接,这样就省去了给连接分配资源的时间和CPU消耗。
如果需要再增加资源,可以一次性的增加若干个连接所需的资源空间。
在注册表项HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AFD\Parameters中新建下面的双字节值项:
EnableDynamicBacklog,该值项的默认值为0,表示是否允许动态Backlog。
默认值为0。
对于网络繁忙或者易遭受SYN攻击的系统,建议设置为1,表示允许动态Backlog。
MinimumDynamicBacklog,该值项的默认值为0,表示动态Backlog分配的自由连接的最小数目。
当自由连接数目低于此数目时,将自动的分配自由连接。
默认值为0,对于网络繁忙或者易遭受SYN攻击的系统,建议设置为20。
MaximumDynamicBacklog,该值项的默认值为0,表示定义最大"准"连接的数目。
"准"连接包括自由连接和半连接。
对于网络繁忙或者易遭受SYN攻击的系统,应该设置此值,大小取决于内存的多少。
一般来说,每32M内存最大可以增加5000个。
DynamicBacklogGrowthDelta,该值项的默认值为5,表示定义每次增加的自由连接数目。
对于网络繁忙或者易遭受SYN攻击的系统,建议设置为10。
(4)启用SYN淹没攻击保护特性(适用于Windows2000/XP)
Windows2000/XP针对SYN淹没攻击提供了一个叫做SYN淹没攻击保护的特性。
当出现了SYN淹没攻击的征兆时,Windows2000/XP自动降低对那些无法确认的连接请求的响应时间。
在注册表项HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters中新建下面的双字节值项:
SynAttackProtect,该值项的默认值为0,表示定义是否允许SYN淹没攻击保护特性。
保证该值为1,表示允许启用SYN淹没攻击保护特性。
TcpMaxConnectResponseRetransmissions,该值项的默认值为3,表示定义了对于连接请求回应包的重发次数。
如果该值为1,则SYN淹没攻击不会有效果,但是这样会造成连接请求失败几率的升高。
SYN淹没保护特性只有在该值大小大于或等于2时才会被启用。
该值的默认值为3。
以上两个值项定义了是否允许SYN淹没攻击保护。
下面三个值项则定义了激活SYN淹没攻击保护特性的条件。
当满足下面三个值项定义的条件之一时,系统会自动激活SYN淹没攻击保护。
TcpMaxHalfOpen,该值项的默认值为100或者500,表示定义了能够处于SYN_RECEIVED状态的TCP连接的数目。
由于SYN淹没攻击通常会造成大量的SYN_RECEIVED状态的TCP连接,因此保护特性将该值作为SYN淹没攻击发生的一个征兆。
当处于SYN_RECEIVED状态的TCP连接的数目超过该值项的定义时,系统认为SYN淹没攻击发生了,自动启用保护特性。
对于Windows2000Server,该值项默认值为100。
对于Windows2000Professional,该值项默认值为500。
Professional之所以比Server的值高,是因为Professional通常不用作服务器,也就不会受到SYN淹没攻击。
TcpMaxHalfOpenRetried,该值项的默认值为80或者40,表示定义了在重新发送连接请求后,仍然处于SYN_RECEIVED状态的TCP连接的数目。
当这种状态的TCP连接的数目超过该值项的定义时,系统认为SYN淹没攻击发生了,自动启用保护特性。
对于Windows2000Server,该值项默认值为80。
对于Windows2000Professional,该值项默认值为400。
TcpMaxPortsExhausted,该值项的默认值为5,表示定义了系统拒绝连接请求的次数。
当系统保留的连接端口都被使用掉时,系统将拒绝所有的连接请求。
SYN淹没攻击通常会发生这种情况,因此保护特性将该值作为SYN淹没攻击发生的一个征兆。
当被拒绝的连接请求的数目超过该值项的定义时,系统认为SYN淹没攻击发生了,自动启用保护特性。
7.检查Windows启动时的程序(适用范围:
Windows2000/XP)
在Windows环境下,由于病毒必须获得CPU的控制权,因此很多病毒都需要在Windows启动后,自动地运行起来。
另一方面,越来越多的病毒采用了高级语言的形式,象宏病毒,采用的是VB语言,本身不能直接由CPU来执行,必须由相关程序解释执行,因此它们必须在操作系统正常启动后,才能加载自身,进行病毒传播。
因此说,很多病毒必须在Windows启动后自动地运行起来,并且是依赖于Windows的自动启动程序的功能。
这是这些病毒的一个特点,也是一大弱点。
我们可以根据这个特点,分析Windows启动时有那些程序自动运行,通过检查这些程序来防范病毒的侵袭。
(1)注册表项HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
该项下存放了WindowsNT/2000/XP的服务程序。
下面的每一个子项对应于一个服务:
ImagePath值项存放了该服务的程序文件路径。
这些服务都有一个Start值项。
值为0,表示由核心装载器装载;值为1,表示由I/O子系统装载。
Start值为0和1的,都是非常低级和关键的Windows服务,它们必须正常启动,WindowsNT/2000/XP才能继续启动。
通常病毒不会将自己放在这里面,因为这时候WindowsNT/2000/XP只装载了核心部分,只有最基本的功能。
Start值为2,表示自动启动,值为3,表示手工启动,值为4,表示禁止启动。
这三类服务,可以在"控制面板"→"管理工具"→"服务"中查看到。
我们需要检查的是,那些Start值为2的服务,其对应的程序文件(ImagePath值项定义)是否可疑。
(2)注册表项HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager
该项下存放了会话管理器(Smss.exe)的信息。
在WindowsNT/2000/XP的内核启动阶段,需要启动该项下定义的几个程序。
在REG_MULTI_SZ类型的值项BootExecute中,定义了会话管理器装载服务前需要运行的程序。
默认值为AutoCheckautochk*和Dfsinit。
该默认值表示运行磁盘检查程序,以及启动DFS文件系统的初始化程序。
我们需要检查的是,值项BootExecute存放的是否是默认的执行文件,是否还定义了其他的执行程序。
(3)注册表项HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\Userinit
该值项类型为字符串值,定义了用户注册进入时执行的初始化程序。
在用户注册时,注册管理程序(Winlogon)启动该初始化程序,默认值是Userinit.exe。
该程序首先运行注册脚本,建立网络连接,然后启动用户界面程序(Explorer.exe)。
用户可以替换该初始化程序为自己的初始化程序(当然,病毒也可以做到)。
一般地,用户自己的初始化程序可以在处理完自己需要进行的工作后,再调用Userinit.exe程序即可。
我们需要检查的是,Userinit值项的值是否是Userinit.exe。
同时检查\Winnt\System32下的Userinit.exe文件的大小和时间是否是正常的。
(4)注册表项HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\Shell
该值项类型为字符串值,定义了用户界面程序,默认值为Explorer.exe。
正常情况下,注册管理程序(Winlogon)启动Userinit定义的初始化程序,该初始化程序会启动用户界面程序,因此不需要运行Shell值项定义的程序。
如果注册管理程序没有能成功启动Userinit定义的初始化程序,则注册管理程序会过来启动该Shell值项定义的用户界面程序。
我们需要检查的是,Shell值项的值是否是Explorer.exe。
(5)注册表项HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\System(适用于WindowsNT)
该值项类型为字符串值,该值项中存放了安全管理器程序,默认值为Lsass.exe。
安全管理器就是WindowsNT启动时,或者屏幕保护后,要求输入用户和密码的画面。
用户可以替换该安全管理器程序。
我们需要检查的是System值项的值是否是Lsass.exe。
(6)注册表项HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
在该项下可以有若干个字符串类型的值项,每个值项的名称从1开始,值为程序或者文档的名称。
在用户注册进入Windows时,该项下定义的程序将被启动起来。
例如该项下有两个值项,第一个是1,值为Notepad.exe,第二个是2,值为C:
\readme.doc,则在用户注册进入Windows2000时,系统会首先运行起Notepad.exe程序,然后会使用DOC的关联程序打开C:
\readme.doc文档。
我们需要检查的是,如果定义了自动启动程序,则查找该程序是哪个软件对应的,是否为可疑程序。
默认情况下,该注册表项下应该为空。
(7)注册表项HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
该项与HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run的作用一样,不同之处在于,由于它位于HKEY_LOCAL_MACHINE下,所以它将应用于所有的用户。
在启动顺序上,系统首先启动HKEY_LOCAL_MACHINE下的Run中的程序,再去启动HKEY_CURRENT_USER下Run中的程序。
(8)注册表项HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion下的Run、RunOnce、RunEx和RunOnceEx子项(适用于Windows9x/Me/NT/2000/XP)
由于是位于HKEY_CURRENT_USER下,因此该项只适用于当前这个用户,不适用于其他的用户。
在用户注册进入Windows系统时,自动地运行该项下定义的程序或文档。
其中Run子项中定义了每次系统启动时都需要运行的程序,值项类型是字符串值,值项的名称是该运行程序的说明,值项的值是程序的名称;RunOnce子项中定义了只运行一次的程序,在该项下的值项中定义的程序运行起来后,该项下的值项就会被删除掉,这通常用于程序的安装过程;RunEx和RunOnceEx的作用和Run、RunOnce是一样的,是Run、RunOnce的扩充形式。
(9)注册表项HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion下的Run、RunOnce、RunEx和RunOnceEx子项(适用于Windows9x/Me/NT/2000/XP)
该项和HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion下的Run、RunOnce、RunEx和RunOnceEx作用一样,不同之处在于,由于它位于HKEY_LOCAL_MACHINE下,所以它将应用于所有的用户。
在启动顺序上,系统首先启动HKEY_LOCAL_MACHINE下定义的启动工程,再去启动HKEY_CURRENT_USER下定义的启动工程。
我们需要检查的是,对于默认情况以外定义的程序,需要检查其对应的软件。
很多软件将自动启动程序放在注册表中的这个位置。
例如NortonAntivirus防毒软件,就会在注册表项HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run下新建一个值项NPSEventChecker,值为C:
\PROGRA~1\Navnt\npscheck.exe。
下表中列出了默认情况下,Windows系统中Run下的自动运行工程。
(表图11)
(10)检查非注册表部分
首先检查启动文件和磁盘引导扇区。
对于Windows9x/Me,启动文件是启动盘目录下的IO.sys和C文件。
同时,还包括Autoexec.bat文件中定义的程序文件,以及Config.sys文件中装载的程序文件。
对于WindowsNT/2000/XP,启动文件是启动盘目录下的Ntldr,N、Ntbootdd.sys(如果boot.ini文件使用SCSI语法)、Bootsect.dos(如果使用了多重启动,对应于启动到DOS环境),以及Winnt目录下的Ntoskrnl.exe(核心程序文件)和Hal.dll(硬件抽象层)。
其次,对于Windows9x,还需要检查Win.ini文件和System.ini文件。
Win.ini文件中的"run="和"load="行,定义了Windows9x启动时需要装载的程序。
最后,需要检查"开始"菜单中"程序"中的"启动"程序组,"启动"程序组中存放了Windows正常启动起来后,需要启动的程序。
8.禁止旧版本的"自动运行"程序列表(适用范围:
Windows2000/XP)
注册表项HKEY_LOCAL_MACHINE_\Software\Microsoft\Windows\CurrentVersion\Run和HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce下存放的是"自动运行"的程序列表,它们是旧版本的"自动运行"程序列表,在Windows95/98/NT中就已经有了。
在注册表中有两个值项,可以禁止这两个旧版本列表起作用,替代它们的是RunEx和RunOnceEx注册表项。
这两个值项位于注册表项HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer下。
(表图12)
9.禁止远程访问光盘和软盘(适用范围:
WindowsNT/2000/XP)
在C2级别的安全要求中,必须对可移动介质的安全作保护,它要求当本地用户在使用计算机时,光盘和软盘称为本地用户的专有资源,网络上的其他用户,包括系统管理员,都不能够访问光盘和软盘。
这是因为此时使用的可移动介质,通常是本地用户私人的,因此不应该给其他人看到。
下表的值项存放在注册表项HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Winlogon中。
(表图13)
10.设定口令的最小长度(适用范围:
Windows9x/Me/NT/2000/XP)
默认情况下,口令可以设置为空。
为了加强安全性,我们可以强行指定口令的最小长度。
在注册表项HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Network下,创建二进制类型的值项MinPwdLen,并修改其值为口令的长度,例如6。
这样,用户在设定口令时,最少要设定6位的长度。
三、提升Windows系统性能
通过注册表,我们可以定制Windows的功能,使之更加符合我们的习惯和需求。
1.定制Windows的登录(适用范围:
Windows9x/Me/NT/2000/XP)
(1)开机后自动登录
为了使用WindowsNT/2000/XP,我们必须输入一个用户名称和用户口令来登录。
在Windows9x/Me中,如果登录方式设置为"Microsoft网络登录",在进入Windows时,也需要输入用户名和口令,否则将不能访问网上邻居中的计算机。
为了方便起见,我们可以将用户名和用户密码存放到注册表中,这样Windows启动时,自动使用注册表中的用户名和用户密码来登录,而不用用户手工输入。
对于WindowsNT/2000/XP,在注册表项HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Winlogon下新建值项。
对于Windows9x/Me,在注册表项HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Winlogon下新建值项。
下表中详细列出新建的值项。
(表图14)
(2)在登录前显示自定义的信息
我们可以在Windows启动之前显示一些信息,以给用户一些提示或是警告。
对于WindowsNT/2000/XP,在注册表项HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Winlogon下新建值项。
对于Windows9x/Me,在注册表项HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Winlogon下新建值项。
下表中详细列出新建的值项。
(表图15)
(3)必须使用有效用户注册(适用于Windows98)
在Windows98中,当出现输入用户名称和密码的画面时,可以单击"取消"按钮,或者按下ESC键,跳过这一步直接进入到Windows中。
通过修改注册表,可以禁止这种未授权的使用,而要求只有在Windows98中设置的用户才可以进入。
在注册表项HKEY_LOCAL_MACHINE\Network\Logon下,新建一个双字节字值项MustBeValidated,修改其值为1。
这样,在下次启动时,必须输入有效的用户名和用户密码才可以进入到Windows98中。
注意:
在Windows98SE中,该修改方式不适用。
如果设置了该选项,Windows98SE将从域服务器上去验证该用户,因为找不到域服务器,因此无法正常登录到Windows98SE中。
(4)启动时不要求输入口令(适用于Windows9x/Me)
Windows9x/Me启动时往往要求输入用户名和口令。
如果只是自己使用,虽然可以按ESC键或者"取消"按钮跳过这一步,但还是挺麻烦。
在作此修改前请首先将网络登录方式改为Windows登录:
进入控制面板中的网络项,将"主网络登录"方式改为Windows登录。
然后将默认用户的密码改为空。
将用户的密码设置为空可以采用如下方法:
方法1:
通过修改注册表来更换用户名
在Windows9x/Me中,上次使用者的用户名存放在注册表的HKEY_LOCAL_MACHINE\Network\Logon下,名称Username。
我们可以将这个用户名修改为一个新的用户名。
重新启动后,Windows会认为该用户是新的用户,要求输入用户口令。
不要输入口令,直接按"确定"按钮。
这样,在下次启动时,就不会要求输入用户名和口令。
方法2:
删除口令文件
进入到C:
\windows目录下。
找到该用户的口令文件。
如用户名称为lijin,则口令文件为lijin.pwl。
删除该文件。
重新启动Windows9x,Windows9x会认为该用户是新的用户,要求输入用户口令。
不要输入口令,直接按"确定"按钮。
这样,在下次启动时,就不会要求输入用户名和口令。
方法3:
注册新用户
首先"开始"菜单中选择"注销",在出现的注册画面中,使用新的用户名,并且不输入口令,直接按"确定"按钮。
Windows会自动生成该用户的信息。
在下次启动时,系统会使用新的用户注册进入Windows。
方法4:
修改注册表禁止使用口令文件
注册表中的一个值项控制着是否使用口令文件(PWL文件)。
如果禁止使用口令文件,则Windows启动时不会要求输入口令。
在注册表项HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Network下,新建一个双字节值项D
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Windows 注册表 修改 实例 完全 指导 手册