Удаленное проникновение, или Золотые правила безопасной сети

Сегодня мы с вами поговорим о безопасности в локальной сети и на конкретном примере рассмотрим, насколько уязвимой может быть система, и что предпринять, чтобы превратить ваш ПК в черный ящик для взломщика. В качестве объекта исследования совершенно случайным образом был избран самый обычный ничем не примечательный терминал локальной сети. Забегая вперед, замечу, что из 10 кандидатов на "препарацию" две системы оказались беспрецедентно уязвимы (полный доступ на запись/чтение), и говорить в данном случае о какой-либо защите вообще не приходится. Поэтому ради "спортивного интереса" было решено пренебречь этими двумя и рассмотреть более усредненный случай с каким-никаким уровнем защиты.

Продвигаемся вглубь…


В качестве инструмента исследования был использован известный сканер уязвимостей X-Spider 7.5. Всего около пяти минут понадобилось нашему "пауку", для того чтобы предоставить полный отчет, включающий в себя список открытых TCP-портов. Итак, вот, собственно, и результаты сканирования:

Что мы видим?

1. Система Windows 5.1 (по-нашему XP) — информация подобного рода хотя и относится к категории "просочившейся", однако не представляет какой- либо серьезной угрозы безопасности вашему ПК.

2. Открытый 135 tcp-порт говорит о том, что на компьютере запущена служба DCOM. Вроде бы, ничего страшного. Но… что мы видим далее…

3. Открыт 135 udp-порт, который принадлежит сервису Microsoft RPC (Remote Procedure Call — удаленное выполнение команд). Это уже не просто открытый порт, а серьезная уязвимость, обозначенная в бюллетене безопасности Microsoft под кодовым номером (ms03-043). Вот как описывается данная уязвимость: переполнение буфера обнаружено в Messenger Service в Microsoft Windows. Удаленный атакующий может выполнить произвольный код на уязвимой системе. Проблема связана с тем, что Messenger Service не проверяет длину сообщения. В результате злонамеренный пользователь может послать сообщение, которое переполнит буфер и выполнит произвольный код на уязвимой системе с привилегиями SYSTEM. Говоря простым языком, сформированное особым образом сообщение, переданное с помощью обычной команды "net send", может привести к запуску на машине жертвы любого программного кода.
Есть ли в данном случае выход? Конечно же, есть! Первое, что надо сделать — это отключить службу DCOM, если она действительно не нужна, и обязательно установить пакет обновлений Microsoft: сайт . Подробней о данной уязвимости можно узнать по адресу: сайт .

4. Открытый 139 порт — запущен сервис NetBios (Network Basic Input/Output System). Ну, это просто классика, скажут искушенные охотники, и они будут правы. Действительно, какой из портов расскажет о вашей машине столько, сколько 139? Список ресурсов, список активных сессий и многое другое, доступное через нулевую сессию: доступ по нулевой сессии представляет собой возможность неавторизованного подключения к хосту с операционной системой, основанной на Windows NT (или ОС семейства UNIX с установленным пакетом Samba) с пустым логином и паролем. При включенной нулевой сессии анонимный пользователь может получить большое количество информации о конфигурации системы (список расшаренных ресурсов, список пользователей, список рабочих групп и т.д.). Полученная информация в дальнейшем может быть использована для попыток несанкционированного доступа. Открытый 139 порт относится к категории серьезных уязвимостей. В бюллетенях безопасности Microsoft он значится под кодовым номером ms04- 007. Описание уязвимости звучит так: "Переполнение буфера обнаружено в Microsoft ASN.1 Library ("msasn1.dll") в процессе ASN.1 BER
декодирования". Уязвимость может эксплуатироваться через различные службы (Kerberos, NTLMv2) и приложения, использующие сертификаты. Удаленный пользователь может послать специально обработанные ASN.1 данные к службе или приложению, чтобы выполнить произвольный код с SYSTEM-привилегиями.

Есть ли выход? Конечно, есть. Прежде всего, необходимо установить обновление: сайт . Также необходимо отключить доступ по нулевой сессии. Для этого:

a) в разделе реестра HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\LSA установить значение параметра RestrictAnonymous = 2 для Windows 2000/XP/2003 (1 для Windows NT3.5/NT4.0 ) (тип параметра — REG_DWORD);

