Подробности уязвимости в именованных каналах в Windows 2000 и MS SQL Server 2000

Дата публикации:
10.07.2003
Всего просмотров:
1273
Опасность:
Наличие исправления:
Количество уязвимостей:
1
CVSSv2 рейтинг:
CVE ID:
Нет данных
Вектор эксплуатации:
Воздействие:
CWE ID:
Нет данных
Наличие эксплоита:
Нет данных
Уязвимые продукты:
Описание:

Уязвимость обнаружена в в именованных каналах в Windows 2000. Локальный пользователь может получить SYSTEM привилегии.

Определяя имя именованного канала, вместо файла, в качестве аргумента к расширенной сохраненной процедуре SQL Server xp_fileexist, пользователь может выполнить произвольный код с привилегиями SQL сервера. Это происходит из-за неправильного поведения системного вызова CreateFile и заимствование прав именных каналов в Windows. Уязвимость не ограничена SQL сервером, другие программы могут быть также уязвимы.

API вызов CreateFile используется для открытия и/или создания файлов, именованных каналов, почтовых слотов и много чего еще. В вызове не существует механизма ограничения открываемых ресурсов.

Большинство WIN32 сервисов выполняются под local system учетной записью и, так или иначе, обращаются к файлам. Если существует возможность определить, какой файл откроет специфическая служба, то можно выполнить роль учетной записи, под которой запущена эта служба. 

Этот недостаток легко эксплуатировать в Microsoft SQL Server, так как в ней используется большое количество процедур, в которых мы можем определить имя используемого файла. Например, можно использовать процедуру xp_fileexist. Создавая именованный канал на сервере с произвольным именем и выполняя xp_fileexist с UNC именем именованного канала в качестве аргумента, атакующий выполнить роль пользователя, под которым запущен процесс SQL сервера.

Примеры:

В командной оболочке #1:

C:\>mssqlpipe.exe cmd.exe
Creating pipe: \\.\Pipe\atstake
Pipe created, waiting for connection
Connect to the database (with isql for example) and execute: 
xp_fileexist '\\SERVERNAME\pipe\atstake'
Затем в командной оболочке #2:
C:\>isql -U andreas
Password:
1> xp_fileexist '\\TEMP123\pipe\atstake'
2> go
File Exists File is a Directory Parent Directory Exists
----------- ------------------- -----------------------
1 0 1
После чего вернитесь в командную оболочку #1, которая теперь будет выполняться с SYSTEM привилегиями.

Уязвимость обнаружена в MS Windows 2000

Для устранения уязвимости, установите Windows 2000 SP4

Ссылки: Named Pipe Filename Local Privilege Escalation
или введите имя

CAPTCHA