Найти тему

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

Оглавление

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

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

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

Знакомство

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

-2

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

nmap -A -p- 192.168.10.162

-3

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

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

-4

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

-5

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

-6

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

-7

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

-8

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

-9

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

-10

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

./gitdumper.sh http://repo.gitroot.vuln/.git/ /root/GitRoot/git-tmp/

-11

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

-12

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

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

-13

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

-14

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

-15

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

-16

Применение

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

-17

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

-18

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

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

-19

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

-20

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

-21

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

-22

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

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

-23

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

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

-24

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

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

-25

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

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

-26

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

-27

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

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