Уроки криминалистики. Ищем подсказки в сетевом трафике

Иногда после хакерской атаки у исследователей остается несколько скомпрометированных компьютеров и дамп сетевого трафика, изучив который они могут попытаться восстановить хронологию событий. Эта ситуация моделируется лабораторной работой. BSidesJeddah-Часть 1 с устройством Киберзащитники, решение которой мы сегодня подробно разберем. Мы научимся анализировать сетевой трафик, извлекать артефакты и восстанавливать образ взлома.

Согласно этому сценарию, хакерская группа использовала целевой фишинг и получила доступ к информационным ресурсам организации. Наша задача — расследовать инцидент и восстановить его сценарий.

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

Начнем с загрузки файла. архив с артефактами и приступаем к их изучению. Этот архив содержит сетевой трафик скомпрометированного хоста и правила Suricata.

Используемые утилиты

  1. Wireshark – Анализатор сетевых протоколов.
  2. бровь — Анализатор сетевого трафика.
  3. Вы были – утилита для анализа OLE-файлов.
  4. Скдбг – Утилита для анализа шелл-кода, основанная на библиотеке эмуляции libmu.
  5. ИДА Про интерактивный дизассемблер, используемый для обратного проектирования.

Анализ сетевого трафика

Приступим к анализу сетевого трафика. Дамп будем изучать в программе Wireshark. Загрузим файл из архива, для этого перейдите на вкладку «Файл → Открыть».

Анализируя пакеты сетевого дампа, можно увидеть, что, начиная с пакета 56, с IP-адреса 192.168.112.128 происходят множественные вызовы TCP на разные порты.

Несколько сетевых подключений

Злоумышленник с IP-адреса 192.168.112.128 сканирует порты сетевого устройства 192.168.112.139, чтобы найти открытые порты. Рассмотрим этот процесс более подробно.

Процесс сканирования TCP
Процесс TCP-сканирования

На рисунке выше показано трехстороннее TCP-соединение между сетевыми адресами 192.168.112.128 и 192.168.112.139 на порту 25. Как работает TCP-подтверждение, описано в базе знаний. штормовая стенаОписание флагов пакетов TCP можно найти на этом веб-сайте. geeksforgeeks.

ЧИТАТЬ   Познакомьтесь с грозной гигантской зеленой анакондой [2023]

Поиск открытого порта при сканировании 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 флаги TCP пакета
SYN, ACK флаги TCP пакета

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

В поле Display Filter утилиты Wireshark введите следующие данные:

Отфильтрованные пакеты сетевого дампа
От­филь­тро­ван­ные пакеты сетево­го дам­па

Про­ана­лизи­ровав дамп сетево­го тра­фика, мы выяс­нили сле­дующее. 1 октября 2021 года в 12:31 зло­умыш­ленник с IP-адре­сом 192.168.112.128 начал ска­ниро­вать сетевой ресурс 192.168.112.139. MAC-адрес ата­куемой машины — 00:0C:29:B7:CA:91. В результате сканирования выяснилось, что на атакуемой машине открыто семь портов: 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.

SMTP-взаимодействие
SMTP-взаимодействие

Команда EHLO Используется для представления клиента на SMTP-сервере. Имя клиента - kaliСервер возвращает статус 250Соединение успешно установлено.

ЧИТАТЬ   Криптовалюты выросли. Ищем курсы на 9 января 2023 г.

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

Содержимое электронной почты
Содержание письма

После заголовка письма следует содержание. Злоумышленник отправил файл с таким именем web server.docx. Пользователь [email protected].org Получил сообщение, скачал вложение и открыл его.

Выгрузим почтовое вложение, для этого скопируем закодированные данные, декодируем их из Base64 и сохраним в файл web server.docx.

Результирующий MD5-хэш исследуемого файла: 55e7660d9b21ba07fc34630d49445030 - и проверить его на VirusTotal. Согласно отчету службы, документ содержит эксплойт CVE-2021-40444. Эта уязвимость позволяет выполнять вредоносный код с помощью MSHTML (движок браузера Internet Explorer). Суть эксплуатации заключается во встраивании ссылки на вредоносный скрипт в документ MS Office, который запускается с помощью MSHTML. Это, в свою очередь, вызывает загрузку CAB-файла, содержащего DLL-файл с расширением .inf.

Цепочка выполнения эксплойта выглядит так:

  1. Пользователь открывает вредоносный документ .docx.
  2. Объект external relationshipХранится в document.xml.relsУказывает на удаленный вредоносный файл HTML.
  3. Internet Explorer открывает HTML-ссылку.
  4. JScript в HTML содержит объект, указывающий на файл CAB, и iframe, указывающий на файл INF с префиксом директив. .cpl:.
  5. После открытия файла .cab файл .inf перемещается в каталог, указанный злоумышленником.
  6. Из-за уязвимости обхода пути (ZipSlip) есть возможность хранить INF по пути в CAB %TEMP%.
  7. Затем файл INF открывается директивой .cpl:что вызывает неопубликованную загрузку INF-файла rundll32 (если это DLL).

