Win11彻底关闭Defender(包括禁用、删除Defender服务和文件夹)
一般是不建议禁止defender自动更新或者彻底关闭Defender的,但如果你有其他替代的安全方案了,觉得defender有干扰业务隐患,想干掉,那这篇文档非常适用。耗费了不少心血在server2016-2022和win10、win11上对比实践。
Win10我没试,适用Win11的方案基本是能搞定Win10的
Win10/Win11微软原本设计就是不让你干掉Defender的,微软告诉我的
Stop-Service WinDefend 2>&1 > $null
Stop-Service WinDefend -ErrorAction SilentlyContinue
执行这2句都报错
但我要研究的是如何彻底干掉Windows Defender。
言归正传,介绍如何通过安全模式和提权彻底干掉Defender
0、配置自动登录在vnc操作会方便一些
CMD命令行
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执行如下命令
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
下面这段命令执行后,最最最终要复原下
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
复原执行这个
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命令行运行以下两条命令行开启高级选项
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(开机禁止启动)
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
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、配置退安全模式并重启机器
要反向步骤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:
PsExec.exe -i -s regedit.exe
c.以WinDefend为例介绍提权,在打开的注册表编辑器中,定位到:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinDefend
右击选择权限,然后按下图进行配置:
切记务必要勾选第六步的Replace all child object permission
d. 右击"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinDefend"注册表导出进行备份
e. 以管理员权限打开cmd,运行命令加载system权限的PowerShell:
psexec.exe -i -s powershell.exe
f. 在弹出的powershell窗口中运行如下命令删除WinDefend的注册表
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)
先提权,然后执行
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命令行执行命令
提权:
PsExec.exe -i -s cmd.exe
执行命令:
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停止服务
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密切相关。反正目前就遇到了上面列的那些服务,干脆禁用掉遇到的这些服务再重启机器试试。
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 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等小工具的使用
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文件夹删掉。