Коллектив авторов - Защита от хакеров корпоративных сетей
[~] % telnet localhost imap
Trying 127.0.0.1...
Connected to localhost.
Escape character is “^]”.
* OK localhost IMAP4rev1 v12.250 server ready
A001 LOGIN oliver welcome
A001 OK LOGIN completedНеобходимо отметить, что существуют расширения протокола IMAP, которые предотвращают прохождение информации аутентификации по сети в открытом виде, в дополнение к шифрованию сессии. Прослушивание NNTP (порт 119) Сетевой протокол передачи новостей (NNTP) поддерживает чтение и написание для сообщений новостных групп Usenet. Аутентификация NNTP может проходить многими путями. В традиционных системах аутентификация базировалась на сетевом адресе клиента, разрешая доступ к серверу новостей только тем хостам (или сетям), которые находятся в указанном диапазоне адресов. Расширения NNTP были созданы для поддержки разнообразных методов аутентификации, включая открытые и шифрованные механизмы реагирования. Механизм аутентификации открытым текстом прямой и может быть с легкостью перехвачен в сети. Это выглядит следующим образом:
[~] % telnet localhost 119
Trying 127.0.0.1...
Connected to localhost.
Escape character is “^]”.
200 Welcome to My News Server (Typhoon v1.2.3)
AUTHINFO USER oliver
381 More Authentication Required
AUTHINFO PASS welcome
281 Authentication AcceptedПрослушивание rexec (порт 512)
Сервис rexec, называемый rexеcd в большинстве UNIX-операционных систем, является традиционным сервисом, используемым для удаленного выполнения команд. Сервис выполняет аутентификацию посредством послания имени пользователя и пароля от клиента серверу в открытом виде. Сервис получает буфер от клиента, состоящий из следующих данных:
• номер порта в ASCII, указание порта серверу, на который посылать стандартное сообщение об ошибке. Этот порт на хосте клиента, который будет ожидать соединения. 0 указывается, в случае если это не требуется, данная строка разделяется NULL;
• разделенное NULL-имя пользователя. Длина 16 символов или меньше;
• разделенный NULL-пароль. Длина 16 символов или меньше;
• разделенная NULL-команда для выполнения на удаленном хосте.
Пример запроса аутентификации выглядит следующим образом:0 oliver welcome touch /tmp/hello
Если аутентификация прошла успешно, сервером возвращается NULL, в противном случае значение 1 в дополнение к строке ошибки. Прослушивание rlogin (порт 513)
Протокол rlogin предоставляет практически такую же функциональность, как и протокол Telnet, объединенный с механизмом аутентификации протокола rexec с некоторыми исключениями. Он поддерживает доверительные отношения, которые указывают посредством файла rhosts в домашней директории пользователя. Этот файл содержит список тех пользователей и хостов, на которых они находятся, которым разрешено подключаться к указанным учетным записям без пароля. Аутентификация проводится путем доверия тому, что пользователь удаленного клиента rlogin говорит, кто он или она. Данный механизм аутентификации работает только между UNIX-системами и является чрезвычайно некорректным во многих отношениях; поэтому он не используется широко в сетях на сегодняшний день. Если доверительных отношений не существует, имя пользователя и пароль передаются в открытом виде по этому протоколу, как и у rexec:
• номер порта в ASCII, указание порта серверу, на который посылать стандартное сообщение об ошибке. Этот порт на хосте клиента, который будет ожидать соединения. 0 указывается, в случае если это не требуется, данная строка разделяется NULL;
• разделенное NULL-имя пользователя. Длина 16 символов или меньше;
• разделенный NULL-пароль. Длина 16 символов или меньше;
• разделенная NULL-команда для выполнения на удаленном хосте.
Сервер возвращает 0, чтобы показать, что он получил эти данные. Если аутентификация посредством автоматического механизма не удается, соединение передается программе входа в систему, далее вход в систему проходит так, как будто пользователь подключился с помощью сервиса Telnet.
Прослушивание X11 (порт 6000+)X11 Window-система использует «магическую булочку» («magiccookie») для авторизации клиентов, пытающихся подключиться к серверу. Случайно сгенерированный 128-битный идентификатор посылается клиентами X11 во время соединения к серверу X Window. Перехватив данный идентификатор, нарушитель может использовать его для подключения к тому же серверу X Window. Обычно идентификатор хранится в файле . Xauthority в домашней директории пользователя. Данный идентификатор передается серверу X Window программой xdm при входе в систему.
Прослушивание дескрипторов файла NFSСетевая файловая система (NFS), созданная компанией Sun Microsystems, для разрешения доступа к конкретному файлу или директории на файловом сервере использует так называемый дескриптор файла NFS. Прослушивая сеть на наличие дескрипторов файла NFS, существует возможность перехвата данного дескриптора и использования его для получения доступа к ресурсу. К сожалению, протокол NFS использует открытую сетевую обработку – удаленный вызов процедуры (ONC-RPC) для выполнения операций, представляющих механизм аутентификации, более сложный, чем механизм аутентификации открытым текстом. Данный факт не обеспечивает большую защиту; однако делает сложным приведение примера в данной книге. Процесс, который делает легитимным доступ клиента NFS к файловой системе на сервере, следует далее.
• Пытаясь подмонтировать удаленную файловую систему, пользователь посылает запрос на монтирование.
• Локальная операционная система связывается с сервисом удаленного вызова процедур rpc.mountd на удаленном хосте, посылая ему имя файловой системы, к которой она хочет получить доступ.
• Программа mountd производит проверку достоверности доступа для определения, пришел ли запрос от привилегированного порта на хосте клиента и есть ли разрешение у клиентского хоста на доступ к данному хосту.
• Программа mountd посылает клиенту ответ, включающий дескриптор файла NFS, который предоставляет возможность доступа к корневому каталогу файловой системы, доступ к которой пользователь хочет получить.
• Программа клиента далее связывается демоном NFS (nfsd) на целевом хосте, передает дескриптор файла и получает доступ к ресурсу.
Перехват информации аутентификации Windows NTОперационная система Windows поддерживает несколько разных типов аутентификации, каждый из которых постепенно увеличивает свою безопасность. Использование слабых механизмов аутентификации Windows NT, как объясняется далее, создает одно из самых слабых звеньев в безопасности Windows NT. Типы поддерживаемых механизмов аутентификации описаны ниже.
• Открытый текст. Пароли передаются по сети в открытом виде.
• Управляющая программа локальной сети (LAN Manager). Используется слабый механизм запроса-ответа, при котором сервер посылает запрос клиенту, клиент использует его для операции зашифрования кэша пароля пользователя и далее посылает его обратно серверу. Сервер проделывает то же самое и сравнивает результаты для аутентификации пользователя. Механизм, которым данный кэш был преобразован до передачи, является слабым, и исходный кэш может быть перехвачен из сети и взломан довольно просто. В Windows NT 4, несмотря на то что используется более стойкий механизм аутентификации управляющей программы локальной сети NT (NTLM), LM-кэш все еще посылается через сеть вместе с NTLM-кэшем, что понижает общую защиту до защиты механизма LM.
• Управляющая программа локальной сети NT (NTLM) и Управляющая программа локальной сети NT v2 (NTLMv2). NTLM и NTLMv2 предоставляют намного более стойкий механизм запроса-ответа, который намного усложняет процесс взлома перехваченного запроса аутентификации. NTLMv2 был представлен в релизе Service Pack 4 для Windows NT 4.0. NTLMv2 должен использоваться, если возможно, однако необходимо удостовериться, что ваши клиенты поддерживают данный протокол. В случае необходимости нужно установить дополнительное программное обеспечение на клиентах для использования NTLMv2.
Развитие данных механизмов происходит серией итерационных шагов по мере нахождения уязвимостей в каждой предыдущей реализации (к счастью, уязвимости становятся менее существенными с каждым улучшением).
Существуют специализированные анализаторы трафика, которые поддерживают перехват информации аутентификации Windows NT. Хорошим примером данных анализаторов трафика является анализатор, включенный в состав программы L0phtcrack (являющийся программой для взлома паролей исключительно для Windows NT). Документация, поставляемая вместе с L0phtcrack, очень детально объясняет, как создаются кэши паролей в Windows NT. Данная программа может быть получена на http://stake.com/research/lc3.Перехват другого сетевого трафика
Несмотря на то что порты, рассмотренные нами, в большинстве случаев прослушиваются вследствие того, что информация аутентификации проходит в открытом виде, они не являются единственными портами, интересующими нарушителя. Анализатор трафика может быть использован для перехвата трафика на других портах, что показано в данном разделе.