БИБЛИЯ ХАКЕРА

Маленькие хитрости твоего мыла

Это только кажется, что в Internet так легко затеряться, на самом же деле, любое ваше действие оставляет долго незаметаемые следы... Но как поступить, если возникает необходимость отправить (или получить) письмо и при этом остаться полностью анонимным?

Большинство серверов исходящей почты определяют IP-адрес от­правителя сообщения и вставляют его в заголовок. Конечно, IP-адрес это еще не сам отправитель (которого пойди найди), но иногда возникает же­лание остаться полностью анонимным.

В Сети существует множество служб, предоставляющих услуги по­добного рода (например, ргоху-серверы, анонимайзеры), но многие ано - нимайзеры явно указывают на желание отправителя остаться неизвест­ным, а по поводу анонимности некоторых proxy-серверов меня терзают смутные сомнения.

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

На языке Perl такая программа могла бы выглядеть приблизительно

Так:

Use Socket; •

My($mailFrom) = 'KPNC@APORT. RU'; • my($MailTo) = 'KPNC@AP0RT. RU';

Socket(SMTP, PF_INET(), S0CK_STREAM(), 6);

Connect(SMTP, sockaddr_in(25,inet_aton("mail. aport. ru")));

Recv(SMTP, $buffer, 200, 0); .

Print "$buffern";

Send(SMTP, "НЕЮ kpncn",0);

Print

My($buffer) =

Recv(SMTP, $buffer, 200, 0); print

Send(SMTP, "MAIL FROM: <$mailFrom>n", 0); print ">MAIL FROM:<$mailFrom>n";

Recv(SMTP, $buffer, 200, 0); print

Send(SMTP, "RCPT TO: <$MailTo>n",0); print ">RCPT TO: <$MailTo>n";

Recv(SMTP, $buffer, 200, 0); print

Send(SMTP, "DATAn", 0);

Print

Recv(SMTP, $buffer, 200, 0); print

Send(SMTP, "From: Kris Kasperskyn", 0); print ">From: Kris Kaspersky";

Print

Send (SMTP, "Subject: Testn", 0); • print

Send (SMTP, "Hello, KPNC! n", 0); print ">Hello, KPNC!n";

Send(SMTP, "rn.rn",0); print "rn.rn"; recv(SMTP, $buffer, 200, 0); print "$buffern";

Send(SMTP, "QUITn",0); print ">QUITn"; recv(SMTP, $buffer, 200, 0); print "$buffern";

Close(SMTP);

Приведенный пример позволяет отослать только одно письмо по указанному адресу. На самом же деле, если программа может отправить одно письмо, то сумеет и десять, стоит только дополнить ее циклом (На­пример, бесконечным).

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

Для размещения скрипта на сервере лучше всего воспользоваться ftp-протоколом, а запустить его из telnet-сессии проще всего так: «perl имяфайла. рі».

Для облегчения понимания этот пример не имеет никаких изменя­емых настоек и все данные прописаны непосредственно в теле програм­мы.

Заголовок письма, отправленного с ее помощью на ящик «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 1 1:51:53 +0400

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

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

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

Для этого достаточно вставить в заголовок одно (или несколько) по­лей «Received», например, так «Received: from mail. pets. ja» (конечно, это очень грубая подделка, но в качестве примера вполне сойдет). Модифи - - цированный вариант скрипта отличается от оригинальной программы следующими строками:

