【红队神器】自研Shellcode生成引擎

关于我们

4SecNet 团队专注于网络安全攻防研究,目前团队成员分布在国内多家顶级安全厂商的核心部门,包括安全研究领域、攻防实验室等,汇聚了行业内的顶尖技术力量。团队在病毒木马逆向分析、APT 追踪、破解技术、漏洞分析、红队工具开发等多个领域积累了深厚经验,并持续在复杂威胁对抗和攻防技术创新方面不断探索与突破。4SecNet 致力于通过技术共享与实践推动网络安全生态的持续进步。

免责声明

本文的内容仅用于学习、交流和技术探讨,旨在传播网络安全知识,提高公众的安全意识。本博客不支持、提倡或参与任何形式的非法活动。本博客内容面向具备合法使用目的的读者,请确保在使用博客中涉及的技术或方法时符合《中华人民共和国网络安全法》等相关法律法规的要求。任何人不得将本博客内容用于破坏网络安全、侵入系统或其他违反法律的活动。

项目获取

微信搜索4SecNet,关注公众号加入圈子,获取项目详细信息

背景介绍

在传统 Shellcode 开发中,开发者往往需要面对一系列繁琐的底层技术细节:从手动编写汇编指令、处理函数寻址与重定位,到提取机器码字节、解决依赖库动态链接问题,甚至需要为兼容不同编译环境反复调整代码结构。这一过程不仅需要深厚的系统底层知识,还会让开发者将大量精力耗费在"工具链维护"而非核心功能实现上。对于安全研究、渗透测试或漏洞利用开发领域的新手来说,这种复杂性更是显著提高了技术门槛。 为此,我们设计了一款高兼容的 Shellcode 生成框架,彻底重构了传统开发模式。开发者只需在 C 代码中引入一个轻量级头文件(.h),即可像编写普通 C 程序一样自由实现功能逻辑——无需关注汇编细节、无需手动处理内存地址、更无需适配编译参数。

开源项目对比

项目名称开发简易字符串方便全局变量
windows_x64_shellcode_template
lainswork/shellcode-factory⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
Cracked5pider/Stardust⭐⭐⭐⭐⭐⭐⭐⭐
4SecNet/ShellcodeTemolate⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐

windows_x64_shellcode_template
star:200
缺点:用到的函数需要自己声明函数,不能有字符串出现,开发要求很高 ,不支持X86
在这里插入图片描述
shellcode-factory
star:244
缺点:用C++特性实函数hash和函数声明,对不熟悉c++的人很不友好
**shellcode-factory**
star:244
缺点:用C++特性实函数hash和函数声明,对不熟悉c++的人很不友好,
Stardust
star:1.1k

缺点:需要自己声明函数,虽然很简单,但是也需要这一步,还需要对GCC 语法有一定了解
在这里插入图片描述

详细信息

环境配置:

安装 tdm,安装后加入环境变量即可。tdm安装方法参考下述链接:

`https://blog.csdn.net/paticita/article/details/123912840`

安装python依赖:

python3 -m pip install pefile
如何使用:

非常简单!非常简单!非常简单! 重要的事情说三遍

用户仅需要在entry.c里正常使用C语言进行功能开发,随后make将自动直接生成shellcode

项目原理:

编译一个项目包含四个过程:预处理、编译、汇编、链接。

本项目将自动在编译阶段开始介入,用户仅需要正常完成功能开发,便可得到对应的shellcode。

项目将自动使用下面这条命令将您编写的entry.c源文件编译为windows 64位的entry.s文件。

例如,您可以编写如下entry.c文件。

#include <windows.h>

int FuncDemo()
{
	MessageBoxA(NULL,"Hello","world",0);
	return 0;
}

将自动生成entry.s文件如下。

asmatmel
	.file	"main.c"
	.intel_syntax noprefix
	.text
	.section .rdata,"dr"
.LC0:
	.ascii "world\0"
.LC1:
	.ascii "Hello\0"
	.text
	.globl	FuncDemo
	.def	FuncDemo;	.scl	2;	.type	32;	.endef
FuncDemo:
	push	rbp
	mov	rbp, rsp
	sub	rsp, 32
	mov	r9d, 0
	lea	r8, .LC0[rip]
	lea	rax, .LC1[rip]
	mov	rdx, rax
	mov	ecx, 0
	mov	rax, QWORD PTR __imp_MessageBoxA[rip]
	call	rax
	mov	eax, 0
	leave
	ret
	.ident	"GCC: (Rev2, Built by MSYS2 project) 14.2.0"

随后,项目将再次自动对汇编文件entry.s进行处理,最终编译生成为shellcode文件并保存到Out目录
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值