Предыдущая глава | Содержание | Следующая глава

2. Программные ошибки Windows NT, связанные с нарушениями защиты.

2.1. Ошибки, дающие злоумышленнику эквивалент административного доступа

GetAdmin

Программа GetAdmin, написанная Константином Соболевым [4.2.19], используя ошибку в Win32 API, добавляет заданного пользователя в группу Administrators. Microsoft выпустила исправление для этой проблемы. См. [4.2.1-Q146965] и [4.2.2 - getadmin-fix]. Эта программа должна запускаться локально, но может использоваться при сетевой атаке в виде "троянского коня"

Sechole

Программа sechole, написанная Prasad Dabak, Sandeep Phadke и Milind Borate [4.2.23], помещает любого пользователя, запустившего ее, в локальную группу администраторов. Программа находит в памяти адрес системной функции OpenProcess и замещает ее собственным кодом. Затем программа запрашивает системную привилегию отладки (seDebugPriviledge), что позволяет ей увеличить свои права. Запрос оказывается успешным, поскольку проверка прав доступа к этой привилегии производится в функции, которую программа заместила своим кодом. Затем программа может добавить пользователя, который ее запустил к локальной группе администраторов.

Microsoft выпустила исправление для этой проблемы. См. [4.2.1-Q190288] и [4.2.2-privfixi.exe]

Следует отметить, что весьма вероятно, что ошибки такого рода будут продолжать обнаруживаться. Авторы обеих программ отмечают, что не искали их специально, а наткнулись случайно. В то же время, целеустремленный взломщик с глубоким знанием системного программирования для Windows NT, вероятно, сможет найти другие способы эксплуатации ошибок и недочетов в интерфейсе прикладного программирования Windows NT.

2.2. Атаки вида "отказ в обслуживании" (Denial of Service)

Атаки вида "отказ в обслуживании" не приводят обычно к получению злоумышленником несанкционированного доступа к системе, а вызывают более или менее серьезные сбои в работе системы в целом или одной или нескольких подсистем.

В данном разделе при описании различных атак приводятся обычно ссылки на статьи Microsoft Knowledge Base (вида Q123456) и исправления, выпущенные Microsoft (см. пп. 4.2.1 и 4.2.2). В данном разделе в основном не приводятся ссылки на авторов, впервые обнаруживших или сообщивших об описываемых ошибках. К сожалению, Microsoft не упоминает в своих документах источники сообщений об ошибках, а в различных источниках одни и те же ошибки могут сообщаться несколько раз разными авторами.

2.2.1 Поток пакетов с установленным флагом SYN (SYN Flooding)

Протокол TCP для установления соединения использует механизм three-way handshake. В процессе установления соединения посылаются три пакета. Сторона, запрашивающая установление соединения, посылает ожидающей соединения стороне пакет с выставленным флагом SYN. Ожидающая соединения сторона отвечает пакетом с установленными флагами SYN и ACK. Запрашивающая соединение сторона должна ответить пакетом ACK и после этого соединение считается полностью установленным.

В случае атаки SYN flood злоумышленник посылает на атакуемую систему поток пакетов SYN с поддельными адресами отправителя. На каждый такой пакет атакуемая система отвечает пакетом SYN-ACK, выделяет определенные ресурсы под устанавливаемое соединение и ожидает ответа в течение определенного тайм-аута. После этого она несколько раз повторяет посылку SYN-ACK с увеличивающимся тайм-аутом. Затем система сбрасывает "недоустановленное" соединение и освобождает выделенные ресурсы. Последовательная посылка множества пакетов SYN может привести к "зависанию" сетевой службы, которой они адресованы.

Исправление этой проблемы имеется в Service Pack 3 для Windows NT 4.0.

2.2.2. Посылка пакетов TCP с установленным флагом срочности и некорректным указателем срочных данных

Данный вид атаки вызывает остановку Windows NT (синий экран) с ошибкой "Stop 0x0000000A in Tcpip.sys". Остановка вызывается посылкой TCP-пактов с установленным флагом URGENT (флаг указывает, что пакет содержит срочные данные, которые должны быть обработаны вне очереди. Определен в спецификации, но практически не используется) и указателем срочных данных, установленным на конец TCP-пакета. Windows NT ожидает данные, следующие после точки, на которую установлен указатель срочных данных. Не найдя их там, она рушится.

Microsoft выпустила исправление для решения этой проблемы ( teardrop2-fix ). Его следует применять после установки Service Pack 3.

См. Q143478 .

