Всех приветствую, читатели Хабра!
Седьмая часть анализа защищенности, правда в этот раз системы (серверной) Vulnhub. Система я поднимал на virtualbox, а не на докер, то есть иной метод виртуализации.
Вот ссылки на первые четыре части уязвимых веб-приложений, советую ознакомиться:
https://habr.com/ru/articles/894508/
https://habr.com/ru/articles/895092/
https://habr.com/ru/articles/895856/
https://habr.com/ru/articles/897296/
https://habr.com/ru/articles/898918/ (это уязвимая ОС на virtualbox)
https://habr.com/ru/articles/902248/
Примечание
Правовая информация:
Данная статья создана исключительно в ознакомительных/образовательных/развивающих целях.
Автор статьи не несет ответственности за ваши действия.
Автор статьи ни к чему не призывает, более того напоминаю о существовании некоторых статей в уголовном кодексе РФ, их никто не отменял:
УК РФ Статья 272. Неправомерный доступ к компьютерной информации
УК РФ Статья 273. Создание, использование и распространение вредоносных компьютерных программ
УК РФ Статья 274. Нарушение правил эксплуатации средств хранения, обработки или передачи компьютерной информации и информационно-телекоммуникационных сетей
Все атаки я проводил на локальный сервер, внутри моего сетевого интерфейса, на моем компьютере, то есть все действия легитимны.
И как всегда просьба не переходить на личности в комментариях, если вы обнаружили ошибку недочет или неточность, просто без оскорблений напишите комментарий или напишите мне личным сообщением. Здесь я всего лишь делюсь опытом взлома уязвимой машины
Алгоритм атаки будет следующий:
Скачивание образа виртуальной машины, запуск и настройка образа. Поиск системы внутри сетевого интерфейса
Сканирование цели
Энумерация
Анализ скачанного файла с сервера
Энумерация (более глубокая)
Получение доступа к системе взломом при помощи брутфорс-атаки
Повышение привелегий
Итак приступим к практике
1) Скачивание образа виртуальной машины, запуск и настройка образа. Поиск системы внутри сетевого интерфейса
Скачать образ виртуальной машниы можно здесь https://www.vulnhub.com/entry/deathnote-1,739/. На странице отсутствуют варианты прохождения данной уязвимой ОС.
В качестве атакующей ОС я использовал Debian GNU/Linux (с некоторыми специальными программами, предустановленными мной). Кроме того, так как мы используем образ под virtualbox, должна быть установлена данная программа. Программы которые я использовал для пентеста с открытым исходным кодом и доступны для Debian и Debian-подобных дистрибутивов - nmap, whatweb, curl, wget, dirsearch, dirb, hydra, binwalk, ghex, exiftool
После того как образ скачан, все что останется - запустить его. Достаточно щелкнуть по нему два раза мышкой

После начентся процесс запуска образа системы в виртуалбокс.
Важно!!!
Необходимо в настройках атакуемой ОС указать сетевой мост и тот же интерфейс, на котором находится и атакующая машина.
После этого узнаем интерфейсы в терминале, введя команду
ifconfig

Очевидно, что локальный интерфейс начинается на 192.168.72... После чего сканируем nmap всю локальную сеть:
nmap 192.168.72.1-255

ip адрес уязвимой ОС - 192.168.72.13
2) Сканирование цели
После чего более тщательно сканируем цель:
nmap -sV -p- 192.168.72.13
whatweb 192.168.72.13

И узнаем много чего интересного - ОС Linux Debian, имеется Apache 2.4.38 открытые порты 80 и 22 со службами httpd и ssh
3) Энумерация
После чего мы начинаем энумерацию
dirsearch -u
http://192.168.72.13

И сразу же обнаруживается файл robots.txt
Узнаем его содержимое:
curl
http://192.168.72.13/robots.txt


Узнаем о существовании файла на сервере important.jpg
Пробуем его открыть - не получается

После чего просто скачиваем его для анализа
wget
http://192.168.72.13/important.jpg

4) Анализ скачанного файла с сервера
Я попытался проанализировать данный файл (он не открывался и после скачивания) программой binwalk - безуспешно
binwalk important.jpg

После чего я проанализировал его утилитой exiftool
exiftool important.jpg

После чего стало очевидно, что это текстовый файл, сохраненный с расширением jpg. Можно просто поменять расширение, а можно открыть например через hex-редактор. Я использую ghex
ghex important.jpg



Или прямо, при помощи утилиты curl просмотреть содержимое файла с сервера
curl
http://192.168.72.13/important.jpg

Содержимое файла означает примерно следующее:

