
[ Взаимодействие по протоколу SMTP напрямую. Разбор заголовка письма. Анонимная отправка писем. Спам. ]
Date: 8.11.02
В данной статье я опишу взаимодействие по протоколу SMTP.
Для отправки сообщений используется протокол SMTP (Simple Mail
Transfer Protocol). Висит на 25 порту.
Взаимодействие осуществляется по следующему сценарию:
1. Клиент открывает осединение к 25 порту smtp сервера и считывает
из сокета строку приглашения. Клиент посылает команду HELO superMan,
тем самым представляясь smtp серверу как superMan.
2. Если сервер готов к работе с нами, то он выдаст статусную строку
с кодом 250 и текстовым описанием.
3. Клиент посылает команду MAIL FROM:<адрес@отправителя.ru>
Допускается также форма MAIL FROM:<>, при этом адрес отправителя будет
передаваться в заголовке письма.
4. Сервер отвечает OK
5. Клиент посылает команду RCPT TO:<адрес@получателя.com>
6. Сервер отвечает OK
7. Далее клиент посылает команду DATA, на что сервер ответит, что мы можем
начинать посылку данных, завершив все это последовательностью \n.\n
8. Проделав все вышеописанное сервер уведомит вас о том, что письмо
поставлено в очередь (выведет номер письма в очереди - это не обязательно),
после чего можно посылать команду quit, на что сервер закроет соединение.
Передача письма осуществляется за считанные секунды (минуты, depends on...),
после чего письмо будет доставлено.
А вот как все это выглядит на терминале:
Server: 220 Hueymiccailhuitl.mtu.ru ESMTP Postfix
Client: Helo durilo
Server: 250 Hueymiccailhuitl.mtu.ru
Client: MAIL FROM:
Server: 250 Ok
Client: RCPT TO:
Server: 250 Ok
Client: DATA
Server: 354 End data with .
Client: Happy New Year!
Server: 250 Ok: queued as E743317FC92
Client: quit
Server: Buy!
Письмо придет от чужого адреса, и человек особо необремененных
знанием PC раскроет рот. Конечно об анонимности речи тут идти не может,
потому как твой IP засветится в хедере письма, и при желании
можно устроить проблемы человеку, приславшему такое письмо.
Если вы сидите на диалапе, то, как правило, к какому бы вы SMTP серверу не обращались,
он пошлет вас на SMTP вашего провайдера. Следовательно обо
всякой анонимности можете забыть сразу.
Правда, существует одно НО (по крайней мере существовало). Есть анонимные SMTP сервера, которые не интересуются тем,
кто вы и откуда пришли, но найти их сейчас уже стало нереально, потому
что продвинутые мыл-службы стали бороться со спамом совместно и связываться
с ними не хочет никто.
Заголовок письма.
Большинство людей даже и не пытаются вникнуть в то, что приходит им на почту, но не Мы...
Давайте арзберем, как выглядит типовой заголовок письма, пришедшего к нам на почту.
Специально для этой статьи я нарыл немного инфы из своего архива.
Письмо: заголовок
От: putin@president.ru
Кому: undisclosed-recipients:;
Дата: Mon, 23 Oct 2002 15:50:48 +0400 (MSD)
From putin@president.ru Mon Oct 23 15:52:02 2002
Envelope-to: devka@moya.ru
Delivery-date: Mon, 23 Oct 2002 15:52:02 +0400
Received: from drweb by mx5.mail.ru with drweb-scanned (Exim MX.5)
id 183b6E-000OkL-00
for devka@moya.ru; Mon, 23 Oct 2002 15:51:58 +0400
Received: from [195.34.32.121] (helo=Hueymiccailhuitl.mtu.ru)
by mx5.mail.ru with esmtp (Exim MX.5)
id 183b63-000OZJ-00
for devka@moya.ru; Mon, 23 Oct 2002 15:51:47 +0400
Received: from microsoft.com ([_наш_реальный_IP_])
by Hueymiccailhuitl.mtu.ru (Postfix) with SMTP id E743317FC92
for ; Mon, 23 Oct 2002 15:50:48 +0400 (MSD)
(envelope-from putin@president.ru)
Message-Id: <20021021115048.E743317FC92@Hueymiccailhuitl.mtu.ru>
Date: Mon, 23 Oct 2002 15:50:48 +0400 (MSD)
From: putin@president.ru
To: devka@moya.ru:;
Из заголовка сразу видно, как находят спамеров.
Кому еще не ясно, расскажу:
Сообщается о спаме админам мыл-сервера. Они смотрят номер письма и дату письма
и твой IP, обычно даже рядом явно указан твой провайдер. Инфа идет к провайдеру,
который смотрит на все это недобрыми глазами и закрывает твой диалап аккаунт
на неопределенный срок (пока ты с ним не договоришься и не оправдаешься).
Основные поля хедера:
From: Адрес отправителя
To: Адрес получателя
Subject: Тема письма
Date: Дата отправки письма почтовой системой
Content-type: Указывает тип содержимого. Если не указан, то text/plain по дефолту.
Content-Transfer-Encoding: SMTP gпередает данные только в ASCII-формате. Строка показывает, как закодировани сообщение.
Это можкт быть quoted-printable, base64, uuencoded.
Например: Content-Transfer-Encoding: base64
Служебные поля:
Message-ID: Уникальный идентификатор почтового сообщения, который можно использовать для ссылок на письмо.
Например: Message-Id: <20021021115048.E743317FC92@Hueymiccailhuitl.mtu.ru>
Received: В поле записывается, через какие промежуточные серверы прошло письмо. Если письмо пришло издалека,
то его вероятно пинали многие сервера, и список будет длинным.
Спам.
Соответственно, автоматизировав процесс отправки письма программно, напрямую
работая с SMTP сервером можно заспамить чей-нибудь ящик.
ЗЫ: Не советую этим увлекаться, а то придется менять провайдера и получать по ушам.
В приложении к этой статье я написал программу kwMailBomber v1.0 на Перле, которая
позволяет за несколько секунд превратить почтовый ящик в помойную яму
нажатием пары кнопок. Его можно слить в наших релизах ("Our Projects" в главном меню).
После ее применения ящик недруга примет вид:
N От Дата Размер Тема
1 putin@president.ru Nov 07 1K Present!
2 putin@president.ru Nov 07 1K Present!
3 putin@president.ru Nov 07 1K Present!
4 putin@president.ru Nov 07 1K Present!
5 putin@president.ru Nov 07 1K Present!
6 putin@president.ru Nov 07 1K Present!
и так до бесконечности, на сколько хватит наглости.
GooDLuck!
{dr}{NerVe}     [KODSWEB]
!!! Статья является собственностью команды KODSWEB !!!
!!! Любое распространение без нашего разрешения строго запрешено !!!
|