Photobomb Hack the Box WriteUp by artrone
Получение user'a.
Сначала, как и всегда, сканим наш ip-шник, дабы посмотреть открытые порты и выбрать вектор атаки:
Как мы видим, у нас открыт 22 и 80 порт. На 80 порту находится http страница. Отлично, предварительно добавим данные в /etc/hosts:
Славно, давайте перейдем на сайт:
Ага, видим такую картину- сайт просит нас авторизоваться. Давайте не будем спешить с этим и просканим его на наличие поддоменов и директорий:
Так-с, поддоменов не обнаруежено:(, но мы видим директорию printer/ . Я пытался перейти на нее, но сайт требует авторизоваться. Что можно сделать? Давайте просто взглянем на исходный код сайта:
Ага, вот оно! У нас есть js скрипт с ссылкой на регистрацию. Переходим:
Изучив этот каталог, я понял, что мы можем скачивать выбранную картинку, указав нужный нам формат и размер.
Есть фича, позволяющая нам загружать полезную нагрузку на сервер: приписка пэйлода после формата картинки (с png, в нашем случае, не работает. Поэтому, выбираем для этих целей jpg).
В чем вообще суть вышенаписанного? При нажатии на кнопку скачивания картинки, мы отправляем запрос на сервер. В этом запросе указываются название картинки, расширение и размер. Мы собираемся изменить отправляемый запрос, чтобы использовать reverse shell.
Но как мы можем записать команду для включения шелла, если в нашем запросе недопустимы пробелы? Легко- https://www.revshells.com
Выбираем mkfifo - /bin/bash - URL encode и получаем нужный нам payload.
Открываем dirbuster, открываем браузер, выбираем proxy и действуем.
При написании этого райтапа, я заметил, что тут я немного накосячил, вставив скрипт не в том месте.((( Его следует вставлять после filetype=jpg, использовав после jpg точку с запятой(;).
Отлично, отправляем наш запрос и в терминале подключаем netcat, а дальше уже дело за малым:
Повышение прав до root.
После получения юзера нужно, конечно же, взять рута))
Что ж делать то будем? Давайте глянем, что мы можем делать:
Ага, есть какой-то скрипт и очень важные для нас слова SETENV: и NOPASSWD. А что это за слова? А это параметры в sudoers- плагине политики безопасности sudo по умолчанию.
Так, например, тег NOPASSWD устанавливает значение по умолчанию для следующих за ним команд в Cmnd_Spec_List.
Чтобы этим свободно пользоваться, вам следует изучить следующие статьи:
https://c0nd4.medium.com/linux-sudo-ld-preload-privilege-escalation-7e1e17d544ec
https://www.hackingarticles.in/linux-privilege-escalation-using-ld_preload/
Создаем скрипт с названием shell.c :
gcc -fPIC -shared -o shell.so shell.c -nostartfiles
И заливаем наш скрипт, предварительно запустив http сервер:
Теперь давайте проверим наличие нашего скрипта:
Отлично! Скрипт залился успешно. Теперь давайте дадим ему права:
Теперь изменим параметр LD_PRELOAD с помощью нашего скрипта и разрешенного для нас исполняемого файла: