Уроки криминалистики. Ищем подсказки в сетевом трафике
Согласно этому сценарию, хакерская группа использовала целевой фишинг и получила доступ к информационным ресурсам организации. Наша задача — расследовать инцидент и восстановить его сценарий.
По результатам необходимо ответить на вопросы, но я покажу только сам процесс решения. Вы можете повторить его самостоятельно, чтобы лучше понять и закрепить материал.
Начнем с загрузки файла. архив с артефактами и приступаем к их изучению. Этот архив содержит сетевой трафик скомпрометированного хоста и правила Suricata.
Используемые утилиты
- Wireshark – Анализатор сетевых протоколов.
- бровь — Анализатор сетевого трафика.
- Вы были – утилита для анализа OLE-файлов.
- Скдбг – Утилита для анализа шелл-кода, основанная на библиотеке эмуляции libmu.
- ИДА Про интерактивный дизассемблер, используемый для обратного проектирования.
Анализ сетевого трафика
Приступим к анализу сетевого трафика. Дамп будем изучать в программе Wireshark. Загрузим файл из архива, для этого перейдите на вкладку «Файл → Открыть».
Анализируя пакеты сетевого дампа, можно увидеть, что, начиная с пакета 56, с IP-адреса 192.168.112.128 происходят множественные вызовы TCP на разные порты.
Злоумышленник с IP-адреса 192.168.112.128 сканирует порты сетевого устройства 192.168.112.139, чтобы найти открытые порты. Рассмотрим этот процесс более подробно.

На рисунке выше показано трехстороннее TCP-соединение между сетевыми адресами 192.168.112.128 и 192.168.112.139 на порту 25. Как работает TCP-подтверждение, описано в базе знаний. штормовая стенаОписание флагов пакетов TCP можно найти на этом веб-сайте. geeksforgeeks.
Поиск открытого порта при сканировании TCP происходит следующим образом. Источник 192.168.112.128 отправил пакет SYN адресату 192.168.112.139. Получатель ответил флагами SYN и ACK TCP (соединение установлено). Затем источник отправляет пакет ACK и завершает соединение с флагом RST. Это указывает на то, что порт 25 устройства 192.168.112.139 открыт. В случае закрытого порта после пакета SYN получатель отправляет флаги RST, ACK пакета TCP.
Рассмотрим пакет TCP с флагами SYN и ACK. Для этого откройте его, дважды щелкните по нему, а затем разверните вкладку Протокол управления передачей и вкладку Флаги.

Мы обнаружили, что когда порт открыт, источник сканирования отправляет пакет с флагами SYN и ACK. Найдем пакеты и найдем количество открытых портов на атакуемой машине, для этого фильтруем сетевой трафик.
В поле Display Filter утилиты Wireshark введите следующие данные:

Проанализировав дамп сетевого трафика, мы выяснили следующее. 1 октября 2021 года в 12:31 злоумышленник с IP-адресом 192.168.112.128 начал сканировать сетевой ресурс 192.168.112.139. MAC-адрес атакуемой машины — 00:
. В результате сканирования выяснилось, что на атакуемой машине открыто семь портов: 25, 110, 135, 139, 143, 445, 587.
Рассмотрим дальнейшие действия злоумышленника, продолжим анализ дампа сетевого трафика.
В 12:31:54 злоумышленник отправляет электронное письмо на SMTP-сервер (порт сетевого ресурса 25 192.168.112.139). Начиная с пакета 2645, связь по SMTP (порт 25) видна, полный список команд протокола см. блог.
Построим поток TCP и проанализируем команды протокола SMTP и заголовок сообщения, для этого кликните правой кнопкой мыши по надписи «Follow» и выберите в контекстном меню пункт «TCP Stream». Номер потока TCP с SMTP-связью - 1183
.

Команда EHLO
Используется для представления клиента на SMTP-сервере. Имя клиента - kali
Сервер возвращает статус 250
Соединение успешно установлено.
Поле MAIL
Указывает отправителя сообщения: [email protected].
Значение RPCT
Определяет получателя сообщения: [email protected].
. Далее идет команда DATA
, который используется для передачи информационной части сообщения. Рассмотрим заголовок сообщения. В названии Date
Указаны дата и время отправки данного письма: 12:31:54 1 октября 2021 г. В заголовке X-Mailer
- Программное обеспечение, с помощью которого злоумышленник отправил сообщение: sendMail версии 1.56.

После заголовка письма следует содержание. Злоумышленник отправил файл с таким именем web
. Пользователь [email protected].
Получил сообщение, скачал вложение и открыл его.
Выгрузим почтовое вложение, для этого скопируем закодированные данные, декодируем их из Base64 и сохраним в файл web
.
Результирующий MD5-хэш исследуемого файла: 55e7660d9b21ba07fc34630d49445030
- и проверить его на VirusTotal. Согласно отчету службы, документ содержит эксплойт CVE-2021-40444. Эта уязвимость позволяет выполнять вредоносный код с помощью MSHTML (движок браузера Internet Explorer). Суть эксплуатации заключается во встраивании ссылки на вредоносный скрипт в документ MS Office, который запускается с помощью MSHTML. Это, в свою очередь, вызывает загрузку CAB-файла, содержащего DLL-файл с расширением .
.
Цепочка выполнения эксплойта выглядит так:
- Пользователь открывает вредоносный документ
.
.docx - Объект
external
Хранится вrelationship document.
Указывает на удаленный вредоносный файл HTML.xml. rels - Internet Explorer открывает HTML-ссылку.
- JScript в HTML содержит объект, указывающий на файл CAB, и iframe, указывающий на файл INF с префиксом директив.
.
.cpl: - После открытия файла .cab файл .inf перемещается в каталог, указанный злоумышленником.
- Из-за уязвимости обхода пути (ZipSlip) есть возможность хранить INF по пути в CAB
%TEMP%
. - Затем файл INF открывается директивой
.
что вызывает неопубликованную загрузку INF-файлаcpl: rundll32
(если это DLL).
Исследуем вредоносный документ, находим вредоносную ссылку на HTML-файл.
С помощью утилиты Oleid получаем информацию о документе MS Office.

