上一篇 下一篇 分享链接 返回 返回顶部

Win11彻底关闭Defender(包括禁用、删除Defender服务和文件夹)

发布人:千 发布时间:2024-09-27 18:42 阅读量:394

一般是不建议禁止defender自动更新或者彻底关闭Defender的,但如果你有其他替代的安全方案了,觉得defender有干扰业务隐患,想干掉,那这篇文档非常适用。耗费了不少心血在server2016-2022和win10、win11上对比实践。

Win10我没试,适用Win11的方案基本是能搞定Win10的

Win10/Win11微软原本设计就是不让你干掉Defender的,微软告诉我的

代码语言:javascript
复制
Stop-Service WinDefend 2>&1 > $null
Stop-Service WinDefend  -ErrorAction SilentlyContinue
执行这2句都报错

但我要研究的是如何彻底干掉Windows Defender。

言归正传,介绍如何通过安全模式和提权彻底干掉Defender

0、配置自动登录在vnc操作会方便一些

CMD命令行

代码语言:javascript
复制
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultUserName /t REG_SZ /d "Administrator" /f
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultPassword /t REG_SZ /d "密码" /f
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AutoAdminLogon /t REG_SZ /d "1" /f

上面命令中的密码要具体化后再执行,要跟自己的密码匹配

配好自动登录后可以重启机器验证下自动登录的效果,然后用psexec或advancedrun提权到SYSTEM或TrustedInstaller在powershell执行如下命令

代码语言:javascript
复制
Stop-Service -name Sysmon 2>&1 > $null
Set-Service Sysmon -StartupType Disabled 2>&1 > $null
cmd /c "C:\Windows\sysmon.exe -u force" 2>&1 > $null


Stop-Service WdNisSvc 2>&1 > $null
Stop-Service WinDefend 2>&1 > $null
Stop-Service MpsSvc 2>&1 > $null
Stop-Service wscsvc 2>&1 > $null
Stop-Service SecurityHealthService 2>&1 > $null
Stop-Service Sense 2>&1 > $null
Stop-Service SSDPSRV 2>&1 > $null


Set-Service WdBoot -StartupType Disabled 2>&1 > $null
Set-Service WdFilter -StartupType Disabled 2>&1 > $null
Set-Service WdNisSvc -StartupType Disabled 2>&1 > $null
Set-Service WinDefend -StartupType Disabled 2>&1 > $null
Set-Service MpsSvc -StartupType Disabled 2>&1 > $null
Set-Service wscsvc -StartupType Disabled 2>&1 > $null
Set-Service SecurityHealthService -StartupType Disabled 2>&1 > $null
Set-Service Sense -StartupType Disabled 2>&1 > $null
Set-Service SSDPSRV -StartupType Disabled 2>&1 > $null

stop-service BaradAgentSvc 2>&1 > $null
stop-service StargateSvc 2>&1 > $null
stop-service YDLive 2>&1 > $null
stop-service YDService 2>&1 > $null
stop-service tatsvc 2>&1 > $null
stop-service WinAgent 2>&1 > $null
stop-service win-agent 2>&1 > $null
stop-service tsys 2>&1 > $null

reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender" /v "DisableAntiSpyware" /d 1 /t REG_DWORD /f
reg add  "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender\Real-Time Protection" /v DisableRealtimeMonitoring /t REG_DWORD /d 1 /f

Get-ScheduledTask -TaskPath "\Microsoft\Windows\Data Integrity Scan\","\Microsoft\Windows\ApplicationData\","\Microsoft\Windows\Defrag\","\Microsoft\Windows\DiskCleanup\","\Microsoft\Windows\DiskDiagnostic\","\Microsoft\Windows\DiskFootprint\","\Microsoft\Windows\Windows Defender\","\Microsoft\Windows\Maintenance\" 2>$null | Disable-ScheduledTask 2>$null
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management"  /v "ClearPageFileAtShutdown" /d 0 /t REG_DWORD /f

Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\System" -Name "EnableSmartScreen" -Value 0 -Type DWord -Force; 
New-Item 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\AppHost' -Force
Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\AppHost" -Name "EnableWebContentEvaluation" -Value 0 -Type DWord -Force
reg add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Notifications\Settings\Windows.SystemToast.SecurityAndMaintenance" /v "Enabled" /t REG_DWORD /d 0 /f

 

下面这段命令执行后,最最最终要复原下

代码语言:javascript
复制
Set-Service wuauserv -StartupType Disabled 2>&1> $null
Set-Service WpnService -StartupType Disabled 2>&1> $null
Set-Service smphost -StartupType Disabled 2>&1> $null
Set-Service Winmgmt -StartupType Disabled 2>&1> $null
Set-Service YDLive -StartupType Disabled 2>&1 > $null
Set-Service YDService -StartupType Disabled 2>&1 > $null

复原执行这个

代码语言:javascript
复制
Set-Service wuauserv -StartupType Automatic 2>&1> $null
Set-Service WpnService -StartupType Automatic 2>&1> $null
Set-Service smphost -StartupType Manual 2>&1> $null
Set-Service Winmgmt -StartupType Automatic 2>&1> $null
Set-Service YDLive -StartupType Automatic 2>&1 > $null
Set-Service YDService -StartupType Automatic 2>&1 > $null

 

那些执行报错的命令,先记下,在安全模式里再执行一遍,如果安全模式还不行,那就等后面文件夹和注册表提权后再执行一遍。

 

1、配置进安全模式

以管理员身份打开CMD命令行运行以下两条命令行开启高级选项

代码语言:javascript
复制
CMD命令行
bcdedit /set {default} advancedoptions on
bcdedit /set {default} recoveryenabled off

powershell命令行
cmd.exe /c "bcdedit /set {default} advancedoptions on"
cmd.exe /c "bcdedit /set {default} recoveryenabled off"


这样设置完,以后重启机器就会停在等待选择的界面

 

按4进入安全模式

 

2、这一步很关键,不能漏,修改C:\ProgramData\Microsoft\Windows Defender\的权限

参考这篇文档第2和第3步

https://blog.csdn.net/qq_34185638/article/details/127273044

属性 → 安全 → 高级 → 改变所有者 → Administrators(如下图) → 应用 → 是 → 是 → 确定 → 确定 → 确定

3、注册表命令设置defender相关的服务start为4(开机禁止启动)

代码语言:javascript
复制
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Sense" /v Start /t REG_DWORD /d 4 /f
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WdBoot" /v Start /t REG_DWORD /d 4 /f
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WdFilter" /v Start /t REG_DWORD /d 4 /f
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WdNisDrv" /v Start /t REG_DWORD /d 4 /f
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WdNisSvc" /v Start /t REG_DWORD /d 4 /f
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinDefend" /v Start /t REG_DWORD /d 4 /f
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SSDPSRV" /v Start /t REG_DWORD /d 4 /f

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SecurityHealthService" /v Start /t REG_DWORD /d 4 /f
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\wscsvc" /v Start /t REG_DWORD /d 4 /f

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MpsSvc" /v Start /t REG_DWORD /d 4 /f
如果SecurityHealthService、wscsvc报错,可以到第5步regedit.exe提权SYSTEM权限后再操作,也可以直接忽略
代码语言:javascript
复制
sc.exe query SecurityHealthService
sc.exe query wscsvc
reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SecurityHealthService"|findstr /i Start
reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\wscsvc"|findstr /i Start

 

4、配置退安全模式并重启机器

代码语言:javascript
复制
要反向步骤1的操作
cmd命令行操作执行
bcdboot c:\windows
或者
bcdedit /set {default} advancedoptions off
bcdedit /set {default} recoveryenabled on

5、登录后提权注册表权限 → 删除注册表即删除服务(可以不删,因为重启后已经是禁用状态了,但如果要删服务,直接sc.exe delete servicename是删不了的,需要提权删注册表)

 

a.下载PsExec工具,拷贝到服务器上,例如C盘根目录,下载链接:PsExec - Windows Sysinternals | Microsoft Docs

b. 先确保当前会话所有的注册表编辑器关闭,以管理员权限打开cmd,运行命令加载system权限的regedit.exe:

代码语言:javascript
复制
PsExec.exe -i -s regedit.exe

c.以WinDefend为例介绍提权,在打开的注册表编辑器中,定位到:

代码语言:javascript
复制
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinDefend

 

右击选择权限,然后按下图进行配置:

代码语言:javascript
复制
切记务必要勾选第六步的Replace all child object permission

 

d. 右击"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinDefend"注册表导出进行备份

