Docker相关
docker相关
安装
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh --mirror Aliyun
基本操作
启动
systemctl start docker
守护进程重启
systemctl daemon-reload
重启 docker 服务
systemctl restart docker / service docker restart
关闭
docker service docker stop / docker systemctl stop docker
运行一个容器,命名为yichen
docker run -d -p 10001:80 --name yichen apacje
挂载目录
-v /root/:/root/
进入容器里面,开一个bash
docker exec -it id /bin/bash
重启容器
docker restart id
关闭容器
docker stop id
删除容器
docker rm -f id
通过提交一个镜像
docker commit id yichen
把镜像提交到 dockerhub 上
docker login
(登录)
docker push 镜像名
把镜像上传到阿里云的容器镜像仓库
先创建一个命名空间,在创建一个仓库(代码源选本地)
docker login --username=阿里云用户名 registry.cn-shanghai.aliyuncs.com
密码可以在这里设置
docker tag 镜像id registry.cn-shanghai.aliyuncs.com/命名空间/你的仓库名
docker push registry.cn-shanghai.aliyuncs.com/命名空间/你的仓库名
查看运行的docker
docker ps
重命名一下
docker rename 原容器名 新容器名
搭建web环境
拉取一个apache-php5
docker pull registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5
运行
docker run -d -p 2027:80 registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5
把题目复制到/var/www目录下面
docker cp ./web2 0c7b9ddc107a:/var/www
出现这些问题使用 chmod 777 文件名
给权限
Warning: Unknown: failed to open stream: Permission denied in Unknown on line 0
Fatal error: Unknown: Failed opening required '/var/www/index.php' (include_path='.:/usr/local/lib/php') in Unknown on line 0
搭建pwn环境
这样可以在实体机单个匹配一条命令
socat tcp-l:8887,fork exec:./pwn1
~~把 xinetd 下下来 ~~~~https://github.com/Eadom/ctf_xinetd~~
~~题目复制到 bin 文件夹,把 ctf.xinetd 的命令改成运行的~~
~~(之前是 ./helloworld,改成自己的文件名)~~
~~xinetd 里面 Dockerfile 里面的清华的源不行,换成阿里的~~
~~打开,把 pub_port 改成想要的端口~~
~~docker run -d -p "0.0.0.0:pub_port:9999" -h "helloworld" --name="helloworld" helloworld~~
有个更好的方法:
把文件下载下来
git clone https://github.com/giantbranch/pwn_deploy_chroot.git
然后把所有题目直接改好名字,放在 bin 文件夹
运行 python initialize.py
分配好 flag,会把分配的 flag 放在 flags.txt
运行 docker-compose up --build -d
同时每个题目对应的端口也会放在 flags.txt
改 config.py 这个选项为 True 可以使用 cat flag 代替 /bin/sh 提高安全性
# Whether to replace /bin/sh
REPLACE_BINSH = False
复现环境
安装 docker-compose
<font style="color:#333333;">sudo apt install docker-compose</font>
拉起环境
docker-compose up -d
docker-compose.yml 中查看端口,访问即可
出现AttributeError: 'module' object has no attribute 'SSL_ST_INIT'问题:
解决:
rm -rf /usr/lib/python2.7/dist-packages/OpenSSL
rm -rf /usr/lib/python2.7/dist-packages/pyOpenSSL-0.15.1.egg-info
sudo pip install pyopenssl