Методы похищения файлов cookie. Методы похищения файлов cookie Как перехватывать данные через wifi андроид

Многие пользователи и не догадываются, что заполняя логин и пароль при регистрации или авторизации на закрытом Интернет-ресурсе и нажимая 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. Вводим данные во все поля и прописываем путь в файлу с ключом

WireShark может расшифровывать пакеты, которые зашифрованы с использованием алгоритма RSA. В случае если используются алгоритмы DHE/ECDHE, FS, ECC, сниффер нам не помощник.

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

БОНУС

ВИДЕО: Wireshark Packet Sniffing Usernames, Passwords, and Web Pages

Интернет-пользователи настолько беспечны, что для них лишиться конфиденциальных данных – проще простого. Издание 42.tut провело эксперимент, чтобы показать, насколько много «дыр» в общественных сетях Wi-Fi. Вывод неутешительный: любой желающий без специальных навыков и знаний может составить полное досье о человеке, используя лишь открытую беспроводную сеть.

Для эксперимента установили несколько приложений. Они отличаются по функциональности, но суть у них одна – собирать все, что проходит через сеть, к которой подключено устройство. Ни одна из программ не позиционирует себя как “пиратская”, “хакерская” или незаконная – их можно без проблем скачать в сети. Эксперимент провели в торговом центре с бесплатным Wi-Fi.

Перехват

Подключаемся к Wi-Fi: пароля нет никакого, в названии сети – слово “free”. Запускаем сканирование, одна из программ тут же находит 15 подключений к сети. У каждого можно увидеть IP-адрес, MAC-адрес, у некоторых – название производителя устройства: Sony, Samsung, Apple, LG, HTC…

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

Идентификация пользователя

Продолжаем наблюдать. На ноутбуке напарника явно началась онлайн-игра: в сеть постоянно уходят программные команды, принимается информация об обстановке на поле боя. Видны ники соперников, их игровые уровни и много чего другого.

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

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

Пароли и сообщения

Фото и звуки – далеко не все, что можно “отдать” в доступный Wi-Fi. К примеру, в одной из программ есть отдельная вкладка, чтобы отслеживать именно переписку в соцсетях и мессенджерах. Сообщения расшифровываются и сортируются по времени отправки.

Демонстрировать чужую переписку – это уже за гранью добра и зла. Но это работает. В качестве иллюстрации – часть диалога автора текста, пойманную следящим компьютером с устройства-“жертвы”.

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

Выводы

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

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

И автоматически их запускает, благодаря чему и достигается обход HTTPS / HSTS. С mitmAP в этот процесс не нужно вникать, но если вы хотите сделать что-то подобное, например, с create_ap , то ознакомьтесь с «Инструкцией по использованию SSLStrip+ и dns2proxy для обхода HSTS ».

mitmAP позволяет практически без ввода команд (и понимания механизма обхода HTTPS) использовать самые эффективные на сегодняшний момент способы понижения HTTPS до HTTP. В моих тестах пароль в открытом виде передавался для vk.com, yandex.ru, mail.ru.

Этот скрипт сделан в двух вариантах - для работы в Kali Linux или в Raspberry PI .

Скрипт должен работать на производных Debian, если установить зависимости; но не будет работать, например, в Arch Linux / BlackArch из-за выбранного автором способа запуска служб.

Инструкция по использованию mitmAP

Скачайте скрипт:

Git clone https://github.com/xdavidhu/mitmAP.git cd mitmAP/

Запустите его:

Sudo python3 mitmAP.py

Скрипт начнёт с вопроса:

[?] Install/Update dependencies? Y/n:

Перевод: установить / обновить зависимости?

Если запускаете первый раз, то согласитесь, т.е. нажмите Enter. В дальнейшем можно выбирать n (нет).

Следующий вопрос:

[?] Please enter the name of your wireless interface (for the AP):

Перевод: введите имя вашего беспроводного интерфейса (для ТД). Если вы не знаете имя ваших интерфейсов, то в другом окне выполните команду:

Она покажет все сетевые интерфейсы вашей системы. А команда

Sudo iw dev

покажет только беспроводные сетевые интерфейсы.

В Kali Linux беспроводной интерфейс обычно называется wlan0 (а если их два, то второй имеет имя wlan1).

[?] Please enter the name of your internet connected interface:

Перевод: пожалуйста, введите имя интерфейса, подключённого к Интернету.

В Kali Linux проводной интерфейс обычно называется eth0 . Также для подключения к Интернету можно использовать вторую Wi-Fi карту.

[?] Use SSLSTRIP 2.0? Y/n:

Перевод: скрипт спрашивает, использовать ли SSLStrip+ . В настоящее время, когда значительная, если уже не большая, часть трафика передаётся через HTTPS (в зашифрованном виде), эта опция крайне рекомендуется.

[?] Create new HOSTAPD config file at "/etc/hostapd/hostapd.conf" Y/n:

Перевод: Создать ли новый конфигурационный файл hostapd.

