Способы взлома и защиты сессии от кражи

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

Чтобы избежать проблем взлома требуется выполнить ряд мер во время разработки . Некоторые профилактические действия нужно проводить в процессе работы сайта.

В прошлых статьях я показал, как выполняются , а так сервера. Сегодня речь пойдет о перехвате и защите сессий взломщиками.

Сессия сайта

PHP – наверное, самый распространенный серверный язык программирования для сайтов. В php сессия сайта стартует с помощью команды session_start(). Перед стартом можно указать дополнительные параметры. В сессии обычно хранят важную личную информацию о пользователе: логин, имя, пароль,..

Перехват Сессии

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

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

С куками дела обстоят сложнее, но тоже все достаточно легко перехватывается. Многие сайты при публикации информации пользователями не фильтруют браузерные скрипты. Потенциальный взломщик размещает такой скрипт на странице. Залогиненный посетитель заходит на страницу… Скрипт считывает значение кук или адресную строку и передает идентификатор сессии на другой сайт. Другой сайт принадлежит хакеру. Далее все просто. Подделывается кука или вводится адрес страницы сайта с нужным идентификатором сессии.

Взлом сессии

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

Защита от взлома данных сессии

  • Хранить сессию в куках. Сложнее увести.
  • Привязывать сессию к ip адресу компьютера. При заходе с другого ip создается новая сессия в зависимости от настроек скрипта.
  • Привязывать сессию к юзер агенту браузера. При заходе с другого браузера сессия обнуляется.
  • Шифровать передаваемые в сессию параметры. Если злоумышленник получит файл сессии, то он не сможет его прочитать. Хотя при наличии определенных навыков, расшифровать сессию тоже возможно.
  • Хранить идентификаторы сессии в отдельной папке. В php для этого существует команда session_save_path($path_to_dir). Эту же настройку можно прописать в файле php.ini. Параметр называется session.save_path.
  • Использовать session_set_save_handler() в php для переопределения способа хранения сессии. А начиная с PHP 5.4 можно передать объект типа SessionHandlerInterface в session_set_save_handler().

Многие пользователи и не догадываются, что заполняя логин и пароль при регистрации или авторизации на закрытом Интернет-ресурсе и нажимая ENTER, эти данные легко могут перехватить. Очень часто они передаются по сети не в защищенном виде. Поэтому если сайт, на котором вы пытаетесь авторизоваться, использует HTTP протокол, то очень просто выполнить захват этого трафика, проанализировать его с помощью Wireshark и далее с помощью специальных фильтров и программ найти и расшифровать пароль.

Лучшее место для перехвата паролей - ядро сети, где ходит трафик всех пользователей к закрытым ресурсам (например, почта) или перед маршрутизатором для выхода в Интернет, при регистрациях на внешних ресурсах. Настраиваем зеркало и мы готовы почувствовать себя хакером.

Шаг 1. Устанавливаем и запускаем Wireshark для захвата трафика

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

Захват трафика начался.

Шаг 2. Фильтрация захваченного POST трафика

Открываем браузер и пытаемся авторизоваться на каком-либо ресурсе с помощью логина и пароля. По завершению процесса авторизации и открытия сайта мы останавливаем захват трафика в Wireshark. Далее открываем анализатор протоколов и видим большое количество пакетов. Именно на этом этапе большинство ИТ-специалистов сдаются, так как не знают, что делать дальше. Но мы знаем и нас интересуют конкретные пакеты, которые содержат POST данные, которые формируются на нашей локальной машине при заполнении формы на экране и отправляются на удаленные сервер при нажатии кнопки «Вход» или «Авторизация» в браузере.

Вводим в окне специальный фильтр для отображения захваченных пакетов: http. request. method == “ POST”

И видим вместо тысячи пакетов, всего один с искомыми нами данными.

Шаг 3. Находим логин и пароль пользователя

Быстрый клик правой кнопки мыши и выбираем из меню пункт Follow TCP Steam


