Kubernetes Network Attacks
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Kubernetes์์๋ ๊ธฐ๋ณธ ๋์์ด ๊ฐ์ ๋ ธ๋์ ์๋ ๋ชจ๋ ์ปจํ ์ด๋ ๊ฐ์ ์ฐ๊ฒฐ์ ํ์ฉํ๋ ๊ฒ์ผ๋ก ๊ด์ฐฐ๋ฉ๋๋ค. ์ด๋ ๋ค์์คํ์ด์ค ๊ตฌ๋ถ์ ๊ด๊ณ์์ด ์ ์ฉ๋ฉ๋๋ค. ์ด๋ฌํ ์ฐ๊ฒฐ์ฑ์ Layer 2 (์ด๋๋ท)๊น์ง ํ์ฅ๋ฉ๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก, ์ด ๊ตฌ์ฑ์ ์์คํ ์ ์ทจ์ฝ์ ์ ๋ ธ์ถ์ํฌ ์ ์์ต๋๋ค. ํนํ, ์ ์์ ์ธ ์ปจํ ์ด๋๊ฐ ๊ฐ์ ๋ ธ๋์ ์์นํ ๋ค๋ฅธ ์ปจํ ์ด๋์ ๋ํด ARP ์คํธํ ๊ณต๊ฒฉ์ ์คํํ ๊ฐ๋ฅ์ฑ์ ์ด์ด์ค๋๋ค. ์ด๋ฌํ ๊ณต๊ฒฉ ์ค์ ์ ์์ ์ธ ์ปจํ ์ด๋๋ ๋ค๋ฅธ ์ปจํ ์ด๋๋ฅผ ์ํ ๋คํธ์ํฌ ํธ๋ํฝ์ ์์ฌ ๊ฐ๋ก์ฑ๊ฑฐ๋ ์์ ํ ์ ์์ต๋๋ค.
ARP ์คํธํ ๊ณต๊ฒฉ์ ๊ณต๊ฒฉ์๊ฐ ์ง์ญ ๋คํธ์ํฌ๋ฅผ ํตํด ์์กฐ๋ ARP (์ฃผ์ ํ์ธ ํ๋กํ ์ฝ) ๋ฉ์์ง๋ฅผ ์ ์กํ๋ ๊ฒ์ ํฌํจํฉ๋๋ค. ์ด๋ก ์ธํด ๊ณต๊ฒฉ์์ MAC ์ฃผ์๊ฐ ๋คํธ์ํฌ์ ํฉ๋ฒ์ ์ธ ์ปดํจํฐ ๋๋ ์๋ฒ์ IP ์ฃผ์์ ์ฐ๊ฒฐ๋ฉ๋๋ค. ์ด๋ฌํ ๊ณต๊ฒฉ์ด ์ฑ๊ณต์ ์ผ๋ก ์คํ๋ ํ, ๊ณต๊ฒฉ์๋ ์ ์ก ์ค์ธ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๋ก์ฑ๊ฑฐ๋ ์์ ํ๊ฑฐ๋ ์ฌ์ง์ด ์ค๋จํ ์ ์์ต๋๋ค. ์ด ๊ณต๊ฒฉ์ OSI ๋ชจ๋ธ์ Layer 2์์ ์คํ๋๋ฏ๋ก, Kubernetes์์ ์ด ๋ ์ด์ด์ ๊ธฐ๋ณธ ์ฐ๊ฒฐ์ฑ์ด ๋ณด์ ๋ฌธ์ ๋ฅผ ์ ๊ธฐํฉ๋๋ค.
4๋์ ๋จธ์ ์ด ์์ฑ๋ ์๋๋ฆฌ์ค๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
ubuntu-pe: ๋ ธ๋๋ก ํ์ถํ๊ณ ๋ฉํธ๋ฆญ์ ํ์ธํ๊ธฐ ์ํ ๊ถํ ์๋ ๋จธ์ (๊ณต๊ฒฉ์ ํ์ํ์ง ์์)
ubuntu-attack: ์ ์์ ์ธ ์ปจํ ์ด๋, ๊ธฐ๋ณธ ๋ค์์คํ์ด์ค์ ์์น
ubuntu-victim: ํฌ์์ ๋จธ์ , kube-system ๋ค์์คํ์ด์ค์ ์์น
mysql: ํฌ์์ ๋จธ์ , ๊ธฐ๋ณธ ๋ค์์คํ์ด์ค์ ์์น
์ฌ๊ธฐ์ ์๊ฐ๋ ๋คํธ์ํน ์ฃผ์ ์ ๋ํ ๋ ๋ง์ ์ธ๋ถ์ ๋ณด๋ ์ฐธ์กฐ๋ฅผ ํ์ธํ์ธ์.
์ผ๋ฐ์ ์ผ๋ก ๋ ธ๋ ๋ด์ pod-to-pod ๋คํธ์ํน์ ๋ชจ๋ pod๋ฅผ ์ฐ๊ฒฐํ๋ ๋ธ๋ฆฌ์ง๋ฅผ ํตํด ๊ฐ๋ฅํฉ๋๋ค. ์ด ๋ธ๋ฆฌ์ง๋ โcbr0โ๋ผ๊ณ ๋ถ๋ฆฝ๋๋ค. (์ผ๋ถ ๋คํธ์ํฌ ํ๋ฌ๊ทธ์ธ์ ์์ฒด ๋ธ๋ฆฌ์ง๋ฅผ ์ค์นํฉ๋๋ค.) cbr0๋ ARP (์ฃผ์ ํ์ธ ํ๋กํ ์ฝ) ํด์๋๋ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. ๋ค์ด์ค๋ ํจํท์ด cbr0์ ๋์ฐฉํ๋ฉด ARP๋ฅผ ์ฌ์ฉํ์ฌ ๋ชฉ์ ์ง MAC ์ฃผ์๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
์ด ์ฌ์ค์ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ฐ์ ๋ ธ๋์์ ์คํ๋๋ ๋ชจ๋ pod๊ฐ ๊ฐ์ ๋ ธ๋์ ๋ค๋ฅธ pod์ ํต์ ํ ์ ์์์ ์๋ฏธํฉ๋๋ค (๋ค์์คํ์ด์ค์ ๊ด๊ณ์์ด) ์ด๋๋ท ์์ค (๊ณ์ธต 2)์์.
๋ฐ๋ผ์ ๊ฐ์ ๋ ธ๋์ pod ๊ฐ์ ARP ์คํธํ ๊ณต๊ฒฉ์ ์ํํ ์ ์์ต๋๋ค.
Kubernetes ํ๊ฒฝ์์๋ ์ผ๋ฐ์ ์ผ๋ก kube-system ๋ค์์คํ์ด์ค์์ 1๊ฐ (๋๋ ๊ทธ ์ด์)์ DNS ์๋น์ค๊ฐ ์คํ๋๊ณ ์์ต๋๋ค:
์ด์ ์ ๋ณด์์ ํฅ๋ฏธ๋ก์ด ์ ์ ๋ณผ ์ ์์ต๋๋ค. ์๋น์ค์ IP๋ 10.96.0.10์ด์ง๋ง ์๋น์ค๋ฅผ ์คํํ๋ ํฌ๋์ IP๋ 172.17.0.2์ ๋๋ค.
์ด๋ค ํฌ๋ ์์์ DNS ์ฃผ์๋ฅผ ํ์ธํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ๋ด์ฉ์ ์ฐพ์ ์ ์์ต๋๋ค:
๊ทธ๋ฌ๋ pod๋ ๊ทธ ์ฃผ์์ ์ด๋ป๊ฒ ๊ฐ์ผ ํ ์ง ๋ชจ๋ฆ ๋๋ค. ์ด ๊ฒฝ์ฐ pod ๋ฒ์๋ 172.17.0.10/26์ ๋๋ค.
๋ฐ๋ผ์ pod๋ 10.96.0.10 ์ฃผ์๋ก DNS ์์ฒญ์ ๋ณด๋ผ ๊ฒ์ ๋๋ค, ์ด๋ cbr0์ ์ํด 172.17.0.2๋ก ๋ณํ๋ฉ๋๋ค.
์ด๋ pod์ DNS ์์ฒญ์ด ํญ์ ๋ธ๋ฆฌ์ง๋ฅผ ํตํด ์๋น์ค IP๋ฅผ ์๋ํฌ์ธํธ IP๋ก ๋ณํํ๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. DNS ์๋ฒ๊ฐ pod์ ๊ฐ์ ์๋ธ๋คํธ์ํฌ์ ์๋๋ผ๋ ๋ง์ ๋๋ค.
์ด ์ฌ์ค์ ์๊ณ , ARP ๊ณต๊ฒฉ์ด ๊ฐ๋ฅํ๋ค๋ ๊ฒ์ ์๋ฉด, ๋ ธ๋์ pod๋ ์๋ธ๋คํธ์ํฌ ๋ด์ ๊ฐ pod์ ๋ธ๋ฆฌ์ง ๊ฐ์ ํธ๋ํฝ์ ๊ฐ๋ก์ฑ ์ ์์ผ๋ฉฐ, DNS ์๋ฒ๋ก๋ถํฐ์ DNS ์๋ต์ ์์ ํ ์ ์์ต๋๋ค (DNS ์คํธํ).
๊ฒ๋ค๊ฐ, DNS ์๋ฒ๊ฐ ๊ณต๊ฒฉ์์ ๊ฐ์ ๋ ธ๋์ ์๋ค๋ฉด, ๊ณต๊ฒฉ์๋ ํด๋ฌ์คํฐ ๋ด์ ์ด๋ค pod์ ๋ชจ๋ DNS ์์ฒญ์ ๊ฐ๋ก์ฑ ์ ์์ผ๋ฉฐ (DNS ์๋ฒ์ ๋ธ๋ฆฌ์ง ๊ฐ), ์๋ต์ ์์ ํ ์ ์์ต๋๋ค.
์ฐ๋ฆฌ์ ๋ชฉํ๋ ubuntu-victim์์ mysql๋ก์ ํต์ ์ ์ต์ํ ํ์น๋ ๊ฒ์ ๋๋ค.
์ด๋ฏธ ์ธ๊ธํ๋ฏ์ด, ๋ง์ฝ ๋น์ ์ด DNS ์๋ฒ ํฌ๋์ ๊ฐ์ ๋ ธ๋์ ์๋ ํฌ๋๋ฅผ ์์์ํค๋ฉด, ๋น์ ์ ARPSpoofing์ ์ฌ์ฉํ์ฌ ๋ธ๋ฆฌ์ง์ DNS ํฌ๋ ๊ฐ์ MitM์ ์ํํ๊ณ ๋ชจ๋ DNS ์๋ต์ ์์ ํ ์ ์์ต๋๋ค.
๋น์ ์ https://github.com/danielsagi/kube-dnsspoof/์์ ์ด๋ฅผ ํ ์คํธํ ์ ์๋ ์ ๋ง ๋ฉ์ง ๋๊ตฌ์ ํํ ๋ฆฌ์ผ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
์ฐ๋ฆฌ์ ์๋๋ฆฌ์ค์์๋, ๊ณต๊ฒฉ์ ํฌ๋์ ๋๊ตฌ๋ฅผ ๋ค์ด๋ก๋ํ๊ณ ์คํธํํ๋ ค๋ ๋๋ฉ์ธ์ด ํฌํจ๋ **hosts
๋ผ๋ ์ด๋ฆ์ ํ์ผ์ ์์ฑ**ํฉ๋๋ค:
ubuntu-victim ๋จธ์ ์ ๊ณต๊ฒฉ์ ์ํํฉ๋๋ค:
์์ ๋ง์ DNS ์คํธํ ์คํฌ๋ฆฝํธ๋ฅผ ๋ง๋ค๋ ค๊ณ ํ ๊ฒฝ์ฐ, DNS ์๋ต์ ์์ ํ๋ ๊ฒ๋ง์ผ๋ก๋ ์๋ํ์ง ์์ต๋๋ค, ์๋ํ๋ฉด ์๋ต์ ์ ์ฑ ํฌ๋์ src IP ์ฃผ์๋ฅผ ๊ฐ์ง๊ฒ ๋์ด ์๋ฝ๋์ง ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ํผํด์๊ฐ DNS ์์ฒญ์ ๋ณด๋ธ DNS์ src IP๋ก ์๋ก์ด DNS ํจํท์ ์์ฑํด์ผ ํฉ๋๋ค (์ด๋ 172.16.0.2์ ๊ฐ์ ๊ฒ์ด๋ฉฐ, 10.96.0.10์ K8s DNS ์๋น์ค IP์ด๊ณ DNS ์๋ฒ IP๊ฐ ์๋๋๋ค. ์ด์ ๋ํ ์์ธํ ๋ด์ฉ์ ์๊ฐ์์ ๋ค๋ฃน๋๋ค).
๋๊ตฌ Mizu๋ Kubernetes๋ฅผ ์ํ ๊ฐ๋จํ๋ฉด์๋ ๊ฐ๋ ฅํ API ํธ๋ํฝ ๋ทฐ์ด๋ก, ๋ง์ดํฌ๋ก์๋น์ค ๊ฐ์ ๋ชจ๋ API ํต์ ์ ๋ณผ ์ ์๊ฒ ํ์ฌ ๋๋ฒ๊ทธ ๋ฐ ํ๊ท ๋ฌธ์ ํด๊ฒฐ์ ๋์์ ์ค๋๋ค. ์ ํํ ํฌ๋์ ์์ด์ ํธ๋ฅผ ์ค์นํ๊ณ ๊ทธ๋ค์ ํธ๋ํฝ ์ ๋ณด๋ฅผ ์์งํ์ฌ ์น ์๋ฒ์ ํ์ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ฅผ ์ํด์๋ ๋์ K8s ๊ถํ์ด ํ์ํ๋ฉฐ (๊ทธ๋ฆฌ๊ณ ๋งค์ฐ ์๋ฐํ์ง๋ ์์ต๋๋ค).
AWS ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:HackTricks Training AWS Red Team Expert (ARTE) GCP ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ: HackTricks Training GCP Red Team Expert (GRTE)