Чтение онлайн

на главную

Жанры

Техника сетевых атак
Шрифт:

· print "»DATA\n";

· recv(SMTP, $buffer, 200, 0);

· print "$buffer\n";

·

· send(SMTP, "From: Kris Kaspersky\n", 0);

· print "»From: Kris Kaspersky";

· print "«BR»\n\n";

·

· send(SMTP, "Subject: Test\n", 0);

· print "»Subject: Test\n";

·

· send(SMTP, "Hello, KPNC!\n", 0);

· print "»Hello, KPNC!\n";

·

· send(SMTP, "\r\n.\r\n",0);

· print "\r\n.\r\n";

· recv(SMTP, $buffer, 200, 0);

· print "$buffer\n";

·

· send(SMTP, "QUIT\n",0);

· print "»QUIT\n";

· recv(SMTP, $buffer, 200, 0);

· print "$buffer\n";

·

· close(SMTP);

Приведенный пример позволяет отослать только одно письмо по указанному адресу. На самом же деле, если программа может отправить одно письмо, то сумеет и десять, стоит только дополнить ее циклом [219].

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

Скрипт необходимо разместить на сервере, который поддерживает удаленное выполнение программ, разрешает telnet-вход, имеет в наличие интерпретатор Perl и допускает установку соединений с другими узлами сети. Перечисленным требованиям удовлетворяет, например, hobbiton.org и некоторые другие бесплатные сервера.

Для размещения файла скрипта на сервере лучше всего воспользоваться ftp-протоколом, а запустить его из telnet-сессии проще всего так: “perl имяфайла.pl”. (Для запуска скрипта по протоколу HTTP его придется несколько модифицировать, о том, как это сделать рассказано в главе «Протокол HTTP»). После завершения работы скрипта экран должен выглядеть приблизительно так:

Рисунок 31 Демонстрация работы скрипта, посылающего письмо

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

Заголовок письма, доставленного на “kpnc@aport.ru” (или по любому другому адресу) должен выглядеть приблизительно так:

· From kpnc@aport.ru Mon Jun 05 11:51:53 2000

· Received: from hobbiton.org ([216.161.239.42] helo=kpnc)

