花式沉默Defender

编者注:本文仅供学习研究,严禁从事非法活动,任何后果由使用者本人负责。

前言

总结了一下现在还能用的关闭Defender的方法,部分是原创,一部分借鉴的大佬。觉得字多的同学可以直接跳过思路查看步骤进行实操。

修改注册表关闭Defender

1.测试环境

windows10 20H2

windows10 21H2

windows11

图片

2.思路

微软为了提供用户更妥善的安全保护,在2020年8月更新中更新了支持文档。若用户安装了其他杀毒软件,Defender将自动关闭;若用户卸载杀毒软件解决方案,Defender将强制自动开启。那我们可不可以模拟杀毒软件的行为,让Defender误以为我们安装了杀软,从而达到关闭Defender的目的呢?答案是可以的。

将系统注册表备份,安装杀毒软件后再次提取注册表信息并进行对比。最后将疑似影响Defender运行的键值进行改动对比,最终得出几个键值的排列组合可以达到沉默Defender的作用。

HKLM\SOFTWARE\Policies\Microsoft\Windows Defender下,DisableAntiSpyware的值改为1,DisableAntiVirus的值改为1。

默认情况下并无这两个键值。

图片

更改后:

图片

HKLM\SOFTWARE\Microsoft\Security Center\Provider\Av\{D68DDC3A-831F-4fae-9E44-DA132C1ACF46}下,STATE改为 0x00060100。

图片

3.步骤

管理员模式打开命令行,执行:

reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows Defender" /v DisableAntiSpyware /t reg_dword /d 1 /f
reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows Defender" /v DisableAntiVirus /t reg_dword /d 1 /f
reg add "HKLM\SOFTWARE\Microsoft\Security Center\Provider\Av\{D68DDC3A-831F-4fae-9E44-DA132C1ACF46}" /v STATE /t reg_dword /d "0x00060100" /f
4.成果

4.成果

修改完后重启,Defender仍然运行,但杀毒引擎已失效。

这里随意丢上一个msf的木马,成功绕过检测。

图片

 5.总结

1)需要管理员权限操作。

2)重启后才能生效。

3)执行完reg add命令后需要检查注册表是否生效,有时执行后注册表未更新,需多执行几次。

4)某些版本只需要更改DisableAntiVirus和STATE这两个键值即可生效。

PowerShell

 1.测试环境

windows10 1809

windows11

图片

图片

2.步骤

管理员权限打开powershell,输入如下命令:

$preferences = Get-MpPreference
Set-MpPreference -DisableRealtimeMonitoring (!$preferences.DisableRealtimeMonitoring)

3.成果

实时保护已关闭,且木马正常运行。

图片

4.总结

1)实时监控虽然关闭,但扫描引擎还正常运行,此时主动扫描木马还是会被检测到。

2)某些系统版本不生效,如windows10 20H2。

图片

TrustedInstaller权限关闭Defender

 1.原理

TrustedInstaller权限是windows vista或7里面为了系统安全起见而设立的,为系统最高权限,比我们所熟知的System权限更高。

在Windows XP及以前,System账户与管理员组对系统文件都有着完全访问的权限。这意味着以管理员身份运行的程序可以任意更改系统,降低了系统安全性。TrustedInstaller则改变了这一情况,使得只有拥有TrustedInstaller令牌的系统进程才能更改系统重要内容,而其他大部分系统服务就没有权限。   这是因为,以SYSTEM权限运行的程序不一定同时拥有TrustedInstaller的权限,只有通过了Service Control Manager(服务启动控制器)的验证后才能获取。

所以SYSTEM权限做不到的事情,我们可以尝试通过TrustedInstaller权限实现。

2.思路

