Русский
Русский
English
Статистика
Реклама

HackTheBox. Прохождение Forwardslash. LFI, backup и шифрованный том


Продолжаю публикацию решений отправленных на дорешивание машин с площадки HackTheBox.

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

Подключение к лаборатории осуществляется через VPN. Рекомендуется не подключаться с рабочего компьютера или с хоста, где имеются важные для вас данные, так как Вы попадаете в частную сеть с людьми, которые что-то да умеют в области ИБ.

Организационная информация
Чтобы вы могли узнавать о новых статьях, программном обеспечении и другой информации, я создал канал в Telegram и группу для обсуждения любых вопросов в области ИиКБ. Также ваши личные просьбы, вопросы, предложения и рекомендации рассмотрю лично и отвечу всем.

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

Recon


Данная машина имеет IP адрес 10.10.10.183, который я добавляю в /etc/hosts.

10.10.10.183    forwardslash.htb

Первым делом сканируем открытые порты. Так как сканировать все порты nmapом долго, то я сначала сделаю это с помощью masscan. Мы сканируем все TCP и UDP порты с интерфейса tun0 со скоростью 500 пакетов в секунду.
masscan -e tun0 -p1-65535,U:1-65535 10.10.10.183    --rate=500



Теперь для получения более подробной информации о сервисах, которые работают на портах, запустим сканирование с опцией -А.
nmap -A forwardslash.htb -p22,80



На сервере работают служба SSH и веб-сервер. Заходим на веб-сервер, и смотрим, что нам могут предложить.



Так нам сообщают о взломе хоста, упоминают XML и FTP. Давайте переберем директории с помощью gobuster. В параметрах указываем количество потоков 128 (-t), URL (-u), словарь (-w) и расширения, которые нас интересуют (-x).
gobuster dir -t 128 -u http://forwardslash.htb/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html,php,xml,txt



И находим note.txt. Давайте прочитаем.



Сообщается о группе, взломавшей сайт и о том, что есть бэкап. Давайте поищем поддомены. В качестве фильтра установим количество символов не равно 0.
wfuzz -H 'HOST:FUZZ.forwardslash.htb' -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt -u forwardslash.htb --hh 0



И на ходим поддомен backup. Добавим его в файл /etc/hosts.
10.10.10.183 backup.forwardslash.htb
Переберем директории и для этого домена.
gobuster dir -t 128 -u http://backup.forwardslash.htb/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html,php,xml,txt



И переходим по данному адресу.

Entry Point


Нас встречает форма авторизации.



Также есть возможность регистрации. Давайте зарегистрируемся, а потом войдем.



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



Сообщают, что в связи со взломом данная функция отключена. При этом поле ввода не доступно, скорее всего disabled в HTML.



Удаляем данное свойство у обоих элементов. Я запустил на локальной машине веб-сервер, и указал в поле ссылку на файл test.txt.



Так как не никаких фильтров, давайте попробуем вектор LFI. Для удобства делам это в Burp Suite.



И есть LFI!

USER


Давайте проверим конфигурации apache.



Но если попробовать прочитать файл php, то он не будет представлен вам как текст. Вместо этого он будет выполнен.



Но мы можем использовать php фильтры, к примеру base64. Так файл php сначала кодируется, а потом отображается на странице. Таким образом он не будет выполнен.
php://filter/convert.base64-encode/resource=../../../../var/www/backup.forwardslash.htb/index.php


Выделим нужный фрагмент и нажмем Ctrl+Shift+B.



Получаем декодированный код. Давайте этим способом прочитаем все найденные во время сканирования файлы. В файле config.php находим пароль для подключения к базе данных.



Давайте так же взглянем на /dev/index.php. И там находим аутентификационные данные пользователя chiv.



Данный пользователь есть в в системе, это мы узнаем из /etc/passwd. Попробуем эти данные для подключения по SSH.



USER2


Для сбора данных в системе используем скрипт LinPEAS. И находим в бэкапах какую-то записку.





Таким образом в бэкапах есть старый конфиг с паролем. Он принадлежит painу.



Так на программу backup стоит SUID бит. То есть мы можем выполнить программу от имени пользователя pain.



Мы можем сделать backup, но только определенного рандомного файла.



Мы можем сделать ссылку на бэкап конфига, назвав ее как представлено из программы backup. Но мы должны успеть в течение нескольких секунд. Поэтому сделаем скрипт. Сначала получим имя файла.



Теперь добавим создание ссылки и повторный бэкап.



Запустим из домашней директории пользователя и получим файл.



Сменим пользователя введя данный пароль.



ROOT


Давайте глянем настройки суда на выполнение команд без пароля.



Таким образом, мы имеем шифрованный том. Чтобы расшифровать и монтировать его, нам нужен пароль.



Мы имеем шифртекст и программу.



Для дешифрования используем следующий код.
def decrypt(key, msg):key = list(key)msg = list(msg)for char_key in reversed(key):for i in reversed(range(len(msg))):if i == 0:tmp = ord(msg[i]) - (ord(char_key) + ord(msg[-1]))else:tmp = ord(msg[i]) - (ord(char_key) + ord(msg[i-1]))while tmp < 0:tmp += 256msg[i] = chr(tmp)return ''.join(msg)ciphertext = open('ciphertext', 'r').read().rstrip()for i in range(1, len(ciphertext)):for j in range(256):key = chr(j) * itext = decrypt(key, ciphertext)if ' the ' in text or ' to ' in text:print(key)print(text)exit()

И успешно дешифруем сообщение.



Посмотрим, что у нас по указанному пути.



Расшифруем том.



И примонтируем его.



Там расположен ключ SSH.



Подключаемся и забираем флаг.



Вы можете присоединиться к нам в Telegram. Там можно будет найти интересные материалы, слитые курсы, а также ПО. Давайте соберем сообщество, в котором будут люди, разбирающиеся во многих сферах ИТ, тогда мы всегда сможем помочь друг другу по любым вопросам ИТ и ИБ.
Источник: habr.com
К списку статей
Опубликовано: 04.07.2020 18:11:54
0

Сейчас читают

Комментариев (0)
Имя
Электронная почта

Ctf

Информационная безопасность

Pentest

Pentesting

Ralf_rt

Htb

Red team

Red teaming

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru