Содержание статьи
Анализ заголовка
Электронное письмо состоит из трех частей — заголовка, основной части (тела) и иногда вложения. В заголовке представлена маршрутная информация сообщения. Он может содержать и другие сведения — тип контента, данные отправителя и адресата, дату получения, абсолютный адрес отправителя, адрес почтового сервера и реальный адрес электронной почты, с которого или на который было отправлено сообщение.
Важные заголовки
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.
Рассмотрим следующее электронное сообщение.
![Исходные данные в заголовке электронного письма Исходные данные в заголовке электронного письма](https://static.xakep.ru/images/022ebdd6d65a22794fed31ff4ebb9e10/20350/1.jpg)
- В приведенном выше примере видно, что обратный путь не совпадает с адресом в поле From («От»). Это означает, что все недоставленные письма будут возвращены по первому адресу.
- В поле 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 Фишинговое письмо на тему COVID-19](https://static.xakep.ru/images/022ebdd6d65a22794fed31ff4ebb9e10/20351/2.jpg)
Спамер представляется поставщиком услуг медицинского страхования. Письмо содержит информацию о счете на оплату страховки на случай заболевания COVID-19, которую жертва якобы заказала недавно.
![Фишинговое письмо на тему COVID-19 (продолжение) Фишинговое письмо на тему COVID-19 (продолжение)](https://static.xakep.ru/images/022ebdd6d65a22794fed31ff4ebb9e10/20352/3.png)
Кроме того, в конце сообщения имеется строка «Это письмо было проверено McAfee». Благодаря этому письмо выглядит безопасным.
![](https://static.xakep.ru/images/022ebdd6d65a22794fed31ff4ebb9e10/20353/4.png)
Однако если мы наведем курсор мыши на кнопку «Подробнее» (See Details), то увидим ссылку на сервис OneDrive. Вместо того чтобы нажать эту ссылку, скопируем ее и откроем в браузере.
![Скачанный по ссылке OneDrive файл HTML Скачанный по ссылке OneDrive файл HTML](https://static.xakep.ru/images/022ebdd6d65a22794fed31ff4ebb9e10/20354/5.png)
Независимый переход по ссылкам из спама и фишинговых писем (hxxps://
) лучше выполнять в изолированной среде. Если у тебя нет такой среды, поставь виртуалку или воспользуйся сервисом кросс‑браузерного тестирования, например Browserling.
Ссылка ведет на HTML-страницу, которая редиректит нас на другой сайт:
hxxps://selimyildiz.com.tr/wp-includes/fonts/greec/xls/xls/open/index.htm
![Фальшивая страница входа в Office 365 Фальшивая страница входа в Office 365](https://static.xakep.ru/images/022ebdd6d65a22794fed31ff4ebb9e10/20355/6.png)
Эта веб‑страница похожа на страницу онлайн‑приложения Microsoft Excel с запросом доступа к Office 365 для скачивания документа.
![Панель администратора WordPress сайта selimyildiz.com.tr Панель администратора WordPress сайта selimyildiz.com.tr](https://static.xakep.ru/images/022ebdd6d65a22794fed31ff4ebb9e10/20356/7.png)
Чтобы проверить подлинность страницы, сократим URL до уровня домена и выполним загрузку. Домен переадресует нас на страницу входа в панель администрирования сайта под управлением WordPress. Собственно, уже на этом этапе становится очевидным, что мы имеем дело с фишингом.
![Информация whois о сайте selimyildiz.com.tr Информация whois о сайте selimyildiz.com.tr](https://static.xakep.ru/images/022ebdd6d65a22794fed31ff4ebb9e10/20357/8.png)
Согласно данным службы whois, домен не был зарегистрирован Microsoft и соответствует публичному IP-адресу 2.56.152.159, который также не принадлежит Microsoft. Эти данные явно свидетельствуют о том, что открытый по ссылке сайт создан мошенниками.
![Попытка входа с произвольными реквизитами для аутентификации Попытка входа с произвольными реквизитами для аутентификации](https://static.xakep.ru/images/022ebdd6d65a22794fed31ff4ebb9e10/20358/9.jpg)
Для проверки поведения сайта вернемся на страницу входа, введем произвольный логин и пароль и попытаемся скачать счет. Как и ожидалось, страница выдает ошибку, а указанные данные из формы благополучно ушли злоумышленникам.
![Фальшивый счет для привлечения внимания Фальшивый счет для привлечения внимания](https://static.xakep.ru/images/022ebdd6d65a22794fed31ff4ebb9e10/20359/10.png)
Итак, теперь мы знаем, что это поддельный сайт. Что делать дальше? Чтобы проверить функцию аутентификации, вновь введем произвольные реквизиты. Теперь они приняты! На этот раз браузер открывает в формате PDF счет, который выглядит подлинным, отправленным некой медицинской компанией. Однако к тому времени, когда жертва поймет, что это фальшивый счет, ее логин и пароль будут уже похищены.
Анализ вложений
Обычно во вложениях электронной почты пользователи пересылают документы Microsoft Office или файлы PDF. Эти форматы часто используются киберпреступниками в качестве инструмента для загрузки вредоносного ПО. Чтобы получить доступ к системе жертвы, злоумышленники внедряют в такие файлы элементы VBA (Visual Basic Application) или 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
.
![](https://static.xakep.ru/images/022ebdd6d65a22794fed31ff4ebb9e10/20360/11.png)
В данном случае тип файла — Microsoft Office Word.
Шаг 2. Применение правил Yara
Yara — инструмент для идентификации и классификации вредоносного ПО. Он проверяет файлы на основе сигнатур. Воспользуемся двумя готовыми правилами Yara из программного пакета Didier Stevens Suite.
![](https://static.xakep.ru/images/022ebdd6d65a22794fed31ff4ebb9e10/20361/12.png)
![](https://static.xakep.ru/images/022ebdd6d65a22794fed31ff4ebb9e10/20362/12-2.png)
Правило Yara (maldoc.
), процесс выполнения которого показан выше, обнаружило, что магическое число файла OLE (D0 CF 11 E0) совпадает с идентификатором HEX (магическими байтами) документов Microsoft Office.
info
Магическое число — критические данные, выделенные уникальные значения, которые не должны совпадать с другими значениями.
Также внутри файла были обнаружены подозрительные включения — GetProcAddr
и LoadLibrary
.
![](https://static.xakep.ru/images/022ebdd6d65a22794fed31ff4ebb9e10/20363/13.jpg)
Это правило Yara rule (contains_pe_file.
) выявляет любые встроенные файлы PE. Затем оно выполняет сопоставление представленных выше строк файла. MZ — сигнатура файла PE.
Шаг 3. Выделение содержимого документа с помощью oledump.py
![](https://static.xakep.ru/images/022ebdd6d65a22794fed31ff4ebb9e10/20364/14.png)
Файл OLE содержит потоки данных. Oledump.
анализирует эти потоки для дальнейшего извлечения макросов или объектов из файла.
На рисунке выше в потоках 8, 9 и 15 видны буквы M
и O
соответственно. М
означает, что поток, возможно, содержит макрокод, О
— объект.
Шаг 4. Извлечение скрипта VB из макроса
![](https://static.xakep.ru/images/022ebdd6d65a22794fed31ff4ebb9e10/20365/15.png)
![](https://static.xakep.ru/images/022ebdd6d65a22794fed31ff4ebb9e10/20366/15-2.png)
Код в потоке 8 содержит метод killo
. Это функция для сохранения документа с тем же именем файла.
Код потока 9 содержит множество интересных данных. В функции Document_Open(
представлены имена файлов 5C.
и 6C.
, причем 5C.
копируется в 6C.
с помощью функции FileCopy
. В следующей части функция вызывает метод killo
из другого модуля (поток 8).
В конце функция Document_Close(
выполняет замаскированную команду с использованием оболочки. Убрав маскировку, мы увидим, что 6C.
запускается в фоновом режиме (с помощью метода vbHide
); одновременно отправляется ping-запрос к localhost.
shell cmd.exe /c ping localhost -n 100 && start Environ("Temp") & "\6C.pif", vbHide
Шаг 5. Извлечение файла из объекта OLE
Очевидно, документ содержит встроенный файл, который можно извлечь с помощью инструмента oleobj.
![](https://static.xakep.ru/images/022ebdd6d65a22794fed31ff4ebb9e10/20367/16.png)
Как показано выше, oleobj после такого извлечения из объекта сохраняет файл в текущей рабочей директории. Выделенная часть рисунка содержит сведения об исходном и временном пути, по которому файл сохраняет себя в системе после открытия документа.
Шаг 6. Получение статической информации из извлеченного файла
![](https://static.xakep.ru/images/022ebdd6d65a22794fed31ff4ebb9e10/20368/17.png)
Итак, мы извлекли исполняемый файл PE32 для Windows. Чтобы подтвердить этот вывод, запустим инструмент pecheck.
для обнаружения заголовков PE внутри файла.
Шаг 7. Анализ поведения
Настроим виртуальную машину Windows 7 32-bit, изменим расширение файла на EXE. До его запуска необходимо включить инструменты Apate DNS и Windows Network Monitoring.
![DNS-запросы домена C&C, зарегистрированные Apate DNS DNS-запросы домена C&C, зарегистрированные Apate DNS](https://static.xakep.ru/images/022ebdd6d65a22794fed31ff4ebb9e10/20369/18.png)
![Сетевой трафик 5C.exe, зарегистрированный при попытке обмена данными с C&C-сервером Сетевой трафик 5C.exe, зарегистрированный при попытке обмена данными с C&C-сервером](https://static.xakep.ru/images/022ebdd6d65a22794fed31ff4ebb9e10/20371/19.jpg)
Согласно результатам анализа с помощью Apate DNS и Microsoft Network Monitoring, файл создал процесс с именем 5C.
и выполнил несколько попыток подключения к различным C&C-серверам.
![Изменения в реестре, зафиксированные Process Monitor Изменения в реестре, зафиксированные Process Monitor](https://static.xakep.ru/images/022ebdd6d65a22794fed31ff4ebb9e10/20370/20.png)
По данным Process Monitor, процесс 5C.
внес несколько изменений в ключи системного реестра, имеющие отношение к настройкам интернет‑соединения. Он отключил прокси‑сервер браузера, установив значение 0 для ключа ProxyEnable
и 09 для 9-байтного ключа SavedLegacySettings
. В результате браузер начал определять интернет‑настойки в автоматическом режиме напрямую, без прокси.
Итак, документ Word вначале запустил макрос VBA, сохранил и запустил исполняемый файл, создал новый процесс, обменялся данными с C&C-серверами и внес неавторизованные изменения в реестр. Эти сведения достаточны для того, чтобы определить документ как вредоносный. Далее мы можем выполнить более подробный анализ — провести отладку исполняемого файла или изучить дамп процесса, чтобы больше узнать о поведении файла.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»