PDA

Просмотр полной версии : Прохождение HackTheBox - Investigation (Linux, Medium)


Trager
07.05.2023, 17:17
https://forum.antichat.xyz/attachments/29104844/1683281058613.png
Приветствую,

Кодебай

! Сегодня пройдём машину средней сложности под названием

Investigation

. Основной упор будет сделан в форензику (логи

Windows

) и реверс. Приятного чтения

Разведка

Начинаем со сканирования портов:

https://forum.antichat.xyz/attachments/29104844/1683372443537.png

Переходим на 80-ый порт:

https://forum.antichat.xyz/attachments/29104844/1683372480412.png

Чтобы попасть на домен нам требуется отредактировать файл

/etc/hosts

:

https://forum.antichat.xyz/attachments/29104844/1683373891596.png

Теперь мы можем получить доступ к сайту:

https://forum.antichat.xyz/attachments/29104844/1683373918859.png

На нём нам предлагают загрузить картинку для криминалистического анализа:

https://forum.antichat.xyz/attachments/29104844/1683374520924.png

Пробуем загрузить текстовый файл:

https://forum.antichat.xyz/attachments/29104844/1683376064890.png

Вылетает ошибка, значит на веб-сайте есть какие-то фильтры:

https://forum.antichat.xyz/attachments/29104844/1683376085046.png

На данном этапе я потратил некоторое количество времени, чтобы обойти эти фильтры, но всё оказалось безуспешно. Попробуем загрузить валидный файл:

https://forum.antichat.xyz/attachments/29104844/1683376141119.png

И нам вываливается ссылка на отчёт по файлу, кликаем по ней:

https://forum.antichat.xyz/attachments/29104844/1683376205941.png

Оказывается, что файлы обрабатываются

exiftool'ом

версии

12.37

. Гуглим уязвимости/эксплойты:

https://forum.antichat.xyz/attachments/29104844/1683376250667.png

Мы можем получить

Command Injection

, если будем эксплуатировать

CVE-2022-23935

. Возьмём какой-нибудь эксплоит (например, этот):

https://forum.antichat.xyz/attachments/29104844/1683376345515.png

Тут есть полная инструкция по эксплуатации. Для начала установим

pwntools

:

https://forum.antichat.xyz/attachments/29104844/1683376381704.png

И запустим сам эксплоит:

https://forum.antichat.xyz/attachments/29104844/1683376397638.png

У меня возникли некоторые проблемы с подключением (плохая оболочка), поэтому я взял от эксплойта только сгенерированный файл, а сам шелл получил через

netcat

:

https://forum.antichat.xyz/attachments/29104844/1683376464986.png

https://forum.antichat.xyz/attachments/29104844/1683376472973.png

https://forum.antichat.xyz/attachments/29104844/1683376482086.png

Взятие пользователя

Проверяем какие имеются пользователи с хоум каталогом в системе:

https://forum.antichat.xyz/attachments/29104844/1683376522983.png

И качаем

linpeas

:

https://forum.antichat.xyz/attachments/29104844/1683376696664.png

Даём ему права и запускаем:

https://forum.antichat.xyz/attachments/29104844/1683376718695.png

В отчёте мы можем увидеть следующую строку:

https://forum.antichat.xyz/attachments/29104844/1683376736868.png

К сожалению, тут нет ничего особенного, чтобы что-то сразу проэксплуатировать, но есть дополнительная информация - это путь

/usr/local/investigation/

.

https://forum.antichat.xyz/attachments/29104844/1683383484847.png

Переходим в

/usr/local/investigation

и видим там

.msg

файл. Почитав мануалов, я пришёл к выводу, что данный файл нужно сконвертировать в

evtx

и прочитать с помощью

"Просмотра событий"



Windows

.

Для начала поднимем

python

-сервер, чтобы скачать файл:

https://forum.antichat.xyz/attachments/29104844/1683410369800.png

Качаем файл на свою машину:

https://forum.antichat.xyz/attachments/29104844/1683410389597.png

После этого переходим на любой онлайн сервис, где можно сконвертировать

.msg

в

.evtx

:

https://forum.antichat.xyz/attachments/29104844/1683410429562.png

https://forum.antichat.xyz/attachments/29104844/1683410759468.png

Я лично использовал

Windows

для чтения

evtx

файла, но насколько мне известно, это как-то можно сделать и через

Linux

:

https://forum.antichat.xyz/attachments/29104844/1683410801315.png

Запускаем

"Просмотр событий"

и нажимаем

"Открыть сохраненный журнал..."

, где указываем путь до нашего

evtx

-файла:

https://forum.antichat.xyz/attachments/29104844/1683410822679.png

