掛載ctf題目
1. 安裝container
2. 掛載本地題目所在的目錄
3. 用socat命令掛載到container埠(退出後中斷)
4. 用nohup永久掛載題目退出容器不會中斷
5. 用nc命令連線題目
此方法只能在乙個區域網內可以訪問。
docker pull
docker run -it -v 本地目錄:容器目錄 --name /bin/bash
eg:
docker run -it -v /home/yrl/desktop/pwn/static-x86:/home/yrl --name ctf ubuntu:16.04 /bin/bash
直接就進入容器中,我們可以檢視一下剛才掛載目錄是否存在:
先exit退出容器,至此,就多了乙個名為ctf的容器,可以用docker ps -a檢視所有容器,docker ps檢視執行中的容器
這裡就掛載完成,用docker start (docker start 876a)啟動容器,docker exec -it 876 bash進入剛才的容器(exec方式進入容器,退出之後再進入仍能進入,推薦用此方法)
你直接用「./」執行你在本地編譯好的程式是執行不了的,會提示沒有此檔案,但是原始檔可以開啟:
可以重新編譯.c檔案:
gcc -fno-stack-protector -z execstack -mpreferred-stack-boundary=4 -o static2 static.c
加上這些引數的作用:
#ubuntu下面的gcc預設開啟了stack smashing protector,
#如果想在這個系統中學習緩衝區溢位的原理,在編譯時要加上fno-stack-protector選項,
#否則執行時會出現*** stack smashing detected ***: *** terminated,
#而不是期望的segmentation fault。同時還需要加上允許棧執行的選項。
#-fno-stack-protector用來關閉gcc編譯器gs驗證碼機制
#-z execstack用來關閉ld鏈結器堆疊段不可執行機制
網上很多說用:sudo echo > 0 /proc/sys/kernel/randomize_va_space關閉aslr,但本人試了會提示
bash: /proc/sys/kernel/randomize_va_space: permission denied
可以用的命令:echo 0 | sudo tee /proc/sys/kernel/randomize_va_space 屢試不爽!
0 - 表示關閉程序位址空間隨機化。
1 - 表示將mmap的基址,stack和vdso頁面隨機化。
2 - 表示在1的基礎上增加棧(heap)的隨機化。
或者之關閉這個程式的位址隨機化,其他程式不變,在編譯的時候加上-no-pie就行,-pie表示開啟aslr
第一次用可能容器沒有socat,用apt-get update;apt-get install socat安裝
同樣上面有用到gcc 用apt-get install gcc安裝,以後有用到什麼再裝就行了
在檔案目錄下用命令socat tcp-l:9999,fork exec:./static2掛載到容器的9999埠
這僅僅是一次性的,執行後終端會卡在這個介面,當你ctrl+c退出後掛載的題就不在了
#首先編寫乙個.sh指令碼
#!/bin/sh
#name:static2.sh
socat tcp-l:9999,fork exec:./static2
退出儲存後執行命令:
sudo chmod u+x ./pwn.sh
nohup ./pwn.sh &
注:nohup是永久執行,&是指在後台執行
nohup:
&:區別:
用ifconfig檢視容器ip。預先用apt-get install net-tools安裝
輸入命令:nc 172.17.0.2 9999
掛載題目成功! 賞
你的支援是我最大的動力!
Docker掛載題目
掛載ctf題目 1.安裝container 2.掛載本地題目所在的目錄 3.用socat命令掛載到container埠 退出後中斷 4.用nohup永久掛載題目退出容器不會中斷 5.用nc命令連線題目 此方法只能在乙個區域網內可以訪問。docker pulldocker run it v 本地目錄 ...
docker 容器掛載
設定容器目錄為唯讀模式 docker run it name haha3 v opt haha3 opt haha3 rocentos bin bash 3 建立volume容器,多個容器共享資料 建立volume container docker run it v var volume1 v va...
docker 掛載目錄 修改Docker預設路徑
安裝docker時,會預設安裝在乙個目錄裡面,如果該磁碟已經滿了,或者需要遷移docker目錄。在修改預設目錄之前,需要掛載新的磁碟。參考 konenet linux新增新磁碟 zhuanlan.zhihu.com 1.在新掛載的目錄下建立docker目錄 mkdir p data lib dock...