Если запускаете первый раз, то это нужно сделать обязательно. При последующих запусках, если вы не собираетесь менять настройки ТД, то можно выбрать n (т.е. «нет»).

Настройка ТД:

[?] Please enter the SSID for the AP:

Перевод: введите имя для ТД.

[?] Please enter the channel for the AP:

Перевод: введите номер канала ТД.

[?] Enable WPA2 encryption? y/N:

Перевод: включить ли WPA2 шифрование?

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

Последняя настройка ТД:

[?] Set speed limit for the clients? Y/n:

Перевод: установить ли ограничение по скорости для клиентов?

Я выбираю «нет»,

[?] Start WIRESHARK on wlan0? Y/n:

Анализ данных mitmAP

mitmAP выводит перехваченные данные, в том числе логины и пароли в своём главном окне:

В своей папке она создаёт директорию logs с двумя файлами: mitmap-sslstrip.log и mitmap-wireshark.pcap . В первом файле содержаться собранные данные в текстовом виде. А второй предназначен для анализа в программе Wireshark.

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

Если вы выбрали запуск окна Wireshark и отображение передаваемых изображений с помощью Driftnet , то вы также их сможете использовать для мониторинга передаваемых данных в реальном времени.

Анализ данных в Wireshark

Wireshark имеет очень детальный фильтр данных, с его разнообразием вы сможете ознакомиться на страничке официальной документации

Приведу примеры нескольких ходовых фильтров.

Для отображения в Wireshark всех HTTP запросов, переданных методом POST:

Http.request.method == "POST"

Для отображения данных переданных или полученных с определённого домена (вместо введите интересующий домен, например, vk.com):

Http.host==""

Для поиска строки во всём потоке передаваемых данных используется следующий фильтр (вместо <строка> введите строку, которую вы хотите искать):

Frame contains "<строка>"

Для отображения кукиз в Wireshark:

Http.cookie

Если вас интересует кукиз с определёнными именем, то используйте:

Http.cookie contains "<имя_куки>"

Для показа запросов в Wireshark, переданных методом GET или POST:

Http.request.uri contains "?" or http.request.method=="POST"

Если вы хотите найти данные обмена с FTP сервером, то в Wireshark можете использовать один из следующих фильтров:

Tcp.port==21 || tcp.port==20

Сниффинг данных в других программах

Хотя mitmAP задействует интересные программы, вы всегда можете проводить анализ данных другими инструментами. Например, если вы хотите использовать Bettercap , то нужно учитывать, что:

  • ARP спуфинг не нужен
  • Не нужно проводить обнаружение клиентов
  • Не нужно включать SSLStrip.

Т.е. команда может иметь вид:

Sudo bettercap -X -I wlan0 -S NONE --no-discovery

Sudo bettercap -X -I wlan0 -S NONE --no-discovery --proxy --no-sslstrip

Завершение работы mitmAP

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

Задумывались ли вы когда-нибудь о том, как на некоторых Web-узлах происходит персонификация посетителей? Это может выражаться, например, в запоминании содержимого "тележки" (если этот узел предназначен для продажи товаров) или в способе заполнения полей какой-нибудь формы. В протоколе HTTP, лежащем в основе функционирования World Wide Web, нет средств, позволяющих отслеживать события от одного посещения узла к другому, поэтому для возможности хранения таких "состояний" было разработано специальное дополнение. Этот механизм, описанный в документе RFC 2109, обеспечивает вставку в передаваемые запросы и ответы HTTP специальных фрагментов данных cookie, позволяющих Web-узлам отслеживать своих посетителей.

Данные cookie могут запоминаться на время сеанса связи (per session ), оставаясь в оперативной памяти в течение одного сеанса и удаляясь при закрытии браузера, или даже после истечения заданного промежутка времени. В других случаях они бывают постоянными (persistent ), оставаясь на жестком диске пользователя в виде текстового файла. Обычно они хранятся в каталоге Cookies (%windir% \Cookies - в Win9x и %userprofile%\Cookies - в NT/2000). Нетрудно догадаться, что после захвата файлов cookie в Internet взломщик может выдавать себя за пользователя данного компьютера, или собирать содержащуюся в этих файлах важную информацию. Прочитав следующие разделы, вы поймете, насколько просто это сделать.

Перехват файлов cookie

Самый прямой способ заключается в перехвате файлов cookie при их передаче по сети. Затем перехваченные данные можно использовать при входе на соответствующий сервер. Такую задачу можно решить с помощью любой утилиты перехвата пакетов, однако одной из лучших является программа Лаврентия Никулы (Laurentiu Nicula ) SpyNet/PeepNet . В состав SpyNet входят две утилиты, которые работают в комплексе. Программа CaptureNet выполняет захват самого пакета и сохраняет его на диске, а утилита PeepNet открывает этот файл и преобразует его в читабельный формат. Следующий пример является фрагментом восстановленного программой PeepNet сеанса связи, во время которого файл cookie служит для аутентификации и управления доступом к просматриваемым страницам (для сохранения анонимности имена изменены).

