Техника сетевых атак
Шрифт:
Каждый почтовый ящик представляет собой SMTP-получатель, связавшись с которым напрямую, можно передать сообщение без посредников. Однако такой способ не обрел большой популярности. Связь с далекими узлами может быть медленной и ненадежной, поэтому миссию доставки сообщения удобно возложить на специальный сервер, часто называемый сервером исходящей почты. Если связь с сервером исходящей почты быстрая и надежная, то такой подход вполне оправдан. Напротив, рассылать письма через далекие, тормозные и нестабильно работающее сервера не имеет никакого смыла. В таком случае лучше положить сообщение непосредственно в ящик получателя. Однако немногие почтовые клиенты
Приведенный ниже пример демонстрирует, как посредством протокола SMTP отправить абоненту сообщение. Первым шагом необходимо запустить telnet-клиента и, установив соединение с выбранным SMTP-сервером (например, mail.aport.ru) по двадцать пятому порту, дождаться выдачи приглашения.
Рисунок 009 Подключение к серверу mail.aport.ru
· 220 camel.mail.ru ESMTP Exim 3.02 #107 Sun, 26 Mar 2000 17:36:24 +0400
Первые три символа возвращенной сервером строки представляют собой код завершения операции. Полный перечень кодов всевозможных ошибок содержится в RFC-821, и здесь не приводится.
Для передачи корреспонденции одного лишь TCP-соединения не достаточно, и необходимо установить еще одно, так называемое SMTP-соединение. Это достигается возвращением ответного приветствия серверу [193] с указанием имени узла клиента (если у него есть имя) или IP-адреса (если у клиента нет имени).
Далеко не всегда требуется указывать свой точный адрес. Часто достаточно ввести произвольную текстовую строку, например “ABDCEF”
· 220 camel.mail.ru ESMTP Exim 3.02 #107 Sun, 26 Mar 2000 17:36:24 +0400
· HELO ppp-15.krintel.ru
· 250 camel.mail.ru Hello ppp-15.krintel.ru [195.161.41.239]
Ответное приветствие осуществляется командой “HELO
[194]”. Сервер, установив SMTP-соединение, возвращает код успешного завершения операции (250) и в большинстве случаев определяет IP-адрес клиента или его доменное имя.
Следующим шагом требуется указать отправителя сообщения. Для этого необходимо воспользоваться командой «MAIL FROM» с указанием собственного почтового адреса при желании заключенного в угловые скобки.
Например:
· 220 camel.mail.ru ESMTP Exim 3.02 #107 Sun, 26 Mar 2000 17:36:24 +0400
· HELO ppp-15.krintel.ru
· 250 camel.mail.ru Hello ppp-15.krintel.ru [195.161.41.239]
· MAIL FROM:«kpnc@aport.ru»
· 250 «kpnc@aport.ru» is syntactically correct
Затем указывается получатель сообщения, передаваемый с помощью команды “RCPT TO”, пример использования которой продемонстрирован ниже:
· 220 camel.mail.ru ESMTP Exim 3.02 #107 Sun, 26 Mar 2000 17:36:24 +0400
· HELO ppp-15.krintel.ru
· 250 camel.mail.ru Hello ppp-15.krintel.ru [195.161.41.239]
· 250 «kpnc@aport.ru» is syntactically correct
· RCPT TO:«kpnc@aport.ru»
· 250 «kpnc@aport.ru» verified
При возникновении потребности в отправке одного и того же сообщения нескольким респондентам, достаточно вызвать “RCPT TO” еще один (или более) раз (максимальное количество получателей обычно не ограничено). Если кому-то из них сервер не возьмется доставить сообщение, он вернет ошибку, никак, однако не сказывающуюся на остальных получателях.
Команда “DATA”, вызываемая без аргументов, переводит сервер в ожидание получения текста письма.
· DATA
· 354 Enter message, ending with "." on a line by itself
Последовательность завершения ввода представляет собой обыкновенную точку, «окаймленную» с двух сторон переносами строк. Если такая последовательность встретится в тексте сообщения, формирование письма будет немедленно завершено. Почтовые клиенты, обычно распознают такую ситуацию и прибегают к перекодировке, но при работе с telnet-клиентом эта забота ложиться на пользователя.
Пример использования команды “DATA” приведен ниже:
· 220 camel.mail.ru ESMTP Exim 3.02 #107 Sun, 26 Mar 2000 17:36:24 +0400
· HELO ppp-15.krintel.ru
· 250 camel.mail.ru Hello ppp-15.krintel.ru [195.161.41.239]
· MAIL FROM:«kpnc@aport.ru»
· 250 «kpnc@aport.ru» is syntactically correct
· RCPT TO:«kpnc@aport.ru»
· 250 «kpnc@aport.ru» verified
· Hello, Sailor!
·.
· 250 OK id=12ZDEd-000Eks-00
Команда “QUIT” завершает сеанс и закрывает соединение.
· quit
· 221 camel.mail.ru closing connection
Содержимое полученного сообщения (механизм получения сообщений на локальный компьютер пользователя рассмотрен в главах «Протокол POP» и «Протокол IMAP4») может выглядеть, например, следующим образом:
· From kpnc@aport.ru Sun Mar 26 17:38:03 2000
· Received: from ppp-15.krintel.ru ([195.161.41.239])
· by camel.mail.ru with smtp (Exim 3.02 #107)
· id 12ZDEd-000Eks-00
· for kpnc@aport.ru; Sun, 26 Mar 2000 17:37:59 +0400
· Message-Id: «E12ZDEd-000Eks-00@camel.mail.ru»
· From: kpnc@aport.ru
· Date: Sun, 26 Mar 2000 17:37:59 +0400
·
· Hello,Sailor!