· by hearst.mail.ru with smtp (Exim 3.14 #3)

· id 12yrfs-000KGD-00

· for KPNC@APORT.RU; Mon, 05 Jun 2000 11:51:53 +0400

· From: Kris Kaspersky

· Subject: Test

· Message-Id: «E12yrfs-000KGD-00@hearst.mail.ru»

· Date: Mon, 05 Jun 2000 11:51:53 +0400

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

Подобные услуги предоставляют сотни поставщиков в сети, но не все анонимайзеры действительно надежны. Лучше всего пользоваться программным обеспечением собственного написания, в котором можно гарантировать отсутствие «закладок», а поведение чужого ресурса временами бывает непредсказуемо [220].

Однако технически возможно фиксировать IP-адреса всех пользователей, подключившихся к hobbiton.org [221] и запустивших скрипт рассылки на выполнение. Поэтому, отправителю, желающему остаться абсолютно неизвестным, необходимо найти такой сервер, который бы не вел никаких протоколов [222]. Или можно задействовать несколько десятков узлов, последовательно пересылая скрипт (или команду на его выполнение) от машины к машине. Если хотя бы один из узлов этой цепочки не регистрирует всех подключений, то установить отправителя будет невозможно. Некоторые приемы позволяют подделать содержимое IP-заголовка. Но, поскольку такая операция требует весьма высокой квалификации, к ней обычно не прибегают.

Кроме сокрытия анонимности отправителя, скрипт может использоваться для фальсификации (или уничтожения) заголовков писем. Например, можно создать видимость, что сервер, отправивший письмо, всего лишь транзитный узел пересылки, а «настоящий» отправитель находится совсем - совсем в другом месте.

Для этого достаточно вставить в заголовок одно (или несколько) полей «Received», например, так “Received: from mail.pets.ja” [223]. Модифицированный вариант smtp.pl находится на прилагаемом к книге диске под именем smtp1.pl, и от оригинального файла отличается следующими строками:

· send(SMTP, "Received: from mail.pets.ja\n", 0);

· print "»Received: from mail.pets.ja";

Заголовок письма, отправленного с его помощью, должен выглядеть приблизительно так:

· From kpnc@aport.ru Thu Apr 06 10:57:30 2000

· Received: from [209.143.154.93] (helo=kpnc)

· by camel.mail.ru with smtp (Exim 3.02 #107)

· id 12d6EL-000NmZ-00

· for KPNC@APORT.RU; Thu, 06 Apr 2000 10:57:30 +0400

· Received: from mail.pets.ja

· From: Kris Kaspersky

· Subject: Test

· Message-Id: «E12d6EL-000NmZ-00@camel.mail.ru»

· Bcc:

· Date: Thu, 06 Apr 2000 10:57:30 +0400

Получатель, скорее всего, решит, что письмо пришло с сервера mail.pets.ja, и вряд ли обратит внимание на ретрансляторы. Выявление истинного получателя можно значительно затруднить, если не класть письмо непосредственно в почтовый ящик клиента, а переслать его через несколько транзитных серверов. В этом помогут возможности управления маршрутизацией доставки сообщения, поддерживаемые SMTP-протоколом. Если задействовать несколько десятков узлов и вставить в письмо несколько десятков подложных строк “Received”, то установить истинного отправителя сообщения станет практически невозможно, вернее сказать, нецелесообразно.

Популярные книги

Лорд Системы 12

Токсик Саша
12. Лорд Системы
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Лорд Системы 12

Идеальный мир для Лекаря 18

Сапфир Олег
18. Лекарь
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 18

Рухнувший мир

Vector
2. Студент
Фантастика:
фэнтези
5.25
рейтинг книги
Рухнувший мир

Расческа для лысого

Зайцева Мария
Любовные романы:
современные любовные романы
эро литература
8.52
рейтинг книги
Расческа для лысого

Попаданка в деле, или Ваш любимый доктор - 2

Марей Соня
2. Попаданка в деле, или Ваш любимый доктор
Любовные романы:
любовно-фантастические романы
7.43
рейтинг книги
Попаданка в деле, или Ваш любимый доктор - 2

Купец. Поморский авантюрист

Ланцов Михаил Алексеевич
7. Помещик
Фантастика:
альтернативная история
5.00
рейтинг книги
Купец. Поморский авантюрист

Школа Семи Камней

Жгулёв Пётр Николаевич
10. Real-Rpg
Фантастика:
фэнтези
рпг
5.00
рейтинг книги
Школа Семи Камней

Адепт. Том 1. Обучение

Бубела Олег Николаевич
6. Совсем не герой
Фантастика:
фэнтези
9.27
рейтинг книги
Адепт. Том 1. Обучение

Сопряжение 9

Астахов Евгений Евгеньевич
9. Сопряжение
Фантастика:
боевая фантастика
постапокалипсис
технофэнтези
рпг
5.00
рейтинг книги
Сопряжение 9

Мерзавец

Шагаева Наталья
3. Братья Майоровы
Любовные романы:
современные любовные романы
эро литература
короткие любовные романы
5.00
рейтинг книги
Мерзавец

Генерал Скала и сиротка

Суббота Светлана
1. Генерал Скала и Лидия
Любовные романы:
любовно-фантастические романы
6.40
рейтинг книги
Генерал Скала и сиротка

Черный Маг Императора 8

Герда Александр
8. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Черный Маг Императора 8

(не)Бальмануг.Дочь

Лашина Полина
7. Мир Десяти
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
(не)Бальмануг.Дочь

Помещица Бедная Лиза

Шах Ольга
Любовные романы:
любовно-фантастические романы
6.40
рейтинг книги
Помещица Бедная Лиза