0x001 Windows 安全简介
目前,Windows 系统已经占据了绝大部分的桌面市场,同时在服务器市场也占有较大比重。长期以来,由于病毒攻击、黑客入侵等原因,给人们留下了易受攻击的不好印象。本文将以 Windows 系统安全方面展开分享一些 Windows 系统安全防护措施。
0x002 Windows 安全基础
1. 常用命令
命令 | 功能 |
---|---|
ver | 查看系统版本 |
hostname | 查看主机名 |
ipconfig /all | 查看网络配置 |
net user | 查看用户 |
netstat -ano | 查看开放端口号 |
regedit | 打开注册表 |
eventvwr.msc | 打开事件查看器 |
services.msc | 打开系统服务 |
gpedit.msc | 打开组策略编辑器 |
secpol.msc | 打开本地安全策略 |
lusrmgr.msc | 打开本地用户和组 |
命令:net user
- 查看账户aaa的信息信息:
net user aaa
- 创建[删除]空密码账户aaa:
net user aaa /add [del]
- 创建[删除]普通账户aaa,密码为123:
net user aaa 123 /add [del]
- 把aaa加入[退出]管理员组:
net localgroup administrators aaa /add [del]
- 启用[停用]账户aaa:
net user aaa /active:yes [no]
- 新建[删除]组admin1:
net localgroup admin1 /add [del]
命令:whoami
查看当前有效用户名的命令
- 命令1:
whoami
- 命令2:
whoami /user
- 命令3:
whoami /all
2. 账户安全
禁用默认账户
- 禁用 Guest 账户
- 禁用或删除无用账户
操作步骤:
使用 WIN R
按键,输入 lusrmgr.msc
打开 本地用户和组 > 用户 中,双击 Guest 帐户,在属性中选中 帐户已禁用,单击 确定。
排查隐藏账户
在建立账户时,如果在用户名后面加上 符号,就可以建立一个简单的隐藏账户,如:test
在字符界面下执行 net user
命令,就无法查看到这个账户,但是在图形界面的“本地用户和组”中仍然可以看到。
黑客入侵一台主机后,一般都想办法给自己留后门,而给自己加一个管理员组的账户是常用手法。由于带 $ 的账户容易被发现,黑客能耐会建立一个类似系统管理员的账户名迷惑管理员,如:admin、sysadmin、Billgates、root 等。
另外还可能通过提升普通用户的权限到管理组中,例如把 test$ 账户加入管理组。所以,我们除了要检查可疑管理员账户外,还要对可疑的普通账户进行排查。
想了解如何实现账户隐藏的,可以查看我之前写的一篇文章:Windows 系统账户隐藏
按照用户分配账户
按照用户分配帐户。根据业务要求,设定不同的用户和用户组。例如,管理员用户,数据库用户,审计用户,来宾用户等。
操作步骤:
使用 WIN R
按键,输入 lusrmgr.msc
打开 本地用户和组 中,根据业务要求设定不同的用户和用户组,包括管理员用户、数据库用户、审计用户、来宾用户等。
定期检查并删除与无关帐户
定期删除或锁定与设备运行、维护等与工作无关的帐户。
操作步骤:
使用 WIN R
按键,输入 lusrmgr.msc
打开 本地用户和组 中,删除或锁定与设备运行、维护等与工作无关的帐户。
3. 本地策略
隐藏最后的用户名
配置登录登出后,不显示用户名称。
操作步骤:
使用 WIN R
按键,输入 secpol.msc
打开 本地安全策略,在 本地策略 > 安全选项 中,双击 交互式登录:不显示最后的用户名,选择 已启用 并单击 确定。
远程关机
在本地安全设置中,从远端系统强制关机权限只分配给Administrators组。
操作步骤:
使用 WIN R
按键,输入 secpol.msc
打开 本地安全策略,在 本地策略 > 用户权限分配 中,配置 从远端系统强制关机 权限只分配给Administrators组。
本地关机
在本地安全设置中关闭系统权限只分配给Administrators组。
操作步骤:
使用 WIN R
按键,输入 secpol.msc
打开 本地安全策略,在 本地策略 > 用户权限分配 中,配置 关闭系统 权限只分配给Administrators组。
用户权限指派
在本地安全设置中,取得文件或其它对象的所有权权限只分配给Administrators组。
操作步骤:
使用 WIN R
按键,输入 secpol.msc
打开 本地安全策略,在 本地策略 > 用户权限分配 中,配置 取得文件或其它对象的所有权 权限只分配给Administrators组。
授权帐户登录
在本地安全设置中,配置指定授权用户允许本地登录此计算机。
操作步骤:
使用 WIN R
按键,输入 secpol.msc
打开 本地安全策略,在 本地策略 > 用户权限分配 中,配置 允许本地登录 权限给指定授权用户。
授权帐户从网络访问
在本地安全设置中,只允许授权帐号从网络访问(包括网络共享等,但不包括终端服务)此计算机。
操作步骤:
使用 WIN R
按键,输入 secpol.msc
打开 本地安全策略,在 本地策略 > 用户权限分配 中,配置 从网络访问此计算机 权限给指定授权用户。
4. 口令安全
密码复杂度
密码复杂度要求必须满足以下策略:
- 最短密码长度要求八个字符。
- 启用本机组策略中密码必须符合复杂性要求的策略。
- 即密码至少包含以下四种类别的字符中的两种:
- 英语大写字母 A, B, C, … Z
- 英语小写字母 a, b, c, … z
- 西方阿拉伯数字 0, 1, 2, … 9
- 非字母数字字符,如标点符号,@, #, $, %, &, * 等
操作步骤:
使用 WIN R
按键,输入 secpol.msc
本地安全策略,在 帐户策略 > 密码策略 中,确认 密码必须符合复杂性要求 策略已启用。
密码最长留存期
对于采用静态口令认证技术的设备,帐户口令的留存期不应长于90天。
操作步骤:
使用 WIN R
按键,输入 secpol.msc
本地安全策略,在 帐户策略 > 密码策略 中,配置 密码最长使用期限 不大于90天。
帐户锁定策略
对于采用静态口令认证技术的设备,应配置当用户连续认证失败次数超过10次后,锁定该用户使用的帐户。
操作步骤:
使用 WIN R
按键,输入 secpol.msc
本地安全策略,在 帐户策略 > 帐户锁定策略 中,配置 帐户锁定阈值 不大于10次。
弱口令检查
利用一些暴力破解工具对 Windows 系统的密码以及相关服务应用的密码来检查口令是否安全。
在线方式:
利用 hydra 暴力破解内网 Windows 登录密码,以及其他应用服务密码服务,例如:FTP、SMB、SSH等等
代码语言:javascript复制hydra -l whoami -P /root/pass.txt smb://192.168.1.100
离线方式:
Pwdump7 可以在 CMD 下提取出系统中的用户的密码 hash (包括 LM 和NTLM),当然必须要有系统权限.提取出密码的 HASH 值
代码语言:javascript复制pwdump7.exe (Dump system passwords)
pwdump7.exe -s <samfile> <systemfile> (Dump passwords from files)
pwdump7.exe -d <filename> [destionation] (Copy filename to destionation)
pwdump7.exe -h (Show this help)
-s 是从一个sam文件中提取hash,这个文件在%systemroot%configsam,这里.
-d 是把一个文件复制到另一个位置,D:>PwDump7.exe -d c:pagefile.sys pagefile.dmp
pwdump7 地址:https://www.openwall.com/passwords/windows-pwdump
解决报错问题:拷贝libeay32.dll到windows/system32下即可
再用 Ophcrack 破解 Pwdump7 提取出的 HASH 值
Ophcrack 地址:https://www.onlinedown.net/soft/44356.htm
0x003 Windows 安全配置
1. 系统服务
使用 WIN R
按键,输入 services.msc
打开系统服务管理界面
使用命令行开启和关闭服务
代码语言:javascript复制net stat 查看已开启的服务
net stop servername 停止服务
建议将停止不必要的服务,并将启动方式修改为手动
使用 WIN R
按键,输入 regedit
打开注册表,在 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetService
底下每一服务项子项都有一个 start 数值,这个数值的内容依照每一服务项目的状况而又有不同。start 数值内容所记录的就是服务项目驱动程式该在何时启动
2. 服务进程
基本的系统进程
代码语言:javascript复制smss.exe Session Manager
csrss.exe 子系统服务进程
winlogon.exe 管理用户登录
services.exe 包含很多系统服务
lsass.exe 管理 IP 安全策略以及启动 ISAKMP/Oakley (IKE) 和安全驱动程序 (系统服务)
svchost.exe 包含很多系统服务
spoolsv.exe 将文件加载到内存中以便此后打印 (系统服务)
explorer.exe 资源管理器
internat.exe 输入法
端口与进程
使用 netstat -ano
查看进程,找到对应端口的 PID 值
然后在系统任务管理器的服务选项中,根据 PID 值查找该端口的服务,点击右键可以停止该服务
3. 日志审核
日志位置
- Windows 日志文件默认位置:
%systemroot%system32config
- 安全日志文件:
%systemroot%system32configSecEvent.EVT
- 系统日志文件:
%systemroot%system32configSysEvent.EVT
- 应用程序日志文件:
%systemroot%system32configAppEvent.EVT
- FTP 链接日志和 HTTPD 事务日志:
%systemroot%system32LogFiles
事件查看器
使用 WIN R
按键,输入 eventvwr.msc
打开事件查看器
审核登录
设备应配置日志功能,对用户登录进行记录。记录内容包括用户登录使用的帐户、登录是否成功、登录时间、以及远程登录时、及用户使用的IP地址。
操作步骤:
使用 WIN R
按键,输入 secpol.msc
打开 本地安全策略,在 本地策略 > 审核策略 中,设置 审核登录事件。
审核策略
启用本地安全策略中对Windows系统的审核策略更改,成功和失败操作都需要审核。
操作步骤:
使用 WIN R
按键,输入 secpol.msc
打开 本地安全策略,在 本地策略 > 审核策略 中,设置 审核策略更改。
审核对象访问
启用本地安全策略中对Windows系统的审核对象访问,成功和失败操作都需要审核。
操作步骤:
使用 WIN R
按键,输入 secpol.msc
打开 本地安全策略,在 本地策略 > 审核策略 中,设置 审核对象访问。
审核事件目录服务访问
启用本地安全策略中对Windows系统的审核目录服务访问,仅需要审核失败操作。
操作步骤:
使用 WIN R
按键,输入 secpol.msc
打开 本地安全策略,在 本地策略 > 审核策略 中,设置 审核目录服务器访问。
审核特权使用
启用本地安全策略中对Windows系统的审核特权使用,成功和失败操作都需要审核。
操作步骤:
使用 WIN R
按键,输入 secpol.msc
打开 本地安全策略,在 本地策略 > 审核策略 中,设置 审核特权使用。
审核系统事件
启用本地安全策略中对Windows系统的审核系统事件,成功和失败操作都需要审核。
操作步骤:
使用 WIN R
按键,输入 secpol.msc
打开 本地安全策略,在 本地策略 > 审核策略 中,设置 审核系统事件。
审核帐户管理
启用本地安全策略中对Windows系统的审核帐户管理,成功和失败操作都要审核。
操作步骤:
使用 WIN R
按键,输入 secpol.msc
打开 本地安全策略,在 本地策略 > 审核策略 中,设置 审核帐户管理。
审核过程追踪
启用本地安全策略中对Windows系统的审核进程追踪,仅失败操作需要审核。
操作步骤:
使用 WIN R
按键,输入 secpol.msc
打开 本地安全策略,在 本地策略 > 审核策略 中,设置 审核进程追踪。
4. 文件权限
前提条件
NTFS 分区:
- NTFS 权限既影响网络访问者也影响本地访问者
- NTFS 权限可以为驱动器、文件夹、注册表键值、打印机等进行设置
- 权限可以配置给用户或组,不同用户或组对同一个文件夹或文件可以有不同的权限
分区转换:
convert D:/fs:ntfs
- 操作不可逆,只能将 FAT 或 FAT32 系统转换为 NTFS 系统,反之不可。如果必须转换,一般需要重新格式化硬盘
文件权限细分
ACL(access control list)访问控制列表
文件权限特性
权限的优先顺序:
- 每种权限都有“允许”和“拒绝”两种设置方式
- 权限的来源有“直接设置”和“继承”两种
- 如果权限的设置出现矛盾,系统按下面的优先顺序确定权限
- 直接设置的拒绝->直接设置的允许->继承的拒绝->继承的允许
移动、复制对权限继承性的影响:
- 在同一分区内移动文件或文件夹,权限保持不变。在不同分区间移动文件或文件夹,权限继承新位置的权限
- 复制文件或文件夹,权限会继承新位置的权限
- 把文件或文件夹移动或复制到FAT分区中时权限会丢失
关闭默认文件共享
非域环境中,关闭Windows硬盘默认共享,例如C,D。
操作步骤:
使用 WIN R
按键,输入 regedit
打开 注册表编辑器,根据推荐值修改注册表键值。
- HKLMSystemCurrentControlSetServicesLanmanServerParametersAutoShareServer 推荐值: 0
注意: Windows Server 2012版本已默认关闭Windows硬盘默认共享,且没有该注册表键值。
共享文件夹授权访问
每个共享文件夹的共享权限,只允许授权的帐户拥有共享此文件夹的权限。
操作步骤:
每个共享文件夹的共享权限仅限于业务需要,不要设置成为 Everyone。打开 控制面板 > 管理工具 > 计算机管理,在 共享文件夹 中,查看每个共享文件夹的共享权限。
5. 安全配置
启用安全选项
使用 WIN R
按键,输入 secpol.msc
打开 本地安全策略,在 本地策略 > 安全选项 中,进行如下设置:
禁用未登录前关机
服务器默认是禁止在未登录系统前关机的。如果启用此设置,服务器安全性将会大大降低,给远程连接的黑客造成可乘之机,强烈建议禁用未登录前关机功能。
操作步骤:
使用 WIN R
按键,输入 secpol.msc
打开 本地安全策略,在 本地策略 > 安全选项 中,禁用 关机: 允许系统在未登录前关机 策略。
防病毒管理
Windows系统需要安装防病毒软件。
操作步骤:
安装企业级防病毒软件,并开启病毒库更新及实时防御功能。
设置屏幕保护密码和开启时间
设置从屏幕保护恢复时需要输入密码,并将屏幕保护自动开启时间设定为五分钟。
操作步骤:
启用屏幕保护程序,设置等待时间为 5分钟,并启用 在恢复时使用密码保护。
限制远程登录空闲断开时间
对于远程登录的帐户,设置不活动超过时间15分钟自动断开连接。
操作步骤:
使用 WIN R
按键,输入 secpol.msc
打开 本地安全策略,在 本地策略 > 安全选项 中,设置 Microsoft网络服务器:暂停会话前所需的空闲时间数量 属性为15分钟。
操作系统补丁管理
安装最新的操作系统Hotfix补丁。安装补丁时,应先对服务器系统进行兼容性测试。
操作步骤:
安装最新的操作系统Hotfix补丁。安装补丁时,应先对服务器系统进行兼容性测试。
注意:对于实际业务环境服务器,建议使用通知并自动下载更新,但由管理员选择是否安装更新,而不是使用自动安装更新,防止自动更新补丁对实际业务环境产生影响。
0x004 Windows 入侵调查
1. 及早发现系统异常
系统启动
- 系统日志记录
- 系统运行时间
- 网络连接时间
系统资源
- 进程占用大量 CPU 时间
- 进程消耗大量物理内存
- 磁盘空间减少
网络流量异常
- 发送或接收大量 SYN 数据包
- 发送或接收大量 ICMP 数据包
- 其他流量(如 BT 协议流量,FTP 协议流量)
发现途径
- 入侵检测软件
- 防火墙
- 管理员询问
- 残缺日志
- 其他
查看遗留痕迹
IE 临时文件
- 访问过的网页
- Documents and Settings<账号>Local SettingsTemporary Internet Files
访问地址记录
- 记录访问过的网址和本地地址
- 按日期排列
- Documents and Settings<账号>Local SettingsHistory
使用文件记录
- 打开过的文档
- Documents and Settings<账号>Recent
cookie 记录
- 访问过的网址
- 使用过的账户
- Documents and Settings<账号>cookie
计划任务
- 使用
at
命令查看
回收站
- 根目录下的隐藏的 Recycler 目录
- 用户删除的文件在以自身 SID 为基础命名的子目录中
注册表
- 曾经存在的账户:HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsNTCurrentVersionProfileList
- 曾经安装过的软件:HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionUninstall
检查交换文件
- HKLMSystemCurrentControlSetControlSession ManagemenClearPageFileAtShutdown
- 检查 winntprofile 目录,如果账号存在而以该账号命令的子目录不存在,则该账号还没有登录过系统
- 如果用户目录存在而该账户不在用户列表中,则说明用户 ID 曾经存在而已被删除
分析入侵状况
- 审核日志
- 查看入侵者遗留痕迹
- 分析入侵原因
- 修补漏洞
2. 分析日志入侵情况
日志审核首要条件:
- 日志的记录能力
- 日志的保持能力
系统日志:
- 记录设备驱动状态,系统进程、服务状态,以及补丁安装情况
- 可能会获得被攻击的时间以及方法
- 某时刻系统重启
- 某时刻系统服务出错并重启
- 某时刻系统弹出对话框(如终端连接人数超过限制)
应用程序日志:
- 记录用户应用程序的活动情况
- 可能能够获得被攻击的时间以及方法
- 某时刻防火墙被关闭
- 某时刻杀毒软件自动防护功能被禁止
- 某时刻杀毒软件警告发现了病毒
- 某时刻安装或删除了软件
安全性日志:
- 记录系统使用的登录进程、特权使用、安全审核以及审核结果
- 可能能够获得被攻击的时间以及方法
- 某时刻某用户登录系统成功
- 某时刻用户尝试登录系统失败
- 某时刻某用户更改了审核策略
WEB 日志:
- IIS 日志在
%systemroot%system32logfiles
下的相应子目录中 - 特定请求
- 上传下载请求,如 ipfile.asp、up.asp、download.asp 等
- 特殊关键字请求,如 select *、insert into、drop from 等
- 异常参数请求:如 ‘、;–、;、1=1、1=2 等
- 服务器状态码
- 请求成功:200-299
- 客户端错误:400-499
- 服务器端错误:500-599(并非攻击失败)
3. 恢复系统以及应用
复查确认后门清理完毕:Pslist lceSword
判断系统存在漏洞
- 入侵手法判断:根据日志重现攻击手法;依照流行程度判断
- 服务内容判断:参照安全公告,检查本机服务
- 扫描判断:微软工具 MBBA 基准1扫描
修复系统存在漏洞,并加固系统
- 临时解决方案
- 使用防火墙策略阻挡指定协议或端口特殊关键字请求,如 select *、insert into、drop from 等
- 使用防火墙阻挡指定进程
- 暂停使用危险应用
- 根本解决方案
- 安装安全补丁
- 更换安全的应用系统
- 暂停使用危险应用
启动所有应用,测试是否正常运行
0x005 Windows 应急响应
1. 查找系统后门
Autoruns
使用 Autoruns 可列举常见的启动条目,在启动条目中,因为大部分恶意程序自身不会含有过多的描述信息,因此通过检查 Publisher 和 Description 两条项目可排除一些较简单的后门程序或恶意代码
2. 按行为查找后门
在后门程序运行的过程中,后门程序除正常的访问一些敏感文件、注册表行等行为外,还可能会出现创建模块等异常行为,而这些额外创建出来的文件会辅助恶意程序的主进程工作,放置主进程被用户或杀毒软件中断,因此,可通过监控工具来查看恶意程序的行为
Filemon
Filemon 会以进程为线索、列举该进程已何种方式(即,界面中的“请求”)对什么文件(即,界面中的“路径”)进行什么样的访问(请求方式分为 OPEN、READ、QUERY、CLOSE 等),以及访问是否成功(即,界面中的“结果”)
如果需要对特定的进程进行监视或过滤,可点击快捷菜单上的漏洞图标,填写指定的进程名来进行结果过滤
Regmon
Regmon 与 Filemon 使用方法相同,不过 Regmon 是用于监控进程对注册表的操作行为
3. 按隐藏技术查找后门
lceSword–冰刃
lceSword 是一款集合了较多实用功能的安全检测工具,利用 lceSword 的进程功能,可查看系统中是否存在隐藏进程,若存在,则该进程会被自动标注为红色
类似的,在 SSDT 中也会查找到隐藏的驱动
2. 全面分析日志
账号的审计信息
若系统配置了审计,则会在事件查看器的安全性日志中查看到某些非管理员账号的登录、文件访问等行为
用户目录
若用户账号仅是通过net命令或用户管理员程序删除的,那么,系统中仍然会残留有该用户的目录,目录中的一些人家会记录用户的某些特定行为,便于追查,这些文件如下:
(以系统安装在C盘、恶意用户为 cracker 为例)
- 用户的桌面,可能放有一些临时或下载的文件
- C:Documents and Settingscracker桌面
- 用户的网络访问情况,cookie 文件中可能会记录一些敏感信息
- C:Documents and SettingscrackerCookies
- 用户最近访问过哪些文件或文件夹
- C:Documents and SettingscrackerRecent
- 用户上网的历史记录
- C:Documents and SettingscrackerLocal SettingsHistory
- 一些程序安装、压缩等操作可能会在该目录下产生临时文件
- C:Documents and SettingscrackerLocal SettingsTemp
- 上网时产生的临时文件,不但会存储网页页面内容,还可能以临时文件方式存储一些下载的文件
- C:Documents and SettingscrackerLocal SettingsTemporary Internet Files
Windows 安全日志
使用 WIN R
按键,输入 eventvwr.msc
吗,选中 Windows 日志进行分析
IIS 日志分析
- 路径:%systemroot%ststem32LogFilesW3SVCx
- 命令:exYYMMDD.log
- 内容:时间、客户端IP、用户名、访问的文件、端口、方法…
IIS 日志分析 - 攻击者的目录扫描行为
IIS 日志分析 - 攻击者的 SQL 注入行为
参考文章
- https://www.cnblogs.com/pythonal/p/9242063.html