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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章