После этого в новом окне появится текст, который в коде восстанавливает содержимое страницы. Найдем поля «password» и «user», которые соответствуют паролю и имени пользователя. В некоторых случаях оба поля будут легко читаемы и даже не зашифрованы, но если мы пытаемся захватить трафик при обращении к очень известным ресурсам типа: Mail.ru, Facebook, Вконтакте и т.д., то пароль будет закодирован:

HTTP/1.1 302 Found

Server: Apache/2.2.15 (CentOS)

X-Powered-By: PHP/5.3.3

P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"

Set-Cookie: password=; expires=Thu, 07-Nov-2024 23:52:21 GMT; path=/

Location: loggedin.php

Content-Length: 0

Connection: close

Content-Type: text/html; charset=UTF-8

Таким образом, в нашем случае:

Имя пользователя: networkguru

Пароль:

Шаг 4. Определение типа кодирования для расшифровки пароля

Заходим, например, на сайт http://www.onlinehashcrack.com/hash-identification.php#res и вводим наш пароль в окно для идентификации. Мне выдан был список протоколов кодирования в порядке приоритета:

Шаг 5. Расшифровка пароля пользователя

На данном этапе можем воспользоваться утилитой hashcat:

~# hashcat -m 0 -a 0 /root/wireshark-hash.lf /root/rockyou.txt

На выходе мы получили расшифрованным пароль: simplepassword

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

  • Протокол POP и фильтр выглядит следующим образом: pop.request.command == "USER" || pop.request.command == "PASS"
  • Протокол IMAP и фильтр будет: imap.request contains "login"
  • Протокол SMTP и потребуется ввод следующего фильтра: smtp.req.command == "AUTH"

и более серьезные утилиты для расшифровки протокола кодирования.

Шаг 6. Что делать, если трафик зашифрован и используется HTTPS?

Для ответа на этот вопрос есть несколько вариантов.

Вариант 1. Подключиться в разрыв соединения между пользователем и сервером и захватить трафик в момент установления соединения (SSL Handshake). В момент установки соединения можно перехватить сеансовый ключ.

Вариант 2. Вы можете расшифровать трафик HTTPS, используя файл журнала сеансовых ключей, записываемый Firefox или Chrome. Для этого браузер должен быть настроен на запись этих ключей шифрования в файл журнала (пример на базе FireFox), и вы должны получить этот файл журнала. По сути, необходимо похитить файл с ключом сессии с жесткого диска другого пользователя (что является незаконным). Ну а далее захватить трафик и применить полученный ключ для его расшифровки.

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

После получения ключей по варианту 1 или 2 необходимо прописать их в WireShark:

  1. Идем в меню Edit - Preferences - Protocols - SSL.
  2. Ставим флаг «Reassemble SSL records spanning multiple TCP segments».
  3. «RSA keys list» и нажимаем Edit.
  4. Вводим данные во все поля и прописываем путь в файлу с ключом

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

В силу важности этой проблематики в рамках серии публикаций сайт предлагает обзор безопасности стэка протоколов TLS/SSL, параллельно рассмотрев последовательные и систематические стратегии ослабления этих протоколов со стороны спецслужб.

Треть защищённого трафика в мире сгенерировано криптографическими средствами с заведомо ослабленным ГПСЧ?

Снятые с канала

В качестве затравки обратимся к российскому примеру — последнему судебному заседанию по делу бывшего владельца платежной системы Chronopay Павла Врублёвского , обвинённого в DDoS-атаке против «Аэрофлота».

Суть ключевого сюжета сводилась к тому, что суд затребовал внутреннюю переписку между участниками этого уголовного процесса, которую они вели через личные аккаунты в Facebook. Несмотря на то, что там содержалась важнейшая изобличительная информация, коварная американская социальная сеть не вняла просьбе российского правосудия и отказала в доступе к приватной переписке граждан РФ. И тут происходит тот самый драматичный перелом в этой истории — ФСБ в исполнении решения суда самостоятельно «добывает» переписку этих граждан.

