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

Сетевая дактилоскопия

Антон Карпов

Спецвыпуск: Хакер, номер #047, стр. 047-068-2


В четырех последних случаях ответ от хоста не был получен, но, так как ОС все равно опознана как FreeBSD, можно сделать вывод, что админ включил tcp & udp blackholes (sysctl -w net.inet.tcp.blackhole=2, sysctl -w net.inet.udp.blackhole=1), метод, при котором FreeBSD старательно игнорирует провокации ее неправильными пакетами. Догадка верная, ведь админ - я ;). Кстати, помни, что несанкционированное сканирование часто формально считается попыткой проникновения.

Самый простой способ fingerprinting, не требующий никаких нестандартных инструментов, - это сбор баннеров (banner grabbing). Сервисы (www, ftp, smtp, pop3) готовы рассказать о себе все в ответ на простое подключение телнетом:

ЛИСТИНГ

[(2:00)(258.29%)(p2):~ ] telnet www.berkeley.edu 80

Trying 169.229.131.109...

Connected to arachne.berkeley.edu.

Escape character is '^]'.

HEAD / HTTP/1.0

HTTP/1.1 403 Forbidden

Date: Tue, 24 Aug 2004 22:04:03 GMT

Server: Stronghold/3.0 Apache/1.3.22 RedHat/3017c (Unix) PHP/4.3.3 mod_ssl/2.8.7 OpenSSL/0.9.6 mod_perl/1.25

Connection: close

Content-Type: text/html; charset=iso-8859-1

Однако многие сервисы позволяют штатным образом сменить баннер, так что данный метод нельзя назвать надежным. К тому же, далеко не все сервисы позволяют вести диалог в подобном plain-text режиме. И если даже nmap очень часто считает достаточным запросить баннер, греша точным определением FTP или DNS-сервера, то как же, например, популярный сканер XSpider (www.ptsecurity.ru) точно отличает Postfix от Sendmal, а vsftpd от proftpd?

Дело в том, что в документах RFC, описывающих поведение серверов, есть указания лишь по кодам выдаваемых в ответ на запросы клиентов ошибок, но не накладывается никакого ограничения на текстовую информационную составляющую. Так, на одну и ту же неверную команду Postfix ответит 500 Error: bad syntax, тогда как Sendmail - 500 5.5.1 Command unrecognized: "COMMAND_YOU_TYPE". Помучив сервер запросами и собрав базу возвращенных кодов, можно с достаточной точностью определить версию сервиса.

Но иногда все бывает еще проще, и вместе с сервисом становится известна версия ОС. Особенно этим грешат FTP-сервера:

ЛИСТИНГ

[(3:51)(85.32%)(p1):~ ] ftp toxa@19X.XX.1.20X

Connected to 19X.XX.1.20X.

220 beast FTP server (Version 1.7.212.1 Sat Feb 1 01:30:15 GMT 1997) ready.

331 Password required for toxa.

Password:

230 User toxa logged in.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp> syst

215 UNIX Type: SUNOS

ftp> quit

221 Goodbye.

Как видно, FTP-сервер не только сообщил, что уже семь лет ждет эксплоита, но и заодно признался, что запущен на солярке.

Для сервисов, текстовый диалог с которыми невозможен, (например, DNS-сервер) применяется та же технология: на сервер посылаются неверные запросы и анализируются ответные пакеты. Просто реализация такого анализа немного сложнее.

Назад на стр. 047-068-1  Содержание  Вперед на стр. 047-068-3