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

На картинке видно, что в cookie присутствует строка wordpress_logged_in_263d663a02379b7624b1028a58464038=admin. Это значение находится в незашифрованном виде в файле cookie и его легко перехватить с помощью утилиты Achilles, но как правило в большинстве случаев в Achilles можно увидеть лишь хеш той или иной записи. Перед отсылкой запроса на сервер можно попытаться заменить эту строку на любую подобную (хотя в данном случае смысла нет) - количество попыток не ограничено. Затем, отослав этот запрос на сервер с помощью кнопки Send, можно получить ответ от сервера, предназначаю­щийся администратору.

В предыдущем примере можно использовать прямую подмену идентификатора пользователя. Кроме того, название параметра, подмена значения которого предоставляет дополнительные возможности хакеру, может быть следующим: user (например, USER=JDOE), любое выражение со строкой ID (например, USER=JDOE или SESSIONID=BLAHBLAH), admin (например, ADMIN=TRUE), session (например, SESSION=ACTIVE), cart (например, CART=FULL), а также такие выражения, как TRUE, FALSE, ACTIVE, INACTIVE. Обычно формат файлов cookie очень зависит от приложения, для нужд которого они используются. Однако приведенные советы по поиску изъянов приложений с помощью файлов cookie годятся практически для всех форматов.

Меры противодействия извлечению информации из файлов cookie, выполняемые на стороне клиента

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

Компания Kookaburra Software разработала инструмент, облегчающий использование файлов cookie. Называется инструмент CookiePal (http://www.kburra.com/cpal.html (см. www.kburra.com) ). Данная программа предназначена для предупреждения пользователя при попытке Web-узла установить на машину файл cookie, при этом пользователь может разрешить или запретить это действие. Подобные функции блокирования файлов cookie на сегодня есть во всех браузерах.

Еще одной причиной регулярной установки обновлений Web-броузера, является постоянно выявляемые изъяны системы безопасности этих программ. Так, Бенет Хэйзелтон (Bennet Haselton) и Джеми МакКарти (Jamie McCarthy) создали сценарий, который после щелчка на ссылке извлекает файлы cookie с машины клиента. В результате становится доступным все со­держимое файлов cookie, которые находятся на машине пользователя.

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

Для того, чтоб подобные вещи не грозили нашим личным данным, сам так делаю и всем советую всегда обновлять ПО, работающее с HTML-кодом (e-mail клиенты, медиа-проигрыватели, браузеры и т.д.).

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

Меры противодействия, выполняемые на стороне сервера

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

Конечно же, важно понимать, что файлы cookie могут использоваться в целях обеспече­ния безопасности Web-серверов для осуществления авторизации пользователей. Если все же разрабатываемому приложению необходимо использовать файлы cookie, то этот механизм следует настроить таким образом, чтобы при каждом сеансе использовались различные клю­чи с коротким периодом действия, а также стараться не помещать в эти файлы информацию, которая может быть использована хакерами для взлома (такую как ADMIN=TRUE).

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

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

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

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

Перехват

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

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

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

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

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

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

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

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

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

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

Выводы

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

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