docker搭建pwn环境

拉取ubuntu镜像

docker pull ubuntu:18.04

运行容器

docker run -i -t -d --name=pwn-ubuntu-18.04 -v /ctf/work -p 23946:23946 --cap-add=SYS_PTRACE --security-opt seccomp:unconfined ubuntu:18.04
docker exec -it pwn-ubuntu-18.04 /bin/bash

安装环境

修改apt源

清华大学开源软件镜像站,选择对应的源
https://mirror.tuna.tsinghua.edu.cn/help/ubuntu/

依次执行下面的命令:

cd /etc/apt
# 保存原始的sources.list文件
cp sources.list sources.list.bak
apt-get update
apt-get install vim
# 更换源之后采用https协议,需要安装该软件才行
apt-get install apt-transport-https
# 覆盖原始的内容
echo '' > sources.list
# 将清华的源拷贝进去(Ctrl+Shift+v)保存
vim sources.list

apt-get update

修改pip源

cd ~/.pip

如果不存在.pip目录,则创建目录:

mkdir ~/.pip
cd ~/.pip
touch pip.conf
sudo gedit ~/.pip/pip.conf

在pip.conf中写入如下内容:

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple/ 
[install]
trusted-host = pypi.tuna.tsinghua.edu.cn

安装pwntools

apt-get install python2.7 python-pip python-dev git libssl-dev libffi-dev build-essential

pip install pwntools

安装pwndbg

# 创建相应目录
cd /home
mkdir em
cd em
mkdir software
cd software/


# 安装
git clone https://github.com/pwndbg/pwndbg
cd pwndbg
apt-get install sudo
./setup.sh

安装ROPgadget、libc-database、one_gadget

apt-get install ruby
apt-get install gem
gem install one_gadget

安装tmux

使用bash进入到docker中后只有一个命令行终端,这样很不方便,可以在该容器中安装tmux,来同时开启多个终端。
使用
apt-get install tmux来安装

启动鼠标切换界面:

touch .tmux.conf
vim .tmux.conf 

set -g mouse on
注意:在启用鼠标切换之后如果需要选中终端中的部分内容,需要在按住Shift的情况下才可以

与主机拷贝文件

从主机往容器中拷贝

docker cp C:\Users\Administrator\Desktop\\pwn pwn-ubuntu-18.04:\ctf\work

保存容器为新镜像

经过上面的步骤,我们已经搭建好了需要的环境,下面就将这个容器打包成镜像
首先退出该容器,然后查看已经停止运行的容器:

docker ps -a

得到容器的id。

使用commit命令提交该容器为镜像:

# 可能需要一点时间
docker commit -m "pwn ubuntu 18.04 v1" f6d36cb41b26 yusakul/pwn-ubuntu-18.04:v1
# 其中`-m`为提交镜像时的描述
# 5cfd7de2e9f7 为容器的id
# e3pem/dockerpwn:v2 为镜像的标签,将e3pem换成自己在dockerhub上的用户名

# 查看构造出来的镜像
docker images

可以选择将镜像push到dockerhub,需要登陆dockerhub

# docker tag yusakul/pwn-ubuntu-18.04:v1 yusakul/pwn-ubuntu-18.04 
docker push yusakul/pwn-ubuntu-18.04:v1

下载地址

docker pull yusakul/pwn-ubuntu-18.04:v1
docker run -i -t -d --name=pwn-ubuntu-18.04 -v /ctf/work -p 23946:23946 --cap-add=SYS_PTRACE --security-opt seccomp:unconfined yusakul/pwn-ubuntu-18.04:v1

示例

socat tcp-listen:10001,reuseaddr,fork EXEC:./heapTest_x64,pty,raw,echo=0
from pwn import *
io=remote("172.17.0.2",10001)
io.recv()
io.send("") 
io.send("\n")
io.sendline("")
io.close()

在这里插入图片描述

补充

添加32位程序支持

apt-get install lib32z1 lib32ncurses5
apt-get install lib32stdc++6
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值