docker搭建pwn环境
生活随笔
收集整理的這篇文章主要介紹了
docker搭建pwn环境
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 拉取ubuntu鏡像
- 運行容器
- 安裝環境
- 修改apt源
- 修改pip源
- 安裝pwntools
- 安裝pwndbg
- 安裝ROPgadget、libc-database、one_gadget
- 安裝tmux
- 與主機拷貝文件
- 保存容器為新鏡像
- 示例
- 補充
- 添加32位程序支持
拉取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.listapt-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-essentialpip 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.confset -g mouse on
注意:在啟用鼠標切換之后如果需要選中終端中的部分內容,需要在按住Shift的情況下才可以
與主機拷貝文件
從主機往容器中拷貝
docker cp C:\Users\Administrator\Desktop\\pwn pwn-ubuntu-18.04:\ctf\work保存容器為新鏡像
經過上面的步驟,我們已經搭建好了需要的環境,下面就將這個容器打包成鏡像
首先退出該容器,然后查看已經停止運行的容器:
得到容器的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總結
以上是生活随笔為你收集整理的docker搭建pwn环境的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ctf-cybrics
- 下一篇: linux pwn练习0x01