Опубликован: 20.02.2007 | Уровень: специалист | Доступ: платный
Лекция 2:

Системные средства с открытым программным кодом: основы

SHOWMOUNT

Используя rpcinfo, вы можете найти уязвимые NFS rpc.statd приложения, чтобы взломать их. Но почему же на это идут, несмотря на то, что для того чтобы начались проблемы, достаточно всего лишь ошибок в конфигурировании NFS?

Некоторые системные администраторы не слишком сильны в службах NFS, которые они экспортируют. Некоторые, даже не осознавая, экспортируют свои файловые системы с полномочиями чтение/запись, только и ожидая, когда взломщики через интернет обнаружат это.

Команда showmount позволит нам увидеть, какие файловые системы доступны на конкретных NFS-серверах.

Реализация

Эта команда отображает все смонтированные директории на NFS-сервере и имена хостов клиентов, которые к ним смонтированы.

showmount -a hostname

Флаг -d идентичен флагу -a, но он не выводит имена клиентских хостов.

showmount -d hostname

Это наиболее популярный формат команды. Эта команда показывает точки монтирования, которые экспортированы и доступны для монтирования с использованием NFS.

showmount -e hostname
Пример вывода

Вот что произойдет, если мы запустим команду showmount -e originix.

Export list for 192.168.1.100:
/       (everyone)
/boot   (everyone)

Чтобы подчеркнуть этот пример, мы бесстрашно экспортировали все наши файлы, так что кто угодно может смонтировать нашу корневую директорию и загрузочный сектор. Мы можем смонтировать эти файлы к локальной точке монтирования в нашей системе, используя команду mount 192.168.1.100:/boot/path/to/remote-boot. Это позволит назначить директорию /path/to/remote-boot на нашей машине директории /boot на хосте 192.168.1.100. К сожалению, мы не знаем, есть ли доступ на чтение/запись или только на чтение, до тех пор, пока не произведем монтирование, но, тем не менее, у нас есть доступ. Если мы видим имя хоста или IP-адрес вместо "everyone", это может быть поводом для небольшого фокуса, чтобы сфабриковать этот IP-адрес или имя хоста.

Внимание! Будьте осторожны при использовании NFS. Если вы бесстрашно экспортируете устройство всему миру и разрешите доступ на чтение/запись для всех, любой, кто обнаружит экспортированную вами файловую систему, сможет записать туда все, что захочет, и создать полную копию системы. В большинстве случаев экспортированные файловые системы не должны монтироваться с полным доступом, без какого-либо контроля. NFS-трафик должен блокироваться на брандмауэре для ограничения числа людей, толкущегося вокруг вашей экспортированной файловой системы. Если вам на самом деле необходимо осуществлять удаленный доступ к общим ресурсам через интернет, AFS обеспечит более высокий уровень безопасности.

R-Tools

R-tools - наименее безопасная утилита, которую вы можете запустить в Unix-системе. Она использует базовую Unix-аутентификацию "rhosts", которая опирается на доверие имени пользователя и имени хоста. Возможно, одна из самых больших проблем с этим режимом аутентификации заключается в том, что пользователь может настроить свой доступ так, что он сможет войти отовсюду, не вводя пароль.

Советуем никогда не запускать какую либо из r-служб. Если вы системный администратор, избегайте этого как чумы. Отключите эти службы и удалите их на всех системах. Если вы взломщик, r-tools могут отбить у вас вкус к работе.

Как администратор, вы должны использовать SSH, который использует более надежные способы аутентификации и шифрует свой трафик. Но это не означает, что другие системные администраторы с этого момента не захотят запускать r-tools

Здесь мы расскажем вам о некоторых доступных средствах из арсенала r-tools, и вы сможете убедиться, насколько они опасны.

Rlogin, Rsh и Rcp

Также как и telnet, rlogin запускается поверх TCP на 513 порту (который прослушивается процессом rshd ) и обеспечивает удаленный доступ к командному интерпретатору системы. Rsh делает те же самые вещи, исключая выполнение отдельных команд на удаленном хосте, возвращает вывод этих команд, и немедленно прерывает соединение. Rcp может копировать файлы на или с удаленного хоста.

Ниже приведен пример командной строки:

rlogin -l myusername myhost
rsh -l myusername myhost "ls -al"
rcp myusername@myhost:/path/to/remotefile localfile
Ненадежность R-Tools

Создав файл с именем .rhosts в домашней директории, пользователь может создать список, состоящий из комбинации user/host которым разрешен доступ. Вы можете сделать это, определив строки вида hostname [username] для определения, что пользователь username с хоста hostname может использовать средства r-tools для соединения без использования пароля. Ленивый пользователь может просто задать комбинацию + + в своем файле .rhosts, открыв тем самым вход любому пользователю с любого хоста. Даже если безопасностью полностью не пренебрегли, пользователь может вставить строку +myusername, которая разрешает вход кому угодно, с любой машины, с именем myusername и без пароля.

Некто может создать учетную запись на своей локальной машине с именем myusername, запустить свою программу rlogin, и он тут как тут. Вы можете обнаружить здесь проблему с безопасностью. Давая возможность каждому пользователю ошиваться вокруг дыры в безопасности вашей системы, r-tools быстро сведет на нет те удобства, которые он предоставляет. Системные администраторы могут сделать тоже самое, используя глобальный файл hosts.equiv для определения доверенных для входа в систему средствами r-tool хостов и пользователей.

Более поздние версии r-tools поддерживают Kerberos-аутентификацию и пытаются использовать ее перед rhosts аутентификацией. Вдобавок, они могут поддерживать стандарт шифрования данных (DES) для шифрования данных на обеих сторонах поддерживаемого соединения.

Rwho

Программа rwho взаимодействует с отдельной программой ( rwhod, запущенной на порту UDP с номером 513). Rwho-клиент пытается обмениваться информацией со всеми машинами, поддерживающими rwhod и обнаруживаемым в локальной подсети, чтобы определить, как пользователь может войти на каждую из них. Так же, как для finger, здесь много информации, которая позволяет взломщику, проникшему в локальную сеть, получить достоверные сведения о пользователях конкретного хоста. И есть вероятность, что если он запустит программу rwho, то сможет запустить некоторые другие средства удаленного доступа, так чтобы взломщик нашел возможность войти в систему без использования паролей.

Синтаксис командной строки очень простой. Просто наберите rwho. Если вы хотите включить пользователей, которые вошли в систему, но находятся в состоянии ожидания более часа, наберите rwho -a.

Rexec

Эта программа обменивается информацией с программой rexecd, выполняемой на TCP-порту с номером 512. Функционально она весьма близка с программой rsh. Она использует следующий формат командной строки:

rexec username@host_name command

Пароль может быть определен в командной строке с помощью параметра -p (плохая мысль, поскольку он может быть сохранен в журнале командного интерпретатора). Если пользовательские полномочия не введены, rexec пытается использовать записи в файле ~/.netrc для входа в систему.

Сергей Хлюкин
Сергей Хлюкин
Россия, Москва, Московский Государственный Открытый Университет, 2007
Игорь Касаткин
Игорь Касаткин
Россия, Москва