Найти в Дзене

Фишинг с поддельным приглашением на встречу

Вы когда-нибудь задумывались о том, как работают приглашения на встречи в Microsoft Teams и Google Meet? Недавно я занимался вопросом социальной инженерии, и у меня в голове возникла случайная мысль: как на самом деле работают приглашения на встречи, можно ли как-то использовать их в мошеннических схемах?

Да, такая мысль уже обсуждалась ранее, и этот метод уже использовали. Но никто нигде не объяснял, как он работает. Мне не удалось найти ни одного блога, который технически описывает эту атаку. Поэтому я решил покопаться в ней сам, чтобы человеческим языком рассказать всем, кто интересуется пентестами и вопросами безопасности в целом.

Что я хотел сделать в этой атаке?

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

Создание встречи (в Outlook) обычно работает следующим образом:

  • нажмите кнопку «Новая встреча», после чего откроется страница с полями для электронной почты, предварительно заполненным шаблоном команды и URL-адресом встречи
  • установите название встречи и укажите участников
  • нажмите «Отправить», и ваши участники получат красивое электронное письмо, в котором они смогут принять или отклонить приглашение на собрание.
Создание встречи в Outlook
Создание встречи в Outlook
Так выглядит приглашение на встречу
Так выглядит приглашение на встречу

Что не так с этим приглашением?

Когда вы создаёте приглашение на встречу, вы фактически отправляете обычное электронное письмо с вложенным файлом iCalendar. В зависимости от почтового клиента получателя письма и того, как этот клиент обрабатывает iCalendar, вы можете увидеть красивый email или простое письмо с вложением. Ниже вы можете увидеть, как выглядит приглашение на собрание команды в protonmail.

-3

Что такое объект iCalendar?

Согласно Википедии :

«Универсальный формат iCalendar позволяет пользователям хранить и обмениваться информацией своего календаря и расписания (например, события, задачи, информация о свободном/занятом времени). Файл iCalendar сохраняется в текстовом формате и содержит событие или задачу; используется для отправки событий или задач другим пользователям, которые могут импортировать их в свои календари. Обычно имеет расширение .ics»

iCalendar поддерживается Outlook, календарём Google, Yahoo, Apple и многими другими. В этой статье я сосредоточусь на Outlook.

Ниже вы можете увидеть мою версию iCalendar для приглашения на групповую встречу. Я просто отправил приглашение на встречу на свой адрес в protonmail, загрузил его и прочитал вложение.

-4

Здесь нужно понимать, что каждый объект iCalendar начинается с BEGIN: VCALENDAR и заканчивается END: VCALENDAR . Часть встречи находится между BEGIN: VEVENT и END: VEVENT. Внутри вашего мероприятия вы указываете так называемые компоненты. Обычно требуются не все компоненты, и в моем POC вы можете найти урезанный файл *.ics с только необходимыми компонентами. Большинство из них самоочевидны, но я отмечу самые интересные из них.

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

ATTENDEE. Указывает участников встречи. Если вам нужно много участников, у вас будет несколько компонентов ATTENDEE. Имейте в виду, что участники не получат электронное письмо с приглашением на собрание, оно предназначено только для отображения. Вы можете легко имитировать присутствие 30 человек на собрании, если на самом деле отправляете электронное письмо одной жертве.

X-MICROSOFT-SKYPETEAMSMEETINGURL. Если вы укажете этот компонент, в напоминании о встрече будет отображаться кнопка «Подключиться». К сожалению, при нажатии система попытается открыть указанный URL-адрес через приложение для рабочих столов, что приводит к ошибке.

DTSTART, DTSTAMP, DTEND. Указывают время встречи и её продолжительность. Я проделал хитрый трюк и установил время начала встречи на 5 минут раньше текущего времени, таким образом складывается ощущение, что вы опоздали на встречу на 5 минут. Когда жертва получает email, Outlook обрабатывает его как приглашение на встречу. Видит, что встреча началось 5 минут назад, и сразу же отображает напоминание на экране. Это помогает симулировать срочность.

-5

Как вы думаете, сколько человек в разгар рабочего дня кликнули бы по ссылке, видя, что опаздывают на встречу?

В этой статье я показал, как Outlook обрабатывает приглашения на собрания. Это должно работать с любым провайдером/клиентом email-сообщений, который обрабатывает вложения *.ics. Вы можете проверить мой POC на github и отредактировать скрипт и шаблоны в соответствии со своими потребностями.

Подписывайтесь на наш  Telegram-канал, чтобы не пропустить очередную статью. Пишем не чаще двух раз в неделю и только по делу.