GET http://www.victim.net/images/logo.gif HTTP/1.0 Accept: */* Referrer: http://www.victim.net/ Host: www.victim.net Cookie: jrunsessionid=96114024278141622; cuid=TORPM!ZXTFRLRlpWTVFISEblahblah

В приведенном примере виден фрагмент cookie, помещенный в поступающий на сервер запрос HTTP. Наиболее важным является поле cuid= , в котором задается уникальный идентификатор, используемый при аутентификации пользователя на узле www.victim.net. Допустим, что после этого взломщик посетил узел victim.net, получил собственный идентификатор и файл cookie (предполагается, что узел помещает данные cookie не в виртуальную память, а записывает их на жесткий диск). Тогда взломщик может открыть свой собственный файл cookie и заменить в нем идентификатор поля cuid=, взяв его из перехваченного пакета. В этом случае при входе на сервер victim.net он будет восприниматься как пользователь, чьи данные cookie были перехвачены.

Способность программы PeepNet воспроизводить весь сеанс связи или его фрагмент значительно облегчает реализацию атак этого типа. С помощью кнопки Go get it! можно повторно извлечь страницы, которые просматривались пользователем, используя его данные cookie, перехваченные ранее программой CaptureNet. В диалоговом окне утилиты PeepNet можно увидеть информацию о чьих-то выполненных распоряжениях. При этом для аутентификации используются данные cookie, перехваченные программой CaptureNet. Обратите внимание на фрейм, расположенный в нижнем правом углу диалогового окна с данными сеанса связи, и на строку, которая следует за строкой Cookie:. Это данные cookie, используемые при аутентификации.

Это довольно ловкий трюк. Кроме того, утилита CaptureNet может предоставить полную запись трафика в расшифрованном виде, что практически равносильно возможностям утилит профессионального класса, таких как Sniffer Pro компании Network Associates, Inc. Однако утилита SpyNet еще лучше - ее можно получить бесплатно!

Контрмеры

Следует остерегаться узлов, на которых файлы cookie применяются для аутентификации и хранения важных идентификационных данных. Одним из инструментов, помогающих в обеспечении защиты, является программа Cookie Pal компании Kookaburra Software, которую можно найти на Web-узле http://www.kburra.com/cpal.html . Этот программный продукт можно настроить так, чтобы для пользователя генерировались предупреждающие сообщения о попытках Web-узла воспользоваться механизмом cookie. При этом можно "заглянуть за кулисы" и решить, следует ли разрешать выполнение этих действий. В Internet Explorer имеется встроенный механизм поддержки файлов cookie. Чтобы активизировать его, запустите аплет Internet Options панели управления, перейдите во вкладку Security, выберите элемент Internet Zone, установите режим Custom Level и для постоянных и временных данных cookie установите переключатель в положение Prompt. Настройка использования файлов cookie в браузере Netscape выполняется с помощью команды Edit › Preferences › Advanced и установки режима Warn me before accepting a cookie или Disable cookies (рис. 16.3). Принимая файл cookie, нужно проверить, записался ли он на диск, и узнать, собирает ли Web-узел информацию о пользователях.

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

Авторы предпочли бы полностью отказаться от файлов cookie, если бы многие часто посещаемые Web-узлы не требовали этого режима. Например, для популярной во всем мире службы Hotmail компании Microsoft наличие файлов cookie обязательно для регистрации. Поскольку эта служба в процессе аутентификации задействует несколько различных серверов, то добавить их в зону надежных узлов не так-то просто (этот процесс описан в разделе "Разумное Использование Зон Безопасности: Общее Решение Проблемы Элементов Activex"). В этом случае поможет обозначение *.hotmail.com. Файлы cookie - далеко не идеальное решение проблемы неполноты протокола HTML, однако альтернативные подходы, по-видимому, еще хуже (например, добавление к адресу URL идентификатора, который может храниться на proxy-серверах). Пока не появится идея получше, единственным выходом остается контроль над файлами cookie с помощью перечисленных выше методов.

Захват файлов cookie через URL

Представим себе нечто ужасное: пользователи Internet Explorer щелкают на специально сконструированных гиперссылках и становятся потенциальными жертвами, рискуя, что их файлы cookie будут перехвачены. Беннет Хазельтон (Bennett Haselton ) и Джеми Маккарти (Jamie McCarthy ) из тинейджерской организации Peacefire, ратующей за свободу общения через Internet, опубликовали сценарий, воплощающий эту идею в жизнь. Этот сценарий извлекает файлы cookie с клиентского компьютера, если его пользователь щелкает на ссылке, содержащейся на этой странице. В результате содержимое файла cookie становится доступным для операторов Web-узла.

Эту возможность можно использовать в неблаговидных целях, внедряя дескрипторы IFRAME в HTML-код Web-страницы, электронного сообщения в формате HTML или сообщения из группы новостей. В следующем примере, предложенном консультантом по вопросам безопасности Ричардом М. Смитом, демонстрируется возможность использования дескрипторов IFRAME совместно с утилитой, разработанной организацией Peacefire.