pwn线上环境搭建

ctf pwn 题目部署

在做ctf pwn的题目的时候总会忍不住的想,这个目标主机的环境是怎样搭建的。所以本文旨在快速的搭建一个ctf pwn的远程环境。

0x0 演示环境

在Vmware15.5.2中Ubuntu16.04.6(desktop-amd64)实现环境的搭建。系统安装可以参考。

0x1 环境配置

这里用的是一个GitHub上的一个项目pwn_deploy_chroot,参照大神亲自写的blog如何安全快速地部署多道 ctf pwn 比赛题目。

  1. 项目特点。

    • 一次可以部署多个题目到一个 docker 容器中

    • 自动生成 flag,并备份到当前目录

    • 也是基于 xinted + docker + chroot

    • 利用 python 脚本根据 pwn 的文件名自动化地生成 3 个文件:pwn.xinetd,Dockerfile 和 docker-compose.yml

    • 在 /bin 目录,利用自己编写的静态编译的 catflag 程序作为 /bin/sh,这样的话,system("/bin/sh") 实际执行的只是读取 flag 文件的内容,完全不给搅屎棍任何操作的余地

    • 默认从 10000 端口监听,多一个程序就 +1,起始的监听端口可以在 config.py 配置,或者生成 pwn.xinetd 和 docker-compose.yml 后自己修改这两个文件

  2. 安装docker:

  • 如果有docker可以选择将它删除。

    sudo apt-get remove docker docker-engine docker.io containerd runc
    
  • 更新索引,允许apt通过HTTPS使用存储库。

       sudo apt-get update
       
       sudo apt-get install \
           apt-transport-https \
           ca-certificates \
           curl \
           gnupg-agent \
           software-properties-common
    
  • 添加官方的 GPG key(随意选择)。

     curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
     
     curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
    

    然后验证密钥是否添加成功,输入指令。

    sudo apt-key fingerprint 0EBFCD88
    

    出现以下提示表示添加成功
    在这里插入图片描述

  • 使用以下命令设置稳定存储库(建议选择阿里云)。

    官方

    sudo add-apt-repository \
       "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
       $(lsb_release -cs) \
       stable"
    

    阿里云

    sudo add-apt-repository \
       "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu \
        $(lsb_release -cs) \
        stable"
    
  • 安装docker.io。

    sudo apt install docker.io
    
  • 查看docker.service的状态和版本。

    状态:

    systemctl status docker.service
    # service docker status
    

    pwn线上环境搭建_第1张图片

    版本:

    docker --version
    

    在这里插入图片描述

  • 修改docker镜像源。

    • 修改或新增daemon.json sudo gedit /etc/docker/daemon.json

      {
      
      "registry-mirrors": ["https://pee6w651.mirror.aliyuncs.com"]
      
      }
      //Docker 官方中国区
      //https://registry.docker-cn.com
      //网易
      //http://hub-mirror.c.163.com
      //中国科技大学
      //https://docker.mirrors.ustc.edu.cn
      
  • 重启服务

      systemctl restart docker.service
      # service docker restart
    
  • 测试docker

    sudo docker run hello-world
    

    pwn线上环境搭建_第2张图片

  • 安装 docker compose 和 git。

    sudo apt install docker-compose git
    
  • 查看docker compose版本。

    docker-compose --version
    

    在这里插入图片描述

  • 将当前用户(test)加入到docker组。

    sudo usermod -a -G docker test
    

    检查一下是否添加成功

    sudo groups test
    

    在这里插入图片描述

  1. 将下载下来的项目解压。放到Ubuntu中在终端中打开文件夹。

    • 将所有 pwn 题目放入 bin 目录(注意名字不带特殊字符,因为会将文件名作为 linux 用户名)

    • python initialize.py

    • docker-compose up --build -d

  2. 演示。

    • 将要部署的pwn题放入bin文件夹中(sample2为测试样例)。

      在这里插入图片描述

    • 修改config.py

      打开config.py将第40行的**‘s/archive.ubuntu.com/asia-east1.gce.archive.ubuntu.com/g’**改成

      ’s/archive.ubuntu.com/mirrors.aliyun.com/g’,可以加快docker-compose速度。

    • 执行python initialize.py

      在这里插入图片描述

    • 执行docker-compose up --build -d

      如果出现

      在这里插入图片描述

      就重开一个终端,或者先执行sudo su再执行su test。出现

      pwn线上环境搭建_第3张图片

      完成。

      pwn线上环境搭建_第4张图片

      查看一下端口信息。

      sudo netstat -antp | grep docker
      

      在这里插入图片描述

    • 测试sample2(端口10003)

      pwn线上环境搭建_第5张图片

      用exp试一下。

      pwn线上环境搭建_第6张图片

0x2 总结

到这里基本上就完成了平台的搭建,但是还是有些问题的,比如题目的libc版本的问题。在这里挖一个坑,后续会更新解决libc版本的问题。

你可能感兴趣的:(pwn线上环境)