Прохождение машины 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.
Да, это работает, и мы успешно получили корневую оболочку, и на этом задача завершена.

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