第9章小结(9.19):Sysinternals 安全工具组合拳与脚本清单

第9章小结(9.19):Sysinternals 安全工具组合拳与脚本清单

  • [第9章小结(9.19):Sysinternals 安全工具组合拳与脚本清单](#第9章小结(9.19):Sysinternals 安全工具组合拳与脚本清单)
    • [1. 一图总览:场景 → 用哪几个工具](#1. 一图总览:场景 → 用哪几个工具)
    • [2. 标准作业流(SOP)](#2. 标准作业流(SOP))
      • [2.1 可疑程序"先验后处置"](#2.1 可疑程序“先验后处置”)
      • [2.2 文件服务器"写入面缩减"](#2.2 文件服务器“写入面缩减”)
      • [2.3 现场取证三步](#2.3 现场取证三步)
      • [2.4 下线/转让设备](#2.4 下线/转让设备)
    • [3. 快速脚本库(可改造成批量)](#3. 快速脚本库(可改造成批量))
      • [3.1 一键环境体检(签名 + 会话 + 共享)](#3.1 一键环境体检(签名 + 会话 + 共享))
      • [3.2 以"受控服务账号"运行修复命令](#3.2 以“受控服务账号”运行修复命令)
      • [3.3 清理"Everyone 可写"的共享路径清单(半自动)](#3.3 清理“Everyone 可写”的共享路径清单(半自动))
      • [3.4 HDD 快速清场(空闲区 Zero + 文件擦除 2 次)](#3.4 HDD 快速清场(空闲区 Zero + 文件擦除 2 次))
    • [4. Sysmon 最小可用基线(摘录)](#4. Sysmon 最小可用基线(摘录))
    • [5. 风险与合规提示](#5. 风险与合规提示)
    • [6. 常见问题速查](#6. 常见问题速查)
    • [7. 交付物模板(你可以直接套用)](#7. 交付物模板(你可以直接套用))
    • [8. 下一步怎么做](#8. 下一步怎么做)

第9章小结(9.19):Sysinternals 安全工具组合拳与脚本清单

目标:把 Sigcheck / AccessChk / Sysmon / AccessEnum / ShareEnum / ShellRunAs / Autologon / LogonSessions / SDelete 组成一套"查证---取证---治理---清场"的落地流程,配好可直接复用的脚本片段与操作清单。


1. 一图总览:场景 → 用哪几个工具

场景 目的 工具组合 关键点
不明可执行/驱动来源 验签、信誉、时间戳、VT 结果 SigCheck -m -i -h -nobanner;离线环境以证书链为主
权限拒绝/最小权限核查 ACL/特权/令牌验证 AccessChk -p -k -d -s 逐层看"进程→对象→注册表"
主机横向共享风险 列表化共享与可写路径 ShareEnum 找出"Everyone/Authenticated Users 可写"
大盘点(ACL 可视化) 快速扫出高危权限 AccessEnum 导出 CSV 交给治理追踪
长期行为记录 进程/网络/注册表/文件取证 Sysmon 基线配置、事件转发、哈希与 DNS 开关
谁在登录/会话取证 交互/资源登录用户 LogonSessions 区分本地/远程、会话 ID、Logon Type
自动登录背调 检查/清理 AutoLogon Autologon 审计后禁用、敏感密码落盘风险提示
以别的身份启动 提权/降权/特定用户运行 ShellRunAs 明确凭据来源,避免明文
安全删除/资产回收 擦除文件与空闲区 SDelete HDD 多次覆盖;SSD 遵循介质处置规范

2. 标准作业流(SOP)

2.1 可疑程序"先验后处置"

  1. 签名与信誉
bat 复制代码
sigcheck -m -i -h "C:\path\unknown.exe" > sigcheck.txt
  1. 落地权限与可执行性
bat 复制代码
accesschk -q -d "C:\path" > acl.txt
  1. 运行时观测(必要时)
  • 先上 Sysmon 基线;触发后统一收集事件。

若结论为恶意/不合规:

  • 先隔离(阻断执行/移动到隔离目录),再 SDelete 擦除残留和空闲区(评估介质类型)。

2.2 文件服务器"写入面缩减"

  1. 共享面审计
bat 复制代码
shareenum /s /r > shares.csv
  1. 目录 ACL 盘点(示例:工程共享盘)
bat 复制代码
accessenum \\FILESRV\E\Projects\ -nobanner -csv > acl_projects.csv
  1. 整改闭环:关闭"Everyone 可写"、精确到组,变更留痕。

2.3 现场取证三步

  1. 当前登录态
bat 复制代码
logonsessions -p > who.txt
  1. 关键自启动/口令残留(AutoLogon)
  • 审计 Autologon 状态,必要时关闭/清理。
  1. 行为记录
  • 预置 Sysmon(含哈希、网络、注册表关键 EventID),定向回传到 SIEM。

2.4 下线/转让设备

  • 数据分级 → 选择 SDelete (HDD)或加密+Crypto-Erase/厂商 Sanitize/物理销毁(SSD/闪存)。
  • 空闲区清理 + 压缩友好
bat 复制代码
sdelete -z D:    :: Zero 填充空闲区,便于镜像压缩
  • 形成处置证据(命令、输出、前后空间对比、介质序列号)。

3. 快速脚本库(可改造成批量)

3.1 一键环境体检(签名 + 会话 + 共享)

bat 复制代码
@echo off
set HOST=%1
if "%HOST%"=="" (echo 用法: healthcheck.bat <hostname> & exit /b 1)

echo [1/3] Sigcheck top 50 最近写入
sigcheck -q -m -i -h \\%HOST%\C$\Windows\*.* | sort /R | more

echo [2/3] 当前登录会话
logonsessions -p \\%HOST% > \\%HOST%\C$\temp\logons.txt 2>nul

echo [3/3] 共享盘快速罗列
shareenum /r /s \\%HOST% > \\%HOST%\C$\temp\shares.csv 2>nul

echo 完成,查看 \\%HOST%\C$\temp\

3.2 以"受控服务账号"运行修复命令

bat 复制代码
:: 用 ShellRunAs 启动 mmc 或专用修复工具
shellrunas /user:CORP\svc.ops "mmc.exe compmgmt.msc"

3.3 清理"Everyone 可写"的共享路径清单(半自动)

powershell 复制代码
# find_open_writable.ps1
param([string]$ShareRoot="\\FILESRV\E$")
$targets = @()
Get-ChildItem $ShareRoot -Recurse -Directory -ErrorAction SilentlyContinue | ForEach-Object {
  $acl = Get-Acl $_.FullName
  if ($acl.Access | Where-Object { $_.IdentityReference -match "Everyone|Authenticated Users" -and $_.FileSystemRights -match "Write|Modify|FullControl"}) {
    $targets += $_.FullName
  }
}
$targets | Out-File .\writable.txt
Write-Host "可写路径清单已生成:writable.txt"

3.4 HDD 快速清场(空闲区 Zero + 文件擦除 2 次)

bat 复制代码
sdelete -p 2 "D:\confidential\*.docx"
sdelete -z D:

4. Sysmon 最小可用基线(摘录)

目标:低噪声记录"进程创建、网络连接、映像加载、文件创建(可选)"。

xml 复制代码
<!-- 仅示例,按需扩展 -->
<Sysmon schemaversion="4.82">
  <EventFiltering>
    <ProcessCreate onmatch="include">
      <CommandLine condition="contains">.exe</CommandLine>
    </ProcessCreate>
    <ImageLoad onmatch="include">
      <ImageLoaded condition="end with">.dll</ImageLoaded>
    </ImageLoad>
    <NetworkConnect onmatch="exclude">
      <DestinationIsIpv6>true</DestinationIsIpv6>
      <DestinationPort name="LocalServices">135,445,3389</DestinationPort>
    </NetworkConnect>
    <!-- 可按名单排除常见噪声路径/签名发行商 -->
  </EventFiltering>
</Sysmon>

落地要点

  • 与域控/GPO 或 EDR 事件转发配合;
  • 定期回看基线,加入白名单(签名发行商、已知路径)。

5. 风险与合规提示

  • 最小权限:AccessChk/ShareEnum 仅做"查看",变更需审批并最小化影响面。
  • 凭据安全:ShellRunAs/Autologon 相关操作必须留痕,避免明文凭据在脚本或注册表中驻留。
  • 介质处置 :SSD/移动介质 不建议依赖多次覆盖;遵循企业数据分级与介质处置规范。
  • 证据链:签名报告、ACL 表、Sysmon 事件、会话清单、处置命令与时间线需统一归档。

6. 常见问题速查

  • "Access is denied":当前令牌非管理员;或 UAC 降权;或 Admin$ 关闭。→ 用管理员上下文/修通 SMB。
  • 共享看得到,权限改不动:ACL 继承链/显式拒绝条目。→ 先读 ACL 继承,再按顺序清理"拒绝"。
  • SDelete 写满磁盘:空闲区覆盖阶段正常现象;完成会释放。中断后清理临时文件。
  • Sysmon 日志很吵:回到基线配置,按发行商/路径/签名逐步加入白名单。

7. 交付物模板(你可以直接套用)

  • 《主机快速体检报告》:
    • 主机信息、登录会话、近 7 天新增可执行签名统计;
    • 共享权限异常清单、整改建议;
    • Sysmon 关键事件摘要与 IOC(若有)。
  • 《权限整改工单》:路径/对象、现状 ACL、目标 ACL、影响评估、回滚方式。
  • 《介质处置证明》:介质编号、处置方式(SDelete/加密擦除/物理销毁)、证据截图/日志、审批单号。

8. 下一步怎么做

  1. 把上面的 脚本库 丢进你的工具盘;
  2. 在测试机跑一遍"签名+会话+共享"的体检流;
  3. 选一个文件服务器做 AccessEnum → 整改 的小闭环;
  4. 给运维/安全团队做一次 30 分钟演练,明确分工与回滚;
  5. Sysmon 基线日志转发纳入日常巡检。

一套组合拳,覆盖"识别 → 取证 → 整治 → 清场"。从今天起,把 Sysinternals 的安全工具用得既稳又快。

相关推荐
甜鲸鱼1 小时前
【Spring Boot + OpenAPI 3】开箱即用的 API 文档方案(SpringDoc + Knife4j)
java·spring boot·后端
robch1 小时前
Java后端优雅的实现分页搜索排序-架构2
java·开发语言·架构
她说..1 小时前
在定义Java接口参数时,遇到整数类型,到底该用int还是Integer?
java·开发语言·java-ee·springboot
xian_wwq1 小时前
【学习笔记】网络安全死于平庸
笔记·学习·安全防护
两广总督是码农1 小时前
IDEA-SpringBoot热部署
java·spring boot·intellij-idea
MoFe11 小时前
【.net/.net core】【报错处理】另一个 SqlParameterCollection 中已包含 SqlParameter。
java·.net·.netcore
sang_xb1 小时前
深入解析 HashMap:从存储架构到性能优化
android·java·性能优化·架构
d111111111d1 小时前
在STM32F103C8T6中什么是读写寄存器模型,有什么用,可以干什么,详细解释。
笔记·stm32·单片机·嵌入式硬件·学习
金士顿1 小时前
DI滤波学习
学习