pwn题目环境搭建

记一下,防止自己忘了
配的时候出现了多种问题,尤其是最后一步,包括编码,无命令,折腾了一晚上,最后换操作系统,然后切换超级管理员搞定了, 前面的步骤有问题的话搜一下应该也能搜到,应该用sudo apt-get update就可以解决了吧(反正我是这样的?)
转载zhz师傅的,看的zhz师傅的博客搭的
https://tina2114.github.io/2020/03/22/docker%E7%9A%84%E6%90%AD%E5%BB%BA/#more

配置

一台新开的虚拟机/云服务器
这次用的是u16

1、 curl ``-``s https:``/``/``get.docker.com``/` `| sh
2、 apt install docker``-``compose git
3、 git clone https:``/``/``github.com``/``giantbranch``/``pwn_deploy_chroot.git

给docker换源

vim /etc/docker/daemon.json
#输入以下内容
{ 

"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"] 

}

重启docker

systemctl restart docker
1、将所有pwn题目放入bin目录,可以1个,也可以n个(注意名字不带特殊字符,因为会将文件名作为linux用户名)
2、python initialize.py
3、sudo -i
4、docker-compose up --build -d

注:
它会自动部署pwn题,端口默认从10000依次增加。
因为某xx要求端口是9999,所以我们要修改一下config.py,把这里的10000改成9999,然后把用的pwn放到bin里

要想修改flag,就在第二步python initialize.py后修改flag.txt,再运行一次python initialize.py

pwn题部署完毕
查看:

#查看当前运行的容器,找到对应的CONTAINER ID后进入 
sudo docker ps 
sudo docker exec -ti <CONTAINER ID> bash 
查看容器的ip,用nc连
cat /etc/hosts

最后如何映射外网,我用的是云服务器,直接把安全组的端口10000-10005(要用几个开几个)打开就好了
在这里插入图片描述
虚拟机的话,没配 XD
另一台虚拟机: nc 本机ip(不是docker的ip!) 10000 测试一下

最后用你的exp进行测试

额外的:
修改libc版本
pwn题目环境搭建_第1张图片
修改镜像名:
pwn题目环境搭建_第2张图片
修改一些信息:
pwn题目环境搭建_第3张图片

docker镜像的保存和导出

在这里插入图片描述
在这里插入图片描述

1、docker images
2、docker save -o gitlab.tar pwn_deploy_chroot

或者

1.查看要要保存的镜像的ID

docker images

image-20200403110914281

2.保存镜像为tar包

docker save -o gitlab.tar

3.用scp,xftp等等将已经压缩好的gitlab.tar包弄到服务器,虚拟机(你想弄到的地方)

4.将gitlab.tar包导出到本地来(一定要有docker的运行环境,docker安装:https://www.jianshu.com/p/9c96ea8e6f41)

docker load -i gitlab.tar

5.运行docker容器

docker run

删除docker容器

1.列出所有容器

docker ps

2.停止容器

docker stop <CONTAINER ID>

3.删除容器

docker rm <CONTAINER ID>

4.删除镜像

docker rmi <id|name>

docker启动

docker images中已经存在其镜像,对其启动

docker run my/python:v1 cal

my/python:v1为镜像名和标签

开始容器运行

docker start $CONTAINER_ID

你可能感兴趣的:(PWN)