ETW Bypass

1.NET 程序集

像 Java 是由 JVM 托管的,.NET 程序集(比如C_Sharp.exe) 都是由 CLR 托管的

硬盘加载

从硬盘中读取加载到内存

通过三个接口可以启动 CLR 来对 .NET 程序集 进行硬盘加载

Program.cs:

x64.cpp:

Copy
#include <iostream>
#include <metahost.h>
#pragma comment(lib, "mscoree.lib")
 
int main() {
    // 创建 ICLRMetaHost对象
    ICLRMetaHost* metaHost = NULL;
    CLRCreateInstance(CLSID_CLRMetaHost, IID_ICLRMetaHost, (LPVOID*)&metaHost);
 
    // 获取枚举器
    IEnumUnknown* runtime = NULL;
    metaHost->EnumerateInstalledRuntimes(&runtime);
 
    // 枚举安装的CLR
    IUnknown* enumRuntime = NULL;
    ICLRRuntimeInfo* runtimeInfo = NULL;
    DWORD bytes = 2048;
    LPWSTR frameworkName = (LPWSTR)LocalAlloc(LPTR, 2048);
    while (runtime->Next(1, &enumRuntime, 0) == S_OK) {
        if (enumRuntime->QueryInterface<ICLRRuntimeInfo>(&runtimeInfo) == S_OK) {
            if (runtimeInfo != NULL) {
                runtimeInfo->GetVersionString(frameworkName, &bytes);
            }
        }
    }
 
    ICLRRuntimeHost* runtimeHost = NULL;
    runtimeInfo->GetInterface(CLSID_CLRRuntimeHost, IID_ICLRRuntimeHost, (LPVOID*)&runtimeHost);
    runtimeHost->Start(); // 启动CLR
    runtimeHost->ExecuteInDefaultAppDomain(L"C_Sharp.exe", L"C_Sharp.Program", L"print", L"hacker", NULL);
    return 0;
}

内存加载

直接从内存加载,不需要从硬盘读取

CS 新启进程,内存加载 .NET 程序集:

2.ETW

一种事件追踪机制,会检测 .NET 程序集

检测示例

Program.cs:

 

CS 当前进程,内存加载 .NET 程序集:

inject-assembly插件,GitHub - kyleavery/inject-assembly: Inject .NET assemblies into an existing process

此时用 Process Hacker 可以看到多出来一些 .NET 信息

还可以看到启动了CLR(clr.dll)

绕过

CLR 会通过 ntdll 的 EtwEventWrite函数 公开信息

BOF-patchit插件,GitHub - ScriptIdiot/BOF-patchit: An all-in-one Cobalt Strike BOF to patch, check and revert AMSI and ETW for x64 process. Both syscalls and dynamic resolve versions are available.

再查看 .NET 信息,发现获取不到了

原理

对木马进行调试

使用插件前的 EtwEventWrite函数

使用插件后的 EtwEventWrite函数

发现开头变成了ret,使函数无法被正常调用

至于后面为什么变成 mov ebx, esp,看硬编码就知道了

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【已解决】PPT无法复制内容怎么办?

想要复制PPT文件里的内容&#xff0c;却发现复制不了&#xff0c;怎么办&#xff1f; 这种情况&#xff0c;一般是PPT文件被设置了以“只读方式”打开&#xff0c;“只读方式”下的PPT无法进行编辑更改&#xff0c;也无法进行复制粘贴的操作。 想要解决这个问题&#xff0c;我…

c语言---函数指针变量

目录 一、函数指针变量的概念二、函数指针变量的创建三、函数指针变量的使用 一、函数指针变量的概念 函数指针变量应该是用来存放函数地址的&#xff0c;未来通过地址能够调用函数的。 二、函数指针变量的创建 那么函数是否有地址呢&#xff1f; 接下来看看&#xff1a; #…

imazing软件安全吗?2024中文永久免费许可证

以下是iMazing更多的使用场景描述&#xff1a; iMazing3Mac-最新绿色安装包下载如下&#xff1a; https://wm.makeding.com/iclk/?zoneid49816 iMazing3Win-最新绿色安装包下载如下&#xff1a; https://wm.makeding.com/iclk/?zoneid49817 1. 数据迁移 当你换新的iOS设…

Outlook 中关闭特殊字符显示

故障现象&#xff1a; 不知道什么原因&#xff0c;Outlook发mail时候&#xff0c;突然显示如下的特殊字符&#xff0c;看起来非常不方便&#xff0c;需要关闭; 解决办法&#xff1a; 在Outlook正文里面&#xff0c;输入CtrlShift*&#xff08; 其中*是键盘数字8旁边的那个*&a…

KEIL软件新建工程示例

很感谢这位博主的分享&#xff0c;参考链接&#xff1a;KEIL软件安装教程 在实践的过程中&#xff0c;会有些不一样&#xff0c;把我遇到的问题也贴出来&#xff0c;谨做记录与参考。 一 在环境中配置相关文件&#xff08;第一种&#xff09; 1、新建一个文件夹demo&#xff…

IDEA的版本控制Local Changes和settings按钮显示问题

经常用idea的小伙伴应该对标题的这两个功能不陌生&#xff0c;特别是Local Changes 周日刚开工&#xff0c;我的idea就过期了&#xff0c;索性就下载了一个2023.3.3版本的&#xff0c;安装好打开一看&#xff0c;发现Local Changes 和 settings的按钮消失了&#xff0c;虽然说…

我的NPI项目之Android USB 系列(一) - 遥望和USB的相识