После этого у нас открылись все логи из файла:

https://forum.antichat.xyz/attachments/29104844/1683410864488.png

Сначала я попытался пересмотреть абсолютно всё, но логов оказалось слишком много, поэтому я начал думать над тем, как оптимизировать поиск.

На сайте

Microsoft

- События аудита входа (Windows 10) - Windows security, мы можем посмотреть коды событий связанные с авторизацией для логов:

https://forum.antichat.xyz/attachments/29104844/1683419248018.png

Чтобы сделать поиск по событию требуется нажать на кнопку

"Фильтр текущего журнала..."

:

https://forum.antichat.xyz/attachments/29104844/1683463143580.png

И указать в нём код(ы):

https://forum.antichat.xyz/attachments/29104844/1683463186927.png

В событии

4625

(Сбой входа) можно найти что-то похожее на пароль (т. е. пользователь ввёл пароль вместо юзернейма):

https://forum.antichat.xyz/attachments/29104844/1683462788139.png

Попробуем использовать его в качестве пароля для пользователя

smorton

(о котором мы узнали ещё в самом начале):

https://forum.antichat.xyz/attachments/29104844/1683463230554.png

Пользователя взяли. Теперь переходим к руту.

Взятие рута

Используем стандартную команду

sudo -l

после подключения за пользователя, чтобы узнать какие команды/инструменты мы можем использовать от лица суперпользователя:

https://forum.antichat.xyz/attachments/29104844/1683463373706.png

Скорее всего сейчас будет реверс

Огромное спасибо @Mogen (https://forum.antichat.xyz/members/2651428/) за помощь в части с реверсом!

Переходим в

/usr/bin/

и поднимаем

HTTP

-сервер

Python'а

, чтобы скачать бинарник:

https://forum.antichat.xyz/attachments/29104844/1683463421416.png

https://forum.antichat.xyz/attachments/29104844/1683463430833.png

Открываем его в

IDA

и декомпилируем код:

https://forum.antichat.xyz/attachments/29104844/1683629213098.png

1. Функция

main

принимает 3 параметра согласно прототипу функции:

int main (int argc, char *argv[], char *envp[])

. Для нас важны

argc, argv

.

2. Если количество аргументов из командной строки (

argc

) не равно 3, то завершаем программу. Это значит, что мы должны передать аргументы в таком виде:

./binary ARG_2 ARG_3


3. Если программа запущена не от лица суперпользователя, то тоже завершаем программу.

4. В качестве второго аргумента командной строки принимается строка

lDnxUysaQn

, если же мы укажем что-то другое, то программа завершится.

5. Создаётся/открывается файл с названием

lDnxUysaQn

с правами

wb



(write/binary)

, т. е. мы можем в него записать бинарные данные.

6. Настраивается

curl

для первой части аргумента (ссылки).

7. Запускается

curl

. Если запуск неудачен, то завершаем программу.

8. С помощью функции

snprintf

определяется длина строки, которая будет записана в

command_ptr

, указывающая на команду

perl

для выполнения файла, заданного в

ptr

.
Пример определения длины:

data = snprintf(0LL, 0LL, "perl ./%s", ptr);

.
Выделяется память для

command_ptr

. С помощью функции

snprintf

записывается указанная команда в

command_ptr

.

9. Запуск от лица суперпользователя содержимого

command_ptr

в функции

system()

и удаление файла с названием

lDnxUysaQn

.

Резюме: мы можем указать ссылку, а затем

lDnxUysaQn

. Содержимое ссылки запишется в файл и запустится через интерпретатор

perl

от лица суперпользователя.

В таком случае нам нужно скачать любой шелл на перле, например, от

pentest monkey

. И указать в нём свой

IP

и порт.:

https://forum.antichat.xyz/attachments/29104844/1683464807560.png

Теперь опять поднимаем веб-сервер пайтона и ставим листенер, чтобы получить на него шелл:

https://forum.antichat.xyz/attachments/29104844/1683464869563.png

Запускаем бинарник через

sudo

с указанием ссылки и строки

lDnxUysaQn

:

https://forum.antichat.xyz/attachments/29104844/1683464899130.png

Получаем шелл от лица суперпользователя:

https://forum.antichat.xyz/attachments/29104844/1683464932259.png

Друзья, спасибо большое, что нашли время прочитать мой райтап. Если есть какие-то ошибки, то напишите об этом в комментариях

Сергей Сталь
15.05.2023, 18:24
Щикарно, большое спасибо за качественный разбор

Lexi Lyon
10.08.2024, 11:11
У тебя есть телеграм?Я хочу купить у вас много веб шелла