Helm là người quản lý gói cho Kubernetes, đại loại như apt-get
cho Ubuntu. Trong ghi chú này, chúng ta sẽ thấy phiên bản trước của helm (v2) với dịch vụ máy xới được cài đặt theo mặc định, qua đó chúng ta sẽ truy cập vào cụm.
Hãy chuẩn bị cụm; để thực hiện việc này, hãy chạy lệnh:
kubectl run --rm --restart=Never -it --image=madhuakula/k8s-goat-helm-tiller -- bash
Trình diễn
- Nếu bạn không định cấu hình bất kỳ thứ gì bổ sung, helm v2 sẽ khởi động dịch vụ máy xới, có RBAC với toàn quyền quản trị viên cụm.
- Sau khi cài đặt trong không gian tên
kube-system
xuất hiệntiller-deploy
, đồng thời mở cổng 44134, được liên kết với 0.0.0.0. Điều này có thể được kiểm tra bằng telnet.
$ telnet tiller-deploy.kube-system 44134
- Bây giờ bạn có thể kết nối với dịch vụ máy xới đất. Chúng tôi sẽ sử dụng hệ nhị phân helm để thực hiện các thao tác khi liên lạc với dịch vụ máy xới:
$ helm --host tiller-deploy.kube-system:44134 version
- Hãy thử lấy bí mật của cụm Kubernetes từ không gian tên
kube-system
:
$ kubectl get secrets -n kube-system
- Bây giờ chúng ta có thể tạo biểu đồ của riêng mình, trong đó chúng ta sẽ tạo một vai trò với quyền quản trị viên và gán vai trò này cho tài khoản dịch vụ mặc định. Bằng cách sử dụng mã thông báo từ tài khoản dịch vụ này, chúng tôi đã nhận được toàn quyền truy cập vào cụm của mình.
$ helm --host tiller-deploy.kube-system:44134 install /pwnchart
- Bây giờ thì ở đâu
pwnchart
được triển khai, tài khoản dịch vụ mặc định có toàn quyền truy cập quản trị. Hãy kiểm tra lại cách lấy bí mật từkube-system
kubectl get secrets -n kube-system
Việc thực thi thành công tập lệnh này phụ thuộc vào cách triển khai máy xới đất; đôi khi quản trị viên triển khai nó trong một không gian tên riêng biệt với các đặc quyền khác nhau. Helm 3 không dễ bị tổn thương bởi những lỗ hổng như vậy vì... không có máy xới trong đó.
Ghi chú của người dịch: Sử dụng chính sách mạng để lọc lưu lượng trong một cụm giúp bảo vệ khỏi loại lỗ hổng này.
Nguồn: www.habr.com