01阅读须知
此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。本文所提供的工具仅用于学习,禁止用于其他方面
02基本介绍
Sharp4CompilerLoader.exe 是一款通过动态编译.NET代码实现线程注入的加壳工具。其主要功能是接收经过 Base64 编码的 shellcode 字符串,并将其注入到本地线程中,从而执行恶意代码。例如,它可以轻松实现启动本地计算器的功能。
03使用方法
以下是 Sharp4CompilerLoader.exe 的基本使用示例,运行命令后,工具会将该 shellcode 解码并动态编译生成 DLL 文件,最终通过线程注入的方式执行目标代码。
Sharp4CompilerLoader.exe /OiCAAAAYInlMcBki1Awi1IMi1IUi3IoD7dKJjH/
此工具利用 .NET 的动态代码编译特性,通过自定义的函数调用执行指定代码,而不需要明确指定 Main 方法。虽然这种方法简单灵活,但由于编译时会生成临时的 DLL 文件,因此免杀效果并不理想。
04原理解析
Sharp4CompilerLoader.exe 的核心逻辑基于动态代码编译和反射执行。以下是关键代码:
public static object function1(string code, string namespacename, string classname, string functionname, bool isstatic, params object[] args)
{
object returnval = null;
Assembly asm = BuildAssembly(code); // 动态编译代码,生成程序集
object instance = null;
Type type = null;
if (isstatic)
{
type = asm.GetType(namespacename + "." + classname); // 获取类型
}
else
{
instance = asm.CreateInstance(namespacename + "." + classname); // 创建实例
type = instance.GetType();
}
MethodInfo method = type.GetMethod(functionname); // 获取方法信息
returnval = method.Invoke(instance, args); // 调用方法并返回结果
return returnval;
}
工具会生成一段包含 run 方法的 C# 代码,并将其动态编译为一个临时的 DLL 文件。代码模板如下。
function1(code, "Namespace", "Program", "run", false, null);
通过反射加载编译生成的 DLL,调用 Namespace.Program 类中的 run 方法,从而执行 shellcode。
05.NET安全星球
dot.Net安全矩阵星球已成为中国.NET安全领域最知名、最活跃的技术知识库之一,从.NET Framework到.NET Core,从Web应用到PC端软件应用,无论您是初学者还是经验丰富的开发人员,都能在这里找到对应的安全指南和最佳实践。
星球汇聚了各行业安全攻防技术大咖,并且每日分享.NET安全技术干货以及交流解答各类技术等问题,社区中发布很多高质量的.NET安全资源,可以说市面上很少见,都是干货。
星球文化始终认为授人以鱼不如授人以渔!加入星球后可以跟星主和嘉宾们一对一提问交流,20+个专题栏目涵盖了点、线、面、体等知识面,助力师傅们快速成长!其中主题包括.NET Tricks、漏洞分析、内存马、代码审计、预编译、反序列化、webshell免杀、命令执行、C#工具库等等。
我们倾力打造专刊、视频等配套学习资源,循序渐进的方式引导加深安全攻防技术提高以及岗位内推等等服务。
.NET 免杀WebShell
.NET 反序列化漏洞
.NET 安全防御绕过
.NET 内网信息收集
.NET 本地权限提升
.NET 内网横向移动
.NET 目标权限维持
.NET 数据外发传输
这些阶段所涉及的工具集不仅代表了当前.NET安全领域的最前沿技术,更是每一位网络安全爱好者不可或缺的实战利器。