"Потайные ходы"
Удаленное управление
Вполне возможна ситуация, когда взломщик не сможет вернуться на целевой компьютер, даже обладая необходимыми регистрационными данными. Это может произойти, если некоторые служебные процессы сервера не выводят приглашения на регистрацию. Например, мало пользы от пароля root, если на взламываемом сервере отключены г-службы или telnet. Точно так же в системе Windows NT администратор по умолчанию получает очень ограниченные возможности удаленного управления. Поэтому первоочередная цель взломщика состоит в обеспечении механизмов повторного доступа.
В большинстве случаев все, что действительно нужно взломщику, – это удаленная командная строка. Ниже представлен обзор средств, с помощью которых достаточно просто получить удаленный доступ к командной оболочке. Кроме того, учитывая широкую распространенность операционных систем с графическим интерфейсом и предоставляемую ими простоту управления, вы познакомитесь с инструментами, которые окажутся полезными и в этом случае.
Контрмеры против средств удаленного управления приводятся в конце раздела, поскольку большинство из них можно применять для защиты от всех из описанных атак.
netcat
В этой книге ранее уже упоминался "швейцарский армейский нож", утилита netcat (ее версии как для системы NT, так и для UNIX можно найти по адресу http://www.10pht.com/~weld/netcat/index.html). С помощью этой программы можно незаметно прослушивать нужный порт, выполняя заранее определенные действия после установки удаленного соединения с системой. Утилита netcat окажется чрезвычайно мощным средством удаленного управления, если эти действия будут направлены на запуск командной оболочки. Затем злоумышленники могут подключиться с помощью netcat к заданному порту и получить в свое распоряжение командную оболочку. Команды запуска netcat в режиме прослушивания обычно скрытно помещаются в какой-нибудь загрузочный файл (см. предыдущий раздел), поэтому эта программа прослушивания портов будет активизироваться при каждой перезагрузке системы. Пример такого "потайного хода" показан на рис. 14.2, на котором виден параметр системного реестра Windows NT, приводящий к запуску утилиты netcat в процессе загрузки системы.
Сообразительные взломщики обязательно замаскируют своего "троянского коня" netcat. Для этого можно дать программе какое-нибудь нейтральное имя, например ddedll32.exe, или такое, что администратор дважды подумает, прежде чем удалит такой файл.
Параметр -L утилиты netcat дает возможность возобновить работу при многократном нарушении связи; при использовании -d программа netcat запускается в скрытом режиме (без интерактивной консоли); а -е позволяет задать запускаемую программу, в данном случае командный интерпретатор NT cmd.exe. Параметр -р определяет прослушиваемый порт (в данном примере 8080). Версию программы netcat для системы UNIX можно легко настроить так. чтобы запускалась командная оболочка /bin/sh, что приведет к тому же результату. После этого взломщику останется только соединиться с портом, который прослушивается утилитой netcat, и получить в свое распоряжение удаленную командную оболочку.
Рис. 14.2. В системном реестре NT4 установлено, что в процессе загрузки системы будет загружаться утилита netcat
remote.exe (NT)
Утилиту remote из набора NTRK можно запустить в качестве сервера, чтобы командная строка возвращалась любому аутентифииированному пользователю NT, который подключился с помощью соответствующего удаленного клиента. Эту программу очень просто установить (нужно просто скопировать файл remote.exe в системный каталог, например %systemroot%). Поэтому зачастую ее использование предшествует последующей установке более опасных программ, таких как графические утилиты удаленного управления или программы-регистраторы нажатия клавиш. Более подробно утилита remote.exe описана в главе 5.