Skip to content

将任意exe转shellcode

字数
736 字
阅读时间
3 分钟
更新日期
10/19/2020

shellcode也经常在免杀以及渗透中扮演重要的作用。由于windows shellcode开发难度比较大,使用传统软件生成的shellcode功能都比较少。

记得以前在学校玩ms17-010时,需要提供一个shellcode来执行命令,那时shellcode只能用msfvenom,这还需要我安装linux,有时候安装完就下课了。在那时候就想研究,如何将任意exe转换为shellcode。

上个星期我看到一个项目 https://github.com/TonyChen56/ShellCodeFrame 又重新燃起了这个想法。

历程

花了几个通宵研究了怎么生成shellcode,怎么制作平台无关代码,怎么使用VS调试,怎么使用IDA。开始的想法是想做成无文件落地,做一个pe加载器,从内存直接运行exe,后面觉得可能有点复杂,可以先从简单的出发,于是先写了一个简单创建文件,执行文件的shellcode。

即使是这么简单的操作,也遇到了很多问题,触及到了编译器,汇编等等底层的知识,在勉勉强强可以将一个程序嵌入到shellcode时,又为它的大小烦恼起来,因为我是一个字节一个字节去嵌入(为什么这样呢?因为编译器有个坑,只能这样),生成了大量代码,70kb的计算器竟能生成400多kb的shellcode。

虽然我不关心大小,只要是把exe嵌入进去就行,生成一个shellcode要手动进行很多操作,还需要下载vs去编译,我想这不是人类所喜欢的,我想做个生成器,就可以让更多人使用了。

后面又尝试了很多,还是没有好的办法。一个美好的周末因为这些事情把我的时间都占用了,放松一下和女朋友看了一会视频后,继续研究,此时突然来了好多灵感,可以模仿一些病毒藏马的原理,把exe文件放到shellcode末尾,shellcode自动从末尾读取数据就行。

就这样弄了两小时,终于将生成器做好了。

编译shellcode踩的坑挺多的,如果大家有兴趣,我也想写几篇文章来说说如何编写shellcode,以及我踩过的坑~(需要大家的点赞和转发,哈哈哈哈哈)

成品

我做了一个简单的在线将exe转换为shellcode工具

image-20201019163547929

只需要上传一个可执行文件,即可生成windows能够使用的shellcode,支持输出bin,hex,c语言,python语言,PowerShell格式的代码。

不需要邀请码免费使用~

地址:https://i.hacking8.com/exe2shellcode/

点击阅读全文也能使用

撰写

布局切换

调整 VitePress 的布局样式,以适配不同的阅读习惯和屏幕环境。

全部展开
使侧边栏和内容区域占据整个屏幕的全部宽度。
全部展开,但侧边栏宽度可调
侧边栏宽度可调,但内容区域宽度不变,调整后的侧边栏将可以占据整个屏幕的最大宽度。
全部展开,且侧边栏和内容区域宽度均可调
侧边栏宽度可调,但内容区域宽度不变,调整后的侧边栏将可以占据整个屏幕的最大宽度。
原始宽度
原始的 VitePress 默认布局宽度

页面最大宽度

调整 VitePress 布局中页面的宽度,以适配不同的阅读习惯和屏幕环境。

调整页面最大宽度
一个可调整的滑块,用于选择和自定义页面最大宽度。

内容最大宽度

调整 VitePress 布局中内容区域的宽度,以适配不同的阅读习惯和屏幕环境。

调整内容最大宽度
一个可调整的滑块,用于选择和自定义内容最大宽度。

聚光灯

支持在正文中高亮当前鼠标悬停的行和元素,以优化阅读和专注困难的用户的阅读体验。

ON开启
开启聚光灯。
OFF关闭
关闭聚光灯。

聚光灯样式

调整聚光灯的样式。

置于底部
在当前鼠标悬停的元素下方添加一个纯色背景以突出显示当前鼠标悬停的位置。
置于侧边
在当前鼠标悬停的元素旁边添加一条固定的纯色线以突出显示当前鼠标悬停的位置。