我正在探索关于Kubernetes中特权升级漏洞的CVE 2018-1002105。作为一个未经过身份验证的远程用户,我希望使用部署在集群上的度量服务器在任何pod上执行任意命令。
我对如何做到这一点感到十分困惑。目前,我已经向kube服务器发送了一个GET请求,请求将连接升级到web套接字(CVE),然后我使用了x远程报头用户来模拟集群中访问度量服务器的用户(在本例中,我使用了x-Remote user : system:serviceaccount:kube-system:horizontal-pod-autoscaler) )。
但是,我无法执行,我认为这是因为这个用户没有exec特权。我要怎么检查这个?
我也在考虑用根权限创建我自己的用户,可以在集群上做他想做的任何事情,而不是模仿他。如何做到这一点,并确保该用户能够访问度量服务器?
发布于 2022-06-10 11:41:29
因此,作为这个问题的第一点,如果没有一个非常古老的Kubernetes版本,你将无法利用这个CVE,因为它是在2018年修复的。在咨询,我们最迟将谈论库伯内特斯1.12。
利用这个问题的方式在这个单位42博客中描述得很好,如果您要查找演练和PoC,我首先会参考该帖子。
您所描述的攻击路径是与聚合API服务器相关的攻击路径,因此只有当您使用外部聚合API服务器(如度量服务器 )时,它才适用,而且在那些日子里,未经身份验证的用户有权向聚合API服务器发出发现请求,这是可能的。当未经身份验证的用户对API服务器的权限减少时,该攻击路径在1.14中得到了加强。
回答你的问题中的其他一些要点。检查您对Kubernetes集群的权限的最佳方法是kubectl auth can-i --list,它将返回由RBAC系统确定的权限。
如果您使用的是部署到Kubernetes集群的度量服务器,并且有一个具有cluster-admin权限(实际上是根用户)的用户,他们将有权修改该服务,因为他们将拥有部署在集群中的工作负载的所有权限。
https://security.stackexchange.com/questions/262632
复制相似问题