«ЦИБ ФСБ, в соответствие с Законом «Об оперативно-розыскной деятельности» осуществил самостоятельный съем информации с каналов связи указанных лиц и записал её на DVD-диск».

Действительно, впоследствии сторона защиты смогла убедиться, что необходимая личная переписка была «изъята из сети в полной мере и объёме» вопреки воле Facebook. При этом сами фигуранты сего дела отрицали предоставление следствию своих паролей и обличающей себя переписки. В Рунете можно найти кричащие новостные заголовки типа «ФСБ России взломало серверы Facebook» , но не следует забегать с выводами настолько далеко.

Во-первых, все сеансы связи с Facebook осуществляются исключительно по защищённому протоколу связи HTTPS. Во-вторых, с момента последних контактов подсудимых и данного решения суда (и, следовательно, следственных действий ФСБ по исполнению данного решения) прошло достаточно много времени. С какого такого «канала» можно было «снять» эти «данные из прошлого», если сами фигуранты в сеть с тех пор не выходили, находясь под следствием?

Эти прямые вопросы, заданные на суде к представителям ФСБ, они проигнорировали. Наиболее очевидная версия ответа напрашивалась сама: HTTPS-трафик с данной перепиской был заранее проснифан/сохранен ФСБ и каким-то образом впоследствии взломан.

Интересно, что ранее в материалах этого же дела зафиксирован почти аналогичный случай. ЦИБ ФСБ, цитируя протокол следствия, «путём сохранения и анализа трафика интернет-подключения одного из обвиняемых восстановил логин и пароль от панели управления ботсети» (физически расположенной на сервере в США), после чего перехватил удаленный контроль над этим ботнетом. Так вот, доступ к той самой веб-панели осуществлялся обвиняемым опять же исключительно по зашифрованному HTTPS-соединению с соблюдением мер предосторожности (например, без сохранения паролей на своем локальном компьютере).

Таким образом, констатируем наличие проблем с безопасностью HTTPS, приводя поразительные случаи преодоления «защиты» TLS/SSL со стороны российских спецслужб.

Modus Operandi

Чтобы взломать зашифрованную HTTPS-сессию, потребуется решить две главные задачи: иметь возможность прослушивать (перехватывать) трафик, а также суметь расшифровать инкапсулированные в такой защищённый пакет данные.

На первом моменте подробно останавливаться не будем, поскольку физический доступ к практически любым каналам у спецслужб есть. Те, кто следит за последними новостями «СОРМостроения», уже в курсе , что в соответствии с новым законом с 1 июля 2014 г. все российские провайдеры обязаны установить на свои сети спецоборудование для записи и хранения своего транзитного интернет-трафика в полном объёме на срок не менее 12 часов. Причем силовики получат прямой доступ ко всем сохраняемым и транзитным массивам данных.

Если же говорить о прослушке HTTPS-сессий, то сразу отметим важный момент — необходимость «активного режима» прослушивания в некоторых случаях, потому как сохраненный трафик не всегда может быть взломан позже. Речь идёт о так называемом режиме прогрессивной секретности (forward secrecy, FS) для протокола HTTPS, который предотвращает возможность восстановления данных после окончания сеанса связи (даже если впоследствии злоумышленник сможет получить валидные ключи сайта). Наличие такого режима обязывает злоумышленника «ковать железо пока оно горячо» - то есть, взламывать данные в режиме реального времени, что в подавляющем большинстве случаев вряд ли технически возможно.

Плохая новость заключается в том, что Facebook, равно как и большинство других крупных интернет-порталов, не используют режим forward secrecy потому, что он создает дополнительную серьёзную нагрузку для и так перегруженной социальной махины. Кроме того, использование подобных продвинутых DH-алгоритмов может негативно влиять на совместимость с некоторыми популярными браузерами. Теперь легко понять, почему согласно статистике Netcraft по состоянию на лето 2013, примерно 70-99 % наблюдаемых в рамках данного мониторинга SSL-соединений вообще не использовали FS.

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

