June 3, 2018

Способы реального взлома почты

Способ 1: используем троян

Довольно распространенным способом заполучения доступа к чужому ящику является рассылка электронных писем со встроенными вирусами. Точнее вирус встраивается не в само письмо, а письмо лишь содержит ссылку на вирус. Обычно содержание письма должно чем-то «зацепить» пользователя. Оно должно быть таким, на которое пользователь не сможет не отреагировать.

Примеры троянов — DarkComet RAT, SpyEye, Carberp. О DarkComet RAT мы уже писали, о Carberp было написано на Хабре. А SpyEye — это наш отечественный троян, разработанный Александром Паниным, который даже засветился в сводках ФБР.

Мы использовали модифицированную версию трояна ZeuS. На момент создания (29.10.15) нашу версию не обнаруживал ни один антивирус (рис. 1), к тому же в нем была функция отключения процессов, среди которых есть Dr.Web. Однако на компьютере жертвы был установлен Comodo — так даже лучше.

В качестве жертвы мы выбрали бухгалтера нашей управляющей компании Юлию. Ради чистоты эксперимента она ничего не подозревала о том, что мы собираемся сделать. Думаю, об этом не стоило даже и говорить.

Итак, у нас есть модифицированный ZeuS, но как заставить Юлию запустить его? Если просто отправить ей ссылку, понятно дело, она переходить по ней не будет. Обещать золотые горы в письме — тоже прошлый век, на такое пользователи уже не реагируют.

Рис. 1. Отчет VirusTotal

Тогда мы решили отправить письмо якобы от имени Федеральной Налоговой службы (рис. 2). Мы выбрали то, что «зацепит» жертву.

Рис. 2. Письмо от налоговой

Чтобы поле From содержало внушительное название, а не [email protected], нами были подделаны заголовки письма. Это делается довольно просто, а как именно будет показано в способе 5. Пока не будем на это отвлекаться.

Как мы и рассчитывали, Юлия скачала программу и запустила инсталлятор обновления формы отчетности (рис. 3). Инсталлятор сделан с помощью Inno Setup за 5 минут. Именно он установит и запустит наш троян.

Рис. 3. Установка трояна

После этого мы можем полностью контролировать компьютер жертвы (рис. 4).

Что мы можем? Мы можем ради интереса просмотреть список процессов компьютера, в котором, ясное дело, не будет нашего трояна (рис. 5). Мы можем просмотреть файловую систему (рис. 6).

Рис. 5. Список процессов на компьютере жертвы

Рис. 6. Файловая система на компьютере жертвы

Конечно, самое главное, ради чего все это затевалось — список паролей, сохраненных в браузере (рис. 7).

Рис. 7. А вот и пароли

Письмо и инсталлятор далеки от идеала, поскольку все делалось на скорую руку. Однако наша затея увенчалась успехом. Для достижения своей цели мы объединили целых два способа — социальный инженеринг и «поддельное» письмо. Оба эти способа будут рассмотрены далее.

Эффективность: средняя

Сложность: средняя

Стоимость: низкая

Способ 2: взлом по номеру телефона

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

Пользователь, ничего не подозревая, отправляет код из первой SMS. Самый большой недостаток этого способа в том, что первая SMS придет от Google, а вторая — с неизвестного номера. Успех этого способа зависит от сообразительности жертвы. Посмотрим на этот способ на практике.

Первым делом попытаемся просто сбросить пароль, после чего Google попросит ввести тот пароль, который мы помним. Понятное дело, пароль мы не помним, поэтому нажимаем кнопку Затрудняюсь ответить (рис. 8).

Рис. 8. Запрос на восстановление пароля

Далее если у вашей жертвы был привязан к аккаунту Android-телефон, то Google предложит отправить оповещение (рис. 9), которое выглядит, как показано на рис. 10. Примечательно, но смартфон не издал ни единого звука, а просто отобразил оповещение. Если он не будет перед глазами у пользователя, есть вероятность, что он его не заметит. Если же пользователь нажмет Нет, то не отчаивайтесь — повторите данный процесс несколько раз — позже поймете зачем.

Рис. 9. Предложение отправить оповещение

Рис. 10. Оповещение Google

После нажатия кнопки Отправить оповещение откроется страница, изображенная на рис. 11. Перейдите по ссылке Сбросьте пароль другим способом. Откроется классическая страница сброса пароля через SMS-код (рис. 12). Эта же страница откроется, если к аккаунту не привязан Android-телефон.

