NT: проблемы безопасности
Дмитрий Леонов
Опубликовано: dl, 25.11.01 21:51
(в настоящее время представляет собой разве что историческую ценность)
Цель этой статьи - освещение некоторых проблем
безопасности Windows NT и способов их устранения.
Была использована информация из следующих
источников:
Троянская конница
Дистрибутивы NTWS4.0 и NTS4.0 включают утилиту
rollback.exe, предназначенную для настройки
пользователями предустановленной системы. Ее
запуск приводит к очистке реестра (без
предупреждения) и возврату к концу Character Based Setup
(часть установки до появления GUI). Запуск ее из-под
рабочей системы приводит к тем же невеселым
последстиям (потеря аккаунтов, настроек
протоколов, пользовательских настроек и т.п.).
Найти ее можно на CD-ROM с NT в каталоге
Support\Deptools\<system>\
Подробности: http://support.microsoft.com/support/kb/articles/Q149/2/83.asp
Каталоги %systemroot% и %systemroot%\system32 имеют по
умолчанию право доступа Change для Everyone.
Это может привести к самым разнообразным
последствиям типа замещения части системных dll
"троянскими" и т.п. При этом они могут быть
вызваны из самых разных программ - в том числе, из
программ, работающих с системными правами
доступа.
Для защиты достаточно грамотно установить права
доступа. Кстати, программа DumpAcl позволяет вывести
права доступа для различных объектов - файлов,
реестра, принтеров и т.п. в общий список, удобный
для просмотра.
В реестре есть ключ
<HKLM\SYSTEM\CurrentControlSet\Control\Lsa>
со значением
<Notification Packages: REG_MULTI_SZ: FPNWCLNT>
Эта DLL существует в сетях, связанных с Netware. Поддельная FPNWCLNT.DLL в каталоге
%systemroot%\system32 вполне может проследить все пароли.
После копирования и перезагрузки все изменения
паролей и создание новых пользователей будут
отслеживаться этой dll и записываться (открытым
текстом) в файл c:\temp\pdwchange.out.
Для защиты достаточно удалить этот ключ и
защитить эту часть реестра от записи.
Испольняемые файлы могут быть переименованы в
файлы с любым расширением (или без расширения), но
они все равно запустятся из командной строки
(например, переименуйте notepad.exe в notepad.doc и
запустите "start notepad.doc"). Ну и что, спросите Вы ?
Тогда попробуйте представить процесс прочтения
файла rollback.exe, переименованного в
readme.doc. Очень эффективно.
Большая часть реестра доступна для записи
группе Everyone. Это же относится и к удаленному
доступу к реестру. Может оказаться опасным,
особенно в сочетании с автоматическим импортом
reg-файлов. В реестре NT4.0 появился ключ
<HKLM\SYSTEM\CurrentControlSet\Control\SecurePipeServers\winreg>
при наличии которого доступ к реестру отрыт
только администраторам. В NT Server этот ключ
существует по умолчанию, в NTWS может быть
добавлен.
Подробности: http://support.microsoft.com/support/kb/articles/Q155/3/63.asp
Проблемы приложений
В FrontPage 1.1 пользователь IUSR_* имеет право доступа Full
Control к каталогу _vti_bin и Shtml.exe. Если взломщик
узнал пароль IUSR_<hostname> (обычно достаточно
простой), то он может получить доступ к каталогу с
исполняемыми файлами. В FrontPage'97 это упущение
исправлено.
Подробности: http://support.microsoft.com/support/kb/articles/Q162/1/44.asp
При запуске администратором в Windows NT 3.51 File Manager
из панели MS Office 7.0, он получает доступ к каталогу,
на который у него нет прав доступа. Это связано с
тем, что File Manager наследует права 'backup and restore permissions'
от панели Office, которые используются Офисом для
записи пользовательских настроек в реестр.
Ошибка исправлена начиная с Office7.0a
Подробности: http://support.microsoft.com/support/kb/articles/Q146/6/04.asp
Служба FTP позволяет устанавливать пассивные
соединения на основе адреса порта, указанного
клиентом. Это может быть использовано взломщиком
для выдачи опасных команд службе FTP.
Реестр содержит ключ
<HKLM\System\CurrentControlSet\Services\MSFTPSVC\Parameters>
со значением
<EnablePortAttack: REG_DWORD: >
Убедитесь, что значение установлено в '0', а не '1'.
Подробности: http://support.microsoft.com/support/kb/articles/Q147/6/21.asp
Несанкционированный доступ
Драйвер ntfsdos.exe
позволяет читать раздел с NTFS из DOS,Windows,Windows'95.
Права доступа при этом игнорируются. Авторами
был обещан вариант драйвера с возможностью
записи.
Аналогичный драйвер (read only) существует для Linux: http://www.informatik.hu-berlin.de/~loewis/ntfs/
Один из популярных методов проникновения в
систему - подбор пароля. Для борьбы с этим обычно
устанавливают блокировку учетной записи
пользователя после определенного числа
неудачных попыток входа. Приятным исключением
является учетная запись администратора. И если
он имеет право доступа на вход через сеть, это
открывает лазейку для спокойного угадывания
пароля.
Для защиты рекомендуется переименовать
пользователя Administrator, установить блокировку
учетных записей, запретить админитратору вход в
систему через сеть, запретить передачу SMB пакетов
через TCP/IP (порты 137,138,139), установить
протоколирование неудачных входов.
Подробности: http://somarsoft.com/ntcrack.htm
Еще один способ - перехват
проходящей по сети информации.
Подробности:
Проблемы IIS
Пользователь Anonymous может получить в IIS права
пользователей домена при установке IIS на
контроллер домена (PDC)
Подробности: http://www.microsoft.com/kb/articles/q147/6/91.htm
Internet Information Server 1.0 (IIS) допускает использование
batch-файлов в качестве CGI-прилложений. Это весьма
опасно, поскольку batch-файлы выполняются в
контексте командного процессора (cmd.exe).
Подробности:
http://www.microsoft.com/kb/articles/q155/0/56.htm
http://www.microsoft.com/kb/articles/Q148/1/88.htm
http://www.omna.com/iis-bug.htm
В IIS 1.0 адрес типа 'http://www.domain.com/..\.."
позволяет просматривать и скачивать файлы вне
корневого каталога web-сервера.
Адрес 'http://www.domain.com/scripts..\..\scriptname" позволяет
выполнить указанный скрипт.
По умолчанию пользователь Guest или IUSR_WWW
имеет права на чтение всех файлов во всех
каталогач. Так что эти файлы могут быть
просмотрены, скачаны и запущены.
Адрес "http://www.domain.com/scripts/exploit.bat>PATH\target.bat"
создаст файл 'target.bat'. Если файл существует, он
будет обрезан.
К тем же последствиям приведет адрес
"http://www.domain.com/scripts/script_name%0A%0D>PATH\target.bat".
Подробности: http://www.omna.com/iis-bug.htm
Если соединиться через telnet с портом 80, команда
"GET ../.." <cr> приведет к краху IIS и сообщению
"The application, exe\inetinfo.dbg, generated an application error The error occurred
on date@ time The exception generated was c0000005 at address 53984655
(TCP_AUTHENT::TCP_AUTHENT"
Атаки типа Denial of Service
Ping of Death
Фрагментированный ICMP-пакет большого размера
может привести к зависанию системы. Так, команда PING
-l 65527 -s 1 hostname на NT 3.51 приведет к
"синему экрану" с сообщением.
STOP: 0X0000001E
KMODE_EXCEPTION_NOT_HANDLED - TCPIP.SYS
-ИЛИ-
STOP: 0x0000000A
IRQL_NOT_LESS_OR_EQUAL - TCPIP.SYS
Подробности: http://www.microsoft.com/kb/articles/q132/4/70.htm
Исправление: 3-й Service Pack c последующей установкой ICMP-fix
SYN-атака.
Послав большое количество запросов на
TCP-соединение (SYN) с недоступным обратным адресом,
получим следующий результат:
При получении запроса система выделяет ресурсы
для нового соединения, после чего пытается
ответить на запрос (послать "SYN-ACK") по
недоступному адресу. По умолчанию NT версий 3.5-4.0
будет пытаться повторить подтверждение 5 раз -
через 3, 6, 12, 24 и 48 секунд. После этого еще 96 секунд
система может ожидать ответ, и только после этого
освободит ресурсы, выделенные для будущего
соединения. Общее время занятости ресурсов - 189
секунд.
Подробности: http://www.microsoft.com/kb/articles/q142/6/41.htm
Исправление: 3-й Service Pack
WinNuke
Посылка данных в 139-й порт приводит к
перезагрузке NT 4.0, либо вывод "синего экрана
смерти" с установленным 2-м Service Pack'ом.
Исправление: 3-й Service Pack c последующей установкой OOB
fix. Это исправление включено также в ICMP-fix.
Аналогичная посылка данных в 135 и некоторые
другие порты приводит к значительной загрузке
процессора RPCSS.EXE. На NTWS это приводит к
существенному замедлению работы, NTS практически
замораживается.
Исправление: 3-й Service Pack
Service Pack 3
Многие проблемы безопасности NT4.0 были
устранены в 3-м Service Pack'е. Список исправлений весьма
внушителен. В первую очередь это атаки типа Denial of
Service - WinNuke, ошибка со 135-м портом, перехват
сообщений SMB ("man-in-the-middle attack") и т.д.
Настоятельно рекомендуется установить SP3, если
Вас волнует вопрос безопасности Вашей системы. С
момента выхода SP3 вышло еще несколько обновлений
(hot-fixes), доступных на
ftp://ftp.microsoft.com/bussys/winnt/winnt-public/fixes/usa/nt40/hotfixes-postSP3.
asp-fix |
Устранение проблем производительности с Active
Server Pages 1.0b, установленных на IIS3.0 |
dblclick-fix |
Некоторые программы (например, Visio Professional 4.x)
после установки SP3 стали реагировать на двойной
щелчок мыши как на одинарный. Включен в состав getadmin-fix. |
dns-fix |
Устраняет некоторые проблемы, связанные с
сервером DNS |
getadmin-fix |
Решает проблему, связанную с программой
getadmin.exe, которая позволяла пользователям (кроме Guest)
добавить себя в группу Administrators
локальной машины. Также включает dblclick-fix и java-fix. |
icmp-fix |
Решение проблем с зависанием системы при
получении фрагментированного ICMP-пакета большого
размера. Включает также oob-fix. |
iis-fix |
Остановка IIS 2.0 и3.0 при получении большлго
CGI-запроса (от 4 до 8k) |
java-fix |
Зависание IE3.02 при открытии страниц с Java после
установки SP3. Включен в состав getadmin-fix. |
lm-fix |
Позволяет отключить аутентификацию Lan Manager (LM).
Добавляет в реестр новый параметр к следующему
ключу: HKLM\System\CurrentControlSet\control\LSA
Value: LMCompatibilityLevel
Value Type: REG_DWORD - Number
Возможные значения: 0,1,2, по умолчанию - 0
0 - Использовать аутентификацию LM и
Windows NT authentication (default).
1 - Использовать аутентификацию Windows NT, иLM - только
по запросу сервера.
2 - Никогда не использовать аутентификацию LM.
В последнем случае невозможно соединение с
Windows'95 и Windows for Workgroups |
lsa-fix |
Устраняет ошибку доступа в Lsass.exe, возникающую
при передаче неправильного размера буфера
удаленным клиентом при соединении с LSA (Local Security
Authority) через именованный канал (named pipe). Включен в lsa2-fix |
ndis-fix |
Устраняет ошибку, вызывающую утечку памяти и
синий экран с сообщением о неверной команде в
ndis.sys при использовании промежуточных драйверов
NDIS. |
oob-fix |
Посылка "Out of Band" - данных в 139-й порт
приводила к зависанию или перезагрузки системы
(Атака WinNuke). Первоначальный вариант исправления,
включенный в SP3, не решил все проблемы. Включен в
состав icmp-fix. |
scsi-fix |
Устранение ошибок при работе с системами
защиты от сбоев (Fault Tolerant Systems) |
simptcp-fix |
Атака Denial of Service, состоящая в посылке
большого количества UDP-дейтаграмм с ложного
адреса на 19-й порт, при установленных Simple TCP/IP
services, приводила к повышенному UDP-траффику. |
winsupd-fix |
Исправление ошибки в WINS, приводящей к его
завершению при получении неверных пакетов UDP |
zip-fix |
Устранение проблем с ATAPI-версией Iomega ZIP |
За время, прошедшее с момента
написания этой статьи, было выпущено еще
несколько hot-fixes:
2gcrash |
Устраняет некоторые проблемы на машинах с RAM
более чем 1.7 Gb. Подробности меня как-то не
заинтересовали :) |
ide-fix |
Устраняет проблемы с новыми IDE/ATAPI винчестерами
на компьютерах с возможностью автоматического
выключения (shut down and power down feature). |
iis4-fix |
Исправляет ошибку в Afd.sys |
joystick-fix |
Устраняет проблему калибровки ножных педалей,
подключенных к game-порту. Полезная штука. В
отличие от большинства фиксов, версия для Alpha
почему-то отсутствует :) |
land-fix |
Ответ на "Land Attack". Включает icmp-fix и oob-fix |
pent-fix |
Исправление ошибки f00f в Pentium |
roll-up |
Исправление ошибок в MS Transaction Server 2.0 и MS Cluster Server
1.0 |
SAG-fix |
Исправление ошибок конвертации EBCDIC->ANSI при
работе с IBM-системами |
wan-fix |
Устранение возможного "синего экрана" при
копировании файлов через RAS по SLIP |
teardrop2-fix |
Исправление зависания при атаке "teardrop". Включает ICMP-fix, OOB-fix, и Land-fix |
tapi21-fix |
Исправление ошибок TAPI 2.1 |
pcm-fix |
Исправление ошибки в драйвере PC-карт при работе с Xircom CBE-10/100BTX |
srv-fix |
Очередная атака типа "Denial of Service". Зависание/перезагрузка при получении SMB-запроса, размер которого не
соответствует указанному в заголовке. |
pptp-fix |
Исправление ошибок в работе сервера Point-to-Point Tunneling Protocol (STOP при получении
неверного управляющего пакета PPTP). Включен в pptp2-fix. |
y2k-fix |
Устранение ряда ошибок, связанных с проблемой 2000 года (нераспознавание 2000 года как високосного,
проблемы с офисными приложенями, Find File, пропуск дня при изменении даты).
|
euro-fix |
Дополнения, связанные с введением новой европейской валютой.
|
atapi-fix |
Исправление некорректной работы с IBM-овскими дисками DTTA-351010 - из 10.1Gb видны только 7.5.
|
netbt-fix |
Устранение задержки (до 90 секунд) при обращении к удаленному серверу при использовании файла LMHOSTS.
|
prnt-fix |
Устранение некоторых ошибок при работе с принтерами (неверный сброс, проблемы со старыми принтерами и т.п.)
|
lsa2-fix |
Вышел на замену lsa-fix, но был отозван из-за обнаруженных проблем |
sfm-fix |
Исправление десятка проблем, связанных с Services for Macintosh (SFM) - от неверной модификации
времени создания файла до синего экрана.
|
pptp2-fix |
Обновление реализации Point to Point Tunneling Protocol (PPTP) - улучшена производительность, повышена надежность.
|
rras20-fix |
Обновление Routing and Remote Access Service (в девичестве Steelhead). Требует установки pptp2-fix.
Добавлены новые Demand dial фильтры, возможность фильтрации фрагментированных IP-пакетов и т.д.
|
ssl-fix |
Включает обновленную версию Schannel.dll. Исправляет свежеобнаруженные проблемы в
Secure Sockets Layer (SSL) и некоторые мелкие ошибки. Банки за пределами США теперь могут
воспользоваться 128-битной шифрацией.
|
priv-fix |
Используя программу Sechole.exe, локальный пользователь может получить администраторские
привилегии.
|
При необходимости установки нескольких hot fix'ов рекомендуемый порядок установки выглядит следующим
образом:
asp-fix
dns-fix
iis-fix
zip-fix
roll-up
getadmin-fix
lm-fix
roll-up/cluster
winsupd-fix
ndis-fix
scsi-fix
2gcrash
simptcp-fix
ide-fix
wan-fix
pent-fix (x86 only)
joystick-fix (x86 only)
SAG-fix
iis4-fix
pptp-fix
teardrop2-fix
tapi21-fix
pcm-fix
srv-fix
y2k-fix
euro-fix
atapi-fix
netbt-fix
prnt-fix
lsa2-fix
sfm-fix
pptp2-fix
rras20-fix
ssl-fix
priv-fix
Число исправлений уже пошло на четвертый десяток, их установка уже давно представляет собой весьма занудный и мучительный процесс.
Так что мировая общественность с нетерпением ждет выхода 4-го Service Pack'а, выход которого назначен
на лето 1998 года (прошедшая в апреле информация о преждевременном выходе оказалась неверна - речь шла
всего лишь о бета-версии).
SP3 и некоторые hotfix'ы для русской версии NT можно найти на
ftp://ftp.microsoft.com/bussys/winnt/winnt-public/fixes/rus/nt40/.