Выше показан замер падения производительности на 6-ядерном процессоре веб-сервера с включенным и соответственно отключенным режимом DHE. DHE выбран как самый популярный и образцовый пример реализации Perfect Forward Secrecy. Например, компания Google , сервисы которой поддерживают практически все крипто-инновации и средства защиты своих пользователей (это яркое исключение из общей интернет-практики), реализует недолговечные («эфемерные») сеансовые ключи PFS как раз на базе ECDHE_RSA. И это очень, очень дорогое удовольствие, поверьте!

Учитывая данное замечание, будем считать, что с перехватом трафика всё более-менее ясно . Теперь рассмотрим, что делать дальше с сохраненным шифрованным потоком.

Представляется, общий алгоритм в этом случае будет выглядеть примерно так: при перехвате интересующего трафика HTTPS-сессии гипотетическими спецслужбами их информационная система получает запрос поиска соответствующего серверного ключа к своей базе данных. Если такой ключ не найден, он ставится в очередь на дальнейшее вычисление (взлом). С учётом замечания о фактической недоступности опции FS, интересующий трафик всегда есть смысл молча накапливать (записывать), не дожидаясь реакции системы о готовности/доступности ключа для дешифровки в режиме реального времени.

Что касается упомянутой базы данных из серверных ключей, то ещё летом 2013 года издание Cnet опубликовало информацию и документ-пример запроса АНБ в адрес крупной интернет-компании, пожелавшей остаться неизвестной. Согласно этому источнику стало известно, что такие же запросы получали в свой адрес и другие крупные интернет-площадки (Google, Microsoft, Apple, Yahoo, AOL, Verizon, AT&T и др.). Cnet официально обратилось в эти организации с просьбой прокомментировать факт подобного запроса, но в подавляющем большинстве случаев компании отказались как подтвердить, так и опровергнуть подобное взаимодействие с АНБ.

«В очередной раз вытираю ноги о миф, что открытость исходников - это путь к надёжности. Этой ошибке в Debian OpenSSL было почти два года».

Действительно, закрыть данную уязвимость удалось лишь после поднятого шума в прессе. Сам же проект Debian назвал ситуацию с давним багом в своём репозитории OpenSSL «довольно странной историей».

Если же говорить о пресловутых аппаратных «закладках», то в последнее время они расцвели буйным цветом уже в самых неожиданных местах: от утюгов до кофемашин. Так по данным Spiegel , специальное управление АНБ «Операции специального доступа» (Tailored Access Operations, TAO) долгое время осуществляло массовый перехват купленного самыми разными компаниями и странами компьютерного (и не только) оборудования по пути от поставщика к адресату. При этом перехваченное оборудование, отгруженное интересующему АНБ заказчику, оперативно проходило через секретную «фабрику» TAO, где в него внедрялось модифицированное ПО или «жучки». Такое вмешательство в процесс поставок в собственных целях, обозначаемое спецтермином «интердикция», оценивался самой АНБ как один из «наиболее эффективных видов современных операций».

При включенном режиме Весь трафик (шифрованный и нешифрованный) или Только шифрованный агент использует технологию подмены сертификатов SSL для обеспечения перехвата данных, переданных в защищенных web-сессиях. При установлении защищенного соединения с каким-либо сервером агент заменяет оригинальный сертификат сервера на сертификат с аналогичным именем, но выпущенный корневым сертификатом агента. Система позволяет использовать в качестве корневого как предустановленный, так и созданный вручную пользователем сертификат с полномочиями подписи.

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

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

Для настройки перехвата SSL-трафика:

  1. В окне вкладки Профиль настроек агента в зоне редактирования профиля выберите вкладку Контроль сетевого трафика .
  2. Нажмите кнопку Параметры перехвата SSL и следуйте рекомендациям текущего параграфа.