Рис. 11. Инструкция по работе с оповещением

Рис. 12. Отправка SMS-кода

Настал кульминационный момент. Жертва получает код подтверждения Google (рис. 13).

Рис. 13. Код подтверждения

Далее вы должны с другого телефона сразу же отправить примерно такое сообщение:

Предотвращена попытка входа в аккаунт Google. Перешлите код подтверждения Google для разблокировки аккаунта.

На рис. 14 показано, как выглядит это сообщение на экране телефона.

Рис. 14. Сообщение от злоумышленника

С одной стороны, пользователь может обратить внимание на неизвестный номер. С другой стороны, поставьте себя на место среднестатистического пользователя. Сначала он получает уведомление о сбросе пароля, потом SMS с кодом подтверждения, а после — сообщение о том, что замечена подозрительная активность. Конечно, можно все немного усложнить и завести короткий номер, с которого и будет отправлена SMS. Получить короткий номер с названием службы, например, Google Security, не проблема. Это только повысит вероятность успеха.

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

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

Рис. 15. Настройка переадресации

Эффективность: средняя

Сложность: низкая

Стоимость: низкая

Способ 3: доступ к компьютеру

Если у вас есть доступ к компьютеру жертвы, то можете считать, что почту вы уже взломали. Вы можете запустить на компьютере или кейлоггер или программу для «восстановления» паролей почтовых учетных записей.

Суть кейлоггера в том, что в специальный файл он записывает все, что пользователь вводит с клавиатуры. Вам останется только второй раз подойти к компьютеру, чтобы забрать результирующий файл (или получить его по почте).

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

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

Третий недостаток — если жертва использует почтовый клиент, а не веб-интерфейс, то кейлоггер вообще не поможет. Скорее всего, пароль уже введен в почтовый клиент и запомнен, поэтому жертва не вводит его каждый раз при проверке почты. Следовательно, кейлоггер запишет в файл все, что вводит пользователь, кроме того, что нужно вам.

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

Программы для «восстановления» паролей почтовых учетных записей позволяют сразу получить все интересующие вас пароли без необходимости чтения мегабайтов текста в поиске нужного вам пароля. К тому же на них никак не реагирует антивирус. Одна из таких программ — это Mail PassView. Она позволяет восстановить пароли следующих почтовых учетных записей:

  • Outlook Express
  • Microsoft Outlook 2000 (POP3 and SMTP Accounts only)
  • Microsoft Outlook 2002/2003/2007/2010/2013 (POP3, IMAP, HTTP and SMTP Accounts)
  • Windows Mail
  • IncrediMail
  • Eudora
  • Netscape 6.x/7.x
  • Mozilla Thunderbird
  • Group Mail Free
  • Yahoo! Mail – если пароль сохранен в приложении Yahoo! Messenger.
  • Hotmail/MSN mail – если пароль сохранен в приложении MSN Messenger.
  • Gmail – если пароль сохранен в приложениях Gmail Notifier, Google Desktop или Google Talk.

Программу мы проверили на своих компьютерах и заявляем: она работает (рис. 16). На рис. 16 пароли, как и адреса e-mail затерты по понятным причинам.

Рис. 16. Программа Mail PassView

Mail PassView — не единственная программа в своем роде. Существуют и другие программы:

  1. Outlook Password Decryptor — позволяет восстановить пароли из Outlook, в том числе самых последних версий (Outlook 2015, работающей под управлением Windows 10);
  2. PstPassword — еще одна программа для восстановления паролей, сохраненных в Outlook;
  3. WebBrowserPassView — программа для восстановления паролей, хранящихся в браузере. Поддерживаются браузеры IE, Chrome, Opera, Safari, Firefox.

Все, что нужно — это знать, какой почтовый клиент использует жертва. Найти программу для «восстановления» пароля из этого почтового клиента — не проблема. Если же жертва использует веб-интерфейс для чтения своего почтового ящика, тогда лучше использовать программу WebBrowserPassView. Она поддерживает все версии Windows, начиная с 2000 и заканчивая 10. Старые версии вроде 98/ME не поддерживаются.

Мы протестировали и эту утилиту. Программа успешно восстановила все пароли, хранящиеся в браузерах IE, Firefox, Chrome и Opera (Safari нами не тестировался, но, считаем, что и там будет полный «порядок»), см. рис. 17. Даже если вы не найдете среди этого списка пароль от почтового ящика, сей список будет тоже полезен — ведь люди часто используют одни и те же пароли для разных служб.

Рис. 17. Восстановленные пароли

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

Раз мы уже заговорили о восстановлении паролей, то вам может пригодиться программа Dialupass, восстанавливающая dialup/RAS/VPN-пароли. Программа поддерживает Windows 2000, Windows XP, Windows 2003/2008, Windows Vista, Windows 7, Windows 8 и Windows 10

Эффективность: высокая

Сложность: низкая

Стоимость: низкая

Способ 4: социальная инженерия

Об этом способе не писал только ленивый. Много было уже сказано. Вам кажется, что этот способ не такой эффективный, как о нем говорят? Вы ошибаетесь.

Совсем недавно была взломана почта директора ЦРУ Джона Бреннана. Абсурдность ситуации в том, что почту взломал не «матерый» хакер, а обычный подросток, правильно собрав информацию о своей «жертве». Подросток сначала связался с сотовым оператором, представившись сотрудником технической поддержки, уточнил детали аккаунта Бреннана.

После этого он позволил в AOL и, представившись Бреннаном, попросил сбросить его пароль. Поскольку он знал всю необходимую информацию (номер почтового аккаунта, последние цифры банковской карты, 4-значный PIN-код, номер телефона), пароль был сброшен и никто ничего не заподозрил.

Чуть позже Wikileaks опубликовал письма директора ЦРУ, см. рис. 18.

Рис. 18. Письма директора ЦРУ, опубликованные Wikileaks

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

Эффективность: высокая

Сложность: средняя

Стоимость: низкая

Способ 5: доверчивые пользователи (фишинг)

Попросим пользователя самого сообщить нам свой пароль. Нет, этот способ не подразумевает физического насилия и ни один из пользователей в результате эксперимента не пострадает. Во всяком случае, физически.

Суть этого метода в следующем: нужно создать фейк страницы авторизации того сервиса, который вы хотите взломать. Например, если вы хотите получить пароль от почты GMail.com, тогда нужно создать такую же страницу входа.

Далее нужно заманить пользователя на фейковую страницу. Это можно сделать несколькими способами:

  • Отправить ему сообщение якобы от имени администрации того сервиса. В сообщении указать, что-то вроде «Вы давно не заходили в свой почтовый ящик. Если вы не воспользуетесь ним до <Д>.<М>.<Г>, он будет удален.». Рисуем кнопочку Войти, нажав которую пользователь попадет на вашу страницу авторизации.
  • Отправить сообщение со ссылкой, которая должна заинтересовать пользователя. Когда он перейдет по ней, он увидит сообщение о необходимости входа для просмотра содержимого. Сейчас многие сервисы позволяют войти с помощью учетной записи GMail или одной из социальных сетей. Так что пользователь может ничего и не заподозрить.

Очень часто описывается только «общее направление». Мы же попробовали реализовать его в собственной компании и посмотреть на реакцию обычных пользователей. Способ довольно непростой и для его реализации понадобятся, как навыки программирования на PHP, так и некоторые финансовые вложения. Ведь нам понадобится хостинг с поддержкой PHP (для выполнения PHP-сценария и размещения формы авторизации) и доменное имя, «похожее» на имя взламываемого сервиса. Конечно, опытный пользователь сразу заметит подлог, но посмотрим, как отреагируют самые обычные пользователи.

Итак, мы создали форму авторизации, похожую на форму входа в Google. Результат наших страданий изображен на рис. 19. Конечно, можно было бы и лучше, но мы спешили.

Рис. 19. Форма входа

Далее мы отправили некоторым сотрудникам сообщение о том, что их почтовый ящик будет заблокирован. Обратите внимание, что дизайн письма даже отдаленно (если не считать логотипа) не напоминает дизайн, используемый Google. Но, как показала практика, для наших пользователей этого было достаточно. Можно было бы взять исходный код письма, которое отправляет Google, сделать все более качественно. В реальных условиях злоумышленник так и сделает — будьте в этом уверены.

Рис. 20. Письмо, которое мы отправили пользователям

Что произошло дальше? Дальше пользователи прочитали письмо, перешли по ссылке и наивно ввели имя пользователя и пароль, которые были переданы сценарию. Сценарий принимает эти данные и записывает в текстовый файл. Написать такой сценарий сможет любой новичок, владеющий основами PHP. Примерный код сценария (это не тот сценарий, который использовали мы) приведен в листинге 1.

Листинг 1. Простейший сценарий записи паролей

Код:

<?php
// введенный логин
$login = $_POST['Login'];
// браузер пользователя
$browser = getenv("HTTP_USER_AGENT");
// Пароль
$pass = $_POST['password'];

// Записываем полученные данные
$text = "Login = $login\nPassword = $pass\nBrowser = $browser";

// открываем файл
$filelog = fopen("log.txt","a+");
// записываем строку
fwrite($filelog,"\n $text \n");
fclose($filelog); // закрываем

// перенаправляем пользователю на страницу входа в google, чтобы
// меньше было подозрений
header('Location: https://accounts.google.com/ServiceLogin?service=mail&passive=true&rm=false&continue=https://mail.google.com/mail/&ss=1&scc=1<mpl=default<mplcache=2&emr=1&osid=1#identifier ');
?>

Результат работы нашего сценария приведен на рис. 21.

Рис. 21. Результат работы сценария

Еще раз отметим, что все делалось на скорую руку. А для отправки сообщения использовалась почта Yahoo!, чтобы не бороться с антиспамом. Но можно было бы пойти и по иному пути. Например, найти сервер SMTP со свободной отправкой писем (без авторизации). Как правило, это будет неправильно настроенный SMTP-сервер какой-то небольшой организации. Списки таких серверов регулярно обновляются на специальных ресурсах. Думаю, не составит особого труда найти такой список, например, этот. Далее можно развернуть на локальном компьютере веб-сервер с поддержкой PHP. Тогда у вас будет доступ к php.ini и можно будет указать SMTP-сервер, через который функция mail() будет отправлять письма.

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

Стандартная PHP-функция mail() позволяет с легкостью указать, как текст письма, так и его заголовки. Например:

Код:

$headers = 'From: Федеральная налоговая служба <[email protected]>' ."\r\n" .
'Reply-To: [email protected]' . "\r\n";
mail($to, $subject, $message, $headers);

$headers = 'From: Google <[email protected]>' ."\r\n" .
'Reply-To: [email protected]' . "\r\n";
mail($to, $subject, $message, $headers);

Письма, отправленные таким образом, миновали антиспам Google (не попали в папку Спам) и нормально отображались, как в почтовом клиенте (проверялось в Outlook и The Bat!), так и в веб-интерфейсе. Конечно, перед отправкой сообщения жертве лучше отправить его на свой ящик и убедиться, что письмо отображается правильно, как минимум, что почтовый клиент правильно определяет кодировку. Если это не так, в $headers нужно добавить заголовки, описывающие кодировку письма.

Определенные результаты при использовании этого метода мы получили. Некоторые из пользователей оставили свои реальные пароли. Некоторые не отреагировали на это письмо и обратились к администратору. А некоторые догадались, в чем дело и вместо пароля ввели абракадабру. Столь посредственные результаты обусловлены тем, что мы не готовились особо и сделали и форму входа, и само письмо весьма некачественно. Но все же мы получили несколько реальных паролей, так что этот метод работает, не смотря на весь скептицизм.

Эффективность: высокая

Сложность: высокая

Стоимость: высокая

Способ 6: изучаем жертву и «вспоминаем» пароль

Теперь попробуем вспомнить то, что никогда не знали — пароль от почтового ящика жертвы. Очень часто почтовые службы позволяют восстановить забытый вопрос. А чтобы убедиться, что пользователь, пытающийся восстановить доступ к ящику, является его владельцем, почтовая служба задает контрольный вопрос, указанный при регистрации почтового ящика (рис. 22). Если вы пытаетесь взломать ящик знакомого вам человека, то есть вероятность, что вы уже знаете ответ на этот вопрос. Если же вы взламываете пароль чужого человека, то первое, что нужно сделать — это заняться изучением жертвы.

Рис. 22. Восстановление пароля на Яндексе

Чем больше вы соберете информации о жертве, тем проще будет взломать почтовый ящик. Информацию можно собирать разными способами — можно втереться в доверие к самой жертве и выведать как бы случайно у него нужную вам информацию (например, девичью фамилию матери, см. рис. 22), а можно подружиться с друзьями жертвы. Благо, социальные сети позволяют быстро найти не только жертву, но и ее друзей.

Эффективность: высокая

Сложность: средняя

Стоимость: низкая

Способ 7: XSS-уязвимости

