Читаем Техника сетевых атак полностью

· use Socket;· my($mailFrom) = 'KPNC@APORT.RU';· my($MailTo) = 'KPNC@APORT.RU';·· socket(SMTP, PF_INET(), SOCK_STREAM(), 6);· connect(SMTP,sockaddr_in(25,inet_aton("mail.aport.ru")));·· recv(SMTP, $buffer, 200, 0);· print "$buffer\n";·· send(SMTP, "HELO kpnc\n",0);· print "»HELO\n";·· my($buffer) = @_;· recv(SMTP, $buffer, 200, 0);· print "$buffer\n";·· send(SMTP, "MAIL FROM: «$mailFrom»\n",0);· print "»MAIL FROM:«$mailFrom»\n";· recv(SMTP, $buffer, 200, 0);· print "$buffer\n";·· send(SMTP, "RCPT TO: «$MailTo»\n",0);· print "»RCPT TO: «$MailTo»\n";· recv(SMTP, $buffer, 200, 0);· print "$buffer\n";·· send(SMTP, "DATA\n",0);· 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].

Перейти на страницу:

Похожие книги

Programming with POSIX® Threads
Programming with POSIX® Threads

With this practical book, you will attain a solid understanding of threads and will discover how to put this powerful mode of programming to work in real-world applications. The primary advantage of threaded programming is that it enables your applications to accomplish more than one task at the same time by using the number-crunching power of multiprocessor parallelism and by automatically exploiting I/O concurrency in your code, even on a single processor machine. The result: applications that are faster, more responsive to users, and often easier to maintain. Threaded programming is particularly well suited to network programming where it helps alleviate the bottleneck of slow network I/O. This book offers an in-depth description of the IEEE operating system interface standard, POSIX (Portable Operating System Interface) threads, commonly called Pthreads. Written for experienced C programmers, but assuming no previous knowledge of threads, the book explains basic concepts such as asynchronous programming, the lifecycle of a thread, and synchronization. You then move to more advanced topics such as attributes objects, thread-specific data, and realtime scheduling. An entire chapter is devoted to "real code," with a look at barriers, read/write locks, the work queue manager, and how to utilize existing libraries. In addition, the book tackles one of the thorniest problems faced by thread programmers-debugging-with valuable suggestions on how to avoid code errors and performance problems from the outset. Numerous annotated examples are used to illustrate real-world concepts. A Pthreads mini-reference and a look at future standardization are also included.

David Butenhof

Программирование, программы, базы данных
Секреты приложений Google
Секреты приложений Google

Даже продвинутые пользователи Интернета не подозревают о тех огромных возможностях, которые предоставляют сервисы Google. Автор рассказывает о таких «секретах» сервисов, которые просто немедленно хочется использовать! Создавать сайты и презентации, бродить по улочкам Парижа, изучать звездное небо – все это доступно каждому, кто сидит у экрана монитора и имеет доступ в Интернет. Книга научит вас работать с веб-приложениями и тысячекратно увеличить свои возможности с помощью новейших технологий. Она написана легким, доступным языком и не требует от читателя наличия каких-либо специальных знаний. Книга содержит множество примеров, иллюстраций и будет полезна всем, кто не стоит на месте и стремится сделать свою жизнь более насыщенной и интересной.

Денис Балуев , Денис Игоревич Балуев

Программирование, программы, базы данных / Интернет / Программное обеспечение / Книги по IT