многие демоны имеют возможность считывать баннер прямо из конфига. Если же нет – мы в мире OpenSource и не поленимся залезть в исходники. Учти, смена баннера не даст нам полной иллюзии «другого» сервиса. Шанс определить демона и, например, отличить Apache от IIS все равно остается – по поведению программы в ответ на различные запросы, коду ошибок, специфичных сообщений, формированию заголовков писем (в случае SMTP-сервера) и т.п., так как жестких стандартов поведения того же почтового сервера нет и каждый реализует протокол по-своему. Однако от примитивных механизмов определения демона мы защитимся (подробнее про fingerprinting читай в другой статье этого номера).

OpenSSH

Самый популярный пакет для удаленного администрирования по протоколу ssh, хоть и написанный весьма компетентными хакерами из OpenBSD team, но имеющий длинную историю взломов. Баннер в конфиге не выставляется, так что будем править сорцы. Найди в файле version.h следующие строки:

#define SSH_VERSION «OpenSSH_3.8p1»

Их и следует изменить. Полностью удалять строку не нужно, согласно стандарту, сервер обязан выдать версию ssh-протокола, а затем – имя демона. Я советую ограничиться удалением версии openssh, но ты можешь проявить фантазию. Затем собирай openssh как обычно.

Apache

Это классика. Смена баннера самого популярного web-сервера – весьма частое развлечение админов. Здесь тоже не обойтись без правки исходных текстов. В каталоге с исходниками найди файл src/include/httpd.h, а в нем – следующие строки:

Листинг

#define SERVER_BASEPRODUCT «Apache»

#define SERVER_BASEREVISION «1.3.29»

Теперь меняй их на Microsoft-IIS 4.0 и коллекционируй сигнатуры старых добрых unicode-атак :). В Apache 2.0.x надо править файл include/ap_release.h, строки:

Листинг

#define AP_SERVER_BASEPRODUCT «Apache»

#define AP_SERVER_MAJORVERSION «2»

#define AP_SERVER_MINORVERSION «0»

#define AP_SERVER_PATCHLEVEL «50»

Postfix

Этот удобный и (относительно, как и все в этом мире) безопасный SMTP-сервер позволяет указать баннер прямо в конфиге, main.cf:

$smptd_banner = $mydomain ESMTP MyCoolServer

Sendmail

По умолчанию sendmail выдает слишком много информации. В нем часто находят уязвимости, так что светить версией – себе дороже. Можно поправить sendmail.cf:

O SmtpGreetingMessage=$j ESMTP InsecureMailserver

Или sendmail.mc:

define(`confSMTP_LOGIN_MSG', `$j ESMTP UnsecureMailserver')

BIND

Named – популярный DNS-сервер от Internet Software Consorcium. Известен прежде всего своей историей уязвимостей, так что рассказать миру о том, какая у тебя версия named – значит жить как на иголках до следующей Security Advisory. Правь named.conf, в глобальной секции options {} пиши:

version «Microsoft DNS»;

VsFTPd

Это чрезвычайно безопасный ftp-сервер с поддержкой ssl-соединений. Указать баннер можно прямо в vsftpd.conf:

ftpd_banner=mydomain.com Microsoft FTP Service (Version 5.0)

BSD FTPd

Во Free/Net/OpenBSD можно поправить приветствие стандартного ftpd. Для этого нужно найти в файле /usr/src/libexec/ftpd/ftpd.c строчку:

reply(220, «%s FTP server (%s) ready.», hostname, version);

Она может встретиться несколько раз, так, во FreeBSD за баннер отвечает конструкция:

Листинг

if (hostinfo)

reply(220, «%s FTP server (%s) ready.», hostname, version);

else

reply(220, «FTP server ready.»);

В обоих случаях в выводе строки можно написать, что душа пожелает (а можно поступить более 31337-но – изменить значение hostinfo на 0 перед вышеуказанным блоком if).

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

Мнение эксперта

Андрей «Andrushock» Матвеев, редактор рубрики «Unixoid» журнала «Хакер»:

«Идеальной или совершенной защиты не бывает. Мы можем только стремиться к обеспечению должного уровня безопасности за счет своевременного обновления программного обеспечения, грамотного разграничения доступа, корректной настройки интернет-служб и, конечно же, предотвращения утечек информации – здесь я подразумеваю весь спектр предпринимаемых действий начиная от сокрытия сервисных баннеров и заканчивая воспрепятствованию перехвату конфиденциальных данных организации. Очень многое зависит от системного администратора, от его политики, опыта, навыков работы и знаний. Известны случаи, когда правильно сконфигурированные серверы на базе Red Hat Linux могли похвастаться тысячедневными аптаймами, в то время как хосты под управлением OpenBSD не выдерживали и недельного натиска глобальной сети. За счет открытого исходного кода можно каждый день изменять поведение системы и/или стека TCP/IP, главное – придерживаться одного простого правила: не ломать стандарты, задокументированные в RFC.

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

SYN-флуд – переполнение очереди открытых соединений в состоянии SYN-sent.

Утилита portsentry проверена временем – она написана еще в 1998 году.

Узнать конкретную версию какого-либо сервиса не из баннера значительно труднее.

Логи для умных / Система log-файлов для *nix-систем

the_Shadow ([email protected])

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату