前言
在如今的数字化时代,Windows系统面对着越来越复杂的网络威胁和安全挑战。本文将深入探讨在Windows环境下的实战应急响应策略。我们将重点关注实际应急响应流程、关键工具的应用,以及如何快速准确地识别和应对安全事件。通过分享实际案例分析,旨在帮助网络安全从业者提升应急响应能力,有效保护关键资产和数据的安全。
应急响应流程
Windows系统的应急响应是指在发生安全事件或者怀疑系统遭受攻击时,采取的快速响应和处置措施,以最大限度地减少损失并恢复系统的安全性和可用性。
以下是一般情况下的Windows应急响应详细步骤:
1. 确认安全事件
监控系统日志: 检查Windows事件日志(Event Viewer),寻找异常事件、错误消息或警告,特别关注安全事件、登录异常等。
2. 切断系统与网络连接
物理隔离: 如果发现安全威胁,立即考虑物理隔离系统,断开与网络的连接,防止攻击扩散或数据泄露。
3. 收集证据和分析
镜像磁盘: 制作系统的磁盘镜像,以便后续离线分析和取证,确保原始数据不被篡改。
4. 隔离受影响系统
隔离系统: 将受影响的系统从生产环境隔离,防止继续影响其他系统或网络。
5. 安全漏洞修复和系统清理
修补漏洞: 安装系统和应用程序的最新补丁和安全更新,修复已知的安全漏洞。
6. 恢复系统和监控
系统恢复: 在清理和修复后,恢复系统的正常运行状态,并确保所有必要的服务和应用程序正常工作。
7. 事后总结和改进
事件总结: 对安全事件进行总结和分析,了解攻击的方式和入侵路径,制定改进措施。
在进行应急响应时,最重要的是快速反应、有效隔离和详细记录,以确保最小化损失和快速恢复系统的安全状态。
Windows基础应急命令
一、系统排查
1、系统详细信息
简单了解系统信息
systeminfo
GUI显示的系统信息
msinfo32
2、网络连接
netstat 是一个用于显示网络连接、路由表和网络接口信息的命令行工具
-a | 显示所有连接(包括监听连接)。 |
---|---|
-t | 显示TCP协议的连接。 |
-u | 显示UDP协议的连接。 |
-n | 显示数字格式的地址和端口号(不解析域名和服务名)。 |
-o | 显示建立连接的进程标识(PID)。 |
-p | 显示建立连接的程序名称和PID。 |
-e | 显示详细的网络统计信息,包括以太网帧和TCP/UDP数据包。 |
-s | 显示协议统计信息。 |
-r | 显示路由表信息。 |
-c | 持续显示网络状态信息,类似于UNIX系统的top命令。 |
-l | 仅显示监听状态的连接。 |
-x | 显示UNIX域套接字的连接。 |
-f | 显示FQDN(Fully Qualified Domain Names)格式的域名。 |
-y | 显示TCP连接的TCP数据包信息。 |
-v | 显示netstat命令的版本信息。 |
-h 或 --help | 显示netstat命令的帮助信息。 |
netstat -ano
网络连接各状态含义
状态 | 含义 |
---|---|
LISTENING | 正在等待传入的连接请求。 |
ESTABLISHED | 连接已经建立,数据可以在两个端点之间传输。 |
TIME_WAIT | 连接已经关闭,等待足够的时间以确保对方已收到连接关闭请求。 |
CLOSE_WAIT | 本地端已经关闭连接,但是远程端仍保持连接打开状态。 |
FIN_WAIT_1 | 已经发送连接关闭请求,正在等待远程端确认。 |
FIN_WAIT_2 | 已经收到远程端的连接关闭请求,正在等待确认。 |
CLOSED | 没有活动的连接或监听。 |
SYN_SENT | 正在发送连接请求。 |
SYN_RECEIVED | 已经收到对方的连接请求,并发送了确认。 |
LAST_ACK | 已经发送连接关闭请求,并收到对方的确认,正在等待最终关闭。 |
RESET | 连接被远程端重置。通常是由于对方在本地端尝试建立连接之前关闭。 |
在网络安全应急响应中,对于处于 ESTABLISHED 状态的网络连接进行重点排查是非常重要的。这是因为
- 持久性连接:ESTABLISHED连接通常是持久性的,数据可以在两个端点之间自由传输。这种连接可能会被恶意软件或攻击者利用来持续地传输数据、执行命令或者窃取信息。
- C&C通道:恶意软件常常使用ESTABLISHED连接作为命令和控制(C&C)通道,使得攻击者可以远程控制受感染系统,执行各种攻击活动。
- 数据泄露:正常情况下,ESTABLISHED连接用于合法的数据传输。但是,如果系统遭到入侵或者恶意软件感染,这些连接可能用于非授权的数据泄露,如窃取敏感信息、文件传输等。
- 横向扩展:攻击者可以利用已建立的ESTABLISHED连接从一个受感染的主机向其他内部系统横向扩展攻击,从而扩大其攻击面。
ESTABLISHED 状态表示连接已经成功建立并且正在活跃地传输数据。在安全的角度来看,我们关注 ESTABLISHED 连接的主要原因包括:因此,网络安全人员在进行安全响应时,需要仔细检查和分析所有处于ESTABLISHED状态的连接,确保这些连接是合法的,不会对系统安全造成威胁。通过检查ESTABLISHED连接,可以及时发现并应对可能的安全威胁和攻击。
根据PID定位进程
重点关注 ESTABLISHED pid
查看进程 tasklist
tasklist | findstr "4020"
快速定位端口对应的进程
netstat -anb
根据进程定位应用程序
任务管理器-进程-选中进程名-右击打开文件位置
3、进程排查
1、打开任务管理器查看进程
2、tasklist命令
tasklist /svc 查看每个进程和服务对应的情况
根据PID定位进程
tasklist | findstr "4020"
4、排查检测账号
1、查看当前系统在线用户
query user
2、查看系统隐藏用户
net user
账号后面加上$在命令终端是查看不到
访问注册表\HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names对比数量是否一致,不一致则说明有隐藏用户
需要在计算机管理 本地用户和组查看 也可以运行-lusrmgr.msc
3、账号克隆
创建隐藏用户并将其权限(F值)修改为与管理员相同的做法,可能导致严重的安全漏洞。这种操作可能使未经授权的用户获得管理员权限,并可能被用作系统的后门。为了发现潜在的克隆账号,建议检查注册表\HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names中是否存在带有$符号的隐藏用户。如果发现这样的用户,请仔细检查其权限设置,确保不与管理员账号相同。一旦发现异常,应立即采取措施防止进一步的安全风险。
访问注册表 HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users 权限不够可以设置可读权限
若打开SAM后内无文件夹,右键选择权限 - 给指定用户配置读取权限
wmic方法查询用户信息
wmic useraccount get name,Sid
如果两个账号有相同的 SID,则可能是克隆的账号
可以用D盾去检测用户是否被克隆
5、利用系统启动项执行后门
系统中的启动目录
C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
等于
运行-shell:startup
系统配置msconfig
运行 - msconfig
注册表启动
HKEY_CURRENT_USER\software\micorsoft\windows\currentversion\run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Runonce
msinfo32.exe命令
6、计划任务
运行-taskschd.msc
打开计划任务-查看属性(检测是否存在、可疑的任务)
也可以在终端里schtasks命令查看
7、注册表
运行-regedit
8、服务
运行-msconfig
或者
Windows 任务管理器-服务
或者
计算机管理-服务和应用程序-服务
或者
cmd命令msinfo32.exe(支持搜索)
9、组策略
运行-gpedit.msc
二、日志排查
1、windows 系统安全日志分析
主要记录系统的安全信息,包括成功的登录、退出,不成功的登录,系统文件的创建、删除、更改,需要指明的是安全日志只有系统管理员才可以访问,这也体现了在大型系统中安全的重要性。
事件类型 | 注释 |
---|---|
信息(Information) | 指应用程序、驱动程序或服务的成功操作事件 |
警告(Warning) | 系统发现了一个可能会导致问题的情况,但尚未产生错误。例如,磁盘空间不足、某些服务未能及时启动等 |
错误(Error) | 系统或应用程序发生了一个问题或失败,可能导致系统功能的部分或完全受到影响。例如,应用程序崩溃、服务停止等 |
审核成功(Success Audit) | 审核成功事件记录了成功的审核活动,例如成功的用户登录、文件或对象访问成功等。这些事件有助于审计和跟踪系统访问和活动 |
审核失败(Failure Audit) | 审核失败事件记录了审核尝试但未成功的活动,例如无效的登录尝试、拒绝的访问尝试等。这些事件有助于检测潜在的安全威胁或攻击行为 |
Windows安全事件最常用的事件ID:
事件ID | 说明 | 备注 |
---|---|---|
1074 | 计算机开机、关机、重启的时间、原因、注释 | 查看异常关机情况 |
1102 | 清理审计日志 | 发现篡改事件日志的用户 |
4624 | 登录成功 | 检测异常的未经授权的登录 |
4625 | 登陆失败 | 检测可能的暴力密码攻击 |
4632 | 成员已添加到启用安全性的本地组 | 检测滥用授权用户行为 |
4634 | 注销用户 | |
4648 | 试图使用显式凭据登录 | |
4657 | 注册表值被修改 | |
4663 | 尝试访问对象 | 检测未经授权访问文件和文件夹的行为。 |
4672 | administrator超级管理员登录(被赋予特权) | |
4698 | 计划任务已创建 | |
4699 | 计划任务已删除 | |
4700 | 启用计划任务 | |
4701 | 禁用计划任务 | |
4702 | 更新计划任务 | |
4720 | 创建用户 | |
4726 | 删除用户 | |
4728 | 成员已添加到启用安全性的全局组 | 确保添加安全组成员的资格信息 |
4740 | 锁定用户账户 | 检测可能的暴力密码攻击 |
4756 | 成员已添加到启用安全性的通用组 | |
6005 | 表示日志服务已经启动(表明系统正常启动了) | 查看系统启动情况 |
事件查看器
事件查看器
或者
运行-eventvwr或eventvwr.msc
在事件点击安全 点击 筛选当前日志 输入id进行 筛选
定期审查安全事件日志,特别是事件ID 4720,以便及时发现任何未经授权的帐户创建。
筛选 4625 找到大量的失败的登录日志 有可能被暴力破解。
2、web日志分析
从Web应用日志中,可以分析攻击者在什么时间、使用哪个IP,访问了哪个网站。
根据使用不同的中间件,log日志位置也不同,百度搜即可。
1、Nginx
2、Apache
3、Tomcat
三、文件痕迹排查
1、查看用户最近的打开的文件
运行-%UserProfile%\Recent 查看用户最近的打开的文件 对可疑的文件进行分析 文件可疑上传到 病毒库平台分析。
2、查看临时目录
运行-%tmp%
四、webshell&木马病毒 - 查杀
1、webshell
河马:https://www.shellpub.com/
D盾(iis):https://www.d99net.net/
2、木马病毒
360杀毒:https://sd.360.cn/
360安全大脑:https://sc.360.net/
火绒:https://www.huorong.cn/
微步在线云沙箱:https://s.threatbook.com/
腾讯哈勃分析系统:https://habo.qq.com/
Jotti恶意软件扫描系统:https://virusscan.jotti.org/
ScanVir:http://www.scanvir.com/