Прохождение машины Broken: Gallery VulnHub.
Здравствуйте, дорогие друзья.
Продолжаем проходить CTF-челленджи, и сегодня рассмотрим виртуальную машину, которая называется «Broken». Ее можно скачать с сайта VulnHub. Заслуга за разработку этой машины для начинающих принаддежит Аврааму Коэну.
Скачать машину можно, перейдя по ссылке: https://www.vulnhub.com/entry/broken-gallery,344/
Это CTF-челлендж на базе Linux, в котором Вы можете использовать свои базовые навыки пентеста для компрометации этой виртуальной машины, чтобы повысить уровень привилегий до root.
Сетевое сканирование
Начнем со сканирования сети с помощью netdiscover для определения IP-адреса виртуальной машины.
sudo netdiscover
Результатом работы инструмента стал вывод в IP-адреса, теперь я буду двигаться в сторону портов и сервисного сканирования дальше.
Для глубокого сканирования сети я иногда предпочитаю использовать агрессивное сканирование nmap, и на этот раз я также буду использовать тот же подход, поэтому введу приведенную ниже команду для перечисления запущенных служб и открытых портов.
nmap -A 10.0.2.8
По результатам сканирования я обнаружил, что порты 22 и 80 открыты для служб SSH и HTTP соответственно.
Enumeration/Перечисление:
Для получения более подробной информации нам нужно начать перечисление на Kali, поэтому я перехожу к веб-браузеру для изучения службы HTTP.
Я получили несколько файлов, как показано на изображении ниже. Таким образом, я скачал и изучил каждый файл, но не нашел ни одной примечательной подсказки для дальнейшего движения.
Учитывая, что указанные выше имена файлов могут быть полезны при создании списка слов для брут-форс атаки. Я сохранил вышеуказанные имена файлов и все соответствующие подсказки в двух текстовых файлах и назвал их «user» и «pass», как показано ниже.
Эксплуатация
Теперь пришло время использовать гидру для проведения брутфорс атаки на порт 22 для входа в систему SSH, поэтому я запускаю приведенную ниже команду на моей локальной машине.
sudo hydra -L user -P pass 10.0.2.8 ssh
Отлично! Взлом прошел успешно, и я получил логин и пароль для SSH.
С помощью вышеуказанных учетных данных я вхожу в систему и получаю доступ к низким привилегиям через взломанного пользователя. Важное замечание заключается в том, что у этого пользователя есть права sudo для timedatectl и reboot, которая будет выполняться с привилегиями root.
Повышение привилегий
Чтобы повысить привилегии до root, я перешел к поиску файла .bash_history.
Я заметил, что в этом файле автор выполнил какое-то интересное действие, которое указывало на имя файла «password-policy.sh», которое существует внутри /etc/init.d, а также на команду для установки даты и времени с использованием «timedatectl».
Очень быстро я открываю скрипт password-policy.sh, который существует внутри /etc/init.d, и нахожу команду для изменения пароля root на «TodayIsAgoodDay» при соблюдении определенного условия, т. е. Время-дата.
Итак, я запускаю команду timedatectl вместе с разрешениями sudo и устанавливаю дату и время, а затем перезагружаю машину, как показано в приведенных ниже командах.
1 2 |
sudo timedatectl set-time '2015-11-20 16:14:50' s<code>udo /sbin/reboot |
Теперь я снова подключаюсь к виртуальной машине через ssh, как это делал ранее, а затем пытаюсь получить доступ к корневой оболочке, переключив учетную запись пользователя.
Поскольку я надеюсь, что пароль следует изменить на «TodayIsAgoodDay», поэтому я использую его для входа в систему как root.
Да, это работает, и мы успешно получили корневую оболочку, и на этом задача завершена.
На этом все. Всем хорошего дня!