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 μλ΅μ μμ νλ κ²λ§μΌλ‘λ μλνμ§ μμ΅λλ€, μλνλ©΄ μλ΅μ μ μ± ν¬λμ IP μ£ΌμμΈ 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)