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

2023-11-15 11:41:15 浏览数 (1)

一般是不建议禁止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句都报错

要解决这个问题其实简单,参考我这篇文档https://cloud.tencent.com/developer/article/old/2293494

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

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

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

CMD命令行

代码语言:javascript复制
reg add "HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogon" /v DefaultUserName /t REG_SZ /d "Administrator" /f
reg add "HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogon" /v DefaultPassword /t REG_SZ /d "密码" /f
reg add "HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogon" /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:Windowssysmon.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_MACHINESOFTWAREPoliciesMicrosoftWindows Defender" /v "DisableAntiSpyware" /d 1 /t REG_DWORD /f
reg add  "HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftWindows DefenderReal-Time Protection" /v DisableRealtimeMonitoring /t REG_DWORD /d 1 /f

Get-ScheduledTask -TaskPath "MicrosoftWindowsData Integrity Scan","MicrosoftWindowsApplicationData","MicrosoftWindowsDefrag","MicrosoftWindowsDiskCleanup","MicrosoftWindowsDiskDiagnostic","MicrosoftWindowsDiskFootprint","MicrosoftWindowsWindows Defender","MicrosoftWindowsMaintenance" 2>$null | Disable-ScheduledTask 2>$null
reg add "HKLMSYSTEMCurrentControlSetControlSession ManagerMemory Management"  /v "ClearPageFileAtShutdown" /d 0 /t REG_DWORD /f

Set-ItemProperty -Path "HKLM:SOFTWAREPoliciesMicrosoftWindowsSystem" -Name "EnableSmartScreen" -Value 0 -Type DWord -Force; 
New-Item 'HKCU:SOFTWAREMicrosoftWindowsCurrentVersionAppHost' -Force
Set-ItemProperty -Path "HKCU:SOFTWAREMicrosoftWindowsCurrentVersionAppHost" -Name "EnableWebContentEvaluation" -Value 0 -Type DWord -Force
reg add "HKCUSOFTWAREMicrosoftWindowsCurrentVersionNotificationsSettingsWindows.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:ProgramDataMicrosoftWindows Defender的权限

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

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

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

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

代码语言:javascript复制
reg add "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesSense" /v Start /t REG_DWORD /d 4 /f
reg add "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesWdBoot" /v Start /t REG_DWORD /d 4 /f
reg add "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesWdFilter" /v Start /t REG_DWORD /d 4 /f
reg add "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesWdNisDrv" /v Start /t REG_DWORD /d 4 /f
reg add "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesWdNisSvc" /v Start /t REG_DWORD /d 4 /f
reg add "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesWinDefend" /v Start /t REG_DWORD /d 4 /f
reg add "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesSSDPSRV" /v Start /t REG_DWORD /d 4 /f

reg add "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesSecurityHealthService" /v Start /t REG_DWORD /d 4 /f
reg add "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServiceswscsvc" /v Start /t REG_DWORD /d 4 /f

reg add "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesMpsSvc" /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_MACHINESYSTEMCurrentControlSetServicesSecurityHealthService"|findstr /i Start
reg query "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServiceswscsvc"|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_MACHINESYSTEMCurrentControlSetServicesWinDefend

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

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

d. 右击"HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesWinDefend"注册表导出进行备份

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

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

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

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

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

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

先提权,然后执行

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

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

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

提权:

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

执行命令:

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

dir "C:ProgramDataMicrosoftWindows 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:ProgramDataMicrosoftWindows Defender文件夹删掉。

0 人点赞