Инвентаризация UNIX
Большинство современных реализаций системы UNIX основываются на стандартных средствах обеспечения сетевой безопасности протокола TCP/IP. Благодаря этому они не так щедро раздают всем желающим информацию о сети, как система NT, в которой используется унаследованный от предыдущих версий интерфейс NetBIOS, или система NetWare, работа которой основывается на собственном механизме безопасности компании Novell. Естественно, это вовсе не означает, что система UNIX является неуязвимой, а ее сетевые ресурсы не могут подвергнутся инвентаризации. Все зависит от конфигурационных параметров системы. Например, службы RFC (Remote Procedure Call — удаленный вызов процедур), N1S (Network Information Service — сетевая информационная служба) и NFS (Network File System — сетевая файловая система), преимущества которых очень часто используют разработчики, являются излюбленными "мишенями" для взломщиков на протяжении уже многих лет. Ниже вы познакомитесь с некоторыми классическими методами инвентаризации UNIX (другими словами, старые и проверенные способы, которые, по-видимому, практически всегда будут срабатывать).
Инвентаризация сетевых и совместно используемых ресурсов UNIX
Лучшими источниками информации о сети UNIX являются базовые методы исследования стека протоколов TCP/IP, которые рассматривались в главе 2. Среди других средств можно выделить утилиту showmount, которую можно использовать для инвентаризации экспортируемых в сети файловых систем NFS. Например, предположим, что в результате сканирования стало известно, что на исследуемом компьютере в состоянии ожидания запросов находится порт 2049 (NFS). В этом случае с помощью утилиты showmount можно выяснить, какие именно каталоги являются совместно используемыми.
showmount -e 192.168.202.34 Сейчас в мире UNIX система NFS является не единственным примером программного обеспечения, с помощью которого обеспечивается совместное использование данных. В настоящее время возрастает популярность пакета Samba, разработанного в рамках модели открытого кода. Этот пакет обеспечивает клиентам SMB возможность совместного использования файлов и принтеров. Как уже упоминалось, протокол SMB (Server Message Block) представляет собой основу для работы в сети клиентов Windows. Пакет Samba можно получить по адресу http://www.samba.org (его можно найти в комплекте поставки большинства версий операционной системы Linux). Хотя в файле настройки сервера Samba (/etc/smb.conf) используются довольно простые параметры обеспечения безопасности, необходимо относится к ним внимательно, поскольку их неправильная настройка может привести к нарушению защиты совместно используемых сетевых ресурсов. Еще одним потенциальным источником информации о сети UNIX является служба NIS. Она служит ярким примером плохой реализации хорошей идеи (поддержка распределенной базы данных сетевой информации). С точки зрения обеспечения безопасности основной проблемой службы NIS является то, что, узнав доменное имя сервера NIS, с помощью простого запроса RPC можно получить любую из карт NIS (тар). Карты NIS — это файлы данных, в которых содержится важная информация каждого узла домена, например содержимое файлов паролей. Традиционное проникновение в сеть с использованием службы NIS предусматривает применение клиента N1S для попытки подбора доменного имени. Для достижения этой цели может служить и утилита pscan, написанная хакером Плювиусом (Pluvius). Ее можно найти во многих хакерских архивах Internet. Для того чтобы с помощью утилиты pscan получить всю необходимую информацию, ее необходимо запустить с параметром -n. Если вы используете службу NIS, то, по крайней мере, не применяйте легко угадываемое доменное имя (в котором используется название компании, имя DNS и т.д.). Подобрав доменное имя, хакер без труда может получить всю необходимую информацию, включая базу данных паролей. Если вы не планируете переходить на использование службы NIS+ (которая поддерживает режим шифрования данных и аутентификации через защищенные запросы RPC), то хотя бы отредактируйте файл /var/yp/securenets и ограничьте доступ к определенным узлам и сетям, либо откомпилируйте утилиту ypserv с включенной поддержкой TCP-оболочек. Кроме того, не помещайте в таблицы NIS информацию о системной записи root и других системных учетных записях. Как уже отмечалось в предыдущих разделах этой главы, протокол SNMP позволяет взломщикам получить много важной информации о системе UNIX, в которой запущен агент SNMP. Если в сети используются строки доступа, заданные по умолчанию, то в процессе сбора данных чрезвычайно полезной может оказаться утилита snmpwalk, входящая в состав утилит SNMP многих систем UNIX. Инвентаризация пользователей и групп UNIX
Возможно, самым старым приемом инвентаризации учетных записей пользователей, описанных в данной книге, является утилита finger. Эта утилита предоставляла простой и удобный способ получения информации о пользователях удаленного узла еще в те времена, когда сеть Internet не была настолько большой и простой в использовании. Мы упоминаем здесь об этой утилите в основном для того, чтобы акцентировать ваше внимание на основных способах ее использования. Многие средства проникновения в сеть по-прежнему базируются на использовании этой утилиты, поскольку нерадивые системные администраторы зачастую запускают системный процесс
fingerd без каких-либо мер обеспечения безопасности. Как и прежде, мы предполагаем, что в процессе сканирования портов была получена информация о том, что на исследуемом узле запущена служба finger (порт 79).
[root$]finger -I @target.hackme.com
[root$]finger 00192.168.202.34 Обнаружить и устранить подобную утечку информации очень просто. Достаточно не запускать демон fingerd (для этого нужно закомментировать соответствующую строку в файле inetd.conf и выполнить команду killall -HUP inetd), а также заблокировать порт 79 на брандмауэре. Если вам по каким-то причинам все же необходимо иметь доступ к программе finger, используйте TCP-оболочки (см. главу 8, "Хакинг UNIX"), чтобы ограничить доступ к узлу и регистрировать все соответствующие события. Можно также воспользоваться модифицированным демоном finger, предоставляющим ограниченное количество информации. Существуют также и другие, менее популярные утилиты, например rusers и rwho. Как и в случае с программой finger, от них лучше отказаться (обычно эти утилиты запускаются независимо от демона inetd). Поищите в файлах загрузки ссылки на файлы rpc.rwhod и rpc.rusersd). Утилита rwho возвращает перечень пользователей, которые в данный момент зарегистрированы на удаленном узле,
rwho 192.168.202.34
rusers -1 192.168.202.34
telnet 192.168.202.34 25 Конечно, самым старым и излюбленным приемом хакеров UNIX является попытка получения файла /etc/passwd, о чем мы подробно будем говорить в главе 8., "Хакинг UNIX". Сейчас же необходимо отметить, что один из наиболее популярных методов получения этого файла состоит в использовании протокола TFTP (Trivial File Transfer Protocol — простой протокол передачи файлов).
tftp 192.168.202.34 Инвентаризация приложений и идентификационных маркеров
Как и любой другой сетевой ресурс, приложения должны иметь возможность обмениваться друг с другом информацией по сети. Одним из самых популярных протоколов, разработанных для обеспечения этого процесса, является протокол RPC (Remote Procedure Call). На основе RPC работает программа rpcbind, основная задача которой состоит в посредничестве между запросами клиентов и портами, которые эта программа динамически назначает находящимся в режиме ожидания приложениям. Несмотря на постоянную головную боль, которую много лет вызывают у администраторов брандмауэров подобные программы, служба RPC остается чрезвычайно популярным механизмом. Существует утилита rpcinfo, которая, подобно программе finger, может применяться для инвентаризации приложений RPC, находящихся в состоянии ожидания запроса на удаленном узле. Обычно для того чтобы воспользоваться этой утилитой, во время сканирования достаточно установить, что открыт порт 111 (rcbind) или 32771 (вариант утилиты от компании Sun).
rpcinfo -p 192.168.202.34 Утилиту, аналогичную rpcinfo, можно применять и в системе Windows NT. Эта утилита, написанная Дэвидом Литчфилдом (David Litchfield) называется rpcdump. Как видно из следующего примера, утилита rpcdump ведет себя аналогично rpcinfo с параметром -р.
D:\Toolbox>rpcdump 192.168.202.105 Хотя лучший инструмент 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
Если в качестве параметра утилиты netcat используется IP-адрес исследуемого компьютера, то нужно указать также параметр -n.
Контрмеры против сбора идентификационных маркеров
Конечно, мы коснулись лишь нескольких из самых популярных приложений, поскольку ограничения по времени и объему не позволяют нам подробнее рассмотреть все многообразие существующего сетевого программного обеспечения. Однако, отталкиваясь от описанных в данном разделе общих подходов, необходимо по крайней мере "заткнуть рот" слишком "болтливым" приложениям вашей сети. Дополнительные сведения об устранении имеющихся изъянов можно поискать на Web-узле канадской консультационной компании PGCI. специализирующейся в области защиты информации, по адресу
http://www.pgci.ca/p_fingerprint.html. Помимо интересной дискуссии о защите от попыток выявления типа и версии операционной системы (см. главу 2), на этом Web-узле приведены сведения о контрмерах, позволяющих предотвратить инвентаризацию идентификационных маркеров с помощью таких средств как программы sendmail, telnet, и протокол FTP. Там же вы найдете список адресов других Web-серверов, на которых содержится аналогичная информация.
|