Исследуем вредоносный документ, находим вредоносную ссылку на HTML-файл.

С помощью утилиты Oleid получаем информацию о документе MS Office.

Результат использования олея
Вы­вод ути­литы oleid

Оп­ределим External Relationships в докумен­те, добавим к име­ни фай­ла рас­ширение .zip и найти файл word -> _rels -> document.xml.rels.

Содержимое файла document.xml.rels
Содержимое файла document.xml.rels

идентификатор внешнего объекта — rId6Ссылка на HTML-файл выглядит так:

http://192.168.112.128/word.html

Теперь давайте найдем подробную информацию о внешней связи с идентификатором rId6Для этого идем в файл word -> document.xml.

Информация о внешней связи с идентификатором read6
Информация о внешней связи с идентификатором read6

Тип ссылки OLE-текст — EnhancedMetaFileявляется расширенным форматом метафайла.

Продолжим анализировать сетевой трафик. Теперь найдем область в дампе, куда загружается файл word.html.

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

Параметр «Параметры» из приложений MS Office Word
Параметры ресурсов Office Word

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

Загружаемый код JavaScript
Загружаемый код JavaScript

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

содержание word.html
Содержимое word.html

Код сильно запутан, но в нем все же можно найти ссылку на скачивание файла .cab. В разнообразии a0_0x12f содержит ссылку http://192.168.112.128/word.cab. Затем вредоносный код скачивает CAB-архив, извлекает файл msword.inflИспользование уязвимости Застежка-молния (атака обхода пути) и сохраняет файл в такой каталог:

C:\Users\IEUser\AppData\Local\Temp\msword.inf

Затем запустите этот файл.

Освободим документ от сетевого трафика.

Содержимое CAB-архива
Содержимое CAB-архива

Сохраните файл как word.cab И проанализируйте его. Во-первых, давайте извлечем загрузку DLL из CAB-файла.

MD5-хэш DLL-файл — 2d7972ec8f063348991490c3d15ce989Согласно информации VirusTotal Этот файл загружается измерителем и создается Metasploit.

Загрузим файл DLL в IDA Pro, декомпилируем код и проанализируем его.

Псевдокод DLL
DLL-файл псевдокода

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

Загрузить шеллкод, сохранить в файл shell и используйте утилиту scdbg для просмотра содержимого.

Содержимое шеллкода
Со­дер­жимое шелл‑кода

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

Взаимодействие с управляющим сервером
Взаимодействие с сервером управления

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

Теперь проанализируем сетевой трафик и ответим на вопросы задания. Отфильтруем пакеты по протоколу DNS. Укажите протокол в поле фильтра.

DNS-пакеты
Пакеты DNS

В отфильтрованном трафике можно увидеть DNS-запросы к компьютеру 192.168.112.2 — DNS-серверу организации. В пакете 5648 делается запрос доменного имени omextemplates.content.office.net.

Найдите пакет 4085, в котором установлено TLS-соединение с хостом v10.vortex-win.data.microsoft.com.

Комплектация 4085
Содержимое упаковки 4085

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

Производитель сетевой карты
Производитель сетевой карты

Адрес компании производителя — 3401 Hillview Avenue Palo Alto CA 94304 US

Найдем публичный ключ в TLS-сессии, для этого в Wireshark нажимаем Ctrl+F и набираем идентификатор сессии, представленный в задании.

Найдите открытый ключ сеанса TLS
TLS-Ceasies

Сеансы TLS с открытым ключом:

64089e29f386356f1ffbd64d7056ca0f1d489a09cd7ebda630f2b7394e319406

Мы ответили на вопросы работы, а также научились фильтровать и анализировать сетевой дамп.

Давайте проанализируем сетевой трафик с помощью системы обнаружения вторжений Suricata для обнаружения вредоносной активности и обнаружения компьютерной атаки. Воспользуемся утилитой Brim, в которой установлен движок Suricata.

В рабочем архиве есть правила suricata.rules. Давайте загрузим их в следующий каталог:

%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

Список оповещений тиража
Список предупреждений Suricata

Проанализировав пакет, можно увидеть, что неправильно определено правило «Эксплуатация уязвимости CVE-2020-11899».

выполнять

Мы расследовали инцидент и реконструировали картину нападения. Злоумышленник с сетевого адреса 192.168.112.128 в 12:31 1 октября 2021 года просканировал узел 192.168.112.139, у которого было открыто семь портов. Затем он отправил сообщение пользователю [email protected].org с инвестициями web server.docx, который содержит эксплойт CVE-2021-40444. Пользователь открыл документ, и на его компьютер с управляющим сервером 192.168.112.128 был установлен meterpreter load, порт 443.

Source