Атака, возможные усовершенствования атаки и любой прилагаемый исходный код должны использоваться только в образовательных целях. Ни в коем случае не используйте их для незаконных действий, таких как фишинг. Вы несете ответственность за свои действия.
Повторяю заявление об отказе от ответственности, упомянутое в репозитории mr.d0x: использование этих шаблонов для атаки целей без предварительного согласия является незаконным. Ответственность за соблюдение всех применимых законов лежит на конечном пользователе. Разработчик не несет ответственности за любое неправильное использование этих шаблонов.
«Остерегайтесь мартовских ид», — говорят они; и мы должны по уважительной причине.
15 марта исследователь безопасности по имени mr.d0x опубликовал статью, почти не обнаруживаемую фишинговая атака, которую большинство пользователей быстро проигнорируют как легитимный диалог входа. Эта форма фишинга, известная как атака Browser in the Browser, представляет большую сложность для растущей зависимости Интернета от SSO и диалогов OAuth для авторизации и аутентификации пользователей в онлайн-сервисах, таких как социальные сети, облачное хранилище и другие платформы, которые могут хранить конфиденциальную информацию о пользователе. Типичными примерами этого, которые мы видим сегодня, является вход в другие службы с нашей учетной записью Google, учетной записью Microsoft и т. д., которым мы автоматически доверяем из-за репутации.
Эта атака использует доверие пользователей, созданное с помощью этих процессов входа, для кражи учетных данных путем репликации поддельного модального окна OAuth с использованием старого простого HTML, CSS и JS.
Происхождение
Хотя эта атака сегодня попадает в заголовки, это разновидность того, что существовало с конца 2000-х годов. Когда доля Windows XP на рынке составляла более 80%, а Internet Explorer был самым популярным браузером в мире, поддельные онлайн-антивирусные сканеры начал появляться на каждом углу Интернета. Поскольку Windows не была известна своими выдающимися функциями безопасности, продажа поддельных и вредоносных вредоносных программ, замаскированных под антивирусы, была очень прибыльным бизнесом: [3 компании за время своего существования заработали в общей сложности 130 миллионов долларов] (https://sites.cs. ucsb.edu/\~chris/research/doc/weis11_fakeav.pdf).
Цель этих поддельных антивирусных сканеров состояла в том, чтобы напугать пользователей, чтобы они купили их «антивирус», поскольку однажды их компьютер был волшебным образом заражен. Эти фишинговые сайты заполонили ваши экраны окнами Windows XP или 7, состоящими из мигающего красного текста, большого списка вирусов и гигантских призывов к действию, заставляющих вас зарегистрировать продукт, чтобы спасти ваш компьютер от неминуемой гибели. Для Windows XP вы увидите что-то вроде этого.
В конце концов злоумышленники стали более изощренными и начали эмулировать оконные диалоги вашей операционной системы, что делало более правдоподобным то, что это был официальный продукт.
Запаниковавший пользователь послушно следовал подсказкам и скачивал scareware, запускающую поддельный антивирус с «пробным» периодом. По истечении этого периода он снизит производительность хост-компьютера или заполнит его большим количеством вредоносных программ, чтобы убедить пользователя приобрести официальную лицензию для удаления всего рекламного, шпионского и другого дерьма, которое он установил на ваш компьютер. Как только жертва покупает программное обеспечение, злоумышленник получает ваше имя, платежный адрес и информацию о кредитной карте, чтобы выполнить любую транзакцию, которую он хочет.
Поддельные антивирусы — это совсем другая тема, в которую я могу углубиться, но часть всего этого фишингового упражнения, которая по-прежнему очень эффективна и представлена в блоге mr.d0x, — это использование поддельного окна внутри веб-страницы.
Атака
Доказательство концепции mr.d0x — это эволюция того, что мы видели с поддельными окнами антивирусного сканирования. Вместо отображения страницы сканирования с подробностями, связанными с системой, этот фишинг для подтверждения концепции использует вредоносный диалог OAuth, похожий на регистрацию в онлайн-сервисе с использованием сторонней учетной записи. Если вам это не кажется знакомым, то GIF ниже может быть более знакомым.
![Пример диалогового окна OAuth из JavaScript SDK Facebook.]
Первая часть этой атаки требует, чтобы жертва посетила скомпрометированный домен, где злоумышленник установил ловушку. Это можно сделать с помощью омографов IDN или подмены/подмены DNS. Эту часть атаки, вероятно, сложнее всего реализовать и убедить пользователей посетить сайт по причинам, описанным ниже. Наиболее убедительным подходом является использование отравления DNS, но это само по себе сложнее в настройке.
Предполагая, что злоумышленник успешно заманивает жертв на фишинговый сайт, умело спроектировав страницу так, чтобы она выглядела как можно более легитимной по сравнению с существующей сегодня страницей входа, злоумышленник должен быть в состоянии убедить пользователей войти в систему через какой-либо сторонний сервис. Как только пользователь нажмет кнопку «Войти» или «Зарегистрироваться», ему будет представлено фальшивое всплывающее окно, которое загружает фальшивую страницу входа злоумышленника. Как только пользователь вводит свои учетные данные, он полностью скомпрометирован.
Код
Созданный demo mr.d0x предоставляет шаблоны для создания поддельных всплывающих окон для нескольких популярных операционных систем и их вариантов. В каждой папке для каждой ОС есть эти файлы:
├───Windows-Chrome-LightMode
│ index.html
│ логотип.svg
│ script.js
│ ssl.svg
│ стиль.css
index.html— это всего лишь тестовая страница, содержащая<iframe>.
logo.svg— это фавикон, используемый фальшивым окном.
script.jsсодержит логику для перетаскивания окна, анимации кнопок и т. д.
ssl.svg— это значок замка, который вы увидите в адресной строке всплывающего окна.
style.cssсодержит стили, используемые на странице.
Код окна довольно прост, а инструкции по установке можно найти в [README] (https://github.com/Spiderpig86/BITB). Это должно работать так, как показано на GIF ниже.
Gif из репозитория BITB mr.d0x, демонстрирующий, как это работает.
Улучшения в форке
Увидев шаблоны, предоставленные в репозитории, я решил поиграть с ними, чтобы сделать их более убедительными, и создал форк [здесь] (https://github.com/Spiderpig86/BITB). В настоящее время шаблоны очень хорошо разработаны для каждой ОС, что делает их бесшовными, однако некоторые взаимодействия с всплывающим окном могут привести к тому, что более опытные пользователи легко поймут, что это подделка.
Из любопытства я хотел посмотреть, какие еще изменения мы можем сделать, чтобы сделать это более правдоподобным. Для простоты я в основном сосредоточился на улучшении темной темы Windows в каталоге под названием «Windows-Chrome».
Сначала я изменил заголовок и адресную строку, чтобы они соответствовали существующему логину, например странице входа в Google. Затем я исправил некоторые стили, включая шрифты, выравнивание текстовых элементов и переполнение адресной строки, чтобы текст не выглядел обрезанным.
Чтобы сделать загрузку окна более реалистичной, я добавил случайную задержку при отображении страницы и переход непрозрачности при отображении и скрытии окна.
Следующее, что я сделал, это сделал само окно изменяемым по размеру. Пользователь должен иметь возможность перетаскивать окно во всех направлениях, как настоящее. Это привело к некоторым проблемам, которые были решены с помощью некоторых хитрых трюков CSS во время перетаскивания, а не перетаскивания.
Последним шагом было создание образца фишинговой страницы с кнопкой входа SSO и создание модифицированной версии страницы входа в Google, похожей на то, что мы видим сегодня. Единственное, что я добавил, это новое поле пароля (которое отображается, когда мы нажимаем «Далее», но это было довольно сложно воспроизвести) и пользовательскую функцию, когда пользователь нажимает «Ввод»/«Далее». Любой опытный пользователь сможет сказать, что Google больше не размещает поле пароля под полем электронной почты в последней версии диалогового окна входа.
Для фишинговой страницы, которая запускает поддельное диалоговое окно OAuth, мы можем сделать вещи более убедительными, установив «href» на реальный URL-адрес входа в Google и используя функцию «onclick», которая возвращает false. Таким образом, браузер проигнорирует href и вместо этого запустит вашу функцию JavaScript.
```html
<а
href="https://accounts.google.com/o/oauth2/auth/identifier?response_type=code&client_id=1083004"
onclick="вернуть loadWindow()"
class="clickme u-flex text-grey-800 font-normal"
идентификатор = "кликни меня"
<дел класс = "значок">