Nunchucks (2021)

Содержание:
Nunchucks - легкая машина, название которой уже дает отсылку на шаблонизатор, а где шаблонизаторы - там SSTI. Просканировав порты, мы увидим ssh, http и https. Затем профаззим поддомены и найдем тот, который использует шаблонизатор Nunchucks. Загуглив для него вулны, найдем SSTI-эксплоит и получим реверс шелл. Затеем повысим наши привилегии в системе с помощью CAP_SETUID perl'а.
Сканируем порты с помощью nmap:

Как бы я не пытался зарегистрироваться/залогиниться - не получалось. Фаззим поддомены:
Нашли поддомен, вставляем его в наш конфиг:
Эксплуатируем SSTI в Nunchucks:


На поддомене есть SSTI(Server Side Template Injection) уязвимость. Дальше {% raw %}{{7*7}}{% endraw %} продвинуться не удавалось, но имя машины дает некоторый хинт. Nunjucks - это шаблонизатор для Jinja2, используемый для разработки веб-приложений на веб-фреймворках Node.js, таких как Express или Connect. Найдя пэйлоад, пытаемся его эксплуатировать:

Чтобы эксплуатировать RCE, нужно поставить nc и запустить пэйлоад:
Запрос с пэйлоадом в email:

Повышаем привилегии с помощью CAP_SETUID + Perl
Для того, чтобы просканировать систему на уязвимости и мисконфиги, нужно:
Скачать linpeas к себе:
Поднять python-сервер:
Кстати, чтобы узнать свой локальный IP-адрес в VPN можно воспользоваться утилитой ip(ваш IP должен соответствовать интерфейсу tun0):
На машину, которую нужно проверить, скачиваем linpeas с нашего веб-сервера и запускаем:

Linpeas запустился и очень много строк про конфиги машины, нам же нужна только эта строка:

Тут и содержится уязвимость(CAP_SETUID): setuid и setgid являются флагами прав доступа в Unix, которые разрешают пользователям запускать исполняемые файлы с правами владельца или группы исполняемого файла. То есть можно без привилегий поменять себе идентификатор(uid) и стать рутом(у рута uid=0). Но это все можно сделать в одну команду и одной строкой, так как тут есть защита AppArmor. Поэтому нужно создать отдельный файл и записать в него вредоносный код:

Last updated
Was this helpful?