LeSora
В этой статье мы с вами займемся взломом виртуальных машин с VulnHub. Для тех кто не в курсе, сервис VulnHub предоставляет образы операционных систем с сервисами, в которых заведомо «вшиты» популярные уязвимости. Сайт создавался, чтобы каждый мог получить практический опыт в области компьютерной безопасности и сетевого администрирования. Нужно всего лишь скачать образ виртуальной машины, правильно настроить сеть и запустить.
Предположим, что вы справились у загрузкой и установкой VirtualBox. Теперь перейдем к настройке сети. Откройте менеджер сетей хоста и создайте новый адаптер.
Импортируем виртуальную машину в VirtualBox и идем в ее настройки. Нам нужна вкладка «Сеть». Устанавливаем тип подключения как «Виртуальный адаптер хоста» и указываем недавно созданный виртуальный адаптер. Обращаем внимание на созданный MAC-адрес, так как он нам еще понадобится, чтобы найти его в сети.
Теперь можно запускать. Сделаем это!
$ nmap -p- -sV 192.168.93.128
Видим, что запущен Apache на 80-м порте, SSH на 3333-м и какой-то мусор на 111-м и 56737-м портах.
Прежде чем фаззить директории, залезем в исходный код страницы. Видим закомментированную ссылку, вероятно на французскую версию сайта.
Попробуем зайти. И правда, сайт теперь на французском языке.
Откроем
И с первого же раза получаем исходный код страницы index.php с помощью уязвимости Local File Inclusion и фильтра Base64 PHP. Раскодируем с помощью команды $ base64 -D или через
использование vulnhub
import os; os.system("/bin/bash")
Итак, мы в системе. Посмотрим, что в домашней папке ($ ls), видим файл flag1.txt, выведем его содержимое с помощью $ cat flag1.txt.
Поищем еще файлы, которые ему принадлежат. Для этого посмотрим на результат команды
$ find / -user devops
Видим, что есть скрытый файл /srv/.antivirus.py с весьма прозаичным содержанием.
Судя по тому, что файл /tmp/test существует, этот скрипт выполняется при загрузке от пользователя devops. Поэтому добавим туда простой реверс-шелл и перезагрузим виртуалку.
Теперь подключимся посмотрим список файлов:
$ ls /home/devops. Файл со вторым флагом на месте! Выводим его $ cat flag2.txt.
Посмотрим, кто в системе может запускать программы от имени администратора с помощью sudo -l.
Как видим, /usr/bin/pip работает с sudo без пароля, а значит, осталось сделать совсем немного.
Гуглим «pip privileges escalation» и прямо на первой статье видим ссылку на FakePip. Делаем все по инструкции:
$ cd /tmp && wget
Меняем переменную RHOST на наш айпишник.
Запускаем у себя
nc -lvvp 443, а на виртуалке $ sudo pip install . —upgrade —force-reinstall.
Теперь у нас есть права администратора, и остается одна команда…
$ locate root.txt | xargs cat
Done!
Заключение
Мы просканировали порты на виртуальной машине; выяснили, что на 80-м порте запущен Apache с веб-приложением на PHP, а на 3333-м — SSH. Нашли в PHP уязвимость Local File Inclusion и проэксплуатировали ее, получив исходный код страницы, в котором переменной $password был присвоен пароль от SSH пользователя mamadou.
Первый флаг был в домашней папке пользователя. Изменив скрытый файл /srv/.antivirus.py, который принадлежит пользователю devops и исполняется от его имени при загрузке системы, мы получили возможность работать от его имени и нашли второй флаг в /home/devops/flag2.txt. Узнав, что PIP может устанавливать пакеты от имени администратора без пароля sudo, мы повысили привилегии до root с помощью публичного эксплоита и нашли третий флаг в /root/root.txt.
На этом мы закончим с «Wakanda: 1». Надеюсь данная статья поможет вам в использовании VulnHub.
- Подготовка виртуальной машины
Вам необходимо выполнить
Вход
либо
Регистрация
для просмотра ссылок!
.Предположим, что вы справились у загрузкой и установкой VirtualBox. Теперь перейдем к настройке сети. Откройте менеджер сетей хоста и создайте новый адаптер.
Импортируем виртуальную машину в VirtualBox и идем в ее настройки. Нам нужна вкладка «Сеть». Устанавливаем тип подключения как «Виртуальный адаптер хоста» и указываем недавно созданный виртуальный адаптер. Обращаем внимание на созданный MAC-адрес, так как он нам еще понадобится, чтобы найти его в сети.
Теперь можно запускать. Сделаем это!
- Поиск машины
- Сканирование портов
$ nmap -p- -sV 192.168.93.128
Видим, что запущен Apache на 80-м порте, SSH на 3333-м и какой-то мусор на 111-м и 56737-м портах.
- Сайт на PHP
Прежде чем фаззить директории, залезем в исходный код страницы. Видим закомментированную ссылку, вероятно на французскую версию сайта.
Попробуем зайти. И правда, сайт теперь на французском языке.
Откроем
Вам необходимо выполнить
Вход
либо
Регистрация
для просмотра ссылок!
и попробуем профаззить параметр lang.
И с первого же раза получаем исходный код страницы index.php с помощью уязвимости Local File Inclusion и фильтра Base64 PHP. Раскодируем с помощью команды $ base64 -D или через
Вам необходимо выполнить
Вход
либо
Регистрация
для просмотра ссылок!
и увидим в самом начале какой-то пароль. Интересно, от чего же он?
- Получаем доступ по SSH
использование vulnhub
- Первый флаг
import os; os.system("/bin/bash")
Итак, мы в системе. Посмотрим, что в домашней папке ($ ls), видим файл flag1.txt, выведем его содержимое с помощью $ cat flag1.txt.
- В поисках второго флага
Поищем еще файлы, которые ему принадлежат. Для этого посмотрим на результат команды
$ find / -user devops
Видим, что есть скрытый файл /srv/.antivirus.py с весьма прозаичным содержанием.
Судя по тому, что файл /tmp/test существует, этот скрипт выполняется при загрузке от пользователя devops. Поэтому добавим туда простой реверс-шелл и перезагрузим виртуалку.
Теперь подключимся посмотрим список файлов:
$ ls /home/devops. Файл со вторым флагом на месте! Выводим его $ cat flag2.txt.
- Последний рубеж: получаем root(.txt)
Вам необходимо выполнить
Вход
либо
Регистрация
для просмотра ссылок!
для эскалации привилегий на этой версии ядра, мы ничего не нашли. Придется делать ручками. Для начала сделаем полученную сессию «нормальной» Вам необходимо выполнить
Вход
либо
Регистрация
для просмотра ссылок!
.Посмотрим, кто в системе может запускать программы от имени администратора с помощью sudo -l.
Как видим, /usr/bin/pip работает с sudo без пароля, а значит, осталось сделать совсем немного.
Гуглим «pip privileges escalation» и прямо на первой статье видим ссылку на FakePip. Делаем все по инструкции:
$ cd /tmp && wget
Вам необходимо выполнить
Вход
либо
Регистрация
для просмотра ссылок!
Меняем переменную RHOST на наш айпишник.
Запускаем у себя
nc -lvvp 443, а на виртуалке $ sudo pip install . —upgrade —force-reinstall.
Теперь у нас есть права администратора, и остается одна команда…
$ locate root.txt | xargs cat
Done!
Заключение
Мы просканировали порты на виртуальной машине; выяснили, что на 80-м порте запущен Apache с веб-приложением на PHP, а на 3333-м — SSH. Нашли в PHP уязвимость Local File Inclusion и проэксплуатировали ее, получив исходный код страницы, в котором переменной $password был присвоен пароль от SSH пользователя mamadou.
Первый флаг был в домашней папке пользователя. Изменив скрытый файл /srv/.antivirus.py, который принадлежит пользователю devops и исполняется от его имени при загрузке системы, мы получили возможность работать от его имени и нашли второй флаг в /home/devops/flag2.txt. Узнав, что PIP может устанавливать пакеты от имени администратора без пароля sudo, мы повысили привилегии до root с помощью публичного эксплоита и нашли третий флаг в /root/root.txt.
На этом мы закончим с «Wakanda: 1». Надеюсь данная статья поможет вам в использовании VulnHub.