You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用curl命令获取Kubernetes Pod中ServiceAccount的token及命令原理

Kubernetes ServiceAccount Token 窃取命令原理解析

首先给出完整攻击命令:

curl -A "() {:;}; echo; /bin/bash -c 'cat /var/run/secrets/kubernetes.io/serviceaccount/token'" 10.103.123.109:8585/cgi-bin/bomshell.cgi

执行逻辑与工作原理

  • 核心漏洞利用:这条命令本质是利用Shellshock(破壳漏洞,CVE-2014-6271) 实现远程代码执行,目标是窃取Kubernetes Pod内自动挂载的服务账号认证令牌。
  • curl参数逻辑:curl的-A参数用于自定义HTTP请求的User-Agent请求头,攻击 payload 就被构造在这个请求头的值里。
  • Shellshock 触发逻辑:() {:;}; 是旧版本bash识别环境变量中函数定义的特殊标记,存在漏洞的bash解析到该标记后,会直接执行标记后拼接的任意命令。这里拼接的命令就是读取Kubernetes默认挂载的服务账号令牌文件。
  • CGI 程序的作用:目标地址是/cgi-bin/路径下的CGI脚本,CGI程序运行时会默认把所有HTTP请求头作为环境变量导入运行环境。只要这个CGI脚本调用了存在漏洞的bash版本,就会把构造的User-Agent内容作为环境变量传入,触发漏洞执行自定义命令。
  • Token 路径说明:/var/run/secrets/kubernetes.io/serviceaccount/token是Kubernetes的标准挂载路径,只要Pod绑定了ServiceAccount,Kubernetes就会自动把对应服务账号的认证令牌、CA证书等信息挂载到该目录下,命令执行成功后就会直接输出令牌内容。

该命令成功执行的两个前置条件:目标服务器的bash版本存在Shellshock漏洞,且目标CGI程序运行在Kubernetes集群的Pod内部。

内容的提问来源于stack exchange,提问作者Zoheb Siddiqui

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 18:30:01