我有一个简单的测试场景,其中应用程序崩溃,但我对获取/分析崩溃转储不感兴趣,但速度也是一个问题。出于这个原因,我尝试了各种方法来禁用 Windows 错误报告服务,因为它会启动以下进程,导致测试严重停机:
- WerFault.exe - 产生多个进程
- wermgr.exe
我尝试使用以下方法禁用 WER:
- WER 设置:在普通配置单元和 WOW6432Node 配置单元中将禁用键设置为 1
- 组策略设置,在计算机配置/管理模板/系统/Internet 通信管理/Internet 通信设置下关闭 Windows 错误报告
- 组策略设置,在计算机配置/管理模板/Windows 组件/Windows 错误报告下禁用 Windows错误报告
- 在services.msc 中停止和禁用Windows 错误报告服务
我已经运行了进程监视器并设置了适当的过滤器(进程和操作)以仅查看相关信息,并且我可以清楚地看到,WerFault.exe 始终运行,并且正在编写以下文件:
- C:\ProgramData\Microsoft\Windows\WER\Temp[PROCESS_NAME].tmp
- C:\ProgramData\Microsoft\Windows\WER\ReportQueue\AppCrash_[PROCESS_NAME]\Report.wer.tmp
当我手动导航到那里时,这些文件不存在,所以我有一种预感,Windows 仍在后台生成故障转储以发送到 MS,尽管机器已完全与 Internet 断开连接。
是否有可能以某种方式禁用运行这些进程?
找到解决方案:创建一个新键作为
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\WerFault.exe
添加的新字符串值,命名为“Debugger”,并给它一个不存在的 exe 名称。这样,WerFault.exe 将使用无效的调试器运行,并且不会启动。有用的链接: https ://pentestlab.blog/2020/01/13/persistence-image-file-execution-options-injection/ https://github.com/tdebaets/wertweak