0


pwn入门(1):kali配置相关环境(pwntools+gdb+peda)

本菜鸟最近学习了缓冲区溢出的知识,打算针对wiki上基本ROP的攻击过程做一个复现,在这之前,首先要配置解pwn题的相关环境。本文就用kali虚拟机进行环境配置,这里做一个总结:

kali相关的配置和工具下载

软件源更新

更新软件源,编辑/etc/apt/sources.list ,更换为阿里云/清华等国内镜像,这样后续下载软件的时候就不用走国外的源了,速度会快很多,指令为:

vim /etc/apt/sources.list 

然后添加如下两条(我这里添加了阿里云镜像):

deb http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
deb-src http://mirrors.aliyun.com/kali kali-rolling main non-free contrib

添加之后的效果如下,改完之后别忘了输入:wq保存:

更改完之后,还要运行如下命令更新:

sudo apt-get update

安装docker(可跳过)

docker是应用容器引擎,用于模拟远程测试环境,虽然这次用不到docker相关的内容,但迟早是需要的,安装命令如下:

apt-get install docker docker-compose

启动docker:

service docker start

查看docker有啥镜像(此时应该啥也没有)

这样就基本可以了。

安装git

git是版本控制软件,主要用来从Github上下载开源程序,命令如下:

apt install git

安装结束后,输入git,如果出现以下界面,就安装好了:

安装pwntools

pwntools是一个python的库,方便解pwn题的时候编写漏洞利用的exp,在python2和python3中都支持,我们这里就安装在python3中就可以了,命令如下:

python3 -m pip install --upgrade pwntools

​​​​

安装好之后,输入python,进入python3环境,试一试这个库能不能用,输入如下代码:

from pwn import *
asm("xor eax, eax")

如上图,成功输出对应的bytes流,说明pwntools安装成功。

安装gdb并添加插件peda

安装gdb

命令如下,一共六条命令,按顺序执行即可,首先下载gdb压缩包,本文安装的是12.1版本:

wget http://ftp.gnu.org/gnu/gdb/gdb-12.1.tar.gz

然后解压:

tar -zxvf gdb-12.1.tar.gz

解压后进入gdb-12.1目录下:

cd gdb-12.1

添加python配置,需要根据python的具体版本进行修改,我的是python3.10,不知道自己python版本的直接命令行输入python,进入解释器的时候会提示。

./configure --with-python='/usr/bin/python3.10'

最后运行如下两条命令,make的时间可能比较长,耐心等待一会。

make
sudo make install

安装完成后,输入gdb,如果能进入到gdb的命令行界面,就说明成功了

添加插件peda

peda可以在调试程序的时候清除的看到寄存器、代码段、栈区的存储内存情况,是一个很方便的gdb插件工具。运行如下两行命令使用git获取peda,并添加到gdb环境,这样在下次在启动gdb的时候就自动进入gdb-peda模式:

git clone https://github.com/longld/peda.git ~/peda
echo "source ~/peda/peda.py" >> ~/.gdbinit

安装完成之后,输入gdb,看看是否自动进入gdb-peda模式,如果是下图的状态,就成功了:

如果输入gdb,发现还是仅仅是gdb的命令行界面,可能是并未将peda添加到gdb环境中,我们可以查看以下gdb的配置文件.gdbinit,命令如下:

vim ~/.gdbinit

保证这个文件的内容里面有peda源,就像下图这样 :

特别注意两点:

1.peda的路径要正确,我这里是安装到了/root/peda/peda.py ,读者安装的时候要填写自己的安装路径。

2.source /(peda的路径)/peda.py 这一行的两端不要有双引号!

更改完成之后(别忘了:wq保存),重新运行gdb试试,应该没有问题了:

结语

本文用kali配置了解pwn题的相关环境,包括kali相关配置、pwntools的下载和gdb-peda的下载配置。在后续的章节中,我们将做一些基本的ROP(Return Oriented Programming)题目,其主要思想是在栈缓冲区溢出的基础上,通过利用程序中已有的小片段 (gadgets) 来改变某些寄存器或者变量的值,从而控制程序的执行流程,最终获取shell。希望大家多多支持!


本文转载自: https://blog.csdn.net/Bossfrank/article/details/130213456
版权归原作者 Bossfrank 所有, 如有侵权,请联系我们删除。

“pwn入门(1):kali配置相关环境(pwntools+gdb+peda)”的评论:

还没有评论