В этой статье будет решена задача boot2root под названием «GitRoot: 1». Vulnhub используется для тестирования на проникновение. Эта лаборатория имеет средний уровень защиты и основывается на Git.
RecursiveNULL вложил большой вклад в создание Vulnhub. Настала пора узнать, как получить к ней доступ.
Поскольку все лаборатории доступны на веб-сайте Vulnhub, пользователь может скачать необходимый ему файл, перейдя по следующей ссылке.
Знакомство
Как всегда, пользователь идентифицирует IP-адрес хоста с помощью инструмента «Netdiscover»:
Итак, стоит начать с перечисления всех TCP-портов с помощью nmap:
nmap -A -p- 192.168.10.162
Перечисление
Пользователь заходит на сайт. Он узнает, что ресурс размещен на поддомене «wp.gitroot.vuln».
Человек добавляет поддомен в файл «/etc/hosts».
Пользователь получает доступ к адресу поддомена и видит, что WordPress появляется на экране.
После безуспешной попытки сломать WP, пользователь пытается перечислить больше поддоменов с опцией «vhost» инструмента Gobuster и словаря «big.txt», который идет в комплекте с Kali по умолчанию при ее установке.
Пользователь помещает этот поддомен в список своих хостов.
Человек получает доступ к новому поддомену и находит там службу хранения кода, что, на самом деле, прекрасная новость.
Будет вновь использоваться Gobuster – на этот раз для объединения каталогов и файлов в этом поддомене.
С помощью GitDumper из инструментария GitTools пользователь извлекает все содержимое «/.git/» на его машину Kali.
./gitdumper.sh http://repo.gitroot.vuln/.git/ /root/GitRoot/git-tmp/
Он увидит целый набор файлов, но этот оставит себе:
Пользователь нашел два интересных файла, ну, на самом деле, только один. «pablo_HELP.txt» был удален, но его можно спасти.
Содержимое нового файла выглядит следующим образом:
Теперь пользователь восстановит все файлы с помощью инструмента GitТools Kit Extractor (включая “pablo_HELP“).
Содержимое файла «pablo_HELP» выглядит следующим образом:
Ничего полезного, необходимо продолжить проверять файлы .PHP. Пользователь внезапно обнаружил некоторые учетные данные в файле «set.php».
Применение
Пользователь использовал учетные данные как для WordPress, так и для SSH, но все безуспешно. Хотя он уже знает имена пользователей, следует провести брут-форс атаку на SSH-сервис, используя словарь «rockyou». Это прекрасный выбор.
С полученными учетными данными человеку будет открыт доступ через SSH с именем пользователем “Pablo”. Он сможет считать флаг user.txt.
Повышение привилегий (пользователь «beth»)
Пользователь продолжает перечислять содержимое папки «Pablo», находит там папку под названием «public». Внутри нее человек видит сообщение, приглашающее его проверить новый репозиторий git
Он запускает «linpeas.sh», там указан репозиторий git от пользователя “beth”, так что похоже, что только что человек нашел новый репозиторий.
Пользователь открывает каталог «heads» журналов git и обнаруживает там большой список, но если он отсортирует файлы по размеру, то увидит, что есть один, который весит больше остальных.
Пользователь решает прочитать файл и просматривает содержимое коммита «add some stuff». Здесь он находит пароль “Beth”, хранящийся внутри скрипта.
Повышение привилегий (пользователь «jen»)
Пользователь не теряет времени и аутентифицируется как «beth» с ранее полученным паролем, читает содержимое и видит, что у него есть сообщение от пользователя «jen». В нем она просит пользователя оставить файл .zip в указанной папке, теперь он будет отвечать за его распаковку.
Ну что ж, настала пора удивить пользователя и оставить в файле .zip обратный Shell.
Пользователь создает файл «post-commit» и добавляет обратный Shell с python. Будут предоставлены все необходимые разрешения, файл будет также сжат с помощью 7zip и скопирован в путь, где указан пользователь “jen”.
В своей Кали пользователь будет поддерживать связь с помощью netcat и вести прослушивание на порту 9999, ожидая запуска скрипта на компьютере жертвы.
После того, как Shell пользователя «jen» будет получен, человек прочитает файл «.viminf» и сможет захватить нужный ему пароль.
Повышение привилегий (root)
Имея в своем распоряжении пароль пользователя “jen”, пользователь вводит команду “sudo-l” и видит, что у него есть разрешения на двоичный файл “git”, для которого есть несколько методов повышения привилегий. В данном случае будет использована команда «$ sudo git-p help config».
В нижней части экрана машина позволит пользователю выполнять команды, типа «!/bin/sh», чтобы получить подсказку по root и прочитать флаг.
Автор переведенной статьи: David Utón.
Важно! Информация исключительно в учебных целях. Пожалуйста, соблюдайте законодательство и не применяйте данную информацию в незаконных целях.