渗透测试中的 Windows Defender 操作

渗透测试中的 Windows Defender 操作

Fri Nov 08 2024
3 分钟

Windows Defender(现称为 Microsoft Defender Antivirus)是微软为 Windows 系统提供的内置防病毒解决方案,旨在提供实时保护,抵御病毒、恶意软件等潜在威胁。

查看 Windows Defender版本#

我们可以在 Windows 安全中心的关于中,查看当前 WD 的版本

这个版本会以文件名显示在程序文件夹中,目标目录为 C:\ProgramData\Microsoft\Windows Defender\Platform\,不过普通用户无访问权限

CMD
1
dir "C:\ProgramData\Microsoft\Windows Defender\Platform\" /od /b

需要有管理员权限才可以

不过有的时候,cmd 查看结果是空。比如这样

除了 cmd 外,powershell 也可以,而且 powershell 不论普通还是管理员都可以查看

POWERSHELL
1
Get-MpComputerStatus | Select-Object -Property AMProductVersion

所以在目标有 powershell 的情况下,可以在普通权限的 cmd 中调用 powershell 去查看

CMD
1
powershell -command "Get-MpComputerStatus | Select-Object -Property AMProductVersion"

而且有时查看文件名的方式会出现空的情况,这时也可以用这种方法去查看

查看排除列表#

我们可以查看 WD 排除了哪些位置从而在这些目录存放木马,比如目前的排除项如下

在 cmd 中使用命令查看,而且不需要管理员权限

SHELL
1
reg query "HKLM\SOFTWARE\Microsoft\Windows Defender\Exclusions" /s

powershell 命令如下,并且同样不需要管理员权限

POWERSHELL
1
Get-MpPreference | select ExclusionPath

添加查杀排除列表#

我们可以去添加查杀排除列表,在 cmd 下运行的话,需要 TrustedInstaller 权限

PLAINTEXT
1
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender\Exclusions\Paths" /v "c:\test" /d 0 /t REG_DWORD /f

我们可以使用 AdvancedRun 去执行

PLAINTEXT
1
AdvancedRun.exe /EXEFilename "%windir%\system32\cmd.exe" /CommandLine '/c reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender\Exclusions\Paths" /v "c:\test" /d 0 /t REG_DWORD /f' /RunAs 8 /Run

在普通用户下执行会弹出 UAC,在管理员权限下就是直接添加,没有弹出 UAC。如果没有 TrustedInstaller 权限的话,我们可以使用管理员权限的 powershell 去操作

PLAINTEXT
1
Add-MpPreference -ExclusionPath "C:\test"

恢复被隔离文件#

WD 有一个叫做 mpcmdrun.exe 的程序,它可以操作被 WD 处理的文件,而且只能在终端中运行。位置一般就在 C:\Program Files\Windows Defender

以下操作需要在管理员权限下查看

查看被隔离的文件列表

PLAINTEXT
1
MpCmdRun.exe -Restore -ListAll

恢复指定名称的文件至原目录

PLAINTEXT
1
MpCmdRun.exe -Restore -FilePath C:\test\mimikatz_trunk.zip

而且恢复后会默认加入白名单。

恢复所有文件至原目录

PLAINTEXT
1
MpCmdRun.exe -Restore -All

查看指定路径是否位于排除列表中

PLAINTEXT
1
MpCmdRun.exe -CheckExclusion -path C:\test

工具关闭#

工具一

GUI 程序,以管理员权限运行,重启生效,效果如下

工具二

GUI 程序,以管理员权限运行,无需重启。效果如下

若以普通用户运行,会弹出 UAC,最终效果如下