Security Lab

Повышение привилегий через SQL Server agent

Дата публикации:16.08.2002
Всего просмотров:2218
Опасность:
Наличие исправления:
Количество уязвимостей:1
CVE ID: Нет данных
Вектор эксплуатации:
Воздействие:
CWE ID: Нет данных
Наличие эксплоита: Нет данных
Уязвимые продукты:
Описание: Microsoft SQL Server включает вспомогательную службу, SQL Server agent. Agent отвечает за перезапуск базы данных, если она остановилась по каким то причинам, участвует в репликации и выполняет намеченные задания (scheduled jobs).

Роль “public” в SQL сервере позволяет создавать задания, которые будут выполнены SQL агентом. Он это делает, используя комбинацию нескольких сохраненных процедур в базе данных msdb, типа sp_add_job и sp_add_job_step, и т.д. Так как SQL Agent значительно более привилегирован, чем простой пользователь, система должна гарантировать, что представленное T-SQL задание не может неправильно эксплуатироваться. Используется следующая защита:

SETUSER N'guest' WITH NORESET

Это фактически понижает высокий уровень привилегий, так что никакая низкопривилегированная учетная запись не сможет выполнить что-либо подобно:

exec master..xp_cmdshell 'dir'

Однако это может тривиально обойдено, вызывая SQL Agent повторно после того, как он понизил привилегии. Пример прилагается.

Уязвимость обнаружена в Microsoft SQL Server 2000 и 7

Ссылки: Proof of Concept