您当前的位置:中国公益之声公益正文

一些适用于各种体系结构的初学者的Linux二进制漏洞利用开发任务

放大字体  缩小字体 时间:2019-10-01 20:39:37 来源:自媒体 作者:黑客与极客

原标题:一些适用于各种体系结构的初学者的Linux二进制缝隙运用开发使命

Linux的PWN并不难

这是一套针对初学者的Linux二进制缝隙运用开发使命,现在这一套学习内容首要针对的是仓库缓冲区溢出问题。

我创立这个项目是为了学习如安在不同体系结构上履行简略的二进制开发,出于教育意图,在处理这一系列使命时,有必要恪守下面列出的一组规矩。这些使命其实飞铲小,有的规矩是成心没有完成的。它与大多数CTF应战相反,由于这些使命是直接提供给咱们的,咱们只需求去完成即可。

规矩

1、一切使命都有必要运用主张的办法来处理,即便你有其他更简略的办法。

2、一切使命都有必要经过假定启用或禁用的特定维护来处理,即便体系结构、东西链或特定环境不支持它们。

3、一切使命都假设了一个动态链接的libc和已知的二进制文件。

4、一切的ROP链都有必要手动结构。

使命 主张的办法

1、:溢出buffeer,并重写x的值。

2、:运用not_called的地址重写堆中恣意的回来地址。

3、:跳转到一个one_gadget地址,保证满意特定的条件,关于某些架构,或许需求运用到ROP链。

4、:在栈中分配一个shellcode,并发动/bin/sh。

5、:跟之前的使命相同,但这儿的栈地址是不知道的。

6、:组成一个ROP链来履行system(“/bin/sh”)。

7、:组成一个ROP链并经过syscall履行execve(“/bin/sh”,NULL, NULL)

8、:组成一个ROP链来重写x值,并跳转到not_called。

维护机制

空白处意味着维护状况跟主张的办法不相关。

禁用ALSR:

echo 0 | sudo tee /proc/sys/kernel/randomize_va_space

启用ASLR:

echo 2 | sudo tee /proc/sys/kernel/randomize_va_space 处理方案

这些处理方案仅供参阅,并不一定适用于一切场景。

环境要求

这些使命已经在x86-64 CPU设备进步行了测验,测验渠道为Linux Mint 19.1,下面是相关的软件版别:

东西装置 装置包:

sudo apt-get install build-essential

sudo apt-get install gcc-arm-linux-gnueabihf gcc-aarch64-linux-gnugcc-mips-linux-gnu gcc-mips64-linux-gnuabi64 gcc-powerpc-linux-gnugcc-powerpc64-linux-gnu gcc-sparc64-linux-gnu

sudo apt-get install libc6-dev:i386 libc6-armhf-cross libc6-arm64-cross libc6-mips-crosslibc6-mips64-cross libc6-powerpc-cross libc6-ppc64-cross libc6-sparc64-cross

sudo apt-get install qemu-user

sudo apt-get install gdb gdb-multiarch

#These are probably not required, but just in case:

#sudo apt-get install gcc-7-multilib gcc-multilib-arm-linux-gnueabigcc-multilib-mips-linux-gnu gcc-multilib-mips64-linux-gnuabi64gcc-multilib-powerpc-linux-gnu gcc-multilib-powerpc64-linux-gnu

构建代码: ./build.sh 运用pip装置pwntools和ropper: pip install --user pwntools ropper

为QWMU和pwntools装置qemu-binfmt:

sudo mkdir /etc/qemu-binfmt

sudo ln -s /usr/arm-linux-gnueabihf/ /etc/qemu-binfmt/arm

sudo ln -s /usr/aarch64-linux-gnu /etc/qemu-binfmt/aarch64

sudo ln -s /usr/mips-linux-gnu/ /etc/qemu-binfmt/mips

sudo ln -s /usr/mips64-linux-gnuabi64/ /etc/qemu-binfmt/mips64

sudo ln -s /usr/powerpc-linux-gnu/ /etc/qemu-binfmt/ppc

sudo ln -s /usr/powerpc64-linux-gnu/ /etc/qemu-binfmt/ppc64

sudo ln -s /usr/sparc64-linux-gnu/ /etc/qemu-binfmt/sparc64

项目地址

easy-linux-pwn:【GitHub传送门】

参阅资料

*参阅来历:xairy,FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM

责任编辑:

“如果发现本网站发布的资讯影响到您的版权,可以联系本站!同时欢迎来本站投稿!