Защита информации в Интернет

Инвентаризация приложений и идентификационных маркеров



Инвентаризация приложений и идентификационных маркеров

Как и любой другой сетевой ресурс, приложения должны иметь возможность обмениваться друг с другом информацией по сети. Одним из самых популярных протоколов, разработанных для обеспечения этого процесса, является протокол RPC (Remote Procedure Call). На основе RPC работает программа rpcbind, основная задача которой состоит в посредничестве между запросами клиентов и портами, которые эта программа динамически назначает находящимся в режиме ожидания приложениям. Несмотря на постоянную головную боль, которую много лет вызывают у администраторов брандмауэров подобные программы, служба RPC остается чрезвычайно популярным механизмом. Существует утилита rpcinfo, которая, подобно программе finger, может применяться для инвентаризации приложений RPC, находящихся в состоянии ожидания запроса на удаленном узле. Обычно для того чтобы воспользоваться этой утилитой, во время сканирования достаточно установить, что открыт порт 111 (rcbind) или 32771 (вариант утилиты от компании Sun).

rpcinfo -p 192.168.202.34
program vers proto port
100000 2 tcp 111 rpcbind
100002 3 udp 712 rusersd
100011 2 udp 754 rquotad
100005 I udp 635 mountd
100003 2 udp 2049 nfs
100004 2 tcp 778 ypserv


Из полученных результатов можно заключить, что на данном узле запущен системный процесс rusersd, программное обеспечение служб NFS и NIS (ypserv — сервер службы NIS). Таким образом, с помощью команд rusers, shomount -e и pscan -n можно попытаться получить более подробную информацию. Кроме того, для инвентаризации можно также воспользоваться утилитой pscan (упоминавшейся выше) с параметром -г.
Утилиту, аналогичную rpcinfo, можно применять и в системе Windows NT. Эта утилита, написанная Дэвидом Литчфилдом (David Litchfield) называется rpcdump. Как видно из следующего примера, утилита rpcdump ведет себя аналогично rpcinfo с параметром -р.

D:\Toolbox>rpcdump 192.168.202.105
Program no. Name Version Protocol Port
(100000) portmapper 4 TCP 111
(100000) portmapper 3 TCP 222
(100001) rstatd 2 UDP 32774
(100021) nlockmgr 1 UDP 4045

Существует и несколько других приемов использования службы RPC, с помощью которых хакеры могут получать требуемую информацию. Так, в системе Solaris компании Sun используется вторая утилита, необходимая для работы с портами с номерами выше 32771. Следовательно, модифицированная версия утилиты rpcinfo при обращении к этому порту позволит получить приведенную выше информацию, даже если порт 111 заблокирован.
Хотя лучший инструмент RFC-сканирования из всех, которые нам доводилось видеть, входит в состав коммерческого пакета CyberCop Scanner компании Network Associates, Inc., для поиска определенных приложений RPC хакер может воспользоваться бесплатной утилитой rpcinfo со специальными параметрами. Например, для того чтобы проверить, работает ли на исследуемом компьютере по адресу 192.168.202.34 сервер TTDB (ToolTalk Database), известный своей уязвимостью (см. главу 8), можно воспользоваться следующей командой.
rcpinfo -n 32771 -t 192.168.202.34 100083
В службе RPC серверу TTDB соответствует программный номер 100083.
Самый простой способ воспрепятствовать такой утечке информации, —предусмотреть тот или иной механизм аутентификации, применяемый со службой RPC (более подробные сведения об имеющихся возможностях можно получить из документации). Второй метод состоит в использовании пакета, подобного Secure RPC компании Sun, который обладает встроенными средствами аутентификации, базирующимися на криптографическом механизме с использованием открытого ключа. Наконец, обязательно убедитесь в том, что порты 111и32771 (rpcbind) фильтруются на уровне брандмауэра.
Как уже упоминалось в предыдущем разделе, посвященном методам инвентаризации Windows NT, классический способ проведения инвентаризации приложений практически любой системы состоит в подключении к порту, о котором известно, что он находится в состоянии ожидания запросов. Это можно осуществить с помощью утилит telnet или netcat. Мы не будем снова подробно рассматривать эти же вопросы, а лишь остановимся на некоторых полезных функциях netcat, которые вкратце описаны в файлах, поставляемых с самой утилитой. Например, попробуйте перенаправить вывод специального текстового файла на вход netcat, чтобы попытаться получить более подробную информацию. Создайте файл nudge. txt, содержащий одну-единственную строку GET / HTTP/1.0 и два символа перевода строки, а затем, запустите следующую команду.

nc -nw -о banners.txt
192.168.202.34 80 < nudge.txt
HTTP/1.0 200 OK
Server: Sun_WebServer/2.0
Date: Sat, 10 Apr 1999 07:42:59 GMT
Content-Type: text/html
Last-Modified: Wed, 07 Apr 1999 15:54:18
GMT
ETag: "370a7fbb-2188-4"
Content-Length: 8584
<HTML> <HEAD>
<META NAME="keywords"
CONTENT="BigCorp, hacking, security">
<META NAME="description"
CONTENT»"Welcome to BigCorp's Web site.
BigCorp is a leading manufacturer of security holes.">
<TITLE>BigCorp Corporate Home Page</TITLE>
</HEAD>



Содержание раздела