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

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

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

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


Для автоматизации процесса лучше всего использовать тулзу netcat от Astake. Ты наверняка уже слышал о ней (а если нет, бегом сливай сей проект по адресу http://www.atstake.com/research/tools/nc110.tgz). NetCat умеет снимать баннеры с сервисов, поэтому, интегрируя эту возможность с сетевыми потоками, мы сможем без особого труда определить версию веб-сервера.

Для достижения цели создаем файл get.txt, в котором будет находиться запрос www-заголовка (HEAD / HTTP/1.0 и два символа перевода строки), и связываем его с бинарником netcat командой

nc -vv www.server.ru 80 < ./get.txt |grep Server.

В итоге получаем исчерпывающую инфу о версии демона. Как правило, поле Server имеет вид:

Server: Apache/1.3.19 (Unix) mod_perl/1.24_01 mod_throttle/2.11 PHP/4.0.6 FrontPage/4.0.4.3 mod_ssl/2.8.3 OpenSSL/0.9.6b mod_gzip/1.3.19.1a.

Нетрудно заметить, что модуль PHP уязвим, и сервер может быть взломан с помощью соответствующего эксплойта. Теперь ты понимаешь, какую важную инфу может дать хакеру версия сервера и его модулей?

Впрочем, можно легко обойтись и без netcat, заменив его обычным telnet'ом, но для перебора целого диапазона адресов с целью дознания версий httpd - netcat незаменим.

ВСЕМ СПАСИБО, ВСЕ СВОБОДНЫ!

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

И это далеко не предел...

На самом деле, даже при бинарном обмене данными можно легко узнать версию демона. Если нажать Enter при обмене данными в MySQL, например, то можно легко узнать версию mysqld. Диалог будет выглядеть примерно следующим образом:

[root@shell root]# telnet ns2.rose.ru 3306

Trying 213.221.44.104...

Connected to ns2.rose.ru.

Escape character is '^]'.

(

3.23.42f6{,c2kGa

Connection closed by foreign host.

Как видим из последней строчки, версия демона sql: 3.23.42.

Нередко баннеры умышленно заменяются (этакая защита против хакеров со стороны злых админов), а в случае бинарных протоколов баннеры вообще отсутствуют.

В шапке SSHD указаны две независимые версии. Первая - версия протокола SSH, вторая - пакета OpenSSH.

Тот же named, который висит на 53-м порту, не скажет тебе ни слова при попытке подцепиться к нему.

Стоит всего-навсего послать HEAD-запрос, и Апач (а их подавляющее большинство) с радостью скажет нам свою версию.

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