February 24, 2021

Взлом браузера через favicons

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

Салют, Аноним!
В этой статье ты научишься отслеживать интернет-активность пользователей.

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

На этот раз мы расскажем тебе о Supercookie, инструменте favicons для присвоения уникального идентификатора всем пользователям веб-сайта, который позволит тебе выполнять детальное отслеживание всей онлайн-активности целевого пользователя.

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

ФАВИКОНЫ?

Одной из главных особенностей современных веб-браузеров является использование фавиконов - крошечного логотипа (размером примерно 16×16 или 32×32 пикселя), используемого браузерами для обозначения веб-сайта. В большинстве случаев этот значок отображается в адресной строке рядом с названием веб-страницы.

Пример. Фавикон нашего сайта - hackerplace.org. Сам фавикон мы выделили зеленым кружком.
Скучная теория
Чтобы добавить фавикон на веб-сайт, необходимо добавить атрибут в заголовок веб-страницы. Если этот тег существует, то браузер запрашивает предопределенный значок, и если ответ сервера содержит допустимый файл значка, который может быть отображен правильно, браузер отображает этот значок. Если это не так, то будет отображаться пустой значок фавикона.

Веб-браузеры должны облегчать доступ к фавиконам, поэтому эта информация кэшируется в изолированной базе данных хоста, идентифицируемой как кэш фавиконов (F-Cache). Ввод данных в эту базу данных должен включать посещенный URL-адрес, Идентификатор фавикона и время жизни (TTL). Это позволяет разграничивать некоторые сегменты сайта, но также создает возможность отслеживать онлайн-активность пользователей.

Когда пользователь посещает веб-сайт, браузер должен проверить, требуется ли фавикон, выполнив поиск источника ссылки в значке быстрого доступа к запрашиваемой веб-странице. Затем браузер сначала проверяет локальный F-кэш, чтобы найти запись с активным URL-адресом веб-сайта; если запись favicon существует, то значок будет загружен из F-кэша и отображен пользователю.

Однако, если запись не существует (по любой возможной причине), браузер сделает запрос GET к серверу, чтобы загрузить сайт favicon.

УСТАНОВКА


СЦЕНАРИЙ АТАКИ

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

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

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


- Мечтаешь зарабатывать на хакинге?

Нет проблем! Все это станет реальностью, благодаря нашей Академии Хакинга.

Узнать больше об обучении можно на нашем сайте: hackerplace.org

Остались вопросы? Задай их мне в ЛС: @golden_hpa