Очевидно, что где то в самом веб-приложении находится файл user.txt, содержащий возможные имена пользователей.
5) Энумерация (более глубокая)
Кроме того, что обнаружились два файла, энумерация дала и другие пути, например директория http://192.168.72.13/wordpress/ с wordpress, и форма авторизации http://192.168.72.13/wordpress/wp-login.php

Я начал энумерацию директории http://192.168.72.13/wordpress/ в поисках хоть каких то подсказок, и перходил по найденным ссылкам
dirsearch -u
http://192.168.72.13/wordpress/
dirsearch -u
http://192.168.72.13/wordpress/index.php







dirb
http://192.168.72.13/wordpress/index.php

И тут я уже готов был сдаться, но вдруг заметил что есть цветной текст HINT, наводя на который мышь, высвечивался адрес deathnote.vuln/wordpress/index.php/hint/.

Естественно я перешел на него, изменив в запросе 192.168.72.13/wordpress/index.php/hint/

Очевидно, кроме user.txt есть и файл notes.txt, который содержит какую то ценную информацию
А далее была снова энумерация
Здесь я попытался найти хоть какую то информацию о данной машине в сети, и нашел немного, но очень важное - верный путь директория wordpress
dirsearch -u
http://192.168.72.13
dirsearch -u http://192.168.72.13/wordpress/
dirsearch -u http://192.168.72.13/wordpress/wp-content/



И внутри http://192.168.72.13/wordpress/wp-content/ нашел папку /uploads/
После чего я перешел по данному адресу

Зашел в папку 2021

Папка 07

и получил (и скачал) искомые файлы notes.txt и user.txt
curl
http://192.168.72.13/wordpress/wp-content/uploads/2021/07/notes.txt
curl http://192.168.72.13/wordpress/wp-content/uploads/2021/07/user.txt
wget
http://192.168.72.13/wordpress/wp-content/uploads/2021/07/notes.txt
wget http://192.168.72.13/wordpress/wp-content/uploads/2021/07/user.txt



6) Получение доступа к системе взломом при помощи брутфорс-атаки
На сервере имеется открытый порт 22 со службой ssh

Проведем его брутфорс гидрой
hydra -L user.txt -P notes.txt ssh://192.168.72.13

Имеется пользователь l с паролем death4me
Зайдем по ssh с этими данными
ssh l@192.168.72.13 (естественно пароль death4me)
Проверим директорию командой pwd и ее содержимое командой ls.

Есть файл user.txt, его содержимое я вывел командой cat

Это похоже на старый язык програмирования brainfuck
Я расшифровал и перевел


Перешел в каталог /home (cd /home), вывел его содержимое (ls), и обнаружил папку kira. Вывел ее содержимое (kira.txt), и пробовал прочитать - нет прав.

Кстати говоря прав пользователя l достаточно, чтобы просмотреть содержимое файла /etc/passwd

7) Повышение привелегий
Снова поискав ответы в сети, я нашел подсказку - необходимое мне лежит в папке /opt. Перешел в папку (cd /opt) внутри папки снова директория L перешел в нее (cd L), далее в папку fake-notebook-rule, и внутри него два файла - hint и case.wav.

Вывел их содержимое (cat hint; cat case.wav)

Первое подсказка - использовать cyberchef. Второе - похоже на хекс
Ищу сайт, захожу на первый, вставляю шифр

После чего дешифрую hex

А после дешифрую base64

Очевидно, что пароль для пользователя kira - kiraisevil. Псоле чего, выхожу с сервера под пользователем l, и просто вхожу с этими новыми данными под именем пользователя kira
ssh kira@192.168.72.13 (естественно пароль kiraisevil)

И снова доступ, но под другим пользователем
Проверяю текущую директорию (pwd) - /home/kira, просматриваю содержимое (ls), теперь читаю файл kira.txt - cat kira.txt

Снова шифр, похож на base64. Копирую, дешифрую

Ничего особенного - информация о пользователях L и Misa. После чего я решаю повысить привелегии до root:
sudo -s
и пароль kiraisevil

Root-доступ есть!
Кстати, получив root-права я прочитал файл /etc/shadow. В этом файле в зашифрованном виде (в виде хэшей) содержатся пароли учетных записей
cat /etc/shadow

Последнее что осталось перейти в папку /root - cd /root. Проверил содержимое (ls опять же), обнаружен файл root.txt

После чего читаю его содержимое - cat root.txt

Финал!
Таким образом, я просканировал сервер (локальный конечно же) обнаружил уязвимость в веб-приложении, провел энумерацию веб-приложения и обнаружил данные об учетных записях. Использовал эти данные для взлома, взломал систему, зашел в нее и нашел данные о привелегированном пользователе, что дало мне возможность повысить привелегии.
А на этом у меня сегодня все, уважаемые читатели Хабра, до новых встреч!