日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

docker搭建pwn环境

發布時間:2025/3/21 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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.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

總結

以上是生活随笔為你收集整理的docker搭建pwn环境的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。