Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #32, ИЮЛЬ 2003 г.

УЗНАЙ ДЕМОНА!

Докучаев Дмитрий aka Forb

Спецвыпуск Xakep, номер #032, стр. 032-016-1


(forb@real.xakep.ru)

УДАЛЕННОЕ ОПРЕДЕЛЕНИЕ ВЕРСИИ СЕРВИСОВ

Основная задача хакера - найти изъян в системе и предоставить его нужному эксплойту. Все эксплойты актуальны лишь для некоторых версий сервиса, которые предварительно должны быть определены... хакером. Да-да, ты не ослышался, очень редко, когда в плойте встроено автоматическое определение версии. Поэтому, если ремоутное детектирование сервиса для тебя всегда было огромной проблемой, то советую прочитать этот материал - возможно, узнаешь для себя что-то новое.

Обычно сервис определяется без проблем. Существует такое понятие, как баннер или заголовок демона. Его наличие актуально для всех текстовых протоколов. Раздерем пример: цепляемся телнетом на 25-й порт какой-нибудь тачки и в ответ получаем приглашение от сервиса, как правило, содержащее версию сендмыла. Но эта статья была бы неактуальна, если все было бы так просто. Нередко баннеры умышленно заменяются (этакая защита против хакеров со стороны злых админов), а в бинарных протоколах баннеры вообще отсутствуют. Поэтому слушай сюда: сейчас мы будем определять версию различных сервисов всеми возможными способами.

FTPD - ОПРЕДЕЛЯЕМ И ЛОМАЕМ

Итак, движемся по возрастанию. Стукнемся в самый маленький, но важный 21-й порт. Согласно неписаному закону, за этим портом скрывается демон FTP. Определение его производителя и версии для нас является необходимой задачей.

Возьмем произвольный хост и прицепимся к нему телнетом. В итоге получим что-то вроде:

[root@shell root]# telnet fw.ru 21

Trying 212.92.96.34...

Connected to fw.ru.

Escape character is '^]'.

220 servers.cea.ru FTP server (Version wu-2.6.2(1) вт 21 май 2002 15:51:03 MSD) ready.

Подавляющее большинство админов не заменяет баннеры своих служб, оставляя все по дефолту. Мы видим, что на сервере установлен дырявый wu-ftpd ;). Причем нам дана исчерпывающая информация по его версии и времени создания. Дальнейшим шагом хакера будет определение поддержки анонимного входа и поиска эксплойта. Не будем заострять на этом внимание, ибо наша задача была достигнута, а других целей мы не преследовали.

Я рассмотрел тривиальную задачу. А что если админ позаботился о своей системе и заменил баннер на произвольный, чтобы запутать хакера? В этом случае приветствие сервиса нам ничего правдивого не скажет.

Не отчаивайся, у нас есть свои методики для определения дырявых демонов =). К примеру, диалог Wu-Ftpd несколько отличается от ProFTPD. При попытке залогиниться под anonymous'ом wu-ftpd выдает инфу о правильности e-mail адреса, тем самым выдавая себя.

Вообще, полезно знать фразы, которые характерны лишь для определенного сервиса. Виндовый Serv-U всегда ставит восклицательный знак после слова Goodbye, а ProFTPD вместо Guest login ok (такая запись характерна для подавляющего большинства FTPD'шников) пишет Anonymous login ok, тем самым выдавая себя с потрохами. Немного терпения и наблюдательности, и ты всегда сможешь определить версию FTPD за несколько секунд.

SSHD КАК НА ЛАДОНИ

Следующим по счету идет сервис SSHD. Он обосновался на 22-м порту со своего рождения ;). Согласно стандарту RFC, обмен между сервером и клиентом ssh начинается обоюдным обменом версий. Сперва демон показывает заветный баннер, а клиент отдает ему свой version. Вроде бы все просто, и комментарии тут ни к чему. Но большинство людей не могут (или не умеют) определить версию SSHD по его баннеру. Что тут сказать, не умеешь - научим, не хочешь - заставим ;).

Содержание  Вперед на стр. 032-016-2