和USB应该是老朋友了&#xff0c;从2011年接触Android开发开始&#xff0c;就天天和USB打交道了。那时候还有不 对称扁头的usb/方口的usb&#xff0c;直到如今使用广泛的防反插USB3.0 type-C。 但是&#xff0c;一直有一个不是很清楚的问题萦绕在心头&#xff0c;那就是。先有…

韶音、南卡、Cleer怎么样?2024年主流产品硬核测评对比

​作为一位资深的开放式耳机使用者&#xff0c;我要强调&#xff0c;在选购耳机时应避免仅仅因为某款产品的流行度或是品牌名气而做出选择。适合自己需求的耳机才是最佳之选。我和我的团队经过多次测试&#xff0c;对比了几种市场上热门的开放式耳机&#xff0c;从中总结了我们…

【Algorithms 4】算法(第4版)学习笔记 09 - 3.2 二叉查找树

文章目录 前言参考目录学习笔记1&#xff1a;二叉树与二叉搜索树定义1.1&#xff1a;二叉树定义1.2&#xff1a;二叉搜索树定义1.3&#xff1a;Java定义1.4&#xff1a;BST基本实现1.5&#xff1a;BST demo 演示1.5.1&#xff1a;节点搜索成功命中演示1.5.2&#xff1a;节点搜索…

ElementUI table表格组件实现双击编辑单元格失去焦点还原,支持多单元格

在使用ElementUI table表格组件时有时需要双击单元格显示编辑状态&#xff0c;失去焦点时还原表格显示。 实现思路&#xff1a; 在数据中增加isFocus:false.控制是否显示在table中用cell-dblclick双击方法 先看效果&#xff1a; 上源码&#xff1a;在表格模板中用scope.row…

Nginx缓存相关配置解析

文章目录 前言配置示例proxy_cacheproxy_cache_pathproxy_cache_keyproxy_cache_validproxy_cache_lockproxy_cache_methodsproxy_cache_bypassproxy_no_cacheproxy_cache_min_usesadd_header 可选项 使用示例通过响应头判断是否走缓存 缓存手动删除原博客 前言 客户端需要访问…

10、内网安全-横向移动域控提权NetLogonADCSPACKDC永恒之蓝

用途&#xff1a;个人学习笔记&#xff0c;有所借鉴&#xff0c;欢迎指正&#xff01; 背景&#xff1a; 主要针对内网主机中的 域控提权漏洞&#xff0c;包含漏洞探针和漏洞复现利用。 1、横向移动-系统漏洞-CVE-2017-0146&#xff08;ms17-010&#xff0c;永恒之蓝&#xff0…

如何添加或编辑自定义WordPress侧边栏

WordPress侧边栏是许多WordPress网站上的固定装置。它为您的内容提供了一个垂直空间&#xff0c;您可以在其中帮助读者导航、增加电子邮件列表或社交关注、展示广告等。 因为它是许多WordPress网站不可或缺的一部分&#xff0c;所以我们认为侧边栏值得拥有自己的大型指南。在这…

SpringBootWeb学习笔记——12万字详细总结!

0. 写在前面 注:这套笔记是根据黑马程序员B站2023-3-21的视频学习的成果,其中省略了前端基础部分、Maven部分和数据库基础部分,详情可见目录。 注注:目前文章内结尾处多幅图片加载不出来,因为图片还存在本地没被传上来,过段时间再改~ 所有的Spring项目都基于Spring Fra…

3、windows环境下vscode开发c/c++环境配置(二)

前言&#xff1a;上一篇文章写了windows环境下&#xff0c;配置vscode的c/c开发环境&#xff0c;这一篇讲vscode开发c/c的配置文件&#xff0c;包括c_cpp_propertues.json&#xff0c;task.json及launch.json。 一、总体流程 通过c/c插件我们就可以来编写c/c程序了&#xff0c…

网贷大数据查询多了对征信有影响吗?

网贷大数据在日常的金融借贷中起到很重要的风控作用&#xff0c;不少银行已经将大数据检测作为重要的风控环节。很多人在申贷之前都会提前了解自己的大数据信用情况&#xff0c;那网贷大数据查询多了对征信有影响吗?本文带你一起去看看。 首先要说结论&#xff1a;那就是查询网…

面试经典150题——同构字符串

"Dream big and dare to fail." - Norman Vaughan 1. 题目描述 2. 题目分析与解析 2.1 思路一 看见这个题目的第一反应就是使用一个hash表&#xff0c;用来存储映射关系&#xff0c;具体思路如下&#xff1a; 首先二者要是同构的长度肯定是得相同的&#xff0c;但…

Android 多线程并发优化实现

和你一起终身学习&#xff0c;这里是程序员Android 经典好文推荐&#xff0c;通过阅读本文&#xff0c;您将收获以下知识点: 一、Thread 使用二、Android Thread三.线程优先级 一、Thread 使用 在讲解多线程之前&#xff0c;我们先来讲解Thread使用几个需要注意的点&#xff1a…

Unity UGUI的DrawCall优化

Unity UGUI是一种强大的用户界面设计工具&#xff0c;它可以帮助开发者快速创建各种界面元素&#xff0c;从按钮和文本到滑块和面板等。然而&#xff0c;在使用UGUI时&#xff0c;一个常见的性能瓶颈就是DrawCall过多导致的性能下降。在本文中&#xff0c;我们将深入探讨UGUI的…

集成使用 GitHub Copilot 提升 IDEA 开发效率

集成使用 GitHub Copilot 提升 IDEA 开发效率 在现代软件开发中&#xff0c;集成开发环境&#xff08;IDE&#xff09;如IntelliJ IDEA已经成为开发人员不可或缺的工具。它们提供了代码编辑、调试、版本控制等一系列功能&#xff0c;极大地提高了开发效率。而GitHub Copilot作…