e. 以管理员权限打开cmd,运行命令加载system权限的PowerShell:

代码语言:javascript
复制
psexec.exe -i -s powershell.exe

f. 在弹出的powershell窗口中运行如下命令删除WinDefend的注册表

代码语言:javascript
复制
Remove-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Services\WinDefend" 2>$null
或者
Remove-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Services\WinDefend" -Recurse -force -Confirm:0 2>$null

删除注册表后重启机器去服务列表查看Microsoft Defender Antivirus Service(WinDefend)已经消失了

如法炮制,也可以干掉Microsoft Defender Antivirus Network Inspection Service(WdNisSvc)

先提权,然后执行

代码语言:javascript
复制
Remove-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Services\WdNisSvc" 2>$null
或者
Remove-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Services\WdNisSvc"-Recurse -force -Confirm:0 2>$null

 

6、如果要删除C:\ProgramData\Microsoft\Windows Defender\(可以不删),第2步是必须的,

在提权后的cmd命令行执行命令

提权:

代码语言:javascript
复制
PsExec.exe -i -s cmd.exe

执行命令:

代码语言:javascript
复制
TAKEOWN /F "C:\ProgramData\Microsoft\Windows Defender" /A /R /D Y 2>nul 1>nul
ICACLS "C:\ProgramData\Microsoft\Windows Defender" /T /grant :r Administrators:F 2>nul 1>nul
RD /S /Q "C:\ProgramData\Microsoft\Windows Defender" 2>nul 1>nul
以上三句不一定能全部删完,可能有其他服务占用该目录的文件,比如我就遇到过wuauserv、smphost、WpnService、Winmgmt、YD*等等

dir "C:\ProgramData\Microsoft\Windows Defender"
哪个服务占用文件?我是用https://lockhunter.com/ 定位的,非常简单,安装后在文件上右击"What's locking this file?"即可
把那些占用文件的服务关闭后再删除就能删掉了

powershell停止服务

代码语言:javascript
复制
stop-service servicename,例如
stop-service wuauserv
stop-service smphost
stop-service WpnService
stop-service Winmgmt
stop-service YDLive
stop-service YDService

如果你关掉一个调用文件的服务又产生一个,总之,源源不断,那干脆再进一遍安全模式,在安全模式里试试干掉这个文件夹

进入安全模式要删除的时候报了这个

再退出安全模式正常进入系统又报了这个,就这一个文件,真难受

此时用lockhunter定位占用文件的服务,发现是WpnService

怪不得右下角老推送安全通知说安全中心未打开,干脆鼠标点击关闭所有安全通知

结合上面2个图,可以确定WpnService跟User Profile Service密切相关。反正目前就遇到了上面列的那些服务,干脆禁用掉遇到的这些服务再重启机器试试。

代码语言:javascript
复制
Set-Service wuauserv -StartupType Disabled 2>&1> $null
Set-Service WpnService -StartupType Disabled 2>&1> $null
Set-Service smphost -StartupType Disabled 2>&1> $null
Set-Service Winmgmt -StartupType Disabled 2>&1> $null

如此,这个文件夹终于全部删掉了。

然后再把调整的这几个服务复原。

代码语言:javascript
复制
Set-Service wuauserv -StartupType Automatic 2>&1> $null
Set-Service WpnService -StartupType Automatic 2>&1> $null
Set-Service smphost -StartupType Manual 2>&1> $null
Set-Service Winmgmt -StartupType Automatic 2>&1> $null

 

最终,彻底关闭WinDefend后,再执行这2句命令就不报错了,但这样太重了

并且,关闭Windows Defender Firewall可能会有其他问题,比如:关/禁防火墙mpssvc服务可能会影响notepad、mspaint、calc等小工具的使用

代码语言:javascript
复制
Stop-Service WinDefend 2>&1 > $null
Stop-Service WinDefend  -ErrorAction SilentlyContinue

总之,安全模式搞掉Windows Defender好繁琐,即便搞掉了,可能也会带来其他问题,微软为了PC系统的安全性也是煞费苦心啊。

另外一种比较稳健的关闭defender办法

winpe在system用户级别把原系统SYSTEM注册表挂出来删掉services列表里的WdNisSvc和WinDefend,这样就删掉服务了,然后再在system用户级别把C:\ProgramData\Microsoft\Windows Defender文件夹删掉。

目录结构
全文