Узнай по отпечаткам Павел П. 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 |