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

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

Павел П. aka UkR-XblP

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


1. Несуществующая команда. Посылаем заведомо несуществующую команду.

2. Нарушение порядка команд. Посылаем команду для работы с почтовым ящиком без аутентификации. Сервер скажет, в зависимости от версии, что она доступна только после процесса авторизации, либо что она неправильная.

3. Нарушение формата команд. Каждая команда клиента предваряется уникальным идентификатором. Сервер может затем использовать этот идентификатор в своих ответах, что позволяет клиенту определить, к какой команде относится ответ сервера. Это особенно важно при выполнении сервером нескольких команд за один сеанс. Идентификатор - короткая строка буквенно-цифровых символов. Он задается последовательно и автоматически. Нарушив этот порядок, мы тоже можем следить за поведением сервера.

4. Несуществующий параметр. Посылаем несуществующий в принципе параметр к существующей команде.

5. Доступная команда. Посылаем доступный нам запрос, не требующий никаких параметров.

6. Команда без параметра. При вызове команды не указывается параметр, который должен ей передаваться.

7. Команда с параметрами. Отправляется существующая команда с правильно указанными параметрами.

Данный набор можно легко дополнить еще более многочисленными вариантами, но уже этих семи запросов и соответственно семи ответов на них хватит, чтобы почти со 100% вероятностью определить тип IMAP сервера в ситуации, когда администратор ресурса изменил баннер демона. Дело в том, что каждый тип сервера, а порой даже каждая версия обладает уникальным отпечатком - набором ответов на все эти запросы. Ниже приведено сравнение ответов на все подобные запросы Cyrus IMAP и Courier Imap:

Сравнение ответов Cyrus IMAP и Courier Imap

Cyrus IMAP:

a001 UKRTEAM

a001 BAD Please login first

a001 SELECT

a001 BAD Please login first

SELECT

* BAD Invalid tag

a001 AUTHENTICATE UKRSECTEAM

a001 NO no mechanism available

a001 NOOP

a001 OK Completed

a001 LOGIN

a001 BAD Missing required argument to Login

a001 LOGIN UST FINGERPRINT

a001 NO Login failed: authentication failure

a001 LOGOUT

* BYE LOGOUT received

a001 OK Completed

Courier Imap:

a001 UKRTEAM

a001 NO Error in IMAP command received by server.

a001 SELECT

a001 NO Error in IMAP command received by server.

SELECT

SELECT NO Error in IMAP command received by server.

a001 AUTHENTICATE UKRSECTEAM

a001 NO Authentication failed.

a001 NOOP

a001 OK NOOP completed

a001 LOGIN

a001 NO Error in IMAP command received by server.

a001 LOGIN UST FINGERPRINT

a001 NO Login failed.

a001 LOGOUT

* BYE Courier-IMAP server shutting down

a001 OK LOGOUT completed

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

CD

На нашем диске ты найдешь RFC 1730 и RFC 2060, в которых наиболее полно описан протокол IMAP.

WWW

Скачать эти rfc можно на сайте www.rfc-editor.org

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