b) для Windows 2000/XP/2003: в разделе реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver установить значение параметра RestrictNullSessionAccess = 1 (тип параметра — REG_DWORD); для Windows NT3.5/NT4.0: в разделе реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanManServer\Parameters установить значение параметра RestrictNullSessAccess = 1 (тип параметра — REG_DWORD);

c) перегрузить систему, чтобы изменения вступили в силу.

5. Следующим в нашем списке оказывается открытый 445 порт, который принадлежит службе Microsoft Directory Service. Не грех будет вспомнить, что именно 445 — один из открытых портов, через который в свое время активно "щемился" нашумевший червяк MSBlast. При отсутствии соответствующих заплаток 445 порт — без преувеличения настоящая дыра всех времен и народов. Следующие уязвимости и варианты их реализации суть яркое подтверждение вышесказанному: "Удаленное выполнение команд (ms05-027), (ms05-043)". То, что значится в бюллетене под кодовым именем (ms05-027), имеет следующее описание со всеми вытекающими отсюда последствиями: "Уязвимость в службе Print Spooler позволяет удаленному пользователю выполнить произвольный код на целевой системе". А теперь давайте разберем сухой майкрософтовский отчет поподробней. Служба Spooler предназначена для управления принтерами и заданиями печати и экспортирует интерфейс на базе RPC (Remote Procedure Call). В данной службе присутствует уязвимость переполнения буфера. Удаленный или локальный пользователь может подключиться к системе через NULL-сессию и с помощью специального запроса выполнить произвольный код с привилегиями Local System или вызвать отказ в обслуживании. В системах Windows XP SP2 и Windows Server 2003 данная уязвимость не позволяет атакующему выполнить произвольный код — только отказ в обслуживании. Данной уязвимости подвержены следующие версии ОС: Microsoft Windows 2000 Service Pack 4, Microsoft Windows XP Service Pack 1, Microsoft Windows XP Service Pack 2, Microsoft Windows Server 2003. Как злоумышленник может воспользоваться этой уязвимостью? Она может быть использована удаленно путем создания специального запроса к службе Printer Spooler. В Windows 2000 и Windows XP SP1 эта служба доступна извне с помощью именованных каналов и посредством NULL-сессии. В Windows XP SP2 и Windows Server 2003 для доступа к этой службе необходимо пройти аутентификацию, т.е. для удачной эксплуатации необходимо иметь учетную запись на удаленном хосте.
Как все это дело прикрыть? Просто. Достаточно лишь установить обновление для Windows ( сайт ), и все.

6. Следующим открытым портом оказался порт 4899, принадлежащий Radmin'у. Комментарий в данном случае будет не такой горячий, как в предыдущих: просто на машине установлена утилита удаленного администрирования. Хотя для злонамеренного пользователя данная информация не должна показаться столь уж бесполезной;).

7. И напоследок открытый порт tcp-порт 5000, который принадлежит службе SSDP. Данный сервис отвечает за обнаружение UPnP-устройств в домашней сети. Уязвимость в службе SSDP, а точнее, отсутствие таковой, не представляет реальной угрозы и не может быть использована для удаленного выполнения кода, отказа в обслуживании и т.п., тем не менее, никогда не стоит забывать простое правило: "меньше служб — меньше открытых портов — меньше вероятность того, что ваша система окажется уязвимой". При ненадобности "обнаруживать UPnP-устройства в вашей сети" смело отключаем эту службу через Панель управления > Администрирование > Службы.

Подведем итог. 6 открытых портов: 135-udp, 135-tcp, 139-tcp, 445-tcp, 4899-tcp, 5000-tcp, половина из которых (135-udp, 139-tcp, 445-tcp) открывают практически безграничные возможности для "творчества" удаленного "злоадмина".

Чтобы не порутили…

1. Первое, что необходимо сделать — установить самые последние обновления для вашей ОС. Скачать обновления можно с официального сайта Microsoft, предварительно установив как можно более новый "билд" вашей ОС. Но дыры как находили, так и будут находить, поэтому, если вы обладатель самых свежих патчей, расслабляться все равно не стоит: с момента обнаружения новой уязвимости и до момента выхода заплатки "умные люди" успевают написать эксплоит или создать червя…

2. В свойствах подключения крайне желательно оставить только самое необходимое, а именно ТСР/IP. "Службу доступа к файлам и принтерам сети Microsoft" при отсутствии "реальных шаров" необходимо отключить, чтобы не облегчать задачу всем любителям "дефолтовых" C$, D$, ADMIN$ и т.д.

