Ambassador 是一台中等难度的 Linux 机器,用于解决硬编码的明文凭据留在旧版本代码中的问题。首先,“Grafana”CVE (“CVE-2021-43798”) 用于读取目标上的任意文件。在研究了服务的常见配置方式后,将在其中一个默认位置发现 Web 门户的凭据。登录后,进一步的枚举会显示另一个包含“MySQL”凭据的配置文件,这些凭据用于检索用户帐户的密码并在计算机上站稳脚跟。最后,配置错误的“Consul”服务用于通过从“Git”存储库的先前提交中检索身份验证令牌来获取升级的权限。
循例nmap
这个版本的grafana存在未授权任意文件读取
运行exp
在grafana.ini中获取到admin的明文凭据,可以直接登录
从刚刚连带出来的grafana.db中我们可以检索到mysql的凭据
从whackywidget库的users表中我们可以得到developer的base64编码的密码
base64 decode
登ssh
/opt
这个中文文档能够让我们了解consul以及相关命令,方便我们利用
现在需要token,在外面有个.git,我想应该会有历史提交
git show在tidy config之前的那一次提交中,不出意外,我们得到了它
然鹅exec执行似乎不行
find
经典能写不能读
现在进攻路径很明确,类似于前几台靶机的systemctl那种
在consul.d/consul.d写入.hcl新文件,谷歌随便找了个配置文件,让它执行我们的shellcode
datacenter = "east-aws"
data_dir = "/opt/consul"
log_level = "INFO"
node_name = "foobar"
server = true
watches = [
{
type = "checks"
handler = "/tmp/cmd.sh"
}
]
祖传suid bash的shellcode
consul reload
这一缕红光依旧是这么的刺眼