Одним из самых популярных векторов атак и одним из самых популярных направлений социальной инженирии является фишинг. Это неудивительно – ведь у нас есть электронная почта и мы регулярно ею пользуемся. В этой статье я расскажу о конкретных примерах мошенничества с фишинговыми письмами и покажу вам, как их искать в них «подарочки». Нучто ж приступим к разбору как распознавать фишинговые электронные письма
Заголовки
Текст письма состоит из трех частей: заголовка, тела (основной части) и часто вложения. Заголовок содержит информацию о маршрутизации сообщения. В нем также могут содержаться другие данные: тип содержимого, данные отправителей и получателей, дату получения, абсолютный адрес получателя, адрес почтового сервера и реальный почтовый адрес, с которого или на который было получено сообщение.
Значимые заголовки
Return-Path
Адрес электронной почты Return-Path содержит информацию о статусе доставки. Почтовый сервер читает содержимое заголовка Return-Path для обработки сообщений, которые не могут быть доставлены или возвращены отправителю. Сервер получателя использует это поле для идентификации «поддельных» сообщений электронной почты: он запрашивает все разрешенные IP-адреса, связанные с доменом отправителя, и сопоставляет их с IP-адресом автора сообщения. Если совпадений нет, письмо отправляется в спам.
Received
В этом поле отображается информация обо всех серверах, которые проходит электронная почта. Последняя запись — это исходный адрес отправителя.
Reply-To
Адрес электронной почты в этом поле используется для отправки ответного сообщения. В поддельных письмах он может отличаться от адреса отправителя.
Received-SPF
При помощи метода SPF (Sender Policy Framework) проверяется, были ли сообщения для определенного сайта получены от серверов, контролируемых владельцем этого домена. Это поле является подлинным, если оно имеет значение Pass.
DKIM
DKIM (Domain Keys Identified Mail, email с доменными ключами) помечает исходящую почту зашифрованной подписью в заголовках, а почтовый сервер получателя расшифровывает ее с помощью общего открытого ключа, чтобы убедиться, что сообщение не было подделано при передаче.
X-Headers
Этот термин обозначает экспериментальные или расширенные заголовки. Обычно они добавляются поставщиками услуг электронной почты получателя. Такие поля, как X-FOSE-Spam и X-Spam-Score, используются для обнаружения спама.
Рассмотрим электронное сообщение.
Исходные данные в заголовке
- В приведенном выше примере вы можете видеть, что путь возврата не совпадает с адресом в поле «От». Это означает, что все недоставленные электронные письма будут возвращены на первый адрес.
- В поле Received («Получено») имя домена, с которого письмо было отправлено, — hiworks.co.kr (сайт для маскировки отправителя электронных писем), а не gki.com. Можно сделать вывод: письмо поддельное. Кроме того, по результатам проверки IP-адрес (142.11.243.65) не совпадает с адресом gki.com.
- Адрес отправителя From отличается от адреса в поле Reply-To. Таким образом, ответ на письмо будет направлен в почтовый ящик на домене @gmail.com, а не @gki.com.
- Значение поля Received-SPF — neutral («нейтрально»); домен gki.com не дает в отношении IP-адреса (142.11.243.65) ни разрешения, ни запрета. Дальнейшая проверка Whois выявила, что этот домен не связан с IP-адресом 142.11.243.65.
- Значение поля DKIM — none («нет»). Это означает, что электронное письмо не подписано.
По всем этим признакам, это сообщение является фальшивкой. Изъвлеченные из письма идентифицированные данные необходимо внести в черный список.
Тело письма
Именно в теле письма находится главная часть электронного письма, которая предназначена для того, чтобы обмануть пользователя. Содержимое сообщения адресовано лично получателю и выглядит настолько правдоподобным, что жертва попадает в ловушку злоумышленника.
Фишинговое письмо
Спамер утверждает, что является поставщиком медицинского страхования. В письме содержится информация о страховом счете от COVID-19, который, как утверждается, недавно заказала потерпевшая.
Фишинговое письмо (продолжение)
Также есть строка в конце сообщения «Этот адрес электронной почты был проверен McAfee». Это делает электронное письмо как бы безопасным.
Однако, если мы наведем курсором на кнопку «Просмотреть подробности» мы увидим ссылку на службу OneDrivе. Теперь, чтобы перейти по этой ссылке нужно скопировать ее и открыть в браузере.
Скачанный по ссылке OneDrive файл HTML
Независимые клики из спама и фишинговых писем (hxxps: //1drv.ms/u/s! Ajmzc7fpBw5lrzwfPwIkoZRelG4D) лучше всего выполнять в изолированной среде. Если у вас этого нет, установите виртуальную машину или воспользуйтесь сервисом кросс-браузерного тестирования, например Browserling.
Ссылка ведет на HTML-страницу, которая редиректит нас на другой сайт:
hxxps://selimyildiz.com.tr/wp-includes/fonts/greec/xls/xls/open/index.htm
Фальшивая страница входа в Office 365
Этот веб-сайт похож на онлайн-приложение Microsoft Excel, запрашивающее доступ к Office 365 для загрузки документа.
Панель администратора WordPress сайта selimyildiz.com.tr
Чтобы проверить подлинность веб-сайта, мы усекаем URL-адрес до уровня домена и загружаем его. Домен перенаправит нас на страницу входа в административную панель сайта WordPress. Фактически уже на этом этапе становится очевидно, что мы имеем дело с фишингом.
Информация whois о сайте selimyildiz.com.tr
Согласно whois, домен не был зарегистрирован Microsoft и соответствует общедоступному IP-адресу 2.56.152.159, который также не принадлежит Microsoft. Эти данные однозначно указывают на то, что открываемая по ссылке страница была создана мошенниками.
Попытка входа для аутентификации
Чтобы проверить поведение сайта, вернитесь на страницу входа, введите произвольное имя пользователя и пароль и попробуйте загрузить учетную запись. Как и ожидалось, страница выдает ошибку, а указанные данные из формы благополучно покинули злоумышленники.
Фальшивый счет для привлечения внимания
Теперь мы знаем, что это поддельный сайт. что делать дальше? Чтобы проверить функцию аутентификации, давайте повторно введем произвольные данные. Теперь они приняты! На этот раз браузер открывает счет-фактуру в формате PDF, который кажется подлинным от какой-то медицинской компании. Однако, когда жертва понимает, что это фальшивая учетная запись, ее имя пользователя и пароль уже будут украдены.
Вложения
Обычно пользователи отправляют документы Microsoft Office или файлы PDF в виде вложений электронной почты. Эти форматы часто используются киберпреступниками в качестве инструмента для загрузки вредоносных программ. Чтобы получить доступ к системе жертвы, злоумышленники внедряют в эти файлы элементы VBA (приложение Visual Basic) или JavaScript и распространяют их с помощью фишинговых писем.
В первой части этого раздела мы проанализируем подозрительный документ Word. Этот документ содержит макрос VBA. Иногда при открытии документа запускается макрос, но, начиная с Microsoft Office 2007, для запуска содержимого с макросами требуется разрешение пользователя. Чтобы обойти эту защиту, хакеры используют методы социальной инженерии. Они пытаются завоевать доверие жертвы, чтобы заставить ее без колебаний нажать кнопку «Разрешить редактирование».
Анализ документа Word
Название файла: PR_Report.
.
Утилиты, которые нам понадобятся:
- Oletools;
- Yara;
- Didier Stevens Suite;
- Process Monitor;
- Windows Network Monitor (Packet capture tool).
Шаг 1. Свойства файла
Прежде чем начать проверку файла, следует изучить его свойства. Чтобы получить эту информацию в Linux, используйте команду file
.
В нашем случае тип файла — Microsoft Office Word.
Шаг 2. Применение правил Yara
Yara — это инструмент для идентификации и классификации вредоносных программ. Он сканирует файлы на основе подписей. Мы собираемся использовать два готовых правила Yara из программного пакета Didier Stevens Suite.
Правило Yara (maldoc.yara), поток которого показан выше, обнаружило, что магический номер файла OLE (D0 CF 11 E0) совпадает с идентификатором HEX (магическими байтами) документов Microsoft Office.
Магическое число — это важные данные, которым присвоены уникальные значения, которые не должны совпадать с другими значениями.
Также внутри файла были обнаружены подозрительные включения — GetProcAddr
и LoadLibrary
.
Это правило Yara (contains_pe_file.yara) выявляет все встроенные PE-файлы. Затем оно сопоставляет приведенные выше строки в файле. MZ — это подпись PE-файла.
Шаг 3. Выделение содержимого документа с помощью oledump.py
Файл OLE содержит потоки данных. Oledump.py анализирует эти потоки для дальнейшего извлечения макросов или объектов из файла.
На рисунке выше в потоках 8, 9 и 15 видны буквы M
и O
соответственно. М
означает, что поток, возможно, содержит макрокод, О
— объект.
Шаг 4. Извлечение скрипта VB из макроса
Код в потоке 8 содержит метод killo. Это функция для сохранения документа с тем же именем файла.
Поток 9 содержит много интересных данных. Функция Document_Open () представляет имена файлов 5C.pif и 6C.pif, причем 5C.pif копируется в 6C.pif с помощью функции FileCopy. В следующей части функция вызывает метод killo из другого модуля (поток 8).
Наконец, функция Document_Close () выполняет скрытую команду с помощью оболочки. Удалив маскировку, мы видим, что 6C.pif работает в фоновом режиме (с помощью метода vbHide); в то же время запрос ping отправляется на localhost.
shell cmd.exe /c ping localhost -n 100 && start Environ("Temp") & "\6C.pif", vbHide
Шаг 5. Извлечение файла из объекта OLE
Очевидно, что в документе есть встроенный файл, к которому можно получить доступ с помощью инструмента oleobj.
Как указано выше, oleobj после извлечения объекта сохраняет файл в текущем рабочем каталоге. Выделенная часть изображения содержит информацию об исходном и временном пути, по которому файл сохраняется в системе после открытия документа.
Шаг 6. Получение статической информации из извлеченного файла
Итак, мы извлекли исполняемый файл PE32 для Windows. Чтобы подтвердить этот вывод, запустите инструмент pecheck.py, чтобы найти заголовки PE внутри файла.
Шаг 7. Анализ поведения
Давайте настроим 32-битную виртуальную машину Windows 7, изменим расширение файла на EXE. Перед его запуском вам необходимо включить инструменты Apate DNS и Windows Network Monitoring.
DNS-запросы домена C&C, зарегистрированные Apate DNS
Сетевой трафик 5C.exe, зарегистрированный при попытке обмена данными с C&C-сервером
Согласно результатам анализа с использованием DNS Apate и Microsoft Network Monitoring, файл создал процесс под названием 5C.exe и предпринял несколько попыток подключения к различным C&C серверам.
Изменения в реестре, зафиксированные Process Monitor
Согласно Process Monitor, процесс 5C.exe внес несколько изменений в ключи реестра, связанные с настройками подключения к Интернету. Он отключил прокси-сервер браузера, установив 0 для ключа ProxyEnable и 09 для 9-байтового ключа SavedLegacySettings. В результате браузер начал автоматически определять настройки Интернета напрямую, без прокси.
Таким образом, документ Word сначала запускает макрос VBA, сохраняет и запускает исполняемый файл, создает новый процесс, взаимодействует с серверами C&C и вносит несанкционированные изменения в реестр. Этой информации достаточно, чтобы идентифицировать документ как вредоносный. Затем мы можем провести более подробный анализ — отладить исполняемый файл или изучить дамп процесса, чтобы узнать больше о поведении файла.
Документ PDF
Документ PDF — это набор объектов, которые описывают, как страницы отображаются в файле.
Чтобы побудить пользователя скачать или открыть документ PDF, такой файл чаще всего рассылают в электронных письмах. В момент открытия документ PDF обычно запускает JavaScript в фоновом режиме. Этот скрипт может воспользоваться уязвимостью в приложении Adobe PDF Reader или незаметно сохранить встроенный исполняемый файл.
Файл PDF состоит из четырех компонентов. Это заголовок, тело (основная часть), ссылки и трейлер (конечный тег).
- Заголовок содержит информацию о версии документа и другую служебную информацию.
- Тело PDF содержит различные объекты (объекты состоят из потоков, которые используются для хранения данных).
- Таблица перекрестных ссылок указывает на каждый объект.
- Трейлер указывает на таблицу перекрестных ссылок.
Проанализируем для примера файл Report.pdf.
Инструменты:
Шаг 1. Просканируем документ PDF с помощью PDFiD
PDFiD является составной частью пакета Didier Stevens Suite. Он сканирует PDF-документ, используя список строк, чтобы обнаружить элементы JavaScript, встроенные файлы, действия, предпринятые при открытии документов, и подсчитать количество определенных строк в PDF-файле.
Как видно из результатов сканирования, PDFiD выявил в файле Report.pdf несколько объектов, потоков, элементов JS, JavaScript и OpenAction. Наличие таких элементов означает, что документ PDF содержит скрипты JavaScript или Flash.
Embedded file / элемент указывает на наличие других форматов в PDF-файлах. Элементы / OpenAction, AA, / Acroform сообщают нам, что при открытии или просмотре PDF-файла выполняется какое-то автоматическое действие.
Данные внутри объекта называют потоками.
Шаг 2. Содержимое объектов
Итак, мы обнаружили, что внутри файла PDF есть JavaScript. Это будет отправной точкой анализа. Чтобы найти косвенный объект JavaScript, запустите инструмент pdf-parser.py.
По результатам сканирования JavaScript запускает вирусный файл каждый раз при открытии PDF-файла. Итак, наш следующий шаг — извлечь этот файл.
Шаг 3. Извлечение встроенного файла с помощью peepdf
Peepdf — это инструмент Python, который содержит все компоненты, необходимые для синтаксического анализа PDF. Чтобы воспользоваться его возможностями, введите команду peepdf --i filename.pdf.
Параметр -i
включает интерактивный режим скрипта.
Чтобы узнать больше, смотри справку (опция help).
Результат анализа peepdf указывает, что объект 14 имеет встроенный файл. При ближайшем рассмотрении мы увидим, что он указывает на объект 15; а объект 15 указывает на объект 16. Наконец, мы обнаруживаем признаки файлового вируса внутри объекта 17. Судя по содержимому файла PDF, в нем есть только один поток, который также указывает на объект 17. Итак, объект 17 — это поток со встроенным в него файлом.
Внутри потока 17 содержится сигнатура файла, которая начинается с MZ, и шестнадцатеричное (hex) значение, начинающееся с 4d 5a. В этом случае это будут признаки, указывающие на исполняемый файл PE.
Далее мы сохраним поток как исполняемый файл virus.
.
Шаг 4. Анализ поведения
Теперь запустим этот файл в виртуалке под Windows 7 32-bit.
Process Explorer отображает процессы, созданные файлом virus.exe
Как видно в окне Process Explorer, virus.
создал два подозрительных процесса (zedeogm.
, cmd.
), которые были остановлены после запуска.
Компонент Process Monitor зарегистрировал изменения в системе, внесенные virus.exe
Согласно Process Monitor, файл zedeogm.exe
был сохранен в запущенных процессах. Затем он изменил правило брандмауэра Windows. Следующим шагом был запуск файла WinMail.exe.
После этого программа запустила cmd.exe
для выполнения файла tmpd849fc4d.bat
и остановила процесс.
Таким образом, мы собрали достаточно доказательств того, что этот PDF-файл является вредоносным. Затем вы можете принять дополнительные превентивные меры — например, выполнить двоичную отладку и проверить память извлеченных IOC на предмет других угроз.
Заключение
Здесь мы подробно разобрали, как найти признаки фишинга в электронном письме, а также как это может помочь избежать нежелательных угроз. Также были выявлены зоны поиска этих признаков. Нам стало известно об URL-адресах, которые злоумышленники скрывают в тексте письма, а также о том, что необходимо предпринять для их проверки.
Какие меры предпринять, чтобы обезопасить себя:
- Не стоит доверять отправителю электронного письма.
- В случае, если ты не знаешь, кто твой отправитель, не переходи по ссылкам и не открывай вложения.
- В большинстве случаев злоумышленники используют произвольные доменные имена. Не поленитесь проверить адрес сайта на наличие «опечатки». Это может быть сайт, который создан специально для того, чтобы ввести вас в заблуждение.
- Сначала проверь происхождение сайта, прежде чем вписать туда свои личные данные – имя пользователя и его почтовый адрес, финансовые данные и другие.
- А если у тебя появились сомнения в том, что ты вводишь реквизиты доступа на подозрительном сайте, немедленно смени пароль.