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

Узнай по отпечаткам

Павел П. aka UkR-XblP

Хакер, номер #070, стр. 070-068-1


Определение типа и версии сервисов на примере IMAP

Взламывая ту или иную систему, чрезвычайно важно собрать о ней как можно больше сведений. В самом деле, необходимо знать, какие сервисы установлены на ломаемом компьютере, какие версии используются и насколько достоверна информация, которую выдают баннеры сервисов. Ведь можно очень долго долбить какой-нибудь, по твоему мнению, дырявый ftpd, в то время как сисадмин решил над тобой пошутить и просто поменял баннер. О том, как можно достоверно определить версию установленного сервиса, сегодня тебе расскажет UkR-XblP.

Зачем это надо?

В последнее время очень много внимания уделяется удаленному определению типов и версий различных сетевых сервисов, называемому термином fingerprint. С чем же это связано? На протяжении последних лет мы могли видеть бурную эволюцию обманных систем, систем в первую очередь привлечения, а потом уже изучения принципов и методов действий хакеров. Такие системы получили название honeypot (забавно, так еще называется комитет по энергетике и промышленности Конгресса США :)) и honeynet ("капкан" и "сеть капканов", соответственно). Для многих сисадминов изменение различных дефолтных настроек (в том числе текстовых баннеров) уже стало скорее правилом, чем исключением. Следовательно, не обладая достоверными сведениями о типе и версии установленного программного обеспечения, практически невозможно эксплуатировать соответствующие известные уязвимости.

Поэтому важно уметь определять версию и тип сервиса не только по баннеру, но и по некоторым другим признакам, дающим наиболее достоверную информацию. Чтобы не грузить тебя скучной теорией, я решил все показать на примере протокола IMAP (Internet Message Access Protocol). Для танкистов напомню, что IMAP позволяет манипулировать удаленными почтовыми ящиками так, будто они являются локальными. В зависимости от реализации IMAP-клиента и сервера, пользователь может сохранять сообщения только на клиентской машине, только на сервере или в обоих местах. Более подробно и строго этот протокол описан в RFC 1730 и RFC 2060, которые ты без труда найдешь на нашем диске.

Как это сделать?

Тип и версию какого-либо сервиса на удаленной машине проще всего определить при помощи метода, получившего название banner grabbing. Метод заключается в анализе баннера, текстового приветственного сообщения, посылаемого сервером клиенту при соединении. Например, часто можно встретить такое приветствие:

[testlab@www testlab]$ telnet 192.168.1.5 143

Trying 192.168.1.5...

Connected to 192.168.1.5.

Escape character is '^]'.

* OK testmail Cyrus IMAP4 v2.0.12 server ready.

Как видно из баннера, на сервере стоит Cyrus IMAP4 server версии 2.0.12. Этой информации достаточно, чтобы, собрав эксплойт для buffer overflow в Cyrus IMAP4 server, взломать систему. Однако не все реализации IMAP серверов дают такую исчерпывающую информацию. К примеру, ты запросто можешь попасть и в другую ситуацию:

[testlab@www testlab]$ telnet 192.168.1.5 143

Trying 192.168.1.5...

Connected to 192.168.1.5.

Escape character is '^]'.

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