В сегодняшней статье я покажу, как с помощью форка Gophish, рассылать фишинговые QR-коды вместо обычных ссылок. В качестве сценария рассылки, для генерации кода бота, интеграции с OpenAI API и общения с пользователями буду использовать «TelegramBot ChatGPT».
Еще по теме: Использование фишинга в пентесте
Взлом через QR-код с помощью Gophish Telegram и ChatGPT
Наша задача выполнить проект по социальной инженерии для крупной финансовой организации с целью повышения уровня осведомленности сотрудников в области ИБ.
Нам известно, что у сотрудников заказчика по умолчанию установлены корпоративный Outlook, антиспам и браузер Chrome. Также отмечается высокий уровень социальной ответственности и бдительности — как в отделе ИБ, так и среди рядовых сотрудников.
Из привычного арсенала средств будем использовать фреймворк Gophish. Мы попробуем заманить пользователя на внешний ресурс с доменом, похожим на корпоративный, и формой авторизации, а затем предложим ввести свои учетные данные.
Вся информация, методы и инструменты, описанные в данной статье, предназначены для обучения этичных хакеров (пентестеров). Использование представленной в статье информации для атак на частные лица или организации без их предварительного согласия является незаконным. Ни редакция spy-soft.net, ни автор не несут ответственности за ваши незаконные действия.
Почему бы нам не перенаправить пользователя из безопасной рабочей среды на фишинговый ресурс, открытый на персональном устройстве, предложив ему QR-код в письме?
Таким образом, мы, убиваем двух зайцев: защита от спама не будет напрягаться, поскольку у нее нет понижающего коэффициента при наличии внешних ссылок в письме, а браузер на персональном телефоне не склонен, в отличие от десктопной версии Google Chrome, впадать в панику при виде нового домена.
Но каким образом можно вставить QR в письмо? Ведь это тоже изображение, и корпоративный Outlook съест его в сообщениях от внешнего отправителя точно так же, как гофиш-картинку.
Тот же Yandex рассылает ссылки QR на чеки используя верстку слоев ( div).
Другой вариант — это создать QR-код из символов Unicode.
Попытаемся перенести оба варианта в Gophish и выберем, что лучше будет смотреться в Outlook.
Для этого сначала принесем в библиотеку go-qrcode, которая часто используется для работы с QR в Go, два новых метода для генерации QR в Unicode и HTML.
Дальше в Gophish добавим генерацию QR-ссылки в переменную для почтового шаблона.
В ходе пусконаладочных испытаний мы выявили, что для Outlook корректней отображение в Unicode, а для веб‑клиентов (Gmail, Mail.ru, Yandex) и мобильных клиентов лучше выглядит HTML QR.
В рассылке можно поддержать сразу оба варианта через следующую конструкцию.
Мы получили рабочий способ пробросить QR со ссылкой в письмо. Смартфон без вопросов его читает и открывает нам веб‑форму авторизации Gophish без намеков на беспокойство. Ура!
Итак, у нас есть новый велосипед, куда бы нам на нем поехать?
Нам нужен правдоподобный предлог для пользователя, чтобы у него возникло желание сканировать QR-код со смартфона и там же ввести свои учетные данные.
Когда мы работали над проектом, из каждого утюга рассказывали о все новых нишах для применения ChatGPT. Почему бы не обыграть его и у нас? Так родился сценарий проверки сотрудников «Новый Telegram-бот IT-поддержки сотрудников с ChatGPT».
Письмо также содержало примеры работы с ботом (выбрали реальные ответы ChatGPT) и сообщение о подарках для первых зарегистрировавшихся.
И раз уж мы используем в сценарии ChatGPT, почему бы сам код с логикой для бота не написать именно ему? За пару часов, десяток запросов и уточнений мы получили вполне рабочий код бота.
Он принимает пользователя по ссылке из письма с RID-меткой и просит авторизоваться по ссылке на форму.
После перехода на веб‑форму авторизации сотруднику предлагалось ввести свою корпоративную почту и пароль.
После ввода реквизитов пользователь возвращается к боту. Собранные реквизиты сотрудников сохранялись на нашем сервере.
После авторизации (и только после) бот ловил callback от формы Gophish и оставался общаться с пользователем в заданной нами роли бота IT-поддержки организации.
API OpenAI корректно воспринял заданный стартовый ввод («Ты веселый бот IT-поддержки сотрудников банка Х, расположенного в Y») и дальше выдавал вполне релевантные ответы попавшимся на рассылку сотрудникам.
Заключение
Итак, мы научили Gophish формировать текстовые QR-ссылки с помощью Unicode-символов и элементов div, выяснили, что для корпоративного Outlook лучше всего подошли именно QR-коды в Unicode.
Далее, чтобы объяснить необходимость перейти со смартфона по QR-ссылке, мы выбрали сценарий «Telegram-бот IT-поддержки с ChatGPT» и с помощью этой же нейросети написали полнофункционального бота IT-поддержки, использовав API OpenAI. Задав боту минимальный стартовый контекст об организации, мы научили его давать релевантные ответы об адресах и телефонах офисов, а подняв боту уровень юмора, смогли добиться вирусного эффекта. Такой бот может привлечь даже сотрудников, не включенных в рассылку.
Наш клиент получил новый инструмент для обучения сотрудников бдительности, что должно помочь защитить их от набирающих популярность фишинговых атак в мессенджерах. Отдельный челлендж для клиента — разработать механизмы обнаружения сценариев, при которых сотрудники переключаются на личные устройства.
Спасибо dmarushkin, за интересный способ взлома через QR-код.
ПОЛЕЗНЫЕ ССЫЛКИ:
- Как пользоваться SkipFish на Kali Linux
- Деанон пользователя VK с помощью фишинга
- Создание фишингового сайта на Kali Linux с помощью SET