Библиотека Интернет Индустрии I2R.ru |
|||
|
Советы системному администраторуКаждый день по всему миру взламываются компьютерные сети и сервера. Уровень этих атак различен. Вопреки общему представлению что большинство из них происходит из-за слабых паролей, множество атак использует более сложный способ. Эти способы менее известны и их трудно обнаружить. Чтобы защититься от таких проникновений необходимо понимать их. Мы попытаемся пояснить некоторые из них... Почему мы решили написать этот документ? Большинство книг и документов посвященных защите смотрят на нее глазами администратора - человека который сидит внутри системы и иногда плохо представляет ее внешние границы. Давайте отойдем от привычных представлений о системе защиты. Посмотрим на нее глазами потенциального взломщика. Для этого человека ваша система - черный ящик (или коробка шоколадных конфет). Показывая что он может сделать для того чтобы получить доступ на ваш компьютер, мы пытаемся помочь системным администраторам получит представление о там на сколько реально защищен ваш хост. Мы не предполагаем раскрыть здесь все технологии и лазейки в системе - их количество растет каждый день. Системы усовершенствуются - изменяются технологии. Какую информацию мы можем получить об удаленной системе? Существует множество сетевых сервисов к которым следует обратиться: finger, rusers, showmount, rpcinfo, dns, ftp, sendmail... В идеале стоит собирать всю возможную информацию - информация это власть. Давайте попробуем. Что мы можем узнать? 0. Возможно не плохой шаг сначала узнать возможные allias, имя nameserver и состав сети в которой стоит этот хост. В этом может помочь nslookup (смотри man nslookup). 1. finger и rusers Эти сервисы дают нам аккаунты, позволяют нам узнать кто в данный момент работает в системе, их shell и домашний каталог, возможно имена доверенных хостов. Обратите внимание на графу Idle, если в ней стоит несколько часов, то скорее всего в данный момент никто не обратит на вас внимание. 2. rpcinfo rpcinfo дает информацию о запущенных RPC сервесах. Наиболее интересны из них mountd, nisd, ypserv и ypbind, statd, bootparam, pcnfsd, rexd. statd позволяет стереть удаленно любой файл (rs host //../../../../../../../../../etc/passwd), pcnfsd и mountd дают доступ к дискам машины, rexd - удаленное выполнение команд. 3. NIS (nisd, ypbind, ypserv). Если эта машина является NIS сервером, то зная NIS имя домена вы можете получить любые NIS карты простым rpc запросом. Обычно это имя совпадает с именем домена и можно попытаться его угадать. (мы заменили первые два символа каждого пароля на '__' и изменили имена здесь и далее в тексте) Если угадать NIS имя домена не удается, возможно получить его через bootparam сервис или подсмотреть в директории /var/yp, если она доступна публично. 4. showmount С помощью showmount мы узнали о разделах, предоставляемых этим хостом, о правах доступа к ним и возможно о доверенных хостах. Такие важные каталоги как export, home, usr доступны всем! Попробуем... 5. sendmail Так мы попытались угадать несколько системных аккаунтов и конечно записали версию sendmail'a - программы содержащей легендарное количество ошибок. Не будем заострять на них внимания. Новые версии выходять регулярно, старые ошибки исправляются, появляются новые. :) 6. tftp tftp широко известная программа похожая на ftp, служит для простейшего трансфера файлов. Ошибки в ней известны и исправлены в большинстве ОС, но и вышепреведенный пример можно встретить. 7. ftp Сервис ftp является не только удобным, но и опасным для вашей системы. Опасность представляет не только возможность украсть доверенную информацию или занести свою при неправильной конфигурации демона. Опасность представляет возможное крушение демона командами пользователя. 8. rexd devil# su daemon $ on -i faxnetxx.xxx.ru /bin/sh -i $ uname -a faxnetxx faxnetxx 3.2 2 i386 $ id uid=1(daemon) gid=1(other) $ 9. Сканирование портов Портмэппер сообщает только о rpc сервисах. О остальных запущенных сервисах можно узнать прямым сканированием портов. Приведем только наиболее важныее порты: а) X server. X сервер базируется на портах 6000 + номер дислея. Если Х сервер не использует для аутенфикации magic cookies или защита отключена командой 'xhost +', информация с его дисплеев может быть подсмотрена или украдена, нажатия клавиш записаны, программы - запущены удаленно(xspy, xpush, etc). Если хост поддерживает соединение к 6000 порту то это может быть использовано для denial_of_service аттак. б) rlogin и talkd. В большинстве систем эти сервисы имеют ошибки связанные с переполнением буфера. rlogin пытается получить от удаленной системы переменную TERM, а talkd - узнать имя хоста требующего соединение. Если эти демоны получают в ответ строку большой длинны то происходит переполнение буфера. Это дает возможность выполнить удаленно комманды с привилегиями root.(rlogin & talkd exploits). в) rsh и rexec. rsh и rexec позволяют получить коммандную оболочку нее оставляя записей в log-файлах. Кроме того эти сервисы не отслеживают запрет на удаленный root логин (/etc/default/login). devil# rsh -l smtp xxxx.xxx.ru /bin/csh -i Warning: no access to tty; thus no job control in this shell... # id uid=0(root) gid=0(root) ... devil# nc -v xxxx.xxx.ru 512 xxxx.xxx.ru [194.85.xxx.xxx] 512 (exec) open ^@root^@rootpasswd^@/bin/csh -i^@ Warning: no access to tty; thus no job control in this shell... # id uid=0(root) gid=1(other) ... 9. Доверенные хосты Обычно, работая в пределах одной группы пользователям разрешается без пароля входить на соседние компьютеры. Такие доверительные машины указываются в файлах .rhosts и hosts.equiv. Предположить какие хосты являются доверенными можно отслеживая откуда наиболее часто заходят пользователи, особенно администраторы, просматривая права на доступ к NFS разделам. Использование доверительных отношений создает определенное удобство, но вместе с тем порождает опасность проникновения в систему злоумышленников. Взломщик может исказить информацию в DNS или NIS сервере и выдавать себя за доверенный хост. |
|
2000-2008 г. Все авторские права соблюдены. |
|