Pentesting Kubernetes Services
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 рдХрдИ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдпрд╛ рдПрдХ рдЖрдВрддрд░рд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рдорд┐рд▓ рд╕рдХрддреА рд╣реИрдВ рдЬрдм рдЖрдк рдПрдХ рдкреЙрдб рдХреЛ рд╕рдордЭреМрддрд╛ рдХрд░ рд▓реЗрддреЗ рд╣реИрдВред
рдПрдХ рддрд░реАрдХрд╛ Identity LIKE "k8s.%.com"
рдХреЛ crt.sh рдореЗрдВ рдЦреЛрдЬрдиреЗ рдХрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ kubernetes рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдЙрдкрдбреЛрдореЗрди рдорд┐рд▓ рд╕рдХреЗрдВред рдПрдХ рдФрд░ рддрд░реАрдХрд╛ "k8s.%.com"
рдХреЛ github рдореЗрдВ рдЦреЛрдЬрдиреЗ рдФрд░ YAML рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЦреЛрдЬрдиреЗ рдХрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рд╕рдордЭрдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ Kubernetes рдХреИрд╕реЗ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ рдПрдХреНрд╕рдкреЛрдЬрд╝ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдЦреЛрдЬ рд╕рдХреЗрдВ:
Kubernetes рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреЛрд░реНрдЯ рдЦреБрд▓реЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ:
443/TCP
kube-apiserver
Kubernetes API port
2379/TCP
etcd
6666/TCP
etcd
etcd
4194/TCP
cAdvisor
Container metrics
6443/TCP
kube-apiserver
Kubernetes API port
8443/TCP
kube-apiserver
Minikube API port
8080/TCP
kube-apiserver
Insecure API port
10250/TCP
kubelet
HTTPS API which allows full mode access
10255/TCP
kubelet
Unauthenticated read-only HTTP port: pods, running pods and node state
10256/TCP
kube-proxy
Kube Proxy health check server
9099/TCP
calico-felix
Health check server for Calico
6782-4/TCP
weave
Metrics and endpoints
30000-32767/TCP
NodePort
Proxy to the services
44134/TCP
Tiller
Helm service listening
рдпрд╣ API Kubernetes рд╕реЗрд╡рд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдкреНрд░рд╢рд╛рд╕рдХ рдЖрдорддреМрд░ рдкрд░ kubectl
рдЙрдкрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВред
рд╕рд╛рдорд╛рдиреНрдп рдкреЛрд░реНрдЯ: 6443 рдФрд░ 443, рд▓реЗрдХрд┐рди рдорд┐рдиреАрдХреНрдпреВрдм рдореЗрдВ 8443 рдФрд░ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдХреЗ рд░реВрдк рдореЗрдВ 8080 рднреАред
рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рдЗрд╕ рд╕реЗрд╡рд╛ рд╕реЗ рдмрд╛рдд рдХрд░рдХреЗ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдХреНрд░рд┐рдпрд╛рдПрдБ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреГрд╖реНрда рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ:
рдпрд╣ рд╕реЗрд╡рд╛ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд╣рд░ рдиреЛрдб рдореЗрдВ рдЪрд▓рддреА рд╣реИред рдпрд╣ рд╕реЗрд╡рд╛ рдиреЛрдб рдХреЗ рдЕрдВрджрд░ рдХреЗ рдкреЙрдбреНрд╕ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░реЗрдЧреАред рдпрд╣ kube-apiserver рдХреЗ рд╕рд╛рде рдмрд╛рдд рдХрд░рддреА рд╣реИред
рдпрджрд┐ рдЖрдк рдЗрд╕ рд╕реЗрд╡рд╛ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдкрд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдПрдХ рдЕрдирдзрд┐рдХреГрдд RCE рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдпрджрд┐ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ Unauthorized
рд╣реИ, рддреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдпрджрд┐ рдЖрдк рдиреЛрдбреНрд╕ рдХреА рд╕реВрдЪреА рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЗ рд╕рд╛рде kubelets рдХреЗ рдПрдВрдбрдкреЙрдЗрдВрдЯреНрд╕ рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
рдЖрдк рдЗрд╕ рд╕реЗрд╡рд╛ рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдХрд░рдХреЗ Kubernetes рдХреЗ рдЕрдВрджрд░ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВ:
рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╕реЗрд╡рд╛ред
рдЬрдм рдПрдХ рдкреЛрд░реНрдЯ рд╕рднреА рдиреЛрдбреНрд╕ рдореЗрдВ NodePort рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЦреЛрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╡рд╣реА рдкреЛрд░реНрдЯ рд╕рднреА рдиреЛрдбреНрд╕ рдореЗрдВ рдЦреЛрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рдШреЛрд╖рд┐рдд Service рдореЗрдВ рдкреНрд░реЙрдХреНрд╕реА рдХрд░рддрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрд╣ рдкреЛрд░реНрдЯ 30000-32767 рдХреА рд╕реАрдорд╛ рдореЗрдВ рд╣реЛрдЧрд╛ред рдЗрд╕рд▓рд┐рдП рдирдП рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рд╕реЗрд╡рд╛рдПрдБ рдЙрди рдкреЛрд░реНрдЯреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реБрд▓рдн рд╣реЛ рд╕рдХрддреА рд╣реИрдВред
рдЧреБрдордирд╛рдо рдкрд╣реБрдВрдЪ kube-apiserver API endpoints рдкрд░ рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдЖрдк рдХреБрдЫ endpoints рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
ETCD рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд░рд╣рд╕реНрдпреЛрдВ, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░ рдЕрдзрд┐рдХ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, ETCD рдЧреБрдордирд╛рдо рд░реВрдк рд╕реЗ рдкрд╣реБрдВрдЪрд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдЬрд╛рдВрдЪрдирд╛ рд╣рдореЗрд╢рд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрддрд╛ рд╣реИред
рдпрджрд┐ ETCD рдХреЛ рдЧреБрдордирд╛рдо рд░реВрдк рд╕реЗ рдкрд╣реБрдВрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ etcdctl рдЙрдкрдХрд░рдгред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рд╕рднреА рдХреБрдВрдЬреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧрд╛:
The Kubelet documentation рдпрд╣ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдЧреБрдордирд╛рдо рдкрд╣реБрдБрдЪ рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ:
Kubelet рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдЧреБрдордирд╛рдо рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИред рдЕрдиреБрд░реЛрдз рдЬреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рдЕрд╕реНрд╡реАрдХреГрдд рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдЧреБрдордирд╛рдо рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдЧреБрдордирд╛рдо рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо
system:anonymous
рд╣реИ, рдФрд░ рд╕рдореВрд╣ рдирд╛рдоsystem:unauthenticated
рд╣реИред
Kubelet API рдХреЗ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдФрд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЛ рдмреЗрд╣рддрд░ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдкреГрд╖реНрда рдХреЛ рджреЗрдЦреЗрдВ:
Kubelet рд╕реЗрд╡рд╛ API рдХрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реНрд░реЛрдд рдХреЛрдб рдпрд╣рд╛рдБ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЙрдЬрд╛рдЧрд░ рдХрд┐рдП рдЧрдП рдПрдВрдбрдкреЙрдЗрдВрдЯреНрд╕ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЦреЛрдЬрдирд╛ рдЖрд╕рд╛рди рд╣реИ:
рд╕рднреА рджрд┐рд▓рдЪрд╕реНрдк рд▓рдЧрддреЗ рд╣реИрдВред
рдЖрдк Kubeletctl рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ Kubelets рдФрд░ рдЙрдирдХреЗ рдПрдВрдбрдкреЙрдЗрдВрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдпрд╣ рдПрдВрдбрдкреЙрдЗрдВрдЯ рдкреЙрдбреНрд╕ рдФрд░ рдЙрдирдХреЗ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреА рд╕реВрдЪреА рджреЗрддрд╛ рд╣реИ:
рдпрд╣ рдПрдВрдбрдкреЙрдЗрдВрдЯ рдХрд┐рд╕реА рднреА рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ рдХреЛрдб рдХреЛ рдмрд╣реБрдд рдЖрд╕рд╛рдиреА рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:
рдЗрд╕ рд╣рдорд▓реЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП kubelet рд╕реЗрд╡рд╛ рдХреЛ --anonymous-auth false
рдХреЗ рд╕рд╛рде рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рд╕реЗрд╡рд╛ рдХреЛ рдиреЗрдЯрд╡рд░реНрдХ рд╕реНрддрд░ рдкрд░ рдЕрд▓рдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЬрдм kubelet рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдкреЛрд░реНрдЯ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЕрдирдзрд┐рдХреГрдд рдкрдХреНрд╖реЛрдВ рджреНрд╡рд╛рд░рд╛ API рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдкреЛрд░реНрдЯ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рд╡рд┐рднрд┐рдиреНрди рдХреНрд▓рд╕реНрдЯрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рддрддреНрд╡реЛрдВ рдХреЗ рдкреНрд░рдХрдЯреАрдХрд░рдг рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рдЬрдиреНрдо рджреЗ рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЬрд╛рдирдХрд╛рд░реА, рдЬрд┐рд╕рдореЗрдВ рдкреЙрдб рдирд╛рдо, рдЖрдВрддрд░рд┐рдХ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕реНрдерд╛рди, рдФрд░ рдЕрдиреНрдп рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА, рдлрд┐рд░ рднреА рдЗрд╕рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рд╕реБрд░рдХреНрд╖рд╛ рдЬреЛрдЦрд┐рдо рдкреИрджрд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рд╕реЗ рдмрдЪрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЗрд╕ рднреЗрджреНрдпрддрд╛ рдХрд╛ рд╢реЛрд╖рдг рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдПрдХ рджреВрд░рд╕реНрде рд╣рдорд▓рд╛рд╡рд░ рджреНрд╡рд╛рд░рд╛ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ URL рддрдХ рдкрд╣реБрдВрдЪрдирд╛ рд╣реИред http://<external-IP>:10255/pods
рдкрд░ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рдХреЗ, рд╣рдорд▓рд╛рд╡рд░ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ kubelet рд╕реЗ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ:
AWS рд╣реИрдХрд┐рдВрдЧ рд╕реАрдЦреЗрдВ рдФрд░ рдЕрднреНрдпрд╛рд╕ рдХрд░реЗрдВ:HackTricks Training AWS Red Team Expert (ARTE) GCP рд╣реИрдХрд┐рдВрдЧ рд╕реАрдЦреЗрдВ рдФрд░ рдЕрднреНрдпрд╛рд╕ рдХрд░реЗрдВ: HackTricks Training GCP Red Team Expert (GRTE)