Выбор режима подмены SSL-сертификата

В окне настроек выберите приемлемый режим перехвата:

  • Для автоматической генерации агентом корневого SSL-сертификата при установке на компьютер пользователя, выберите опцию Автоматический режим . Созданный корневой сертификат будет помещен в базу доверенных создателей сертификатов и автоматически использоваться агентом для последующей выдачи дочерних сертификатов, подписанных по умолчанию именем издателя Falcongaze SecureTower .

Для смены имени издателя сертификата, которое будет указано в сведениях о безопасности соединения, задайте нужное имя в поле Имя в SSL- сертификате .

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

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

  1. Для генерации нового сертификата нажмите кнопку Сгенерировать сертификат . Введите в открывшемся окне имя нового сертификата, время его действия и укажите пути, по которым будут храниться вновь созданные файлы сертификата(*.cer) и закрытого ключа(*.pvk). Нажмите кнопку Сгенерировать .

  1. Если требуется добавить сертификат, ранее сгенерированный в формате PFX, нажмите кнопку Конвертировать из сертификата в формате PFX . Укажите путь и пароль к файлу сертификата в формате PFX, а также путь к файлам сертификата(*.cer) и закрытого ключа(*.pvk), в которые требуется конвертировать исходный файл. Нажмите кнопку Конвертировать для завершения конвертации.

Нажмите Далее в окне Добавление пользовательских сертификатов для продолжения процедуры добавления. В открывшемся окне введите уникальное имя, которым будет подписан добавляемый сертификат, и комментарий (опционально).

Нажмите Готово для завершения процесса. Сертификат будет добавлен в базу пользовательских сертификатов системы SecureTower. Нажмите OK для завершения добавления. Добавленный пользовательский сертификат будет автоматически помещен агентом в базу доверенных создателей (если этого не было сделано администратором сети предварительно) и далее будет использован для выдачи дочерних сертификатов.

Примечание.

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

Привязка SSL-сертификата к серверу

Для определения соответствия "сервер-сертификат" нажмите кнопку Привязки сертификатов и следуйте рекомендациям, приведенным далее:

  • Для привязки к определенному серверу корневого сертификата на вкладке Корневые сертификаты , нажмите кнопку Добавить сертификат для сайта . Введите имя хоста (доменное имя), на которое будут выданы дочерние сертификаты и к которому будет привязан корневой сертификат, в поле Имя хоста (IP-адрес). Выберите один из предустановленных корневых сертификатов в раскрывающемся списке поля Корневой сертификат либо нажмите кнопку Пользовательские сертификаты для добавления и указания файлов сертификата и закрытого ключа на компьютере пользователя.
  • Для привязки к определенному серверу уже имеющегося сертификата, выберите вкладку Пользовательские сертификаты . Агент не будет генерировать для указанных в данной вкладке серверов новые дочерние сертификаты, а будет использовать для процедур подмены сертификаты, заданные пользователем. В открывшемся окне в поле Имя хоста (IP-адрес) введите имя хоста (доменное имя), к которому будет привязан сертификат. Выберите один из сертификатов в раскрывающемся списке поля Сертификат : (если сертификаты уже добавлялись ранее) либо нажмите кнопку Пользовательские сертификаты для выбора пользовательских сертификатов из списка либо добавления и указания файлов сертификата и закрытого ключа на компьютере пользователя.

Примечание.

Для заполнения поля Имя хоста (IP-адрес) допускается использование IP - адреса хоста, но только в случаях, когда имя хоста не было определено при соединении и известен только IP - адрес.

Исключение серверов из перехвата шифрованного трафика

Для работы с исключениями из процесса подмены сертификатов, нажмите кнопку Исключения SSL - серверов .

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

В поле ввода открывшегося диалогового окна введите имя сервера (хоста) (например, accounts.google.com) с учетом регистра и нажмите кнопку Добавить . Система позволяет использовать введение имен по маске (разрешены символы? и *, например, использование *.microsoft.* позволит избежать дублирования ресурсов Microsoft в списке исключений) для исключения ресурсов одного семейства. Введенное имя появится в списке исключений.

