После заголовка письма идет его содержимое. Злоумышленник отправил файл с названием web server.docx. Пользователь joshua@cyberdefenders.org получил это сообщение, загрузил вложение и открыл его.
Еще по теме: Перехват трафика в локальной сети по проводу
Анализ сетевого трафика
Выгрузим почтовое вложение, для этого скопируем закодированные данные, декодируем их из Base64 и сохраним в файл web server.docx.
Получим MD5-хеш исследуемого файла: 55e7660d9b21ba07fc34630d49445030 — и проверим его на VirusTotal. Согласно отчету сервиса, документ содержит эксплоит CVE-2021-40444. Эта уязвимость позволяет выполнять вредоносный код, используя MSHTML (браузерный движок Internet Explorer). Суть эксплуатации заключается в том, что в документ MS Office встраивается ссылка на вредоносный скрипт, который запускается с использованием MSHTML. Это, в свою очередь, приводит к загрузке CAB-файла, в котором содержится DLL-файл с расширением .inf.
Цепочка выполнения эксплоита выглядит следующим образом:
- Пользователь открывает вредоносный документ .docx.
- Объект external relationship, хранящийся в document.xml.rels, указывает на удаленный вредоносный HTML-файл.
- Предварительный просмотр Internet Explorer открывает HTML-ссылку.
- JScript в HTML содержит объект, указывающий на CAB-файл, и iframe, указывающий на INF-файл с префиксом директивы .cpl:.
- После открытия CAB-файла INF-файл перемещается в каталог, указанный злоумышленником.
- Из‑за уязвимости обхода пути (ZipSlip) в CAB можно сохранить INF по пути %TEMP%.
- Затем INF-файл открывается с помощью директивы .cpl:, что вызывает боковую загрузку INF-файла через rundll32 (если это DLL).
Исследуем вредоносный документ, найдем вредоносную ссылку на HTML-файл.
С помощью утилиты oleid получим информацию о документе MS Office.
1 |
oleid webserver.docx |
Определим External Relationships в документе, добавим к имени файла расширение .zip и найдем файл word -> _rels -> document.xml.rels.
Идентификатор внешнего объекта — rId6, ссылка на HTML-файл выглядит следующим образом:
1 |
http://192.168.112.128/word.html |
Теперь найдем подробную информацию о внешнем отношении с идентификатором rId6, для этого перейдем к файлу word -> document.xml.
LinkType OLE-объекта — EnhancedMetaFile, это расширенный формат метафайла.
Продолжим анализировать сетевой трафик. Теперь найдем в дампе участок, в котором загружается файл word.html.
Начиная с пакета 2946 (TCP-поток 1211), устанавливается соединение с внешней ссылкой http://192.168.112.128/word.html, в поле User-Agent HTTP-заголовка указана программа, с помощью которой осуществлен доступ по ссылке. На атакуемом компьютере установлен Microsoft Office Word 2013 версии 15.0.4517.
Двигаемся дальше по TCP-потокам. В потоке 1213 обнаружен GET-запрос к вредоносному серверу, в ответе которого возвращается HTML-документ с кодом JavaScript.
Сервер вернул HTML-документ, который содержит вредоносный обфусцированный JavaScript.
Код сильно обфусцирован, но в нем все же можно найти ссылку для загрузки файла .cab. В переменной a0_0x12f содержится ссылка http://192.168.112.128/word.cab. Далее вредоносный код загружает CAB-архив, извлекает из него файл msword.infl, используя уязвимость ZipSlip (атаку обхода пути), и сохраняет файл в такой каталог:
1 |
C:\Users\IEUser\AppData\Local\Temp\msword.inf |
Затем запускает этот файл.
Выгрузим этот документ из сетевого трафика.
Сохраним файл как word.cab и проанализируем его. Для начала извлечем DLL-нагрузку из CAB-файла.
MD5-хеш DLL-файла — 2d7972ec8f063348991490c3d15ce989, по информации VirusTotal этот файл является нагрузкой Meterpreter и создается в Metasploit.
Загрузим DLL-файл в IDA Pro, декомпилируем код и проанализируем его.
В переменной unk_10003000 содержится шелл‑код, который записывается в память процесса с помощью WinAPI-функции WriteProcessMemory. В функции CreateProcessA создается процесс rundll32.exe (содержимое переменной CommandLine).
Выгрузим шелл‑код, сохраним в файл shell и с помощью утилиты scdbg посмотрим его содержимое.
1 |
scdbg /f shell |
Адрес управляющего сервера — 192.168.112.128, порт 443. Загружаемая библиотека для сетевого взаимодействия — wininet. Найдем участок взаимодействия с управляющим сервером в сетевом трафике.
Мы определили сетевой адрес атакующего, выяснили, что после сканирования сетевого ресурса 192.168.112.139 злоумышленник отправил вредоносное письмо пользователю joshua@cyberdefenders.org с вредоносным вложением web server.docx. Пользователь открыл этот документ, после чего на его компьютере установилась обратная оболочка Meterpreter утилиты Metasploit.
Теперь проанализируем сетевой трафик и ответим на вопросы задания. Отфильтруем пакеты по протоколу DNS. В поле фильтра укажем этот протокол.
В отфильтрованном трафике можно увидеть DNS-запросы к компьютеру 192.168.112.2 — DNS-серверу организации. В пакете 5648 выполняется запрос к доменному имени omextemplates.content.office.net.
Найдем пакет 4085, в котором устанавливается TLS-соединение с узлом v10.vortex-win.data.microsoft.com.
Нам известен сетевой адрес атакуемой машины 192.168.112.139 и MAC-адрес сетевой карты 00:0c:29:61:f9:84. Перейдем на https://macaddress.io/, чтобы узнать производителя этого устройства.
Адрес компании производителя — 3401 Hillview Avenue Palo Alto CA 94304 US.
Найдем публичный ключ в сеансе TLS, для этого нажмем Ctrl + F в Wireshark и наберем представленный в задании идентификатор сессии.
Публичный ключ TLS-сессии:
1 |
64089e29f386356f1ffbd64d7056ca0f1d489a09cd7ebda630f2b7394e319406 |
Мы ответили на вопросы задания, а также научились фильтровать и анализировать сетевой дамп.
Проанализируем сетевой трафик с помощью системы обнаружения вторжений Suricata, чтобы детектировать вредоносную активность и обнаружить компьютерную атаку. Воспользуемся утилитой Brim, в которой установлен движок Suricata.
В архиве задания присутствуют правила suricata.rules. Загрузим их в следующий каталог:
1 |
%AppData%\Local\Programs\brim\resources\app.asar.unpacked\zdeps\suricata\var\lib\suricata\rules |
И запустим Brim. В поле фильтра введем следующие данные для поиска правил срабатывания:
1 |
event_type=="alert" | alerts := union(alert.category) by src_ip, dest_ip,alert.signature | sort alerts |
Проанализировав данный пакет, можно увидеть, что правило «эксплуатация уязвимости CVE-2020-11899» определено ошибочно.
Выводы
Мы провели расследование инцидента и восстановили картину атаки. Злоумышленник с сетевого адреса 192.168.112.128 в 12:31 1 октября 2021 года просканировал узел 192.168.112.139, на котором открыты семь портов. Затем он отправил сообщение пользователю joshua@cyberdefenders.org с вложением web server.docx, в котором содержится эксплоит CVE-2021-40444. Пользователь открыл этот документ, и на его компьютере установилась Meterpreter-нагрузка с управляющим сервером 192.168.112.128, порт 443.
ПОЛЕЗНЫЕ ССЫЛКИ: