Вам наверное знакома фраза «Я тебя с##кa по айпи вычислю!». В сегодняшней статье я покажу один из способов, которые используют хакеры для деанона пользователей VK. Мы рассмотрим технику фишинга, которая называется кликджекинг. Данный способ также позволяет деанонимизировать пользователей других социальных сетей и платформ. Надеюсь, после прочтения статьи, вы будете более осторожны, переходя по ссылкам и тыкая на всякие кнопочки.
Еще по теме: Поддельная точка доступа на ESP8266
Деанон пользователя VK с помощью фишинга
Итак, давайте рассмотрим, как хакеры добавляют на страницу виджет «VK», делают его невидимым и подсовывают не подозревающему пользователю, но для начала разберемся с терминами.
Статья написана в образовательных целях, для обучения этичных хакеров и информирования простых пользователей. Ни редакция spy-soft.net, ни автор не несут ответственность за ваши незаконные действия.
Что такое курсорджекинг и кликджекинг
Кликджекинг (Clickjacking) — это техника обмана, связанный с размещением на сайте невидимых элементов, с которыми пользователь может взаимодействовать, даже не подозревая этого. Принцип действия такой: создается кнопка и в невидимом слое накладывается поверх другой — видимой.
К примеру пользователь хочет посмотреть фильм на сайте и нажимает Play, и нечего не подозревая случайно дает «согласие на обработку персональных данных». Найти подобные невидимые элементы довольно сложно, только если заглянуть в код сайта.
Существует и другая техника, которая называется «курсорджекинг». Это незаметное перемещение курсора мыши, для выполнения тех или иных действий на странице. Перемещаться с курсором мышки может и и другой элемент.
Дизайн фишингового сайта
Здесь хакер может придумать что угодно. Ему нужна схема введения в заблуждение, под которую уже будет создаваться фишинговый сайт. Как правило для подобных задач хакеры используют методы социальной инженерии.
Берется пустой шаблон.
1 2 3 4 5 6 7 8 9 10 11 12 |
<!DOCTYPE html> <!-- Объявление формата документа --> <html> <head> <!-- Техническая информация о документе --> <meta charset="UTF-8"> <!-- Определение кодировки символов --> <title>...</title> <!-- Заголовок документа --> <link rel="stylesheet" type="text/css" href="style.css"> <!-- Подключение внешней таблицы стилей --> <script src="script.js"></script> <!-- Подключение сценариев --> </head> <body> <!-- Основная часть документа --> </body> </html> |
Авторизация VK
Теперь на сайт добавляется возможность авторизоваться через VK. Для этого есть официальный API, к нему идет подробная инструкция.
Если вкратце, то достаточно добавить вот этот скрипт в секцию head:
1 |
<script src="https://vk.com/js/api/openapi.js?169" type="text/javascript"></script> |
И вот это — в body:
1 2 3 4 5 |
<div id="vk_auth"></div> <script type="text/javascript"> window.onload = function () { VK.init({apiId:1111111}); VK.Widgets.Auth('vk_auth', {}); } </script> |
Параметру apiId нужно дать значение, которое находится в документации и есть в разделе «Код виджета для вставки на сайте».
Есть широкий выбор вариантов того, как переправлять себе данные об авторизованных посетителях. На стороне сервера для этого может использоваться база данных или просто текстовый файл.
Как сказано в документации, после авторизации метод VK.Widgets.Auth возвращает данные о пользователе в виде GET-параметров URL при использовании authUrl или в виде параметров функции при использовании onAuth. Возвращаются следующие поля:
- uid (integer) — идентификатор пользователя;
- first_name (string) — имя;
- last_name (string) — фамилия;
- photo (string) — URL фотографии профиля пользователя шириной 200 px;
- photo_rec (string) — URL фотографии профиля пользователя шириной 50 px;
- hash (string) — служебный параметр, необходимый для проверки авторизации на удаленной стороне.
Для проверки авторизации можно использовать полученный параметр hash, сравнивая его со значением функции MD5 от app_id + user_id + secret_key. Например:
1 |
md5(667481942537fTanpCrNSeuGPbA4ENCo) |
Как настраивать этот виджет, есть многочисленные инструкции, здесь никаких секретов, разобраться под силу каждому. Так что идем дальше.
Настройка видимости
Обычный веб‑разработчик на этом этапе бы и остановился, но злоумышленнику нужно сделать кнопку авторизации невидимой и вставить поверх нее какое‑нибудь привлекательное изображение, чтобы пользователь прошел авторизацию, не заметив этого. Например, можно поставить поверх какую‑то другую кнопку.
Если в любом браузере выбрать «Просмотр кода» и навести курсор мыши на кнопку входа в VK, а затем щелкнуть правой кнопкой, то можно найти такой абзац (на скриншоте замазана часть текста, которой на этом этапе не будет).
Теперь чтобы кнопка стала невидимой в окне CSS надо добавить:
1 |
opacity : 0.0 |
Код абзаца уже со значением opacity : 0.0 можно скопировать и получить код скрытой кнопки. В таком виде злоумышленник и добавляет кнопку на свой сайт вместо прежнего кода.
Защита от деанона VK
Защититься от данного способа деанона VK очень сложно. Можно только поискать в исходнике подозрительного сайта слово opacity, но вряд ли кто‑то будет делать это на каждой посещаемой странице.
Заключение
Получается невидимая кнопка, и при нажатии на нее выполняется действие. Кстати, если просто скрыть этот элемент атрибутом hidden, то никакого результата не будет, ведь кнопка не только пропадет визуально, но и не будет получать событий вроде щелчка кнопкой мыши.
Это, по моему мнению, крайне эффективный способ деанона, когда пользователя достаточно направить на страницу — и можно получить его идентификатор VK и некоторые другие данные. Работает же такая схема практически незаметно для обывателя.
РЕКОМЕНДУЕМ: