渗透测试攻防行动当中 蓝军是如何从API网关拿下内网SHELL

从蓝军的角度来看,我们历史上攻防对抗中更值得注意的场景如下:


1.目前不同的DevOps平台可能包含不同的Low-Code管道特性,而上面提到的多租户容器集群设计将会被隔离广泛使用,所以多租户集群下的渗透测试技巧几乎是一样的。2.控制上述多租户容器集群能够 控制集群中使用的节点服务器。这些服务器一般用于编译和构建业务代码,浏览Gitlab、Github等代码管理站点。,所以他们一般有权获得企业程序的业务源代码。3.DevOps及其相关平台最重要的能力之一是CICD,因此间接控制DevOps有办法从办公网络和开发网络突破到生产网络;控制的应用和业务类型越多,就可以根据不同的应用进入不同的隔离区域。另外,如果把日志组件集成到DevOps平台中(云最初的重点之一:可观测性),那么日志组件和Agent的升级安装一般会是最重要的问题,蓝军能够 根据这一点达到获得公司内任何主机许可的目的。


云本地API网关,作为API网关,它具有管控集群南北流量的功能,也可以作为集群流量的入口/出口。作为标榜云原有特性的API网关产品,似乎无一例外的会有动态配置、灵活修改、远程管理的特性,而这些特性往往是RESTAPI所具备的。然而,在远程配置逻辑的认证能力上,作为基础网络产品,流行的开源组件似乎必须努力实现默认安全性。


以孔为例,孔API网关是目前最流行的云原生API网关之一,它有开源版和企业版两个分支。广泛应用于云原生、微服务、分布式和非服务云功能中的API浏览中间件,为云原生应用提供认证、转发、负载均衡、监控等功能。一次渗透测试中,我们利用远程配置能力,突破外部网络,进入内部网络环境。能够 参考前面的警告文章腾讯蓝军安全提醒:开源云原生API网关孔可能成为攻击者进入企业内部网络的新入口。


在使用KongAdminRestAPI作为管控KongProxy功能的关键入口,以支持最大的灵活性;在开源分支,这个管控入口没有认证能力(KongEnterpriseEdition支持KongAdminRestAPI的角色控制和认证),推荐用户在网络层进行访问控制;当攻击者能够 浏览这个API时,他就具备了KongProxy的所有能力,能够 在南北流量管理中查看和修改企业当前的配置,能够 直接控制API网关成为开放的流量代理(比SSRF更方便使用和利用);从攻击者的角度来看,控制这个API意味着有能力找出网络架构,打破网络边界。当蓝军能够 浏览KongAdminRestAPI和KongProxy时,蓝军能够 通过以下步骤创建到内部网的代理:


此时,只要主机头有一个target.com,蓝军从外部网络发送到KongProxy的流量就会转发到内部网络的target.com:443,实际使用的技术会根据内部网络和目标站点的配置而变化。目前,开源分公司不支持在KongAdminRestAPI上增加相应的认证能力,只能更换被监控的网卡,或者使用NetworkPolicy、iptables、安全组等方式在网络上进行隔离。目前最常见的方式是不开放外网,只允许接入内网。正因为如此,如果它已经进入内网,那么API网关的管控接口将成为我的主要攻击目标之一,这样我们就可以从内部和外部找出当前集群提供的相关能力,更有可能直接获得流量出入口容器的Shell权限。


分享: