CTF, VulnHub

Прохождение машины Broken: Gallery VulnHub.

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

Продолжаем проходить CTF-челленджи, и сегодня рассмотрим виртуальную машину, которая называется «Broken». Ее можно скачать с сайта VulnHub. Заслуга за разработку этой машины для начинающих принаддежит Аврааму Коэну.

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

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

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

Начнем со сканирования сети с помощью netdiscover для определения IP-адреса виртуальной машины.

sudo netdiscover

sudo netdiscover

Результатом работы инструмента стал вывод в IP-адреса, теперь я буду двигаться в сторону портов и сервисного сканирования дальше.

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

nmap -A 10.0.2.8

По результатам сканирования я обнаружил, что порты 22 и 80 открыты для служб SSH и HTTP соответственно.

nmap -A 10.0.2.8

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

Для получения более подробной информации нам нужно начать перечисление на Kali, поэтому я перехожу к веб-браузеру для изучения службы HTTP.

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

10.0.2.8

Учитывая, что указанные выше имена файлов могут быть полезны при создании списка слов для брут-форс атаки. Я сохранил вышеуказанные имена файлов и все соответствующие подсказки в двух текстовых файлах и назвал их «user» и «pass», как показано ниже.

файлы user и pass

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

Теперь пришло время использовать гидру для проведения брутфорс атаки на порт 22 для входа в систему SSH, поэтому я запускаю приведенную ниже команду на моей локальной машине.

sudo hydra -L user -P pass 10.0.2.8 ssh

sudo hydra -L user -P pass 10.0.2.8 ssh

Отлично! Взлом прошел успешно, и я получил логин и пароль для SSH.

С помощью вышеуказанных учетных данных я вхожу в систему и получаю доступ к низким привилегиям через взломанного пользователя. Важное замечание заключается в том, что у этого пользователя есть права sudo для timedatectl и reboot, которая будет выполняться с привилегиями root.

sudo ssh broken@10.0.2.8

Повышение привилегий

Чтобы повысить привилегии до root, я перешел к поиску файла .bash_history.

.bash_history
cat .bash_history

Я заметил, что в этом файле автор выполнил какое-то интересное действие, которое указывало на имя файла «password-policy.sh», которое существует внутри /etc/init.d, а также на команду для установки даты и времени с использованием «timedatectl».

password-policy.sh

Очень быстро я открываю скрипт password-policy.sh, который существует внутри /etc/init.d, и нахожу команду для изменения пароля root на «TodayIsAgoodDay» при соблюдении определенного условия, т. е. Время-дата.

cat /etc/init.d/password-policy.sh

Итак, я запускаю команду timedatectl вместе с разрешениями sudo и устанавливаю дату и время, а затем перезагружаю машину, как показано в приведенных ниже командах.

sudo timedatectl set-time '2015-11-20 16:14:50'
sudo /sbin/reboot

sudo timedatectl set-time '2015-11-20 16:14:50'

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

Поскольку я надеюсь, что пароль следует изменить на «TodayIsAgoodDay», поэтому я использую его для входа в систему как root.

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

TodayIsAgoodDay

На этом все. Всем хорошего дня!