# Pwn Lab **Repository Path**: tinylab/pwn-lab ## Basic Information - **Project Name**: Pwn Lab - **Description**: PWN Lab for CTF, based on Cloud Lab. - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2022-05-06 - **Last Updated**: 2023-04-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # PWN Lab 官方文档 该项目属于“开发一套 CTF PWN 选手训练专用虚拟实验室”的项目成果。 泰晓科技在 2022 年的开源之夏提报了 3 个项目,该项目为其一,详情可了解 [开源之夏 - Summer 2022](https://tinylab.org/summer2022/)。 ## 项目详情 1. 项目标题:开发一套 CTF PWN 选手训练专用虚拟实验室 2. 项目描述:本项目基于 Cloud Lab 开源项目开发一套 CTF 训练实验环境:pwn lab,专门为 PWN 方向的选手入门设计,确保可以在 Windows,Linux,MacOS 等操作系统上更加轻松、快捷地部署 PWN 环境,并且提供快捷命令更换 glibc 版本以及部署部分经典 PWN 题目。 3. 项目难度:进阶 4. 项目社区导师:@lzufalcon 5. 导师联系方式:falcon@tinylab.org 6. 合作导师联系方式: 7. 项目产出要求: - 为 CTF 选手 PWN 环境提供完善的做题环境 - 可以在本地快速部署 PWN 题目 - 使用命令快速更换 glibc 版本以适应不同题目环境 - 撰写开发手册和使用文档并录制使用演示视频 8. 项目技术要求: - Linux 基本操作 - 熟悉 Cloud Lab 并在此基础上开发 - 熟悉 PWN 题目的各种环境 - 熟悉 PWN 题目的靶场 9. 相关的开源软件仓库列表: - Cloud Lab: - Linux Lab: - PWN Lab: ## 项目开发记录 这里为 [Summer2022: CTF Pwn Lab 开发实录](https://gitee.com/tinylab/cloud-lab/issues/I56CF0)。 ## 产品安装 1. 安装 [Cloud Lab](https://gitee.com/tinylab/cloud-lab) 本项目基于 Cloud Lab 开发,是其一个子仓库,所以必须先安装 Cloud Lab,及其所必须的 Docker Git 等。 ``` $ git clone https://gitee.com/tinylab/cloud-lab.git ``` 2. 安装 pwn-lab 选择 pwn-lab 分支,通过 Cloud Lab 下的 `tools/docker/choose` 命令可以选择 pwn-lab 实验室即可安装。 ``` $ cd cloud-lab/ $ git checkout pwn-lab $ tools/docker/choose pwn-lab ``` ## 创建 pwn-lab 1. build 容器 ``` $ tools/docker/build pwn-lab ``` 2. 运行 pwn-lab 实验室(以 vnc 模式登陆) ``` $ LOGIN=vnc tools/docker/run pwn-lab ``` 其他的登陆方式如:ssh webvnc bash 3. 停止 pwn-lab 实验室 ``` $ tools/docker/stop pwn-lab ``` 4. 重新运行 pwn-lab 实验室 ``` $ tools/docker/start pwn-lab ``` 5. 重新创建实验室 ``` $ tools/docker/rerun pwn-lab ``` ## pwn-lab 环境以及用法 ### 环境 pwn-lab 为 Ubuntu 20.04 的环境,所有相关文件均存放于 `/labs/pwn-lab` 目录下内容如下 1. tools - ctf-xinetd - glibc-all-in-one - one_gadget - patchelf - peda - pwndbg - Pwngdb - ROPgadget - Ropper 2. scripts - clibc - install - DownloadTools.sh - switch.sh 3. challenge - 0x10.zip ### 用法 1. Install 用于初始用户安装全部 pwn 环境所需的插件,**需要在进入后第一时间运行** ``` $ cd /labs/pwn-lab/tools/scripts/ $ ./install ``` 2. DownloadTools.sh 用于下载所需要的软件(默认已经安装完毕,如果误删可运行此脚本): ``` $ cd /labs/pwn-lab/tools/scripts/ $ ./DownloadTools.sh ``` 3. switch.sh 用于自动化切换 pwngdb 插件,pwngdb 是 pwn 选手最常用的工具,但是做不同题目需要频繁切换插件,这个脚本可以帮助简化流程: ``` $ cd /labs/pwn-lab/tools/scripts/ $ ./switch.sh Please choose one mode of GDB? 1.peda 2.gef 3.pwndbg Input your choice:3 Please enjoy the pwndbg! ``` 4. chlibc.sh 用于自动切换 libc 版本的脚本,减少繁琐的命令输入: ``` $ cd /labs/pwn-lab/tools/scripts/ $ sudo ./chlibc [libc_path] [filename] ``` 5. 0x10.zip 这是用于 pwn 选手练习的部分题目,存放于 `/labs/pwn-lab/challenge/` 目录下: ``` $ cd /labs/pwn-lab/challenge $ unzip 0x10.zip ``` 解压后里面包含了题目和 exp ,其中 exp 仅用于提供模板和解题思路。