Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
Trawler — 帮助事件响应者发现潜在对手持久性机制的PowerShell脚本。 | Kitploit
工具/GitHubGitHub/joeavanzato/trawler
防御工具持久化机制取证分析数字取证事件响应
GitHubjoeavanzato/trawler

Trawler

帮助事件响应者发现潜在对手持久性机制的PowerShell脚本。

查看仓库
340381年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

为持久化而疏浚Windows

这是什么?

Trawler 是一个 PowerShell 脚本,旨在帮助事件响应者在 Windows 主机上发现潜在的安全入侵指标,主要关注持久化机制,包括计划任务、服务、注册表修改、启动项、二进制文件修改等。

目前,trawler 可以检测 MITRE 和 Atomic Red Team 明确指出的绝大多数持久化技术,并且会定期添加更多检测。

主要特性

  • 扫描 Windows 操作系统的多种持久化技术(如下所列)
  • CSV 输出,包含 MITRE 技术及调查启动元数据
  • 分析与修复指导文档(https://github.com/joeavanzato/Trawler/wiki/Analysis-and-Remediation-Guidance)
  • 为每个检测动态分配风险等级
  • 内置常见 Windows 配置(Windows 10/Server 2012|2016|2019|2022)的允许列表,以减少噪声
  • 从“黄金”企业镜像(快照)捕获持久化元数据,在运行时作为动态允许列表使用
  • 通过驱动器重定向分析挂载的磁盘镜像

如何使用?

只需以管理员身份运行 PowerShell/cmd 提示符,下载并运行 trawler.ps1 – 所有检测结果将显示在控制台中,同时写入当前工作目录的 CSV 文件('detections.csv')中。生成的 CSV 包含检测名称、来源、风险等级、元数据以及相关的 MITRE 技术。

或者,在管理员 PowerShell 终端中使用以下单行命令:

root@kitploit:~
iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/joeavanzato/Trawler/main/trawler.ps1'))

某些检测具有内置的允许列表,有助于消除默认 Windows 配置(10/2016/2019/2022)产生的噪声 – 例如预期的计划任务、服务等。当然,攻击者总是有可能直接劫持这些项,并以高度细节伪装成默认操作系统进程 – 在面对精明对手时,请务必使用多种分析与检测手段。

如果您有额外检测的示例或想法,请随时提交 Issue 或 PR,附上相关技术细节/参考 – 代码库目前略显混乱,后续会逐步清理。

此外,如果您发现明显的误报,请在 GitHub 上通过打开 Issue 或 PR 告知我!最常见的误报来源是非标准的 COM、服务或任务。

CLI 参数

root@kitploit:~
-scanoptions : 通过 Tab 浏览可能的检测项,并使用逗号分隔的术语选择子集(例如 .\trawler.ps1 -scanoptions Services,Processes),或跳过以执行所有检测
-quiet : 抑制控制台输出检测结果
-snapshot : 先前 trawler JSON 输出的路径,用作允许列表
-outpath : 定义保存检测输出的自定义文件路径(默认为 "$PSScriptRoot\detections.csv")
-drivetarget : 定义已挂载目标驱动器的变量(例如 .\trawler.ps1 -targetdrive "D:")–(默认为本地系统)
-daysago : 定义我们考虑基于时间检测的“往回天数”(默认为 45)
-hashmode : 定义用于支持的检测的哈希算法 – 支持 sha1、md5 或 sha256(默认为 sha1)
-evtx : 启用创建事件日志源,并将检测写入应用程序事件日志,源为 trawler,事件 ID 为 9001(默认禁用)

这与 PersistenceSniper 有何不同?

PersistenceSniper 是一个很棒的工具 – 过去我经常使用它 – 但这两个工具有几个关键区别:

  • trawler(目前)是一个本地工具 – 不过将其包装在循环中,通过 WinRM/PowerShell 会话在远程主机上执行是相当直接的
  • trawler 对许多“嘈杂”的检测实现了允许列表,以帮助消除 Windows 默认配置(10/2016/2019/2022)中预期的检测,并且这些列表在不断更新(PS 也有类似功能)
    • PersistenceSniper(在大多数情况下)不包含任何类型的允许列表 – 因此,在检查服务、计划任务、通用 COM DLL 扫描等项目时会产生更多噪声。
  • trawler 的输出已简化 – 每个检测仅提供名称、风险等级、来源、MITRE 技术和元数据,以帮助分析师快速启动持久化狩猎工作 – 这是一把双刃剑。
  • 许多检查中使用正则表达式来帮助检测各种关键区域中的“可疑”关键词或模式,包括扫描的文件内容、注册表值等。这提供了更大的灵活性,但也可能带来更高的误报率。
  • trawler 支持“驱动器重定向”,以检查挂载到分析机器的死机磁盘。

总体而言,这些工具非常相似,但从稍有不同的角度处理问题 – PersistenceSniper 将所有信息返回给分析师审查,而 Trawler 试图限制返回的结果只包含可能为潜在对手持久化机制的条目。因此,如果攻击者完全模仿允许列表中的项目,trawler 可能会出现漏报。

例如 – PersistenceSniper 会返回所有“非安全”的 Windows 服务,而 trawler 仅返回那些匹配特定检测规则的服务。

针对您的环境进行调整

Trawler 支持从“快照”加载允许列表 – 这需要两个步骤:

  1. 在代表您环境中服务器的“黄金镜像”上运行 '.\trawler.ps1 -snapshot' – 完成后,除了标准的 'detections.csv' 外,还会生成一个名为 'snapshots.csv' 的文件
  2. 然后可以将此文件作为输入用于在其他主机上运行 trawler,数据将动态加载为每个适当检测的允许列表
    1. '.\trawler.ps1' -loadsnapshot "path\to\snapshot.csv"

就是这样 – 所有相关检测随后将从快照文件中提取数据作为允许列表,以减少噪声并识别可能对基础镜像发生的任何更改。

(大多数检查已实现允许列表,但并非全部 – 仍在积极实施中)

驱动器重定向

在调查过程中,分析师经常需要挂载代表已镜像 Windows 设备的新驱动器 – Trawler 现在部分支持通过 '-drivetarget' 参数扫描这些已挂载的驱动器。

在运行时,Trawler 将重新定向脚本级别的临时变量,用于检查基于文件的工件,并尝试在 HKLM/HKU 下加载相关的注册表配置单元(HKLM\SOFTWARE、HKLM\SYSTEM、NTUSER.DAT、USRCLASS.DAT),并以 'ANALYSIS_' 为前缀。Trawler 还会在脚本完成后尝试卸载这些临时加载的配置单元。

例如,如果您的镜像挂载在 'F:\Test' 位置,其中包含 NTFS 文件系统('F:\Test\Windows'、'F:\Test\User' 等),则可以像下面这样调用 trawler:

root@kitploit:~
.\trawler.ps1 -drivetarget "F:\Test"

请注意,由于 trawler 尝试从目标驱动器加载注册表配置单元文件,因此将 UNC 路径映射到远程活动设备将不起作用,因为系统锁将阻止访问这些文件。我正在研究处理远程活动设备的方法,敬请期待。

驱动器重定时不会检查哪些内容?

  • 正在运行的进程
  • 网络连接
  • “幽灵”DLL
  • WMI 消费者(正在处理)
  • BITS 作业(正在处理)
  • 证书解析(正在处理)

大多数其他检查将正常运行,因为它们完全基于读取注册表配置单元或基于文件的工件(或可以转换为类似操作,例如直接读取任务 XML 而不是使用内置命令)。

在驱动器重定时中检查的任何限制将在 GitHub Wiki 中更详细地讨论。

示例图片

检查了哪些内容?

  • 计划任务
  • 用户
  • 服务
  • 正在运行的进程
  • 网络连接
  • WMI 事件消费者(命令行/脚本)
  • 启动项发现
  • BITS 作业发现
  • Windows 辅助功能修改
  • PowerShell 配置文件存在性
  • Office 受信任文档
  • Office 来自受信任位置的加载项
  • SilentProcessExit 监控
  • Winlogon 帮助程序 DLL 劫持
  • 映像文件执行选项劫持
  • RDP 影子会话
  • 远程会话的 UAC 设置
  • 打印监视器 DLL
  • LSA 安全与认证包劫持
  • 时间提供程序 DLL
  • 打印处理器 DLL
  • 启动/登录 Active Setup
  • 用户初始化登录脚本劫持
  • 屏幕保护程序可执行文件劫持
  • Netsh DLL
  • AppCert DLL
  • AppInit DLL
  • 应用程序垫片
  • COM 对象劫持
  • LSA 通知劫持
  • 'Office test' 使用
  • Office GlobalDotName 使用
  • 终端服务 DLL 劫持
  • 自动拨号 DLL 劫持
  • 命令自动运行处理器滥用
  • Outlook OTM 劫持
  • 信任提供商劫持
  • LNK 目标扫描(可疑术语、多个扩展名、多个 EXE)
  • 加载到正在运行进程中的“幽灵”Windows DLL 名称(例如,未签名的 WptsExtensions.dll)
  • 扫描关键操作系统目录中未签名的 EXE/DLL
  • 未加引号的服务路径劫持
  • PATH 二进制文件劫持
  • 常见文件关联劫持与可疑关键词
  • 可疑证书搜索
  • GPO 脚本发现/扫描
  • NLP 开发平台 DLL 覆盖
  • AeDebug/.NET/脚本/进程/WER 调试替换
  • Explorer 'Load'
  • Windows Terminal startOnUserLogin 劫持
  • App Path 不匹配
  • 服务 DLL/ImagePath 不匹配
  • GPO 扩展 DLL
  • 潜在的 COM 劫持
  • 非标准 LSA 扩展
  • DNSServerLevelPluginDll 存在
  • Explorer\MyComputer 实用程序劫持
  • 终端服务 InitialProgram 检查
  • RDP 启动程序
  • Microsoft 遥测命令
  • 非标准 AMSI 提供程序
  • Internet 设置 LUI 错误 DLL
  • PeerDist\Extension DLL
  • ErrorHandler.CMD 检查
  • 内置诊断 DLL
  • MiniDumpAuxiliary DLL
  • KnownManagedDebugger DLL
  • WOW64 兼容层 DLL
  • EventViewer MSC 劫持
  • 卸载字符串扫描
  • PolicyManager DLL
  • SEMgr 钱包 DLL
  • WER 运行时异常处理程序
  • HTML 帮助 (.CHM)
  • 远程访问工具工件(文件、目录、注册表键)
  • ContextMenuHandler DLL 检查
  • Office AI.exe 存在
  • Notepad++ 插件
  • MSDTC 注册表劫持
  • Narrator DLL 劫持 (MSTTSLocEnUS.DLL)
  • 可疑文件位置检查
  • BootVerificationProgram 检查

待办事项

  • 为每个检测在 GitHub Wiki 中添加分析与修复指导(进行中)
  • 浏览器扩展分析 (?)
  • RID 劫持 [https://www.ired.team/offensive-security/persistence/rid-hijacking][https://pentestlab.blog/2020/02/12/persistence-rid-hijacking/]
  • PowerAutomate 检查
  • ShadowPad 指标 [https://www.secureworks.com/research/shadowpad-malware-analysis, https://www.hexacorn.com/blog/2023/02/25/beyond-good-ol-run-key-part-141/]
  • OBS 启动脚本扫描 [https://www.hexacorn.com/blog/2023/04/14/beyond-good-ol-run-key-part-142/]
  • SQL Server Management Addins [https://www.hexacorn.com/blog/2019/09/28/beyond-good-ol-run-key-part-117/]
  • AutoPlay Handler 检查 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers]
  • HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\Pending\SPReviewEnabler
  • OCSetup [https://www.hexacorn.com/blog/2019/11/09/beyond-good-ol-run-key-part-122/]
  • 审查 https://hijacklibs.net/# 以获取更多机会
  • 审查 https://www.wietzebeukema.nl/blog/hijacking-dlls-in-windows 以获取更多机会
  • 审查 https://silentrunners.org/launchpoints.html 以获取更多机会

评估的 MITRE 技术

请注意,有些技术的检测程度自然高于其他技术 – 例如,我们没有检测所有可能的注册表修改,而是检查某些键值以发现明显变化,并在没有其他适用技术时使用通用 MITRE 技术“修改注册表”。对于其他项目(如 COM 劫持),我们检查相关注册表部分中的所有条目,对照“已知良好”模式进行核对,并报告未知或不匹配的值,从而对该特定技术实现更全面的检测覆盖。

  • T1037: 启动或登录初始化脚本
  • T1037.001: 启动或登录初始化脚本: 登录脚本 (Windows)
  • T1037.005: 启动或登录初始化脚本: 启动项
  • T1055.001: 进程注入: 动态链接库注入
  • T1059: 命令和脚本解释器
  • T1071: 应用层协议
  • T1098: 帐户操纵
  • T1112: 修改注册表
  • T1053: 计划任务/作业
  • T1136: 创建帐户
  • T1137.001: Office 应用程序启动: Office 模板宏
  • T1137.002: Office 应用程序启动: Office 测试
  • T1137.006: Office 应用程序启动: 加载项
  • T1176: 浏览器扩展
  • T1197: BITS 作业
  • T1505.005: 服务器软件组件: 终端服务 DLL
  • T1543.003: 创建或修改系统进程: Windows 服务
  • T1546: 事件触发执行
  • T1546.001: 事件触发执行: 更改默认文件关联
  • T1546.002: 事件触发执行: 屏幕保护程序
  • T1546.003: 事件触发执行: Windows 管理规范事件订阅
  • T1546.007: 事件触发执行: Netsh 帮助程序 DLL
  • T1546.008: 事件触发执行: 辅助功能
  • T1546.009: 事件触发执行: AppCert DLL
  • T1546.010: 事件触发执行: AppInit DLL
  • T1546.011: 事件触发执行: 应用程序垫片
  • T1546.012: 事件触发执行: 映像文件执行选项注入
  • T1546.013: 事件触发执行: PowerShell 配置文件
  • T1546.015: 事件触发执行: 组件对象模型劫持
  • T1547.002: 启动或登录自启动执行: 认证包
  • T1547.003: 启动或登录自启动执行: 时间提供程序
  • T1547.004: 启动或登录自启动执行: Winlogon 帮助程序 DLL
  • T1547.005: 启动或登录自启动执行: 安全支持提供程序
  • T1547.009: 启动或登录自启动执行: 快捷方式修改
  • T1547.012: 启动或登录自启动执行: 打印处理器
  • T1547.014: 启动或登录自启动执行: Active Setup
  • T1553: 颠覆信任控制
  • T1553.004: 颠覆信任控制: 安装根证书
  • T1556.002: 修改认证过程: 密码过滤器 DLL
  • T1564.006: 隐藏工件: 运行虚拟实例
  • T1574: 劫持执行流
  • T1574.007: 劫持执行流: 通过 PATH 环境变量拦截路径
  • T1574.009: 劫持执行流: 通过未加引号路径拦截路径

参考

如果没有令人惊叹的信息安全社区,这个工具将不会存在 – 以下是我使用的最重要的参考资料。

  • PersistenceSniper
  • MITRE ATT&CK
  • Persistence Info GitHub
  • Hexacorn - 持久化系列
  • IRED
  • PayloadsAllTheThings

更多参考

  • https://twitter.com/Laughing_Mantis/status/1645268114966470662
  • https://shellz.club/posts/a-novel-method-for-bypass-ETW/
  • https://pentestlab.blog/2023/03/20/persistence-service-control-manager/
  • https://ristbs.github.io/2023/02/15/hijack-explorer-context-menu-for-persistence-and-fun.html
  • https://pentestlab.blog/2022/02/14/persistence-notepad-plugins/
下载工具
  • DiskCleanupHandler 检查
  • 低完整性隔离检查
  • 可疑名称的已安装软件
  • 目录服务还原模式状态
  • 服务控制管理器安全描述符修改
  • Windows Subsystem for Linux VM
  • 浏览器扩展分析