我们可以利用工具获取TrustedInstaller权限,从 Nirsoft 官方页面(https://www.nirsoft.net/utils/advanced_run.html)下载AdvancedRun

将可执行文件AdvancedRun.exe解压出来后即可执行如下命令将程序作为TrustedInstaller启动。

AdvancedRun.exe /EXEFilename "c:\windows\system32\cmd.exe" /RunAs 8 /Run

此时弹出一个cmd,虽然查看当前用户显示System,但我们使用 whoami /priv查看特权还是能对比出与System的差别的。

TrustedInstaller:

图片

System:

图片

接下来我们尝试利用TrustedInstaller权限来关闭Defender。

创建一个vbs脚本来自动化关闭Defender,内容如下。

'Description: Script to disable the Microsoft Defender Antivirus service
Set ServiceSet = GetObject("winmgmts:").ExecQuery _("select * from Win32_Service where Name='WinDefend'")For Each Service In ServiceSet   RetVal = Service.StopService()    If RetVal <> 0 Then       MsgBox "Error " & RetVal   End If   Service.ChangeStartMode("Manual")Next

利用wscript.exe执行脚本。

AdvancedRun.exe /EXEFilename "%windir%\system32\wscript.exe" /CommandLine '"C:\Users\Pepper\Downloads\advancedrun\1.vbs"' /RunAs 8 /Run

返回错误。

图片

Error 2 表示用户没有所需的访问权限。

既然没有对服务的访问权限,那我们可以试一下能不能直接关闭Defender的进程,将上面的脚本改动一下,关闭MsMpEng.exe进程:

Set ServiceSet2 = GetObject("winmgmts:\\.\root\cimv2")Set ServiceSet = ServiceSet2.Execquery("select * from Win32_Process where Name='MsMpEng.exe'")For Each Service In ServiceSetRetVal = Service.Terminate() If RetVal <> 0 Then MsgBox "Error " & RetValEnd IfNext

又返回了Error2,思路似乎到这里就断了。但是之前研究Defender注册表的时候发现了一个表项中存储着Defender的运行信息,当时将权限提升到System也没有修改成功。

图片

试着以TrustedInstaller权限修改一下。

图片

图片

轻松干掉Defender。

3.步骤

1)TrustedInstaller权限启动cmd。

AdvancedRun.exe /EXEFilename "c:\windows\system32\cmd.exe" /RunAs 8 /Run

2)执行reg add命令,修改注册表

reg add "HKLM\SOFTWARE\Microsoft\Windows Defender" /v DisableAntiSpyware /t reg_dword /d 1 /f

4.总结

与方案一相比,不需要重启,但是需要上传工具获取TrustedInstaller权限。

修改进程Token,关闭杀毒引擎

 1.原理

利用Windows 提供的OpenProcessTokenAPI 与进程令牌进行交互,MSDN声明必须PROCESS_QUERY_INFORMATION有权使用OpenProcessToken,但实际未受保护的进程可以通过PROCESS_QUERY_INFORMATION操作受保护进程的令牌。使用这种技术,攻击者可以强行删除MsMpEng.exe令牌中的所有权限,并将其从系统降低到不受信任的完整性。对不受信任的完整性的削弱会阻止受害进程访问系统上的大多数安全资源,从而在不终止进程的情况下悄悄地使进程失去能力。

2.思路

