GitRoot: 1. Пошаговое руководство Vulnhub

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

В этой статье будет решена задача boot2root под названием «GitRoot: 1». Vulnhub используется для тестирования на проникновение. Эта лаборатория имеет средний уровень защиты и основывается на Git.

RecursiveNULL вложил большой вклад в создание Vulnhub. Настала пора узнать, как получить к ней доступ.

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

Знакомство

Как всегда, пользователь идентифицирует IP-адрес хоста с помощью инструмента «Netdiscover»:

GitRoot: 1. Пошаговое руководство Vulnhub

Итак, стоит начать с перечисления всех TCP-портов с помощью nmap:

nmap -A -p- 192.168.10.162
GitRoot: 1. Пошаговое руководство Vulnhub

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

Пользователь заходит на сайт. Он узнает, что ресурс размещен на поддомене «wp.gitroot.vuln».

GitRoot: 1. Пошаговое руководство Vulnhub

Человек добавляет поддомен в файл «/etc/hosts».

GitRoot: 1. Пошаговое руководство Vulnhub

Пользователь получает доступ к адресу поддомена и видит, что WordPress появляется на экране.

GitRoot: 1. Пошаговое руководство Vulnhub

После безуспешной попытки сломать WP, пользователь пытается перечислить больше поддоменов с опцией «vhost» инструмента Gobuster и словаря «big.txt», который идет в комплекте с Kali по умолчанию при ее установке.

GitRoot: 1. Пошаговое руководство Vulnhub

Пользователь помещает этот поддомен в список своих хостов.

GitRoot: 1. Пошаговое руководство Vulnhub

Человек получает доступ к новому поддомену и находит там службу хранения кода, что, на самом деле, прекрасная новость.

GitRoot: 1. Пошаговое руководство Vulnhub

Будет вновь использоваться Gobuster — на этот раз для объединения каталогов и файлов в этом поддомене.

GitRoot: 1. Пошаговое руководство Vulnhub

С помощью GitDumper из инструментария GitTools пользователь извлекает все содержимое «/.git/» на его машину Kali.

./gitdumper.sh http://repo.gitroot.vuln/.git/ /root/GitRoot/git-tmp/
GitRoot: 1. Пошаговое руководство Vulnhub

Он увидит целый набор файлов, но этот оставит себе:

GitRoot: 1. Пошаговое руководство Vulnhub

Пользователь нашел два интересных файла, ну, на самом деле, только один. «pablo_HELP.txt» был удален, но его можно спасти.

Содержимое нового файла выглядит следующим образом:

GitRoot: 1. Пошаговое руководство Vulnhub

Теперь пользователь восстановит все файлы с помощью инструмента GitТools Kit Extractor (включая “pablo_HELP“).

GitRoot: 1. Пошаговое руководство Vulnhub

Содержимое файла «pablo_HELP» выглядит следующим образом:

GitRoot: 1. Пошаговое руководство Vulnhub

Ничего полезного, необходимо продолжить проверять файлы .PHP. Пользователь внезапно обнаружил некоторые учетные данные в файле «set.php».

GitRoot: 1. Пошаговое руководство Vulnhub

Применение

Пользователь использовал учетные данные как для WordPress, так и для SSH, но все безуспешно. Хотя он уже знает имена пользователей, следует провести брут-форс атаку на SSH-сервис, используя словарь «rockyou». Это прекрасный выбор.

GitRoot: 1. Пошаговое руководство Vulnhub

С полученными учетными данными человеку будет открыт доступ через SSH с именем пользователем «Pablo». Он сможет считать флаг user.txt.

GitRoot: 1. Пошаговое руководство Vulnhub

Повышение привилегий (пользователь «beth»)

Пользователь продолжает перечислять содержимое папки «Pablo», находит там папку под названием «public». Внутри нее человек видит сообщение, приглашающее его проверить новый репозиторий git

GitRoot: 1. Пошаговое руководство Vulnhub

Он запускает «linpeas.sh», там указан репозиторий git от пользователя «beth», так что похоже, что только что человек нашел новый репозиторий.

GitRoot: 1. Пошаговое руководство Vulnhub

Пользователь открывает каталог «heads» журналов git и обнаруживает там большой список, но если он отсортирует файлы по размеру, то увидит, что есть один, который весит больше остальных.

GitRoot: 1. Пошаговое руководство Vulnhub

Пользователь решает прочитать файл и просматривает содержимое коммита «add some stuff». Здесь он находит пароль «Beth», хранящийся внутри скрипта.

GitRoot: 1. Пошаговое руководство Vulnhub

Повышение привилегий (пользователь «jen»)

Пользователь не теряет времени и аутентифицируется как «beth» с ранее полученным паролем, читает содержимое и видит, что у него есть сообщение от пользователя «jen». В нем она просит пользователя оставить файл .zip в указанной папке, теперь он будет отвечать за его распаковку.

GitRoot: 1. Пошаговое руководство Vulnhub

Ну что ж, настала пора удивить пользователя и оставить в файле .zip обратный Shell.

Пользователь создает файл «post-commit» и добавляет обратный Shell с python. Будут предоставлены все необходимые разрешения, файл будет также сжат с помощью 7zip и скопирован в путь, где указан пользователь “jen”.

GitRoot: 1. Пошаговое руководство Vulnhub

В своей Кали пользователь будет поддерживать связь с помощью netcat и вести прослушивание на порту 9999, ожидая запуска скрипта на компьютере жертвы.

После того, как Shell пользователя «jen» будет получен, человек прочитает файл «.viminf» и сможет захватить нужный ему пароль.

GitRoot: 1. Пошаговое руководство Vulnhub

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

Имея в своем распоряжении пароль пользователя “jen”, пользователь вводит команду «sudo-l» и видит, что у него есть разрешения на двоичный файл «git», для которого есть несколько методов повышения привилегий. В данном случае будет использована команда «$ sudo git-p help config».

GitRoot: 1. Пошаговое руководство Vulnhub

В нижней части экрана машина позволит пользователю выполнять команды, типа «!/bin/sh», чтобы получить подсказку по root и прочитать флаг.

GitRoot: 1. Пошаговое руководство Vulnhub

Автор переведенной статьи: David Utón.

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

Игорь Б

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

Представитель редакции CISOCLUB. Добавляю статьи на сайт.
Читать все записи автора Игорь Б

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

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