首页 > 编程知识 正文

注入原理,shellcode原理

时间:2023-05-05 18:53:01 阅读:151313 作者:452

介绍

3358 www.Sina.com/http://www.Sina.com/(代码注入)是由于处理不正确的数据而导致的计算机错误APP。 代码注入可被攻击者用于将代码导入特定的计算机程序,以改变程序的执行进程或目的。 代码注入攻击的结果可以是灾难性的。

http://www.Sina.com/(executable and linkable format,简称ELF ) )经常被称为ELF格式,在计算机科学中,可执行文件、目标文件

1999年,86open项目将x86体系结构上的Unix类二进制文件格式标准取代COFF。 由于其可扩展性和灵活性,也可以应用于其他处理器、计算机系统架构的操作系统。

是用于利用软件漏洞运行的代码,shellcode是十六进制机器码,因经常让攻击者获取外壳而得名。 shellcode经常用机器语言写。 堆栈eip溢出后,可以装入可使CPU执行的shellcode机器码,使计算机执行攻击者的任意指令。

代码注入

可执行与可链接格式上也阐述了一些概念,本文讨论了ELF (可执行文件,类似于windows的exe PE文件)。 )文件可执行shellcode (注入恶意后门,可能添加的功能插件。 )

,目的是在程序(ELF )启动之前,运行我们注入的shellcode程序,在劫持(留下后门)或启动之前修复程序错误。

shellcode

原理前面介绍过,很多学生刚入门可能很抽象,但没关系。 在这里,在谈注入的实现之前,让我们先从计算机的发展历史说起。

大家都知道以前电脑有个洞。 所以,同时电脑也是电器,所以电只有正负。 我们用0和1代替。 但是,0和1用两个数字表示的话东西太少了。 因此,会发生各种各样的进制变换。 例如,我们习惯上是十进制,而电脑在十六进制中占4个字节。 1字节为8位,为00000000。 前面加上0x符号,例如0x10。 以前写过程序(世界上第一个程序员是女性。 就是用这个0和1写。 渐渐发现了这个难以记住的地方,发明了汇编。 (不同的体系结构有不同的指令集。 这里介绍pc x86体系结构。 也就是说,提取特征。 例如,50表示推送。 我们写shellcode是用汇编写。 后来,发明了更高级的c/c语言。 而且,用这些语言写作一定要使用工具进行翻译。 把它翻译成十六进制,所谓的编译器。

那么,我说了这样的话,实际上ELF是由0和1组成的可执行文件。 那么,为什么要制作ELF文件格式呢? 我们认为一个程序不能在一台计算机(同类操作系统)上运行。 如果你写的文字可以在其他计算机上执行,我们决定规则的文件格式,操作系统用这个格式命令执行就可以了。 因此,有的类unix系统是ELF,windows是PE,macOS是macho,有文件格式的话很方便。 程序一般包含图像和音乐等其他资源,所以让我们来看看ELF文件格式是什么。 请参照下图。

它主要由文件头和各种段组成,文件头用于索引后面的各种段(或章节,详细教程请联系作者。 中,段一般包括代码段、定位段、符号等。 我们写了测试程序,用自己写的分析工具读他的信息如下图。

#includestdio.hintmain(intargc,char * argv[] ) { main1; 返回0; }int main1() printf(Haidragon_study! 呼叫主1n '; 返回0; }

现在,考虑分析整个ELF文件,将各种信息存储在缓冲区中,然后阅读要注入的shellcode文件(opcode )以遍历整个部分。 因为ELF中实际上有很多部分不能使用,但他也会利用这个空间生成可以保存我们的shellcode。 但是,有这样可以利用的空间的节有可能是有限的,因为shellcode更大,所以首先要找到这些可以利用的空间的节的大小,如果找到可以安装合适的shellcode的就写在那里,如果空间小的话

这里提供了编译的shellcode。 )功能为打印hello world,shellcode如下图所示。

现在开始写代码逻辑,提供读取注入的文件和这个shell代码文件。 请参照下图。

然后,保存条目(位于shellcode的末尾),查找部分是否有无用的部分以确定其大小,如果没有合适的部分,则添加新的部分,并将部分中的所有信息更改为代码部分中的信息最后,它将替换条目。 请参照下图。

运行后,查看如下图所示生成的程序。

查看修改后的文件,如下图所示。

到此为止实现了简单的shellcode注入器,但文章中还有很多没有提到的事情。 另外,添加全部代码太长了,可以直接联系作者。 相关系统教程将长期更新,如下图所示。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。