当前位置:首页 > 经验 >

shellcode生成可执行文件(shell脚本怎么变成可执行文件)

来源:原点资讯(www.yd166.com)时间:2022-11-07 08:36:40作者:YD166手机阅读>>

原创: EDI-VOID 合天智汇

0x00 shellcode编写

首先shellcode的编写可以用纯汇编也可以用c ,其两者难易程度可想而知,还是抱住VS的大腿,不过这其中要注意一些代码格式和编译选项,以确保生成的shellcode是地址无关的

比如像如下代码都会被编译器优化,编译器会把字符串放在常量区,以下代码在vc6能通过,vs2017这些新版本的不能通过,新版本的语意更严谨。

char*arr = "test";

实际上是constchar*arr = "test";

Vc6中反汇编代码如下

shellcode生成可执行文件,shell脚本怎么变成可执行文件(1)

可以看到字符串指针是一个固定的地址,在前面加上const关键字后会发现生成的代码是一样的,可见旧版本的编译器很善解人意,把你不严谨的代码改了

但是如果以以下的形式写的话,就成了地址无关的代码

charcmd[] = { 'c','a','l','c','\x00'};

shellcode生成可执行文件,shell脚本怎么变成可执行文件(2)

这样写的需要我们在数组末尾手动添加截断字符

字符串的绝对地址引用问题解决了,下一个就是函数的调用,是dll的加载基址相关的,不同的操作系统某个dll的加载基址不一样,就需要动态定位,需要得到别的api的地址的话,首先我们需要得到dll的基址,可以通过进程PEB结构中的成员来遍历,遍历到kernel32.dll以后再遍历到GetProcAddress函数的地址和LoadLibrary的地址就万事大吉了,别的函数只需要这两个函数来获取了

首先获取PEB结构可以直接调用winternl.h里的一个宏

_PEB*peb = NtCurrentTeb()->ProcessEnvironmentBlock;

查看其宏定义看似调用了函数,查看反汇编代码发现实则是地址无关的代码

mov eax,dword ptr fs:[00000018h]

mov ecx,dword ptr [eax 30h]

也可以参照teb的结构自己来实现一个GetPeb函数让指令使用更少的字节

shellcode生成可执行文件,shell脚本怎么变成可执行文件(3)

fs:[0x18]处是一个指向TEB自身的指针,TEB结构0x30处是PEB指针

shellcode生成可执行文件,shell脚本怎么变成可执行文件(4)

首页 123下一页

栏目热文

shellcode编码(shellcode代码)

shellcode编码(shellcode代码)

前言在做红蓝攻防时,常常要用到cs、msf等工具,使用工具生成shellcode或可执行程序,那么小小的shellcod...

2022-11-07 08:22:18查看全文 >>

shellcode执行原理(shellcode安装)

shellcode执行原理(shellcode安装)

缓冲区溢出属于非常有名的漏洞之一,其大体含义为:缓冲区溢出是超出程序内存设定范围,数据溢出后程序发生异常,黑客可以利用缓...

2022-11-07 08:22:14查看全文 >>

shellcode生成器(shellcode使用教程)

shellcode生成器(shellcode使用教程)

关于GSHELLGShell是一款功能强大且支持灵活扩展的跨平台Shell生成器,在该工具的帮助下,广大研究人员可以随意...

2022-11-07 08:32:58查看全文 >>

静脉曲张的发病时间(静脉曲张锻炼最好方法)

静脉曲张的发病时间(静脉曲张锻炼最好方法)

静脉曲张是发病率非常高的一种血管病,在任何年龄段都可能会发病。统计数据显示,我国有10%—20%的成年男性,20%的成年...

2022-11-07 08:11:45查看全文 >>

造成全身静脉曲张的原因(全身静脉曲张怎么回事)

造成全身静脉曲张的原因(全身静脉曲张怎么回事)

关于腿上的浅静脉曲张的介绍文章,其实已经很多了,相信大家都已经看过了。对这个疾病有了一定的了解,但是发现大家都有一个疑问...

2022-11-07 08:26:24查看全文 >>

shellcode到底是啥(shellcode使用教程)

shellcode到底是啥(shellcode使用教程)

零基础学黑客领资料搜公众号:白帽子左一因前段时间退出了内网的学习,现在开始复习web方面的漏洞了,于是乎,开始了挖洞之旅...

2022-11-07 08:17:00查看全文 >>

shellcode执行方式(shell脚本的执行方法)

shellcode执行方式(shell脚本的执行方法)

本篇主要是以x64系统为例对系统调用中一些功能性函数的解读和实际运用。目前网络上流传的通用shellcode,均使用系统...

2022-11-07 08:13:07查看全文 >>

shellcode类书(shell编程零基础的书籍)

shellcode类书(shell编程零基础的书籍)

书籍简介黑客与渗透测试编程之道本书是畅销书《Python 灰帽子—黑客与逆向工程师的 Python 编程之道》的姊妹篇,...

2022-11-07 08:07:13查看全文 >>

shellcode应该放在哪(shellcode使用教程)

shellcode应该放在哪(shellcode使用教程)

在开始今天课程之前,先回忆下上一讲在结束时,我提出的windows平台下的几个关键问题:1:缓冲区距离返回地址间的距离确...

2022-11-07 08:38:25查看全文 >>

通用shellcode编写实例(shellcode执行原理)

通用shellcode编写实例(shellcode执行原理)

1)编写 hello world 脚本#!/bin/bash # 编写hello world脚本 echo "...

2022-11-07 08:06:54查看全文 >>

文档排行