要说ELF文件就不得不先说说别的东西,请仔细阅读。
前序:
exploit简称exp :用于攻击的脚本代码或方案。
payload :攻击载荷,目标进程被劫持的控制流的数据;通俗的讲就是发起攻击时构造的恶意数据发送给目标程序,经过目标程序处理之后触发其漏洞,进而达到预期目的,构造的恶 意数据就称为payload。
shellcode:调用攻击目标的shell代码;(构造的恶意数据含有一段机器码, 其作用就是从攻击对象中获取shell,这段包含在payload中的机器码就称为shellcode。
pwn的攻击流程
通过ip端口访问到目标服务器,与服务器建立连接之后,利用手里的exp(攻击脚本)生成的攻击载荷,向远程端口输送这段恶意二进制数据 ,触发漏洞,pwn掉目标服务器,进而得到想要的信息。
目前, 软件世界百分之40的漏洞是由c语言或c++所写成的,很多具有利用价值的漏洞也存在于一些操作系统中,包括linux,windows等操作系统,apache等服务器也会存在一些原理简单的漏洞,然而c语言写的源代码是如何生成可执行文件的呢,由源代码编译生成的二进制文件即为可执行文件,即为ELF文件,ELF文件是linux下的可执行文件的格式,如下图。
什么是可执行文件呢?
动、静态链接库提供代码的具体的代码实现。
ELF文件存放于磁盘中, 到了内存中会创建一个虚拟内存映像,成为一个进程。
ELF文件的核心结构如下图
ELF header记录了整个ELF文件在程序中的结构分布
Sections’names 记录了各个节的节名,真正起作用的还是code、data这俩个大的节。code节里边包含的是机器码的分区,不同分区有不同的功能 ,根据不同的功能划分成不同的代码节。data节 也包含了许多节,如dynamic节,各个节作用权限相同。
Section header table 记录了 程序中各个节的信息。
至此完结。
Comments | 1 条评论
博主 666
牛逼666