Компания Symantec сообщила (http://www.symantec.com/connect/blogs/mysql-servers-hijacked...) о выявлении вредоносного ПО, поражающего сервера с СУБД MySQL с целью их использования для совершения DDoS-атак. На первой стадии проникновения, путём эксплуатации уязвимостей в web-приложениях, позволяющих осуществить подстановку SQL-кода, в СУБД загружается вредоносная встраиваемая процедура, которая загружает и выполняет на сервере троянскую программу Chikdos, подключающую хост к ботнету для осуществления DDoS-атак. Большинство поражённых систем зафиксировано в Индии, Китае, Бразилии и Нидерландах. Поражаются только сборки MySQL для платформы Windows, но теоретически атака может быть адаптирована и для Linux (применяемый троян Chikdos доступен (https://www.giac.org/paper/gcih/759/exploiting-user-defined-...) и для Linux).URL: http://www.symantec.com/connect/blogs/mysql-servers-hijacked...
Новость: http://www.opennet.me/opennews/art.shtml?num=43216
Дожили, теперь БД интересна не как хранилище данных, которые можно стащить, а как средство для участия в ботнете.> Поражаются только сборки MySQL для платформы Windows, но теоретически атака может быть адаптирована и для Linux.
Просто среди тех, кто использует БД под линуксом, невероятно редко встречаются такие, кому хватает идиотизма вывесить порты базы данных в мир.
Хм, ошибся, заражают базу через веб-сервер используя sql-инъекцию, простите, виндузятники, сегодня я вас выставил чуть хуже, чем вы есть на самом деле.
И тут внимание вопрос, зачем в БД встраивать механизмы позволяющие из SQL кода устанавливать "расширения" либо участвовать в ботнетах напрямую...
"Гибкость" же!
Вы ошиблись в одной детали.
На фоне других косяков разница между инъекцией и подключением к порту с пользователем root без пароля значит совсем немного.Из текста новости не ясно, а по ссылке написано, что использованы UDF.
Для того чтобы загрузить UDF можно выполнить запрос типа
SELECT … INTO DUMPFILE '…';Далее, для установки UDF нужно выполнить оператор типа
CREATE FUNCTION … RETURNS … SONAME '…';CREATE FUNCTION загружает библиотеку только из plugin_dir; в старинных версиях была ошибка - при пустом plugin_dir библиотека грузилась так, как грузится любая библиотека по правилам принятым в операционной системе.
итого для записи и установки UDF нужно:
- plugin_dir должен быть доступен серверу БД на запись.
- mysql выполняется от пользователя с лишними привилегиями
- или plugin_dir должен быть доступен для записи
- пользователь должен иметь право "CREATE ROUTINE"
> Вы ошиблись в одной детали.
> На фоне других косяков разница между инъекцией и подключением к порту с пользователем root без пароля значит совсем немного.Не ошибся, я же написал "чуть хуже, чем вы есть на самом деле", это и есть "разницы совсем немного"
Албанский вирус<SHELL># mysql -u root -p -h <IP_OF_TARGET_HOST>
Enter password: <PASSWORD>https://www.giac.org/paper/gcih/759/exploiting-user-defined-...
Дело в том что права у винды на запуск всего и вся есть и редко - очень редко ограничены, что делает распространение вредоносного ПО под виндой весьма обыденным делом., GNU/Linux / Unix админы часто "параноики" и блочат всё и вся включая и права на запуск без их разрешения...
Не имеет значения ОС (и в винде есть гибкие локальные политики), всё зависит от админа, у некоторых и под линуксом веб-морда от рута отдаётся ("так ведь ошибки не сяпятся в лог")
Имеет. Для того, что в нормальных системах делается просто и естественно, в винде нужно гнуть локальные политики. И наоборот - чтобы сделать так безобразно, как в винде по умолчанию, в нормальных системах нужно очень постараться.
> Для того, что в нормальных системах делается просто и естественно,
> в винде нужно гнуть локальные политики. И наоборот - чтобы сделать
> так безобразно, как в винде по умолчанию, в нормальных системах
> нужно очень постараться.Слушайте, но у меня уже стена для рамочек скоро закончится!
Ardebito ergo sum, типа того.
> Дожили, теперь БД интересна не как хранилище данных, которые можно стащить, а
> как средство для участия в ботнете.А кому интересна база виндузятника с кривой цмской, кроме его друзей-одноклассников?
> Просто среди тех, кто использует БД под линуксом, невероятно редко встречаются такие,
> кому хватает идиотизма вывесить порты базы данных в мир.Боюсь, и там идиотов хватает - шаред хостинги постоянно на этом попадаются
> теоретически атака может быть адаптирована и для LinuxПопробовал представить людей, которые могли заразить через Мускуль линуксовые сервера, но ограничились форточками. Ушел чинить сломанную фантазию.
>>загружается вредоносная встраиваемая процедураНапомните, какие привелегии надо добавить юзеру?
GRANT ALL PRIVILEGES ...
Привилегии на ЧСВ > 9000 для многих вполне достаточно :)http://www.iodigitalsec.com/mysql-root-to-system-root-with-u.../
http://infamoussyn.com/2014/07/11/gaining-a-root-shell-using.../
http://infamoussyn.com/2014/07/11/gaining-a-root-shell-using.../> To do this, the following steps need to be taken:
> 1. Turn off the MySQL service.
> 2. Run the command on the datadir for the MySQL service (default is /var/lib/mysql).
> chown -R root:root /path/to/datadir
> 3. Change the line “user=mysql” to “user=root” in the file /etc/my.cnf. [!!!!]
> 4. Turn on the MySQL service.Мде... Одно непонятно: зачем такие сложности по созданию дыры? Может проще было запустить sshd, разрешив вход руту и поставив руту пароль root?
> Мде... Одно непонятно: зачем такие сложности по созданию дыры? Может проще было
> запустить sshd, разрешив вход руту и поставив руту пароль root?Угу, а еще они там сами код для SO компильнули - вот ведь фейл какой.
Из первой ссылки:
[quote]Third, we then want to dump that table row out to a new file in either the ‘/usr/lib’ directory or the ‘c:\windows\system32’ directory depending on whether we are on Linux or Windows respectively. The reason we need to do this, is that our regular web application or user account ->does not have permission to create files in these directories, however the MySQL root user does.<-[/quote]
> Может проще было запустить sshd, разрешив вход руту и поставив руту пароль root?Так PermitRootLogin without-password обломает. Ну, если дистрибутив приличный.
А собственно говоря чему тут удивляться, очень часто прикладные программеры не удосуживаются изучить возможности sql-ских и прочих движков в отношении прав пользователей, вот и ходят их программы к базам с правами dba, кричащий пример 1c 7.7 c движком на базе ms sql...
Индия и вантуз, говорите? А это случайно не офисы сиско в бангалоре?
Надо было трояна писать под Оракле. Там на порядок больше возможностей, а патчи ещё реже ставят, ибо Оракле их выпускает только под 12-ку, а остальные в пролёте.
11.2.0.4 всё ещё патчится, но кому это интересно?
Не надо трололо, оракл годами не закрывает дырки.
> но теоретически атака может быть адаптирована и для Linux (применяемый троян Chikdos доступен и для Linux)Из описания атака:
1. Скопировать *.dll (или *.so для юникса) на целевой хост
2. При копировании надо поместить эту динамическую библиотеку в plugin_dir
3. Загрузить библиотеку как пользовательскую функцию или плагин к mysqlПод unix системами mysql установлен от рута в систему (все файлы кроме datadir, логов и innodb файлов (которые обычно в datadir) принадлежат пользователю root и другие пользователи не имеют прав на запись в эти файлы и директории plugin_dir недоступен для записи во всех дистрибутивах или при ручной установке tar.gz архива от рута).
При старте mysqld дропает root привилегии и работает от другого пользователя (обычно mysql:mysql).
Итого для эксплуатации уязвимости нам надо получить root до того как мы запишем исполняемый файл UDF, а значит нет смысла во всей этой пляске с UDF и загрузками файлов через sql команды.