Windows安全加固 #
账户管理和认证授权 #
1.1 账户 #
默认账户安全 #
- 禁用Guest账户。
- 禁用或删除其他无用账户(建议先禁用账户三个月,待确认没有问题后删除。)
操作步骤
本地用户和组 > 用户 中,双击 Guest 帐户,在属性中选中 帐户已禁用,单击 确定。
按照用户类别分配帐户 #
按照用户分配帐户。根据业务要求,设定不同的用户和用户组。例如,管理员用户,数据库用户,审计用户,来宾用户等。
定期检查并删除与无关帐户 #
定期删除或锁定与设备运行、维护等与工作无关的帐户。
不显示最后的用户名 #
配置登录登出后,不显示用户名称。
操作步骤:
gpedit.msc 打开组策略,在 本地策略 > 安全选项 中,双击 交互式登录:不显示最后的用户名,选择 已启用 并单击 确定。
1.2 口令 #
密码复杂度 #
最短密码长度要求八个字符。
启用本机组策略中密码必须符合复杂性要求的策略。
即密码至少包含以下四种类别的字符中的两种:
英语大写字母 A, B, C, … Z
英语小写字母 a, b, c, … z
西方阿拉伯数字 0, 1, 2, … 9
非字母数字字符,如标点符号,@, #, $, %, &, *等
操作步骤
gpedit.msc 打开组策略,在 帐户策略 > 密码策略 中,确认 密码必须符合复杂性要求 策略已启用。
密码最长留存期 #
对于采用静态口令认证技术的设备,帐户口令的留存期不应长于90天。
操作步骤
在 帐户策略 > 密码策略 中,配置 密码最长使用期限 不大于90天。
帐户锁定策略 #
对于采用静态口令认证技术的设备,应配置当用户连续认证失败次数超过10次后,锁定该用户使用的帐户。
操作步骤
在 帐户策略 > 帐户锁定策略 中,配置 帐户锁定阈值 不大于10次。
1.3 授权 #
远程关机 #
在本地安全设置中,从远端系统强制关机权限只分配给Administrators组。
操作步骤
在 本地策略 > 用户权限分配 中,配置 从远端系统强制关机 权限只分配给Administrators组。
本地关机 #
在本地安全设置中关闭系统权限只分配给Administrators组。
操作步骤
在 本地策略 > 用户权限分配 中,配置 关闭系统 权限只分配给Administrators组。
用户权限指派 #
在本地安全设置中,取得文件或其它对象的所有权权限只分配给Administrators组。
操作步骤
在 本地策略 > 用户权限分配 中,配置 取得文件或其它对象的所有权 权限只分配给Administrators组。
授权帐户登录 #
在本地安全设置中,配置指定授权用户允许本地登录此计算机。
操作步骤
在 本地策略 > 用户权限分配 中,配置 允许本地登录 权限给指定授权用户。
授权帐户从网络访问 #
在本地安全设置中,只允许授权帐号从网络访问(包括网络共享等,但不包括终端服务)此计算机。
操作步骤
在 本地策略 > 用户权限分配 中,配置 从网络访问此计算机 权限给指定授权用户。
多用户同时使用的安全配置 #
在 本地策略 > 用户权限分配 中,配置 从网络访问此计算机 权限给指定授权用户。
限制远程登录空闲断开时间 #
对于远程登录的帐户,设置不活动超过时间15分钟自动断开连接。
操作步骤
在 本地策略 > 安全选项 中,设置 Microsoft网络服务器:暂停会话前所需的空闲时间数量 属性为15分钟。
设置屏幕保护密码和开启时间 #
设置从屏幕保护恢复时需要输入密码,并将屏幕保护自动开启时间设定为五分钟。
操作步骤
启用屏幕保护程序,设置等待时间为 5分钟,并启用 在恢复时使用密码保护
日志配置操作 #
2.1 日志配置 #
审核登录 #
设备应配置日志功能,对用户登录进行记录。
记录内容包括用户登录使用的帐户、登录是否成功、登录时间、以及远程登录时、及用户使用的IP地址。
操作步骤
在 本地策略 > 审核策略 中,设置 审核登录事件。
eventvwr.msc > 打开事件查看器 > windows日志 > 安全 > 即可查看用户的登录和注销以及账户名等信息
审核策略 #
启用本地安全策略中对Windows系统的审核策略更改,成功和失败操作都需要审核。
操作步骤
在 本地策略 > 审核策略 中,设置 审核策略更改。
审核对象访问 #
启用本地安全策略中对Windows系统的审核对象访问,成功和失败操作都需要审核。
操作步骤
在 本地策略 > 审核策略 中,设置 审核对象访问。
审核事件目录服务访问 #
启用本地安全策略中对Windows系统的审核目录服务访问,仅需要审核失败操作。
操作步骤
在 本地策略 > 审核策略 中,设置 审核目录服务器访问。
审核特权使用 #
启用本地安全策略中对Windows系统的审核特权使用,成功和失败操作都需要审核。
操作步骤
在 本地策略 > 审核策略 中,设置 审核特权使用。
审核系统事件 #
启用本地安全策略中对Windows系统的审核系统事件,成功和失败操作都需要审核。
操作步骤
在 本地策略 > 审核策略 中,设置 审核系统事件。
审核帐户管理 #
启用本地安全策略中对Windows系统的审核帐户管理,成功和失败操作都要审核。
操作步骤
在 本地策略 > 审核策略 中,设置 审核帐户管理。
审核过程追踪 #
启用本地安全策略中对Windows系统的审核进程追踪,仅失败操作需要审核。
操作步骤
gpedit.msc 打开组策略> 管理模板 > Windows组件 > 远程桌面服务 > 远程桌面会话主机 > 连接
禁用 " 将远程桌面服务用户限制到单独的远程桌面服务会话 " > 启用并设置 "限制连接的数量"
日志文件大小 #
设置应用日志文件大小至少为 8192 KB,可根据磁盘空间配置日志文件大小,记录的日志越多越好。
并设置当达到最大的日志尺寸时,按需要轮询记录日志。
操作步骤
eventvwr.msc打开事件查看器,配置应用日志、系统日志、安全日志属性中的日志大小,以及设置当达到最大的日志尺寸时的相应策略。
安全选项 #
6.1 禁用未登录前关机 #
服务器默认是禁止在未登录系统前关机的。
如果启用此设置,服务器安全性将会大大降低,给远程连接的黑客造成可乘之机,强烈建议禁用此功能。
操作步骤
在 本地策略 > 安全选项 中,禁用 关机: 允许系统在未登录前关机 策略
6.2 启用安全选项 #
操作步骤
在 本地策略 > 安全选项 中,进行如下设置:
6.3其他安全配置 #
安装杀毒软件 #
安装最新的补丁更新 #
禁用不必要的服务 #
禁用TCP/IP上的NetBIOS
禁用TCP/IP上的NetBIOS协议,可以关闭监听的 UDP 137(netbios-ns)、UDP 138(netbios-dgm)以及 TCP 139(netbios-ssn)端口。
操作步骤
- 在 计算机管理 > 服务和应用程序 > 服务 中禁用 TCP/IP NetBIOS Helper 服务。
- 在网络连接属性中,双击 Internet协议版本4(TCP/IPv4),单击 高级。禁用NetBIOS和LMHOST查找
如何在 Windows 中检测、启用和禁用 SMBv1、SMBv2 和 SMBv3
关闭默认共享 #
非域环境中,关闭Windows硬盘默认共享,例如C$,D$。
操作步骤
打开 注册表编辑器,根据推荐值修改注册表键值。
注意: Windows Server 2012版本已默认关闭Windows硬盘默认共享,且没有该注册表键值。
HKLM\System\CurrentControlSet\Services\LanmanServer\Parameters\AutoShareServer
#推荐值: 0
共享文件夹授权访问 #
每个共享文件夹的共享权限,只允许授权的帐户拥有共享此文件夹的权限。
操作步骤
每个共享文件夹的共享权限仅限于业务需要,不要设置成为 Everyone。
打开 控制面板 > 管理工具 > 计算机管理,在 共享文件夹 中,查看每个共享文件夹的共享权限。
文件系统安全 #
对于 NTFS 磁盘分区上的每一个文件和文件夹,NTFS 都存储一个远程访问控制列表(ACL,Access Control Lists)
ACL 中包含有那些被授权访问该文件或者文件夹的所有用户账号、组和计算机,还包含他们被授予的访问类型。
注意: FAT 是U盘上的主流文件系统
NTFS 文件权限种类 #
NTFS 权限设置 #
通过 ACL 控制列表,设置目录或者文件的用户访问权限 #
Windows系统中的ACL(Access Control List),用来表示用户(组)权限的列表。
在渗透测试中,理解并运用ACL,尤其在后门利用(提权)方面,可供发挥的空间很大。
而站在防御的角度,如果系统被攻破,找到并清除攻击者留下的ACL后门,同样需要对ACL有一定的了解。
命令行下修改目录或者文件的访问权限的方法 #
一系列简单的权利:
- F(完全访问)
- M(修改访问权限)
- RX(读取和执行访问)
- R(只读访问)
- W(只写访问)
继承权:
- (OI):对象继承
- (CI):容器继承
- (IO):仅继承
- (NP):不传播继承
- (I):从父容器继承的权限
查看指定文件的ACL #
icacls test\test.txt
备份指定文件(包括当前目录及其子目录中的文件)的ACL #
icacls test\test.txt /save AclFile /t
还原指定文件(包括当前目录及其子目录中的文件)的ACL #
icacls test\ /restore AclFile /t
#还原时,路径需要设置为上级目录
添加用户test1对指定文件(包括当前目录及其子目录中的文件)的完全访问权限 #
icacls test\test.txt /grant test1:(OI)(CI)(F) /t
移除用户test1对指定文件(包括当前目录及其子目录中的文件)的完全访问权限 #
icacls test\test.txt /remove test1 /t