Иногда после хакерской атаки исследователям остается несколько скомпрометированных компьютеров и дамп сетевого трафика, исследуя который можно попытаться восстановить хронологию событий. Именно эту ситуацию эмулирует лабораторная работа BSidesJeddah-Part1 с ресурса CyberDefenders, решение которой мы сегодня подробно разберем. Мы научимся анализировать сетевой трафик, извлекать артефакты и восстановим картину взлома. По сценарию хакерская группировка использовала целевой ****** и получила доступ к информационному ресурсу организации. Наша задача — расследовать инцидент и восстановить его сценарий. По результатам необходимо ответить на вопросы, но я покажу лишь сам процесс решения. Ты сможешь повторить его самостоятельно, чтобы лучше разобраться и закрепить материал. Для начала загрузим файл архива с артефактами и приступим к их исследованию. В архиве сохранен сетевой трафик скомпрометированного хоста и правила Suricata.Утилиты которые будем юзать:OLE— утилита для анализа файлов OLE Wireshark— анализ сетевых потоков Scdbg—утилита для анализа шелл‑кода, построенная на основе библиотеки для эмуляции libemu IDA Pro — интерактивный дизассемблер, используемый для реверс‑инжиниринга. Анализ сетевого трафика Приступим к анализу сетевого трафика. Исследовать дамп мы будем в программе Wireshark. Загрузим файл из архива, для этого перейдем на вкладку «Файл → Открыть». Анализируя пакеты сетевого дампа, можно заметить, что, начиная с пакета 56, идут множественные TCP-обращения к различным портам с IP-адреса 192.168.112.128. Злоумышленник с IP-адреса 192.168.112.128 сканирует порты сетевого ресурса 192.168.112.139, чтобы найти открытые. Рассмотрим этот процесс более детально. Как работает TCP-рукопожатие, описано в базе знаний Storm Wall, описание флагов TCP-пакетов можно найти на сайте Geeksforgeeks. Поиск открытого порта при TCP-сканировании происходит следующим образом. Источник 192.168.112.128 отправил SYN-пакет получателю 192.168.112.139. Получатель ответил TCP-флагами SYN и ACK (соединение установлено). Далее источник отправляет ACK-пакет и следом завершает соединение флагом RST. Это свидетельствует о том, что порт 25 ресурса 192.168.112.139 открыт. В случае закрытого порта после SYN-пакета получатель отправляет RST-, ACK-флаги пакета TCP. Рассмотрим TCP-пакет с флагами SYN и ACK. Для этого откроем его, нажмем на него дважды, а затем раскроем вкладку Transmision Control Protocol и вкладку Flags. Флаги SYN и ACK пакета TCP Мы выяснили, что при открытом порте источник сканирования отправляет пакет с флагами SYN и ACK. Найдем эти пакеты и выясним количество открытых портов на атакуемой машине, для этого отфильтруем сетевой трафик. В поле «Дисплейный фильтр» утилиты Wireshark вводим следующие данные: tcp.flags == 0x12 Отфильтрованные пакеты сетевого дампа Проанализировав дамп сетевого трафика, мы выяснили следующее. 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. Рассмотрим дальнейшие действия злоумышленника, продолжив анализировать дамп сетевого трафика. Построим TCP-поток и разберем команды протокола SMTP и заголовок сообщения, для этого нажмем правой кнопкой мыши надпись «Следовать» и выберем в контекстном меню пункт «Поток TCP». Номер TCP-потока с SMTP-взаимодействием — 1183. SMTP-взаимодействие Команда EHLO используется для представления клиента серверу SMTP. Имя клиента — kali, сервер возвращает статус 250, соединение установлено успешно. Поле MAIL FROM указывает отправителя сообщения: support@cyberdefenders.org, значение RPCT TO определяет получателя сообщения: joshua@cyberdefenders.org. Далее идет команда DATA, которая используется для передачи информационной части сообщения. Рассмотрим заголовок сообщения. В заголовке Date указаны дата и время отправки письма: 12:31:54 1 октября 2021 года. В заголовке X-Mailer — программное обеспечение, с помощью которого злоумышленник отправил сообщение: sendMail версии 1.56. Содержимое письма После заголовка письма идет его содержимое. Злоумышленник отправил файл с названием 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. Цепочка выполнения эксплоита выглядит следующим образом: 4. JScript в HTML содержит объект, указывающий на CAB-файл, и iframe, указывающий на INF-файл с префиксом директивы .cpl:. 5. После открытия CAB-файла INF-файл перемещается в каталог, указанный злоумышленником. 6. Из‑за уязвимости обхода пути (Zip Slip) в CAB можно сохранить INF по пути %TEMP%. 7. Затем INF-файл открывается с помощью директивы .cpl:, что вызывает боковую загрузку INF-файла через rundll32 (если это DLL). Исследуем вредоносный документ, найдем вредоносную ссылку на HTML-файл. С помощью утилиты oleid получим информацию о документе MS Office. oleid webserver.docx Всем спасибо за прочтение. Возможно кому интересно продолжение.