Далее необходимо выбрать режим исключения: Подменять сертификаты только для SSL серверов, указанных выше , или Подменять SSL - сертификаты у всех серверов, за исключением указанных выше . В первом случае система будет подменять сертификаты только для серверов, перечисленных в списке исключений (и, следовательно, сможет перехватывать соответствующий трафик). Для всех других сертификаты подменяться не будут, и перехват соответствующего шифрованного трафика будет невозможен. Во втором случае система будет подменять сертификаты для всех серверов, кроме указанных в списке исключений.

Для совершения прочих операций с исключениями следуйте соответствующим рекомендациям параграфа

Покажу и расскажу как с помощью утилиты sslstrip перехватить данные которые передаются по защищенному SSL-соединению.
Утилитка sslstrip в моем примере (после проведения атаки типа ARP-spoofing на жертву) перехватит запрос веб-клиента жертвы на установление защищенного SSL-соединения и заставит его использовать незащищенныый протокол HTTP. Далее я просто подсмотрю то, что делает жертва, не обратившая внимание на то, что она читает почту не по HTTPS, а по HTTP.

Вы убедитесь в том как просто можно организовать атаки типа MITM на SSL путем техник arp-spoof и проги sslstrip.

В моем примере жертва - виртуалка с ИПом 10.10.11.163 (обычная тачка с виндой), ПК с которого я атакую - 10.10.11.85 с установленной ОС Kali и с sslstrip (эта утилита предустановлена в пентестерских дистрибутивах Kali\BackTrack Linux). Между нами шлюз с ИПом 10.10.11.1.

1. При заходе жертвы на gmail.com ее кидает на адрес https://gmail.com и это нормально. Естественно, пароли и логины к почте жертвы мы в открытом виде не видим.

2. Включаю маршрутизацию трафика на ПК с Кали:

echo "1" > /proc/sys/net/ipv4/ip_forward

и настраиваю iptables таким образом, чтобы весь http-трафик направлялся на порт 81:

iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 81

arpspoof -i eth0 -t 10.10.11.163 10.10.11.1

теперь трафик жертвы ходит через мою тачку и (согласно моего правила iptables) форвардится на 81 порт.

3. Запускаю sslstrip

sslstrip -a -l 81 -w /root/Desktop/ssllog.txt

это создаст файлик лога прямо на рабочем столе и начнет писать в него перехваченный http-трафик (собственно, перехватываться-то будет HTTPS, но он будет strip"аться). Ну вобщем, запускаю на консоли смотрение этого файлика:

tail -f /root/Desktop/ssllog.txt

4. Жертва идет на свою почту

Для чтения почты жертва как всегда лезет в MS Explorer (хехе) и вводит там gmail.com. Но браузер почему-то не перекидывает жертву на https (в адресной строке http)! На рисунке ниже изображено то что увидит жертва в последний миг перед тем, как я узнаю ее пароль и логин.

Жертва жмакает "Войти"...а на моем окошке, куда выводился перехваченный трафик я вижу следующее:

Как видно, пароль 1q2w3e4r5t6y ...

Чтобы избежать угроз, связанных с перехватом начала SSL-соединения, надо:
- не юзать гаджеты в недоверенных сетях, даже если это очень надо (злодей может устроить MITM с гораздо бОльшей вероятностью, скажем, в аэропорту путем установки rogue wireless access point, чем ломанув корпоративную сеть вашей организации);
- шифровать почту симметричными протоколами шифрования (пишу и думаю о PGP);
- платить нормальную зарплату админу чтоб у него не возникало желания шпионить за вашими сотрудниками таким образом;
- следить за ARP-таблицей и юзать оборудование/софт, которое отслеживает подбные атаки;
- регулярно обновлять ПО из доверенных легальных источников.

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