Определим External Relationships в документе, добавим к имени файла расширение .
и найти файл word
.

идентификатор внешнего объекта — rId6
Ссылка на HTML-файл выглядит так:
http://192.168.112.128/word.html
Теперь давайте найдем подробную информацию о внешней связи с идентификатором rId6
Для этого идем в файл word
.

Тип ссылки OLE-текст — EnhancedMetaFile
является расширенным форматом метафайла.
Продолжим анализировать сетевой трафик. Теперь найдем область в дампе, куда загружается файл word.
.
Начиная с пакета 2946 (поток TCP 1211) устанавливается внешнее соединение http://
В поле User-Agent
Заголовок HTTP указывает программу, которая обращается к ссылке. На атакуемом компьютере установлен Microsoft Office Word 2013 версии 15.0.4517.

Перейдем к TCP-потокам. В потоке 1213 обнаруживается GET-запрос к вредоносному серверу, в ответ на который возвращается HTML-документ с кодом JavaScript.

Сервер вернул HTML-документ, содержащий злонамеренно запутанный код JavaScript.

Код сильно запутан, но в нем все же можно найти ссылку на скачивание файла .
. В разнообразии a0_0x12f
содержит ссылку http://
. Затем вредоносный код скачивает CAB-архив, извлекает файл msword.
Использование уязвимости Застежка-молния (атака обхода пути) и сохраняет файл в такой каталог:
C:\Users\IEUser\AppData\Local\Temp\msword.inf
Затем запустите этот файл.
Освободим документ от сетевого трафика.

Сохраните файл как word.
И проанализируйте его. Во-первых, давайте извлечем загрузку DLL из CAB-файла.
MD5-хэш DLL-файл — 2d7972ec8f063348991490c3d15ce989
Согласно информации VirusTotal Этот файл загружается измерителем и создается Metasploit.
Загрузим файл DLL в IDA Pro, декомпилируем код и проанализируем его.

В разнообразии unk_10003000
Содержит шелл-код, который записывается в память процесса с помощью функции WinAPI. WriteProcessMemory
. в функции CreateProcessA
процесс создан rundll32.
(содьму мое веременной CommandLine
).
Загрузить шеллкод, сохранить в файл shell
и используйте утилиту scdbg для просмотра содержимого.

Адрес управляющего сервера — 192.168.112.128, порт 443. Загружаемая библиотека для сетевого взаимодействия — wininet
. Найдем область взаимодействия с управляющим сервером в сетевом трафике.

Мы определили сетевой адрес злоумышленника, обнаружили, что после сканирования сетевого устройства 192.168.112.139 злоумышленник отправил пользователю вредоносное электронное письмо [email protected].
Со злонамеренными инвестициями web
. Пользователь открыл документ, после чего на его компьютер была установлена обратная оболочка Meterpreter утилиты Metasploit.
Теперь проанализируем сетевой трафик и ответим на вопросы задания. Отфильтруем пакеты по протоколу DNS. Укажите протокол в поле фильтра.

В отфильтрованном трафике можно увидеть DNS-запросы к компьютеру 192.168.112.2 — DNS-серверу организации. В пакете 5648 делается запрос доменного имени omextemplates.
.
Найдите пакет 4085, в котором установлено TLS-соединение с хостом v10.
.

Нам известен сетевой адрес атакуемой машины 192.168.112.139 и MAC-адрес сетевой карты 00:
. Продолжим https://
Найти производителя этого устройства.

Адрес компании производителя — 3401 Hillview Avenue Palo Alto CA 94304 US
Найдем публичный ключ в TLS-сессии, для этого в Wireshark нажимаем Ctrl+F и набираем идентификатор сессии, представленный в задании.

Сеансы TLS с открытым ключом:
64089e29f386356f1ffbd64d7056ca0f1d489a09cd7ebda630f2b7394e319406
Мы ответили на вопросы работы, а также научились фильтровать и анализировать сетевой дамп.
Давайте проанализируем сетевой трафик с помощью системы обнаружения вторжений Suricata для обнаружения вредоносной активности и обнаружения компьютерной атаки. Воспользуемся утилитой Brim, в которой установлен движок Suricata.
В рабочем архиве есть правила suricata.
. Давайте загрузим их в следующий каталог:
%AppData%\Local\Programs\brim\resources\app.asar.unpacked\zdeps\suricata\var\lib\suricata\rules
И давайте начнем. В поле фильтра введите следующие данные для поиска триггерных правил:
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, у которого было открыто семь портов. Затем он отправил сообщение пользователю [email protected].
с инвестициями web
, который содержит эксплойт CVE-2021-40444. Пользователь открыл документ, и на его компьютер с управляющим сервером 192.168.112.128 был установлен meterpreter load, порт 443.