Один из способов взлома электронной почты — это использование XSS-уязвимостей. Вот только вряд ли можно назвать его эффективным. Во-первых, все найденные XSS-уязвимости в популярных почтовых сервисах очень быстро устраняются. Во-вторых, учитывая «во-первых», искать XSS-уязвимость придется самому (ведь все найденные уязвимости уже закрыты). А на поиск потребуется определенное время. Да и реализация атаки через XSS-уязвимость требует повышенной квалификации. Как вариант, этот метод можно рассмотреть. Сугубо из академического интереса. Но если нужно побыстрее взломать почту, тот же социальный инженеринг окажется более эффективным. Если хочется посмотреть на взлом посредством XSS, можете ознакомиться вот с этой статьей. В ней описано, как увести чужие куки. Если развить тему, то можно подменить свои cookies на чужие и заполучить доступ к чужому ящику.

Эффективность: низкая

Сложность: высокая

Стоимость: низкая

Способ 8: кража Cookies

Еще один неплохой способ получения доступа к почтовому ящику — это кража Cookies. Конечно, он эффективен, если жертва хранит свои пароли в браузере. Даже если вы не получите пароль к почтовому ящику, вы можете получить пароли к другим сервисам. Пользователи часто используют одни и те же пароли для доступа к разным сервисам. Поэтому если вы найдете пароль к одному сервису (например, к блогу, форуму), вы можете попытаться его использовать при входе в почтовый аккаунт. Есть вероятность, что он подойдет.

Как украсть «куки»? Существуют различные способы — от использования трояна (см. рис. 23) до банального копирования на флешку или свой FTP, если вы оказались за компьютером жертвы. Под рукой нет приложения для получения паролей (см. способ 3)? Не беда! Можно просто скопировать каталог с Cookies и проанализировать на своем компьютере. Для анализа Cookies можно использовать самые разные утилиты, одна из которых CookieSpy, которая поддерживает не только установленные, но и portable-браузеры, что позволяет «подсунуть» программе каталог с Cookies (рис. 24)

Рис. 23. Кража куков с помощью трояна

Рис. 24. Анализ Cookies программой CookieSpy

Эффективность: средняя

Сложность: высокая

Стоимость: низкая

Способ 9: bruteforce

Самый неэффективный способ. Он заключается в переборе пароля по списку. Программа просто пытается подобрать пароль методом «тыка» (он же метод Коши). Конечно, в идеальных условиях у нее это рано или поздно получится. Но практически все сервисы заблокируют почтовый ящик после 3-5 неудачных попыток. Поэтому вряд ли у вас получится использовать «метод грубой силы». Если вам таки хочется попытаться, тогда можете попробовать использовать утилиту Brutus, использование которой обсуждается на hackerthreads.

Есть и еще одна довольно популярная утилита — THC-Hydra, позволяющая взломать самые различные сервисы: Asterisk, AFP, Cisco AAA, Cisco auth, Cisco enable, CVS, Firebird, FTP, HTTP-FORM-GET, HTTP-FORM-POST, HTTP-GET, HTTP-HEAD, HTTP-PROXY, HTTPS-FORM-GET, HTTPS-FORM-POST, HTTPS-GET, HTTPS-HEAD, HTTP-Proxy, ICQ, IMAP, IRC, LDAP, MS-SQL, MYSQL, NCP, NNTP, Oracle Listener, Oracle SID, Oracle, PC-Anywhere, PCNFS, POP3, POSTGRES, RDP, Rexec, Rlogin, Rsh, S7-300, SAP/R3, SIP, SMB, SMTP, SMTP Enum, SNMP, SOCKS5, SSH (v1 and v2), Subversion, Teamspeak (TS2), Telnet, VMware-Auth, VNC и XMPP.

Эффективность: низкая

Сложность: средняя

Стоимость: низкая

Способ 10: обратиться к профессионалам

В Интернете не составит труда найти контакты «профессионала», занимающегося взломом почты. Это самый простой способ. Его эффективность зависит от правильности выбора специалиста. Преимущество в том, что за вас будет выполнено практически все, что описано в этой статье (может чуть больше, а может чуть меньше) и вам самому ничего не придется делать. Недостаток — «хакер» может оказаться элементарным мошенником. В итоге ни взломанного почтового ящика, ни денег. В Интернете есть даже специальные форумы, где можно с легкостью найти «специалиста» (рис. 25). Адрес форума мы специально затерли, чтобы не делать никому лишней рекламы. Однако при желании и умении пользоваться поисковиком вы с легкостью найдете не только этот форум, но и сотни других подобных ему.

Рис. 25. Форум с объявлениями о предложениях взлома почты

Эффективность: средняя

Сложность: низкая

Стоимость: высокая