3. Все неиспользуемые сервисы желательно выключить: FTP, Telnet, Удаленный реестр. Это не только улучшит производительность вашей системы, но и автоматически закроет кучу открытых портов.

4. Установите файловую систему NTFS, которая позволяет разграничить доступ к ресурсам вашего ПК и усложнит процесс локального взлома базы SAM.

5. Удалите лишние учетные записи, а в оснастке gpedit.msc запретите локальный и сетевой вход, для всех пользователей оставив только используемых на данной машине, запретив доступ по сети для Администратора.

6. Не используйте автоматический ввод пароля при входе в систему, особенно для пользователя "Администратор".

7. Желательно, чтобы на вашем ПК был установлен какой-нибудь персональный firewall, закрывающий доступ к открытым портам (ZoneAlarm, Outpost и т.д.). С помощью firewall вы сможете легко и просто контролировать доступ программ к Интернету. Любая попытка вырваться в сеть не останется незамеченной вашей "огнедыщащей стеной". В настройках вашего брандмауэра установите фильтрацию TCP/IP-пакетов, оставив открытыми только используемые порты (80 порт для http-сервера).

8. Не стоит забывать и о снифферах, с помощью которых ваши пароли могут стать настолько же общественными, насколько места "М" и "Ж". Как известно, при установлении SMB-сеанса клиент отвечает серверу, отправляя в сеть LM-хэш (Lan Manager хэш) и NT-хэш (Windows NT). Наличие двух аналогичных функций необходимо для совместимости со старыми ОС. Как при локальном, так и при удаленном способах входа в систему SRM (Security Reference Monitor — "смотрящий" за безопасностью — служба, работающая в режиме ядра, контролирующая безопасность системы посредством таких компонентов, как LSA — Local Security Authority, SAM — Security Accounts Manager и др.) сначала пытается идентифицировать NT-хэш. Если его нет, тогда пытается проверить подлинность LM-хэша, криптостойкость которого оставляет желать лучшего… После установки SP4 (для Windows 2000) и SP2 (для XP) у пользователя появляется возможность отключить использование LM-хэша, используя более совершенную версию NTLMv2. При использовании NTLMv2 можно установить значение этого параметра равным 0, 1, 2, 3, 4 и 5. Если это значение равно 0, то NT при аутентификации сетевого соединения передает по сети пароли как в виде NTLM, так и в виде LM. Если значение равно 1, то NT передает оба типа хэш-кодов только тогда, когда этого требует сервер. Если значение равно 2, то хэш-коды паролей в формате LM не используются ни при каких обстоятельствах. Если значение равно 3, применяется только аутентификация по протоколу NTLMv2. Значение параметра, равное 4, запрещает контроллеру домена использовать аутентификацию LM, а значение 5 указывает на необходимость применять при аутентификации только протокол NTLMv2. Наиболее безопасной является установка значения этого параметра равным 2. Но следует иметь в виду, что системы, поддерживающие только протокол LM (т.е. Windows 95 и Windows for Workgroups), не смогут установить соединение с данной системой NT. Подробнее с NTLMv2 можно познакомиться в соответствующих статьях Microsoft Knowledge Base:
support.microsoft.com/support/kb/articles/q147/7/06.asp
support.microsoft.com/support/kb/articles/q175/6/41.asp

9. Не стоит пренебрегать установкой антивирусной программы. Увлекаться тоже не стоит. То, что "Каспер" может "кастрировать" "Панду", и наоборот — ни для кого не секрет.

10. Если вы любитель всевозможных сервисов, увеличивающих круг общения (ICQ, IRC и др.), необходимо помнить о том, что охотников за вашими личными данными достаточно для того, чтобы выведать у вас самую различную информацию, которая впоследствии может быть использована для удаленного вторжения. Реальный случай из жизни. В ICQ методом социальной инженерии "хакер" прикидывается девчонкой и вступает с жертвой в живой разговор. Несколько минут разговора — и происходит обмен фотографиями, одна из которых (ясно, какая) — самый настоящий троян. Жертва открывает jpg-файл, а вместо обещанного откровенного эксклюзива — ошибка при открытии файла — троян уже в вашей системе…

Вместо PS: Безопасность есть процесс…

Бойцев Олег Михайлович, boyscout_zone@yahoo.ru


Компьютерная газета. Статья была опубликована в номере 19 за 2006 год в рубрике безопасность

©1997-2024 Компьютерная газета