Расширение привилегий
Если взломщик смог добраться до учетной записи пользователя в системе Windows 2000, то следующим его желанием станет получение исключительных привилегий – прав администратора. К счастью, операционная система WIN 2000 является более устойчивой, чем ее предшественницы в смысле противостояния таким попыткам (по крайней мере угрозы типа getadmin и sechole ей теперь не страшны). Но к сожалению, если взломщик смог получить данные интерактивной учетной записи, то предотвратить возможность расширения его привилегий очень сложно (интерактивные учетные записи получили гораздо более широкое распространение с появлением терминального сервера Windows 2000, применяемого в целях удаленного управления и распределенной обработки данных).
Использование именованных конвейеров для запуска программ с системными привилегиями
Атака, обеспечивающая расширение привилегий на основе прогнозирования создания именованного канала при инициализации системных служб Windows 2000 (таких как Server, Workstation, Alerter и ClipBook, связанных с учетной записью SYSTEM), была разработана Майком Шифманом (Mike Schiffman) и отправлена в бюллетень Bugtraq (ID 1535). Перед запуском каждой службы на сервере создается именованный канал с прогнозируемой последовательностью имен. Эту последовательность можно получить из параметра системного реестра HKLM\System\CurrentControlSet\Control\ ServiceCurrent.
Любой интерактивный пользователь WIN 2000 (включая удаленных пользователей терминального сервера) может спрогнозировать имя канала, инсталлировать его и таким образом запустить программу с системными привилегиями. Если к этому именованному каналу добавить посторонний код, то он тоже получит системные привилегии и сможет выполнить практически любые действия в локальной системе (например, добавить текущего пользователя в группу администраторов).
Тестовый код, написанный хакером Мачо (Масео), несколько менее эффективен: он находит пользователя с относительным идентификатором RID 500 (более подробная информация об идентификаторах RID содержится в главе 5), т.е. учетную запись администратора независимо от того, была ли она переименована, и выводит на экран его пароль в зашифрованном виде. Так работает приведенная ниже программа взлома main. Однако сначала покажем, что текущий интерактивный пользователь является членом группы операторов резервного копирования Backup Operators, запустив утилиту whoami.
C:\> whoami /groups [Group 1] = "Everyone" [Group 2] = "BUILTIN\Backup Operators" [Group 3] = "LOCAL" [Group 4] = "NT AUTHORITYMNTERACTIVE" [Group 5] = "NT AUTHORITYXAuthenticated Users" G:\> main The ClipBook service is not started. More 'help is available by typing NET HELPMSG 3521. Impersonating: SYSTEM Dumping SAM for RID 500… F:0x020001000000000000000000000000000000000000C00. V:0x00000000a800000002000100a80000001a000000000c4.
Обратите внимание, что эта программа взлома для выполнения своих губительных действий использует учетную запись SYSTEM. Теперь хакер может взломать пароль администратора и зарегистрироваться в системе. (Напомним, что при наличии системных привилегий это не составляет труда. Гораздо сложнее "пробраться" в группу администраторов.)
Контрмеры против использования именованных каналов
Компания Microsoft выпустила модуль обновления, изменяющий способ создания и размещения именованных каналов диспетчером WIN 2000 Service Control Manager (SCM). Его можно найти по адресу http://www.microsoft.com/technet/security/ bulletin/MS00-053.asp. Этот модуль обновления не вошел в сервисный пакет SP1 и может применяться как до, так и после установки этого пакета.
Привилегии интерактивных учетных записей конечно же необходимо жестко ограничить в любой системе, содержащей конфиденциальные данные, поскольку в противном случае задачи хакера значительно облегчаются. Чтобы проверить права интерактивных учетных записей в системе Windows 2000, запустите аплет Security Policy (либо для локальной политики либо для политики групп), найдите элемент User Rights Assignment в группе Local Policies и ознакомьтесь с тем, как выделяются права при локальной регистрации.
В WIN 2000 появилась новая возможность отменять для некоторых групп или пользователей действие многих привилегий. Например, как видно из рисунка, возможность локальной регистрации отменяется путем выбора политики Deny logon locally.
По умолчанию группа users и учетная запись Guest обладают правом локальной регистрации в системе WIN 2000 Professional и на автономных серверах WIN 2000 Server. Права пользователей контроллера домена ограничены более жестко благодаря специальной используемой по умолчанию политике (правами локальной регистрации обладают все группы операторов). Мы рекомендуем отменить это право для группы users и учетной записи Guest и строго следить за тем, кому предоставляются такие привилегии.