Docker掛載題目

2021-09-20 10:05:44 字數 2323 閱讀 9270

掛載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...