Удаленное проникновение: состояние DoS и переполнение буфера
Утилита sechole
Утилита sechole предоставляет те же возможности, что и getadmin: она добавляет текущего пользователя в локальную группу администраторов. Обновленная версия этой утилиты secholed помещает пользователя в группу администраторов домена.) Однако для выполнения тех же действий, что и getadmin, эта утилита использует другие механизмы. Как отмечают Прасад Дабак (Prasad Dabak), Сандип Фадк (Sandeep Phadke) и Милинд Бора (Milind Borate), sechole модифицирует в оперативной памяти код вызова процедуры OpenProcess, и это позволяет ей успешно подключаться к привилегированному процессу, независимо от того, имеет ли она для этого соответствующие разрешения. После успешного подключения она работает так же, как и утилита getadmin, выполняя код внутри процесса-носителя, и добавляет текущего пользователя в указанную группу Administrators. Полный код и подробное описание можно найти на Web-узле NT Security по адресу http://www.ntsecurity.net/security/sechole.htm.
Подобно getadmin, утилита sechole должна быть запущена локально. Однако, если на целевом узле запущен сервер IIS компании Microsoft и, кроме этого, выполняются и некоторые дополнительные условия, sechole можно запустить и удаленно, добавив используемую по умолчанию учетную запись пользователя Internet Iusr_имя_машины в группу Administrators или Domain Admins. Вот описание того, как это можно осуществить.
Удаленный запуск утилиты sechole
Рассмотрим пример применения основного подхода, используемого при нападении на Web-серверы, который в различных формах применяется в Internet. Успешность такой атаки зависит от того, существует ли каталог US-сервера, доступный для записи и запуска программ. К счастью, компания Microsoft "предоставила" много каталогов с такими разрешениями, используемыми по умолчанию.
Виртуальные каталоги сервера IIS, представленные в табл. 5.4, помечены как доступные для выполнения. Соответствующие им физические каталоги (также перечисленные в табл. 5.4.) по умолчанию имеют разрешения Read, Write, Execute и Delete (RWXD).
После анализа заданных по умолчанию разрешений становится очевидно, что сервером может быть выполнен любой ложный исполняемый файл, расположенный в любом из этих каталогов. У взломщика имеется лишь одно препятствие: удаленно поместить в какой-либо из этих каталогов требуемый исполняемый файл.
На самом деле это совсем не трудно, как может показаться на первый взгляд. Для этих целей можно воспользоваться открытыми для совместного использования разделами жесткого диска, неудачно организованными каталогами FTP, которые перекрывают каталоги, представленные в табл. 5.4. Для решения поставленной задачи можно воспользоваться также недостаточно защищенными командами удаленного управления (например, telnet), методами PUT протокола HTTP или даже средствами авторизации в Web, предоставляемыми приложением FrontPage.
Предположим, что взломщику удалось воспользоваться какой-нибудь из перечисленных возможностей и успешно загрузить утилиту sechole и связанные с ней библиотеки DLL в один из каталогов, представленных в табл. 5.4. И что теперь? Поскольку эта программа запускается из командной строки, то взломщику необходимо поместить в тот же каталог и командный интерпретатор (в системе NT командный интерпретатор, cmd.exe, находится в каталоге %windir%\system32).
Таблица 5.4. Виртуальные каталоги сервера IIS, имеющие по умолчанию разрешения Execute, к соответствующие им физические каталоги.
Виртуальный каталог | Физическое расположение |
---|---|
/W3SVC/l/ROOT/msadc | C \program files\common\system\msadc |
/ W3SVC /1/ROOT/News | C \InetPub\News |
/W3SVC/l/ROOT/Mail | C \InetPub\Mail |
/W3SVC/1/ROOT/ cgi – bin | C \InetPub\wwwroot\cgi-bin |
/W3SVC/1/ROOT/ scripts | C \InetPub\scripts |
/W3SVC/1/ROOT/ iisadmpwd | С \WINNT\System32\inetsrv\iisadmpwd |
/W3SVC/l/ROOT/_vti_bin | (Отсутствует, если не установлены расширения FrontPage) |
/W3SVC/l/ROOT/_vti_bin/ vti_adm | (Отсутствует, если не установлены расширения FrontPage) |
/W3SVC/l/ROOT/_vti_bin/_vti_aut | (Отсутствует, если не установлены расширения FrontPage) |
Однако не будем торопиться. Выше уже упоминалось, что утилита sechole добавляет пользователя в локальную или доменную группу администраторов. Если же она была запущена посредством Web-браузера, то в группу администраторов будет добавлена учетная запись Iusn_имя_машины. А это не очень хорошо, поскольку этой учетной записи назначается случайный пароль, который взломщику придется подбирать при удаленной регистрации.
Как же в группе администраторов создать новую учетную запись пользователя с паролем, который выбрал сам взломщик? Это просто осуществить с помощью встроенной команды net localgroup. Создайте простой командный файл (например, с именем adduser.bat) со следующей строкой:
net user mallory qpensesame /add && net localgroup administrators mallory /add