2.2.3. Программа LAND - посылка TCP-пакетов с совпадающими адресами источника и получателя

Данная атака использует посылку TCP-пакета c установленным флагом SYN и с совпадающими адресами источника и получателя, а также с совпадающими входящим и исходящим номерами портов. После получения подобного пакета Windows NT замедляет работу примерно на 1 минуту.

Данная проблема исправлена в teardrop2-fix . См. также Q165005

2.2.4. Программы Teardrop и Teardrop-2. Использование некорректной фрагментации.

Для проведения данной атаки используется пары IP-пакетов с установленным флагом фрагментации . При этом смещения выбираются таким образом, что при сборе результирующего UDP-пакета, данные в двух IP-пакетах перекрываются и данные второго затирают заголовок первого. В результате данной атаки Windows NT рушится с ошибкой STOP 0x0000000A или 0x00000019.

Данная проблема исправлена в teardrop2-fix . См. также Q179129.

2.2.5. Возрастание загрузки процессора до 100% при посылке некорректных данных на порты 53, 135, 1031

При установлении telnet-соединения с портом 53 (DNS) и посылкой на него нескольких символов, завершающихся символом перевода строки, DNS-сервер, входящий в состав Microsoft Windows NT Server 4.0, выдает ошибку "DNS Server select() Function failed. The data is the error.", становится нестабильным и иногда рушится. Кроме того, возрастает загрузка процессора.

Данная ошибка исправлена в Service Pack 3. См. Q162927

При аналогичном соединении с портом 135 (NetBIOS Location Service) загрузка процессора также возрастает до 100 процентов.

При работающем Internet Information Server, такую же ошибку можно вызвать установлением соединения на 1031 порт.

2.2.6. Использование программы ping модифицированных ICMP пакетов - Ping Of Death.

Windows NT виснет при получении некорректных ICMP -пакетов. Microsoft выпустила заплатку для этой проблемы. Первое издание называлось icmp-fix. В последствии появилась вариация этой же атаки, которая не устранялась этой заплаткой. Устранение этой проблемы включено в teardrop2-fix. Эти заплатки следует применять после установки Service Pack 3. ( Q154174)

Данная атака называется ping of death-2, потому что более старые версии Windows NT (3.51) были подвержены другой подобной атаке. Использовались длинные пакеты ICMP (64k), которые приводили к зависанию системы.

2.2.7. Крах WINS-сервера

Посылка потока UDP-пакетов случайного размера и содержания на порт 137 (служба имен NetBIOS) приводит к тому, что WINS-сервер терминируется. При этом в Event Log может быть записано следующее сообщение:


Event ID: 4119

   Source  : WINS

   Type    : Error

   Description:

   WINS got a packet that has the wrong format (for example, a label may be

   more than 63 octets).

Microsoft выпустила исправление для решения этой проблемы ( teardrop2-fix ). Его следует применять после установки Service Pack 3.

См. Q155701 .

2.2.8. Конфликт IP-адресов.

Если система Windows NT обнаруживает в сети IP-адрес, совпадающий с ее собственным, она выдает сообщение об ошибке и отключает адаптер с конфликтующим IP-адресом. Таким образом, запуск в том же сетевом сегменте машины с тем же IP-адресом, что и у системы Windows NT, эффективно приведет к отказу в обслуживании.

Данное поведение (отключение адаптера с конфликтующим IP-адресом) считается нормальным для Windows NT и Microsoft не предполагает выпускать исправления.

2.2.9. DNS-сервер терминируется с ошибкой Access Violation

При получении DNS-запроса , модифицированного таким образом, что счетчик Answer Count в начальном запросе установлен в значение большее нуля, DNS-сервер терминируется с ошибкой Access Violation.

Исправление этой проблемы содержится в dns-fix, а описание в Q142047 .

2.2.10. Services.exe виснет при получении сообщения от SAMBA-клиента с пользовательским именем длиннее 15 символов.

При посылке сообщения на Windows NT с использованием утилиты smbclient с UNIX-машины на машину Windows NT при длине имени пользователя на UNIX больше 15 символов программа управления системными службами services.exe перестает отвечать на запросы.

Исправление этой проблемы содержится в Service Pack 3, а описание в Q161830.

2.2.11. Пакеты SMB с некорректно установленной длиной

При получении пакета SMB с запросом на вход в систему и неправильно указанной длиной данных Windows NT рушится с синим экраном. Исправление этой проблемы содержится в srv-fix, а описание в Q180963 .


Предыдущая глава | Содержание | Следующая глава
Используются технологии uCoz