已经有师傅写好代码并开源了(https://github.com/pwn1sher/KillDefender),这里大概讲解一下思路。

图片

首先执行EnableDebugPrivilege函数提升当前进程权限,然后利用getpid函数获取到我们想修改Token的进程的PID,实现逻辑是遍历当前进程名,匹配后返回该进程PID。

图片

利用OpenProcess打开指定进程,并调用OpenProcessToken获取该进程Token。

图片

接下来需要使用 SetPrivilege()函数将进程的权限全部都去除掉。

图片

SetPrivilege的实现和之前提到过的EnableDebugPrivilege函数实现方式类似,主要用到三个函数:OpenProcessToken获取进程的令牌句柄,LookupPrivilegeValue查询进程权限,AdjustTokenPrivileges修改进程权限。注意EnableDebugPrivilege是修改当前进程的DEBUG权限,SetPrivilege是修改指定进程的指定权限。

图片

最后使用SetTokenInformation设置信息替换访问令牌的现有信息,破坏其完整性。

3.局限

必须获取system权限才能使用该方法。

图片

4.成果

扫描引擎已失效,点击扫描无法正常运行。

图片

生成一个原始木马,未被识别并上线。

图片

图片

继续测试火绒的进程HipsDaemon.exe,同样生效。

图片

测试360时,发现有行为检测被拦截。

图片

测试卡巴斯基,可以关闭扫描引擎,但会由于未知原因断网,难以利用。

图片

利用驱动关闭杀毒引擎

1.原理

加载自带微软官方签名的 ProcExp 驱动,利用其导出函数做到 Kill EDR 的效果。

2.思路

大佬已经写得很好了,参考资料(http://ryze-t.com/posts/2021/06/29/EdrKiller.html)。

其它

K杀软的方式还有很多,比如还可以修改组策略,利用未文档化函数等,参考资料(https://xz.aliyun.com/t/10663)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/651699.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

再学http

HTTP状态码 1xx 信息性状态码 websocket upgrade 2xx 成功状态码 200 服务器已成功处理了请求204(没有响应体)206(范围请求 暂停继续下载) 3xx 重定向状态码 301(永久) &#xff1a;请求的页面已永久跳转到新的url302(临时) &#xff1a;允许各种各样的重定向&#xff0c;一般…

自动驾驶和智能座舱软件介绍(二)

作者 / 阿宝 编辑 / 阿宝 出品 / 阿宝1990 自动驾驶软件介绍 自动驾驶底层操作系统及软件架构 底层可以包括多种芯片&#xff0c;以太网通信中间件保证网络通信和不同OS任务分配的确定性 Automotive uC&#xff0c;单片机&#xff0c;如英飞凌AURIX&#xff0c;运行AUTOSARB…

Github 2024-01-28 开源项目日报Top10

根据Github Trendings的统计&#xff0c;今日(2024-01-28统计)共有10个项目上榜。根据开发语言中项目的数量&#xff0c;汇总情况如下&#xff1a; 开发语言项目数量Python项目3TypeScript项目2Rust项目1HTML项目1JavaScript项目1Cuda项目1C#项目1非开发语言项目1 Nuxt&#…

XSS_Labs靶场通关笔记

每一关的方法不唯一&#xff1b;可以结合源码进行分析后构造payload&#xff1b; 通关技巧&#xff08;四步&#xff09;&#xff1a; 1.输入内容看源码变化&#xff1b; 2.找到内容插入点&#xff1b; 3.测试是否有过滤&#xff1b; 4.构造payload绕过 第一关 构造paylo…

Redis数据类型及底层实现

文章目录 1.3.1 5种基本数据类型1.3.1.1 总结篇1.3.1.2 底层源码引入篇1.3.1.2.1 redis是字典数据库KV键值对到底是什么1.3.1.2.2 数据类型视角1.3.1.2.3 数据模型解析&#xff08;重点&#xff09;1.3.1.2.4 redisObjec1.3.1.2.5 SDS 1.3.1.3 String1.3.1.3.1 底层分析1.3.1.3…

uniCloud 免费版和商用版

概述 uniCloud为每个开发者提供一个免费的服务空间&#xff0c;更低门槛按量付费是serverless的特色&#xff0c;如果没有消耗硬件资源&#xff0c;就完全不用付款serverless比传统的云主机更便宜传统云主机一旦被攻击&#xff0c;高防价格非常昂贵。而uniCloud无需支付高防费…

k8s的图形化工具rancher

1、rancher&#xff1a;是一个开源的企业级多集群的k8s管理平台 2、rancher和k8s的区别 &#xff08;1&#xff09;都是为了容器的调度和编排系统 &#xff08;2&#xff09;但rancher不仅能够调度&#xff0c;还能管理k8s集群&#xff0c;自带监控&#xff08;普罗米修斯&a…

【Linux】第三十六站:信号

文章目录 一、信号的概念1.信号概念2.前台与后台进程3.信号的处理4.硬件层面5.信号与我们的代码是异步的 二、信号的产生1.产生的方式2.键盘组合键3.kill命令4.系统调用4.1 kill系统调用4.2 raise4.3 abort 5.异常软件条件5.1 异常产生信号5.2 alarm&#xff08;软件条件产生信…

【MySQL】学习如何通过DML更新数据库的数据

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-QIqURn9fNFMjLD9l {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…

【Go 快速入门】数组 | 切片 | 映射 | 函数 | 结构体 | 方法和接收者

文章目录 数组切片append 函数copy 函数删除元素 映射delete 函数 函数init 特殊的函数defer 语句panic / recover 错误处理 类型结构体内存对齐JSON 序列化与反序列化方法和接收者 项目代码地址&#xff1a;03-ArraySliceMapFuncStruct 数组 基本格式&#xff1a;var 数组变…

Go 命令行解析 flag 包之快速上手

本篇文章是 Go 标准库 flag 包的快速上手篇。 概述 开发一个命令行工具&#xff0c;视复杂程度&#xff0c;一般要选择一个合适的命令行解析库&#xff0c;简单的需求用 Go 标准库 flag 就够了&#xff0c;flag 的使用非常简单。 当然&#xff0c;除了标准库 flag 外&#x…

Linux 网络流量相关工具

本文聚焦于网络流量的查看、端口占用查看。至于网络设备的管理和配置&#xff0c;因为太过复杂且不同发行版有较大差异&#xff0c;这里就不赘述&#xff0c;后面看情况再写。 需要注意的是&#xff0c;这里列出的每一个工具都有丰富的功能&#xff0c;流量/端口信息查看只是其…

使用vue_cli脚手架创建Vue项目(cmd和图形化方式)

使用vue_cli脚手架创建Vue项目&#xff08;cmd和图形化方式&#xff09; 创建项目(cmd方式) vue create vue_cli1.方向键选择manually select feature(手动选择方式创建)&#xff0c;回车 2.按空格键选择需要的组件&#xff1a;Babel、PWA、Router、Vuex、CSS&#xff0c;回…

Linux - 数据流重定向、管道符、环境变量配置文件的加载

概述 想了解Linux编程&#xff0c;shell脚本是绕不开的关键知识点&#xff0c;原计划写一个整篇来分享shell的来龙去脉&#xff0c;但知识点过于繁杂&#xff0c;先分享一下学习shell的准备工作&#xff0c;数据流重定向、管道符、环境变量配置文件的加载&#xff0c;有助于知…

Linux之安装配置CentOS 7

一、CentOS简介 CentOS&#xff08;Community Enterprise Operating System&#xff0c;中文意思是社区企业操作系统&#xff09;是Linux发行版之一&#xff0c;它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码&#xff0c…

YOLOv8改进 | Conv篇 | 结合Dual思想利用HetConv创新一种全新轻量化结构CSPHet(参数量下降70W)

一、本文介绍 本文给大家带来的改进机制是我结合Dual的思想利用HetConv提出一种全新的结构CSPHet,我们将其用于替换我们的C2f结构,可以将参数降低越75W,GFLOPs降低至6.6GFLOPs,同时本文结构为我独家创新,全网无第二份,非常适合用于发表论文,该结构非常灵活,利用Dual卷…

CSS探索浏览器兼容性

学习如何探索浏览器的兼容性对于编写跨浏览器兼容的CSS代码非常重要。以下是一些学习CSS兼容性的方法&#xff1a; MDN文档&#xff1a;Mozilla开发者网络&#xff08;MDN&#xff09;提供了广泛而详细的CSS文档&#xff0c;其中包含有关CSS属性、选择器和功能的信息。在MDN上…

机器学习之pandas库学习

这里写目录标题 pandas介绍pandas核心数据结构SeriesDataFrameDataFrame的创建列访问列添加列删除行访问行添加行删除数据修改 pandas介绍 pandas是基于NumPy 的一种工具&#xff0c;该工具是为了解决数据分析任务而创建的。Pandas 纳入 了大量库和一些标准的数据模型&#xff…

谷歌seo服务商如何选择?

选择谷歌SEO服务商时&#xff0c;要考虑他们的经验、专业知识、成功案例、透明度、合规性、定制能力、时间线、客户支持、沟通以及是否能够建立长期合作关系。综合评估这些因素&#xff0c;确保找到一个可信赖的合作伙伴&#xff0c;能够帮助您提升网站在谷歌搜索中的表现&…

相机与镜头

一、相机视场 相机的视场角&#xff0c;也就是相机能够看到物像角度的最大值&#xff0c;视场角与焦距的关系为像高f*tan(fov/2)。由于相机的感光面是矩形&#xff0c;所以相机能够看到的区域也是矩形。探究相机的视场角&#xff0c;便于分析物面上那些区域属于相机盲区&#x…