Windows 系统安全

2022-11-02 14:02:44 浏览数 (1)

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 分区:

  1. NTFS 权限既影响网络访问者也影响本地访问者
  2. NTFS 权限可以为驱动器、文件夹、注册表键值、打印机等进行设置
  3. 权限可以配置给用户或组,不同用户或组对同一个文件夹或文件可以有不同的权限

分区转换:

  1. convert D:/fs:ntfs
  2. 操作不可逆,只能将 FAT 或 FAT32 系统转换为 NTFS 系统,反之不可。如果必须转换,一般需要重新格式化硬盘

文件权限细分

ACL(access control list)访问控制列表

文件权限特性

权限的优先顺序:

  1. 每种权限都有“允许”和“拒绝”两种设置方式
  2. 权限的来源有“直接设置”和“继承”两种
  3. 如果权限的设置出现矛盾,系统按下面的优先顺序确定权限
  4. 直接设置的拒绝->直接设置的允许->继承的拒绝->继承的允许

移动、复制对权限继承性的影响:

  1. 在同一分区内移动文件或文件夹,权限保持不变。在不同分区间移动文件或文件夹,权限继承新位置的权限
  2. 复制文件或文件夹,权限会继承新位置的权限
  3. 把文件或文件夹移动或复制到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

0 人点赞