Send(SMTP, "Received: from mail. pets. jan", 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-0Q

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-O0ONmZ-OO@camel, mail, ru > Bcc:

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

Проанализировав строку, выделенную жирным шрифтом, получа­тель, скорее всего, решит, что письмо пришло с сервера mail. pets. ja, и вряд ли обратит внимание на ретрансляторы, находящиеся выше. Выявление истинного получателя можно значительно затруднить, если не класть

Письмо непосредственно в почтовый ящик клиента, а пересылать его че­рез несколько транзитных серверов. Если задействовать несколько десят­ков узлов и вставить в письмо несколько десятков подложных строк «Received», то установить истинного отправителя сообщения станет прак­тически невозможно, вернее сказать, нецелесообразно.

Однако грубая подделка заголовка облегчает выявление фальсифи­цированных полей. Основные ошибки, по которым легко узнается подлог, следующие: указанных адресов серверов вообще не существует в природе; стиль заполнения сервером поля «Received» отличается от ис­пользуемого злоумышленником; реальное время пересылки писем серве­ром на порядок ниже (или выше), чем это следует из заголовка письма.

Поэтому, мало иметь образцы заполнения «Received» каждым из уз­лов — необходимо выяснить средние задержки в доставке сообщений. Еще более сложно разобраться с алгоритмом генерации идентификато­ров, добавляемых большинством транзитных серверов к заголовку пись­ма для избежания его зацикливания. Такой идентификатор уникален для каждого сервера и не может представлять абсолютно случайное значение, поскольку, тогда бы существовала возможность повторной выдачи одно­го и того же идентификатора, что недопустимо.

Обеспечить уникальность помогает привязка ко времени пересыл­ки письма. Некоторые алгоритмы генерации идентификатора позволяют его обратить и узнать время, когда он был выдан. Это позволяет выявить поддельные идентификаторы, а вместе с ними и поддельные поля в заго­ловке письма.

Причем по «внешнему виду» идентификатора трудно (невозможно) сказать каким образом он был получен. Для этого необходимо изучить ис­ходные тексты сервера (если они доступны) или дизассемблировать ма­шинный код (если исходные тексты вне досягаемости). В следующем за­головке приведены примеры двух идентификаторов. Разумеется, визуально ничего нельзя сказать о том, как они были получены:

From Owner-sf-news@securityfocus. com Wed Sep 06 03:00:03 2000

Received: from lists. securityfocus. com ([207.126.127.68]) by hearst. mail, ru with esmtp (Exim 3.14 #4) id 13WRh6-OOC)LBx-00; Wed, 06 Sep 2000 02:59:57 +0400

Received: from lists. securityfocus. com (lists. securityfocus. com

[207.126.127.68])

By lists. securityfocus. com (Postfix) with ESMTP id E62DC1EF74; Tue, 5 Sep 2000 15:58:34 -0700 (PDT)

Received: from LISTS. SECURITYFOCUS. COM

By LISTS. SECURITYFOCUS. COM (LISTSERV-TCP/IP release

1.8d) with spool

Id 13121453 for SF-NEWS@LISTS. SECURITYFOCUS. COM;

Tue, 5 Sep 2000 15:58:31 -0700

Approved-By: se@SECURITYFOCUS. COM

Впрочем, маловероятно, чтобы получатель обладал квалификаци­ей, достаточной для проведения анализа подобного уровня. И большин­ство пользователей. можно ввести в заблуждение даже грубой подделкой заголовка. ,

Анонимное получение корреспонденции

При получении почты обычным способом сервер определяет (а не­которых случаях и запоминает) подключившегося клиента. Но иногда получателю нежелательно раскрывать свой адрес, даже если он ди­намический. Провайдер, выделяя абоненту IP, запоминает (может запо­минать) время, в которое он был выдан и имя пользователя, которому он был выдан. Поэтому, существует теоретическая возможность установить личность получателя письма.

Для сохранения полной анонимности можно воспользоваться спе­циально разработанным скриптом, который читает корреспонденцию и выкладывает ее на какой-нибудь анонимный ftp-сервер. Это позволяет убить сразу двух зайцев — скрыть собственный адрес и обойти один из не­достатков РОРЗ протокола — отсутствие докачки.

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

В приведенном ниже примере в качестве альтернативы Perl исполь­зован язык Python, основные достоинства которого — простота и огром­ное количество всевозможных библиотек, поставляемых вместе с языком. Ниже будет продемонстрировано использование одной из них.

Библиотека poplib скрывает от пользователя механизмы взаимодей­ствия клиента с РОРЗ-сервером, и значительно упрощает процесс про­граммирования. Минимально функциональная программа, читающая все письма, поступившие к этому моменту в почтовый ящик, может выгля­деть так:

#!/usr/local/bin/python import poplib

Print "Python's Mail client" print "Connecting..." M = poplib. P0P3("mail. ru") print "Login..."

M. user("MyLogiri")

Print "Password...,"

M. pass_( "MyllnpublishedPassword")

Print "Get List of message" numMessages = len(M. list()[1]) print of message :

For i in range(nuraMessages): for j in M. retr(i+1)[1]: print j

Вероятно, единственной проблемой окажется поиск сервера с уста­новленным интерпретатором Python. На худой конец, можно попробо­вать умаслить вашего администратора и уговорить его установить питончика в системе.

БИБЛИЯ ХАКЕРА

Эта заподлистая кнопка power — как отключить?

На клавиатуре есть кнопка - у меня под делетом сразу, power называется - соответственно значок "яблоко с прямым хвостиком"... Какого гондураса её не разместили где-нибудь в другом месте да подальше …

Безопасность

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

Прямой (кривой номер), АОН, БП и переадресация Прямые и кривые номера

Номера сотовых телефонов могут быть прямыми и кривыми. Пря­мые — это обычные городские семизначные (в Москве) номера, кривые (или федеральные) — набирать через коды 901, 902, 903, 501 или другие, …

Как с нами связаться:

Украина:
г.Александрия
тел./факс +38 05235  77193 Бухгалтерия

+38 050 457 13 30 — Рашид - продажи новинок
e-mail: msd@msd.com.ua
Схема проезда к производственному офису:
Схема проезда к МСД

Партнеры МСД

Контакты для заказов оборудования:

Внимание! На этом сайте большинство материалов - техническая литература в помощь предпринимателю. Так же большинство производственного оборудования сегодня не актуально. Уточнить можно по почте: Эл. почта: msd@msd.com.ua

+38 050 512 1194 Александр
- телефон для консультаций и заказов спец.оборудования, дробилок, уловителей, дражираторов, гереторных насосов и инженерных решений.