Windows注册表安全技巧
配置注册表提高系统安全
通过注册表,用户可以轻易的添加、删除、修改windows系统内的软件配置信息或硬件驱动程序,这不仅方便了用户对系统软硬件的工作状态进行适时的调整,同时注册表也成为入侵者攻击的目标,通过注册表种植木马,修改软件信息,甚至删除、停用或改变硬件的工作状态。
注册表根项说明
HKEY_LOCAL_MACHINE包含关于本地计算机系统的信息,包括硬件和操作系统数据。
HKEY_CLASSES_ROOT包含由各种OLE技术使用的信息技术和文件类别关联数据。
HKEY_CURRENT_USER包括环境变量、桌面设置、网络连接、打印机和程序首选项。
HKEY_USERS关于动态加载的用户配置文件和默认的配置文件的信息。有些信息和HKEY_CURRENT_USER交叉出现。
HKEY_CURRENT_CONFIG包含在启动时由本地计算机系统使用的硬件配置文件的相关信息。
"远程访问注册表"可能存在风险
1、 能连接远程注册表的前提。
(1)、确保远程注册表服务正在运行
单击"开始",指向"设置"、“控制面板”、“管理工具”、然后双击"服务"。
(2)、在主网络适配器上启用文件和打印共享
单击"开始",指向"设置",“控制面板”、“网络连接"以及"本地连接”。确保启用了"Microsoft网络的文件和打印机共享",也就是说,选中了该复选框。
2、 远程注册表连接过程。
1、 连接远程计算机 – net use \\192.168.1.10 “password” /user:“administrator”
2、 打开注册表 – 文件 – 连接网络注册表
注册表安全管理
在windows系统中,对于注册表的安全管理可以分为:
1、设置注册表文件的访问权限
2、注册表的审核方法
(1)、设置注册表文件的访问权限
注册表的安全级别在默认情况下是比较高的。对于整个注册表而言,管理员具有完全访问的权限,其他用户只拥有与自己账户相关的权限。对拥有适当权限的一些用户可以指派特权。
(2)、注册表的审核
通过审核管理员可以查看曾对注册表进行编辑过的用户,以及该用户是在本地进行编辑的还是从远程位置上进行编辑的,即可以追踪那些对注册表项的有关操作。
激活审核机制的基本操作步骤如下:
1)、打开注册表编辑器
2)、若希望对某项进行审核机制的设置,在对应项上点击,选择"权限",打开对应项的权限对话框。
3)、单击"添加",系统将打开"选择用户和组"对话框。
审核事件:
注册表安全设置项
1、修改TTL值
2、防止ICMP重定向报文攻击
3、修改注册表防御DOS攻击
4、禁止默认共享之禁止IPC空连接
5、限制自身注册表使用
6、欺骗性隐藏文件以及文件夹
7、映像劫持
8、限制用户使用指定程序
9、恢复对注册表的错误修改
修改TTL值
攻击者为了得到入侵的第一手资料,通常会先判断目标计算机的操作系统类型。通过Ping目标计算机ip,由返回的TTL(存活时间)值来判断是什么操作系统。
打开注册表,展开:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
改变DefaultTTL键值,WindowsXP的默认键值为64。
修改注册表防御DOS攻击
利用简单的修改注册表提高系统对于DOS攻击的抵抗能力。
打开注册表,展开:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
找到SYNATTACKROTRCT键值项,把默认数值1改为2,启动SYN攻击保护,从而实现抵御DOS攻击。
注册表禁止默认共享
默认共享是Windows内核的windows操作系统为了方便远程管理而开放的共享,他使用的139端口。
包含了所有的逻辑盘(C$、 D$...
)和系统目录,默认共享很容易被恶意利用,IPC$攻击就是针对默认共享的。
使用"net share"查看系统开放的共享。
1、注册表禁止默认共享–禁止空连接进行枚举
展开分支
HKEY_LOCAL_MACHINE\SYSTEM\cruuentControlSet\control\lsa
修改restrictanonymous的值,由默认的"0"改为"1"
2、禁止默认共享
HKEY_LOCAL_MACHINE\SYSTEMcruuentControlSet\Services\lanmanserver\paranmeters
修改AutoshareServer为"0"
3、关闭默认共享依靠Server服务
打开控制面板–管理工具–服务选项,在本地服务中找到"Server",右击属性,然后在常规选项中单击"停止"禁用。
关于共享的额外知识点IPC$
IPC$(Internet Process Connection)是共享"命名管道"的资源,它是为了让进程间通信而开放的命名管道,通过提供可信任的用户名和口令,连接双方可以建立安全的通道并以此通道进行加密数据的交换,从而实现对远程计算机的访问。
过程的大致顺序如下:
1、会话请求者向会话接收者传送一个数据包,请求安全隧道的建立;
2、服务器产生一个随机的64位数传送回请求者。
3、客户取得这个由服务器产生的64位数,用试图建立会话的账号的口令打乱他,将结果返回到服务器;
4、服务器接收响应后发送给本地安全验证(LSA),LSA通过使用该用户正确的口令来核实响应以便确认请求者身份。如果请求者的账号是服务器的本地账号,核实本地发生;如果请求的账号是另一个域的账号,响应传送到域控制器去核实。当对挑战的响应核实正确后,一个访问令牌产生,然后传送给客户。客户使用这个访问令牌连接到服务器上的资源直到建立的会话被终止。
IPC$管道的常见命令
\# 首先,我们先建立一个会话
net use \\\\ip\\ipc$ "pass" /user:""
# 查看远程主机的共享资源
net view \\\\ip
# 解释:前提是建立了空连接后,用此命令可以查看远程主机的共享资源。
# 查看远程主机的当前时间
net time \\\\ip
# 得到远程主机的NetBIOS用户名列表。
nbstat \-A ip
# ipc$管道除了可以查看这些信息外,还可以做一些危害非常大的操作,比如复制木马程序到服务器并运行。
限制注册表使用
注册表编辑器的限制使用
通过设置注册表中的键:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableRegistryTools
项中的REG_DWORD型的值为1,来使注册表编辑器无法运行。
欺骗性隐藏文件以及文件夹
入侵者喜欢用这招隐藏自己的文件
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\explorer\Advanced\Folder\Hidden\SHOWALL,
CheckedValue键值项,将它的键值修改为"0"。
限制用户使用指定程序
为防止用户非法运行或者修改程序,我们通过修改注册表来达到让用户只能使用指定程序的目的,从而保证系统的安全。
1、在注册表编辑器窗口中依次打开
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer键值
2、在对应Explorer键值右边的窗口中,新建一个DWORD串值,名字取为"RestricRun",把他的值设为"1";
3、在RestrictRun的主键下分别添加名为"1",“2”,“3"等字符串值,然后将"1”,“2”,“3"等字符串的值设置为我们允许用户使用的程序名。例如将"1”,“2”,"3"分别设置为word.exe、notepad.exe、write.exe,则用户只能使用word、记事本、写字板了。
reg.exe
命令行下的注册表操作工具,常被入侵者利用。
reg delete "HKEY\_CURRENT\_USER\\Software\\Microsoft\\Command Processor" /v "AutoRun" /f
reg add "HKEY\_LOCAL\_MACHINE\\Software\\Microsoft\\Jet\\4.0\\Engines" /v "SandBoxMode" /t "REG\_DWORD" /d 0 /f