Skip to main content

windows-incident-response

Windows主机应急响应处置技能(源自 NOP Team《Windows应急响应 Cookbook v1.2》全量内容,全部图形化操作已转化为命令行)。覆盖挖矿病毒、远控后门、勒索病毒、暴力破解(RDP/SMB/SNMP/FTP/MSSQL)、钓鱼、非持续性恶意外连、隧道、BadUSB、MSSQL后门九类事件处置,38项常规安全检查(隐藏账户/启动项/计划任务/服务/WMI事件订阅/COM劫持/IFEO/AppInit/Winsock/屏幕保护等30余种权限维持排查)、善后定损、取证小技巧。远程处置走 Windows 自带 WinRM 通道(控制台工具或 pywinrm 直连),支持 AI 免 RDP 全自动命令行取证。当用户报告或要求处理 Windows 主机被入侵、CPU异常、挖矿、勒索加密、RDP/SMB/FTP/MSSQL爆破、可疑外连、后门、隧道、webshell,或要求应急响应、安全检查、权限维持排查、取证分析时使用。

Source facts

Repository
ProbiusOfficial/windows-ir-skill
Last source activity
September 6, 2026 at 05:09
Detected SKILL.md language
Chinese
Stars
36
Forks
4

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
windows-incident-response
description
Windows主机应急响应处置技能(源自 NOP Team《Windows应急响应 Cookbook v1.2》全量内容,全部图形化操作已转化为命令行)。覆盖挖矿病毒、远控后门、勒索病毒、暴力破解(RDP/SMB/SNMP/FTP/MSSQL)、钓鱼、非持续性恶意外连、隧道、BadUSB、MSSQL后门九类事件处置,38项常规安全检查(隐藏账户/启动项/计划任务/服务/WMI事件订阅/COM劫持/IFEO/AppInit/Winsock/屏幕保护等30余种权限维持排查)、善后定损、取证小技巧。远程处置走 Windows 自带 WinRM 通道(控制台工具或 pywinrm 直连),支持 AI 免 RDP 全自动命令行取证。当用户报告或要求处理 Windows 主机被入侵、CPU异常、挖矿、勒索加密、RDP/SMB/FTP/MSSQL爆破、可疑外连、后门、隧道、webshell,或要求应急响应、安全检查、权限维持排查、取证分析时使用。
# Windows 应急响应 本技能是《Windows应急响应 Cookbook v1.2》(NOP Team,830页)的结构化 CLI 化转写版本([原著仓库](https://github.com/Just-Hack-For-Fun/Windows-INCIDENT-RESPONSE-COOKBOOK) · [在线阅读](https://book.noptrace.com/);双层许可:源自原手册的内容遵循 GPL-3.0,本项目 GUI→CLI 转化与新增内容以 MIT 发布,详见 LICENSE),按事件类型拆分为 `references/`,保留原书页码(`pN`)可回溯。**核心改编:原书大量流程依赖 GUI(任务管理器/regedit/事件查看器/lusrmgr 等),本技能已全部转为命令行等价操作**,GUI 工具(Process Explorer/System Informer/OpenArk/Autoruns 等)仅作为交互式人工排查的备选提及。 ## 使用流程 0. **有 WinRM 凭据时优先用控制台工具**:`python scripts/win-ir-console-web.py`(WebUI,浏览器打开 http://127.0.0.1:8527)填目标地址勾选检查项一键排查+标记+查杀,参数化检查项支持路径定向,人工环节工具内提示;无浏览器环境用 `win-ir-console.py`(tkinter);只有命令行通道时按下述流程手动处置。 1. **判断事件类型**,按"场景路由"读取对应参考文件(处置前先读 `references/00-cheatsheet.md` 取命令,参考文件里有完整背景与页码)。 2. 所有事件都遵循**统一处置主线**(下节),场景文件只讲差异部分。 3. 进程与文件处置完成后,**必须**走"善后阶段 + 常规安全检查"——挖矿/远控事件通常伴随多种权限维持后门(隐藏账户、计划任务、WMI订阅、COM劫持等),只删恶意文件不查后门必然复发。 4. 报告结论时给出:事件定性、IOC(IP/域名/文件MD5)、时间线、已处置项、遗留风险、加固建议。 5. **遇到"人工介入点"(见下节)必须停下来提醒用户去操作**,标注清楚谁、在哪、做什么、如何回报;不得跳过、不得假装已由 Agent 完成。 ## 场景路由 | 场景 | 参考文件 | |---|---| | 命令速查(高频命令单行版,先读这个) | `references/00-cheatsheet.md` | | 任何事件开始前(物料/工具准备,CLI 化配置) | `references/01-preparation.md` | | 挖矿病毒(CPU异常、可疑外连矿池) | `references/02-mining.md` | | 远控后门(EDR 告警文件、外连 C&C 的 IP:端口) | `references/03-backdoor.md` | | 挖矿/远控/非持续共用核心流程(找pid→样本→启动时间→查杀→删文件) | `references/04-core-procedures.md` | | 勒索病毒(文件被加密、勒索信) | `references/05-ransomware.md` | | 暴力破解(RDP/SMB/SNMP/FTP/MSSQL 爆破告警) | `references/06-brute-force.md` | | 钓鱼事件 | `references/07-phishing.md` | | 非持续性事件(恶意外连偶尔出现、抓不到进程) | `references/08-non-persistent.md` | | 隧道事件(DNS/ICMP/TCP/UDP/KCP/QUIC/Web 隧道) | `references/09-tunnel.md` | | BadUSB 投毒事件 | `references/10-badusb.md` | | MSSQL 事件排查(xp_cmdshell/程序集/Job/触发器) | `references/11-mssql.md` | | 善后阶段(定损、横向排查、改密) | `references/12-aftermath.md` | | 常规检查① 账号与登录(用户/隐藏账户/会话/RDP记录) | `references/13-checklist-accounts.md` | | 常规检查② 权限维持(启动项/计划任务/服务/WMI事件订阅) | `references/14-checklist-persistence.md` | | 常规检查③ 行为痕迹(近期活动/证书/命令历史/PS配置/敏感目录/浏览器) | `references/15-checklist-artifacts.md` | | 常规检查④ 系统状态(网络/进程/环境变量/补丁/日志/BITS/防火墙/Defender) | `references/16-checklist-system.md` | | 常规检查⑤ 劫持类后门(DLL/AppCert/AppInit/Shimming/IFEO/COM/PasswordFilter/NetworkProvider/Winsock) | `references/17-checklist-hijack.md` | | 取证小技巧(文件查找/时间筛选/内存搜串/内网传输) | `references/18-tips.md` | | 知识点附录(RDP登录权限规则/登录类型表/计划任务机制/服务隐藏对抗/签名验证) | `references/19-appendix.md` | | 常见问题(文件被隐藏/恶意文件被删后如何溯源) | `references/20-troubleshooting.md` | | 远程处置通道(WinRM 直连:目标无直接通道时的命令行取证方案) | `references/21-winrm.md` | 辅助脚本(上传受害机前先审计内容): - `scripts/win-ir-console-web.py` — **★远程应急响应控制台(WebUI,首选)**:`python win-ir-console-web.py [--port 8527 --open]` 后浏览器操作。填目标 IP + WinRM 凭据 → 14 模块 **63 项细粒度检查**(可单独勾选,侧栏 默认/全选/清空 + 底部执行按钮,隐藏服务枚举/全命名空间 WMI 等重项默认关闭);**13 个参数化检查项支持路径定向**(路径/pid/服务名/任务名/IP/注册表键/天数);点选检查项在**底部命令预览 dock** 实时显示将执行的命令(可收起);无论是否有发现均全量落盘 `IR_logs/IR_*.log`,可导出 Markdown 报告;「自定义命令」页内置 **8 个常用命令模板**(最早RDP登录/计划任务动作/按名搜索/读文件/MD5/外连/读flag目录,免手写转义)+ 命令历史 + Ctrl+Enter;发现项可标记(持久化)→ **定向查杀**按类型自动处置(执行前确认);「人工介入指引」页签给出 GUI-only 环节的用户操作步骤;连接参数自动记忆、pywinrm 三层超时对齐 + 瞬断自动重试、中文输出(UTF-8 prelude + wmic UTF-16/GBK 智能解码)。依赖 `pip install pywinrm` - `scripts/win-ir-console.py` — 同功能的 tkinter 桌面版(无浏览器环境时备用) - `scripts/win-triage.ps1` — 一键体检(无 GUI 纯 CLI 采集,输出文本报告;适合通道只有命令行时上传目标机执行) - `scripts/win-monitor-conn.bat` — 地址诱骗/非持续性事件:监控连向指定 IP 的进程并自动落盘取证(netstat + wmic 循环) ## 统一处置主线 挖矿、远控、隧道、非持续性、BadUSB 共用同一条主线,仅"定位 pid"入口不同(完整命令见 `04-core-procedures.md`): ``` 梳理现场(IOC:IP/域名/文件MD5 → 威胁情报研判 → 二次核实 → 问历史事件) ↓ 定位异常进程 pid ←入口因场景而异: 挖矿: Get-Process 按 CPU/内存/网络排序(tasklist/wmic/PS 三选一) 远控: EDR给文件→handle.exe 查占用反查进程;态势给IP:端口→netstat -ano | findstr / Get-NetTCPConnection 隧道: netsh trace 抓包 + etl2pcapng → Packet comments 里带 PID(p243) 非持续性: hosts 重定向恶意域名 → win-monitor-conn.bat 部署监控 → 等待触发 ↓ 查进程详情(名称/路径/命令行/启动时间): wmic process where ProcessId=<pid> get Name,ExecutablePath,CommandLine /format:list (Get-Process -Id <pid>).StartTime;wmic process where ProcessId=<pid> get CreationDate ↓ 采样取证(网络/U盘取样本 → 微步/VT/哈勃等沙箱)→ 处置: 暂停进程 pssuspend <pid> / 恢复 pssuspend -r <pid> 杀进程 taskkill /F /PID <pid> | Stop-Process -Id <pid> -Force | wmic ... call Terminate 杀进程树 taskkill /F /T /PID <pid>(/T 连同子进程) ↓ 删文件前:handle.exe <路径> 查占用(占用进程可能就是恶意进程)→ reg query 全局搜该文件路径关联的持久化 → del / Remove-Item ↓ 善后阶段(12-aftermath.md):定损 → 同密码/同漏洞/同管理员机器横向排查 → 改强密码 ↓ 常规安全检查(跑 scripts/win-triage.ps1 + 对照 13~17 各检查文件):找出隐藏后门,防复发 ``` ### 关键规则 - **杀进程**:先看父子关系——`wmic process where ProcessId=<pid> get ParentProcessId`;`taskkill /T` 杀树;有守护进程的恶意程序先杀守护(否则主程序复活)。线程级注入(附在正常业务进程里的恶意线程)慎杀,易搞崩业务,先与客户确认。 - **删文件**:`del` 删不掉按顺序排查:① `handle.exe <文件>` 查占用进程 ② `attrib <文件>` 查隐藏属性 → `attrib -s -h -r` ③ reg query 搜该文件全路径找持久化引用 ④ 还不行用 `PsExec64 -s` 提 SYSTEM 权限删。搜索到注册表引用**不要急着删**,先与各方确认。 - **hosts 修改**:诱捕/阻断时直接编辑 `C:\Windows\System32\drivers\etc\hosts`(GUI"无法保存"问题:先存桌面再覆盖)。 - **时间基准**:事件日志/WMIC 里时间是 **UTC**(`2022-06-28T12:13:51Z` = 北京时间 20:13:51),对时间线时 +8h,避免误判。 - **命令行工具字符集**:中文系统下 `findstr`/日志文本多为 GBK;PowerShell 输出统一可加 `[Console]::OutputEncoding=[Text.Encoding]::UTF8`。 ## 图形化 → 命令行对照(本技能的核心改编) | 原书 GUI 操作 | 命令行等价 | |---|---| | 任务管理器看 CPU/内存/网络占用排序 | `Get-Process \| Sort CPU -Desc \| Select -First 10 Name,Id,CPU,Path`;网络 `Get-NetTCPConnection -State Established` | | 任务管理器看进程路径/命令行列 | `wmic process get caption,executablepath,commandline /value` | | 资源监视器(resmon) | `netstat -a -n -o -b` / `Get-NetTCPConnection` / `Get-NetUDPEndpoint` | | regedit 全局搜索 | `reg query <键> /s /f "<关键字>"`(HKEY_LOCAL_MACHINE\SAM 需 `PsExec64 -s` 提权) | | 事件查看器筛选 4624/4625/4688 | `wevtutil qe Security /q:"Event/System/EventID=4625" /f:text /rd:false /c:20` 或 `Get-WinEvent -FilterHashtable @{LogName='Security';Id=4625}` | | taskschd.msc 计划任务 | `schtasks /query /fo LIST /v` / `Get-ScheduledTask`;注册表 `reg query HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tasks /s` | | services.msc / msconfig | `sc queryex` / `sc qc <服务名>` / `Get-CimInstance Win32_Service` / 注册表 Run 键 | | lusrmgr.msc 查隐藏账户 | `wmic useraccount get Name,SID,Status` + `reg query HKLM\SAM\SAM\Domains\Account\Users\Names`(SYSTEM 提权) | | msinfo32 / 系统属性 | `systeminfo` / `wmic qfe list` | | Everything 搜文件 | `es.exe "<语法>"`(CLI 版)或 `dir /s /b`、`forfiles`、`Get-ChildItem -Recurse -Filter` | | IObit Unlocker 解占用 | `handle.exe <文件>` 定位占用进程 → 结束进程后删除 | | sigverif 系统文件签名验证 | `Get-AuthenticodeSignature <文件>` / `sigcheck.exe <文件>` | | certmgr.msc 证书排查 | `Get-ChildItem Cert:\LocalMachine\Root, Cert:\LocalMachine\CA, Cert:\LocalMachine\AuthRoot` | | LastActivityView / FullEventLogView | `wevtutil qe` 组合查询 + Prefetch/Amcache 解析器(PECmd / AmcacheParser,输出 csv) | | Log Parser Lizard | Log Parser 命令行(`LogParser.exe -i:EVT -o:DATAGRID "select ..."`) | ## 人工介入点:Agent 必须提醒用户操作的环节 本技能把手册的 GUI 流程尽可能转成了 CLI,但**仍有部分环节命令行无法完成、或属于高风险授权决策**。Agent 走到这些点时,必须停止自动执行,在回复中明确提醒用户操作——根据你接入的 agentic 工具能力选择"代做并验证"还是"转述给用户"。 ### 判断原则(四类必须介入) 1. **物理/带外操作**:插拔 U 盘/USB 设备、机房断网、镜像备份、写保护 U 盘取样——只能人工。 2. **GUI-only 步骤**:目标机无命令行通道(如仅 RDP 交互、深信服僵尸网络查杀工具内存检索、Process Explorer 杀线程等无 CLI 等价的功能)——人工,或由具备 GUI 自动化能力的 Agent 代做。 3. **高风险授权决策**:杀业务进程/线程注入处置、删除注册表引用、删隐藏账户、恢复服务权限、大范围改密——**必须先向用户确认再执行**,给出风险说明。 4. **外部平台交互**:威胁情报查询、沙箱上传、勒索解密工具获取——有浏览器/网络工具可代办,没有则给用户 URL 和操作指引并索要结果。 ### 按处置阶段的介入点清单 | 阶段 | 介入点 | 给用户的提醒内容 | |---|---|---| | **通道建立** | 目标未开启 WinRM(5985/5986 不通) | 请用户经 RDP/本地控制台在目标机管理员 PowerShell 执行 `Enable-PSRemoting -Force`(工作组成员机另需 TrustedHosts,命令见 `21-winrm.md`),完成后回报;Agent 随后探测 5985 连通性确认 | | | 所有远程通道不可达 | 请用户在本地 shell 跑 `scripts/win-triage.ps1` 并把输出整体回传 | | **进程处置** | 判定为线程级注入(恶意线程附在业务进程内) | 无 CLI 杀线程手段且可能搞崩业务:给用户风险说明与三个选项(GUI 杀线程 / 重启业务进程 / 暂保留观察),等用户选择 | | | 确认目标进程是否恶意 | 可 CLI 暂停(pssuspend),但恢复/终止的时机请用户确认业务窗口 | | | 恶意进程占用关键业务文件 | 提醒用户评估停机窗口后再杀 | | **删除清理** | reg query 发现恶意文件被业务配置引用(web.config、启动脚本等) | 删除前列出引用位置,请用户/运维确认哪些可删 | | | SAM 隐藏账户删除、SDDL 隐藏服务恢复 | 需 SYSTEM 权限且误删业务账户后果严重:先请用户确认账户归属(人名/用途)再动 | | **勒索** | 解密工具运行 | **必须提醒用户先备份加密文件**(二次加密不可逆);ID Ransomware 网页识别给链接请用户上传或由 Agent 代做 | | | 是否交赎金 | 用户/管理层决策,Agent 只给技术评估 | | **BadUSB** | UUID 比对 / 设备分析 | 请用户保管恶意设备并交专业机构;同系统重复插拔比对需人工操作 | | **样本/情报** | 上传沙箱(微步/VT/哈勃)、情报平台查询 | 无浏览器工具时:给出 URL + 上传物说明(文件 hash/样本),请用户操作并回报结论 | | **善后** | 改密范围、横向机器清单 | 需用户提供资产台账(同密码/同管理员/同漏洞机器列表),Agent 不猜 | ### 提醒模板(直接用于回复,不得含糊) ``` ⚠ 需要你人工操作(原因:GUI 步骤 / 物理操作 / 高风险确认) 1.【谁】在【哪台机器/哪个界面】执行【具体步骤或命令】 - 操作路径/命令:<完整给出> - 预期结果:<…> - 完成后请回报:<截图 / 命令输出 / 是否成功> 2. …… 我已自动完成:…;收到你的回报后我将继续:… ``` ### 能力适配(按你接入的工具选择执行方式) - **具备 GUI 自动化**(computer-use 类工具且目标桌面可达):GUI 步骤可代做,完成后截图验证并把结果同步给用户;高风险决策(第 3 类)仍须用户点头。 - **仅 CLI / 远程通道**(WinRM 客户端 / ssh / 云终端):所有 GUI 步骤按提醒模板转述给用户,并给出点击路径(参考原书对应页码的 GUI 章节)。 - **用户离线/批处理**:把全部人工介入点汇总成一份"待人工操作清单"一次性输出,不要执行到一半反复阻塞等待。 ## 远程处置通道(无法直接到目标 shell 时) Windows 取证全部依赖命令行,拿到命令执行通道是第一步。统一走 **Windows 自带 WinRM(TCP 5985/5986)**,无需任何第三方工具(详见 `21-winrm.md`): 1. **目标开放 WinRM** → 直连(首选零落地):有 WinRM 凭据时用 `scripts/win-ir-console-web.py` 控制台一键排查,或用 pywinrm 等任意 WinRM 客户端逐条执行 references 里的命令。 2. **目标未开 WinRM** → **人工介入点**:按提醒模板请用户经 RDP/本地控制台执行 `Enable-PSRemoting -Force`(及 TrustedHosts 配置),开启后走直连。 3. **能直接开 CMD/PowerShell**(本地控制台/云终端/已有跳板)→ 直接跑 references 里的命令。 ## 检查时的注意事项 - **隐藏账户**:`net user` 看不到以 `$` 结尾账户和克隆账户,必须 `wmic useraccount` + SAM 注册表(PsExec -s)交叉比对;删除时 Names 键和对应 000003EA 十六进制键都要删(`13-checklist-accounts.md`)。 - **计划任务机制**(p737 实验):执行由注册表 TaskCache 决定而非 Tasks 目录文件;注册表修改需重启 Schedule 服务生效;`schtasks` 看不到的隐藏任务用注册表 + 日志排查(`14-checklist-persistence.md`)。 - **服务隐藏**:SDDL 权限隐藏的服务 `sc query` 报"拒绝访问",枚举法(reg 遍历 + sc query 交叉)可揪出;杀软/工具枚举同样失效(`19-appendix.md` §0x12)。 - **RDP 爆破日志特征**:4625 + 登录类型 3 + **源端口 0**(SMB 爆破源端口非 0,这是区分点);RDP 成功登录才有类型 10(`06-brute-force.md`)。 - **MSSQL**:登录失败默认不记成功;`xp_cmdshell` 启用会留配置变更日志;扩展存储过程/程序集按 modify_date 排序排查(`11-mssql.md`)。 - **Defender 排除项**:`Get-MpPreference` 查 ExclusionPath/ExclusionProcess——挖矿木马常给自己加白,处置时 `Remove-MpPreference` 解除。 - **威协情报/沙箱**:微步在线、Virustotal、360/安恒/绿盟/腾讯/安天情报中心;沙箱:微步云沙箱、哈勃、奇安信情报沙箱、魔盾、360沙箱云。勒索解密:No More Ransom、ID Ransomware、各厂商解密工具——解密前**先备份**防二次加密。
View on GitHub