pwn环境docker化
新年第一篇水文,因为有些时候做一些相对简单的题目时打开虚拟机这么庞大的东西显得不是很明智,还有就是在一场比赛中遇到不同版本的pwn题时如果切换虚拟机也十分的麻烦,因此将Pwn环境搭建在docker下就十分的方便,本文简单记录下在centos7上利用ubuntu18.04镜像搭建pwn环境的方法
0x00 参考文章
别的不说了,参考文章先贴上
1 |
|
0x01 拉取镜像,运行docker
这里就不详细说明docker的安装了,我们直接拉取镜像吧
1 |
|
好啦,到这里就拉取完毕,我们可以查看下当前的镜像
1 |
|
然后我们启动刚刚下载的镜像,这里我们采用-i参数(打开STDIN,用于控制台交互 )和-t参数(分配tty设备,该可以支持终端登录,默认为false),然后用–name参数起一个花名
这里要注意的就是我们正常使用的时候启动时需要添加–privileged参数来获取调试程序的权限,不然是没有办法使用gdb的
1 |
|
0x02 环境搭建
拿到一个新系统第一件事自然是换镜像!!
首先我们update一下,然后下载我们最爱的vim,之后修改下载源即可
当然也就是修改/etc/apt/sources.list的内容,我们将其中的http://archive.ubuntu.com 改为mirrors.aliyun.com即可,下如18.04
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15deb http://mirrors.aliyun.com/ubuntu/ xenial main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security universe然后就是正常安装流程,这里我安装完Git后直接拉来我的脚本
pwn environment1
2
3
4git clone https://github.com/nightRainy/Pwn_environment_automatically_build_script.git
cd Pwn_environment_automatically_build_script
chmod +x setup.sh
./setup.sh下面要做的就是一些简单的交互和等待…
之后我们需要设置一些tmux的鼠标切换:)1
2root@98c01766c4db:~# touch .tmux.conf
root@98c01766c4db:~# echo 'set -g mouse on' > .tmux.conf这里说明一下,我的自动化脚本只安装了
gcc,gdb,libc6_dev_i386,pwntools,pwndbg,oh_My_zsh,one_gadget,roputils,tmux几个工具,还有其他需要的工具需要自行下载之后我们退出一下我们的docker,进行下一步
打包为镜像并上传
首先docker ps 看看我们docker的实例号:
1
2
3
4$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
98c01766c4db ubuntu:18.04 "bash" 50 minutes ago Up 50 minutes pwn_2.27之后要做的就是将其打包为镜像
1
docker commit -m "pwn 18.04 2.27" 98c01766c4db zhihsi/dockerpwn:2.27
请将zhihsi换为自己的dockerhub账号名,其中-m后面的是镜像的描述,最后的2.27为标签
之后查看一下我们的docker1
2
3$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
zhihsi/dockerpwn 2.27 0357f4157a83 13 seconds ago 1.44GB上传到我们的dockerhub上
1
docker push zhihsi/dockerpwn:2.27
如果出现denied: requested access to the resource is denied 请检查是否登陆了
如果没有登陆,可以使用docker login登陆一下,然后就可以上传了
然后就出现了一个神奇的问题,上传速度巨慢,下载速度估计23333,后来发现一个师傅的文章,是传到阿里云的docker镜像中
之后我们就可以使用我们的镜像了,运行的时候记得加特权模式:-)
1 |
|
over~
2021/4/23日注
这地方一直是我想改的地方,但是因为懒狗一直没改,想了想还是应该说明白不然会引起误导总是不好的
上面说到运行镜像的时候需要加特权模式其实也不一定,可以直接赋予调试权限(ptrace),这是由于linux的capbilities安全机制,我们在启动docker的时候docker出于安全考虑是没有给我们调试权限的,因此需要我们自己加上sys_ptrace权限才可以进行调试,而特权模式相当于给予了docker所有的能力
个人一般喜欢使用特权模式,一个是因为我并不将他映射到主机端口上对外开放使用,权限高自然是最好,另一个就是传文件很方便,随意传到哪个文件夹都可以,至此
对capbilities机制感兴趣的童鞋们可以自己研究一下,我这里就不多说了,单纯的埋一下坑hh