Living off the Land: разбор задания от экспертов F.A.C.C.T. на CyberCamp2024
Привет Хабр!
На связи Владислав Азерский, заместитель руководителя Лаборатории цифровой криминалистики компании F.A. C.C.T., и Иван Грузд, ведущий специалист по реагированию на инциденты и цифровой криминалистике компании F.A. C.C.T.
В начале октября мы приняли участие в практической конференции по кибербезопасности CyberCamp 2024 в качестве спикеров. Ссылки на доклады вот и вот. Имея опыт в области реагирования на инциденты ИБ, было принято решение сфокусировать темы докладов на одном из наиболее популярных подходов к реализации современных атак среди злоумышленников — Living off the Land (LotL). Он подразумевает собой использование легитимных программ и инструментов для реализации задач на разных этапах атаки, будь то распространение по сети или выполнение команд на скомпрометированном устройстве.
Поскольку тема использования легитимных средств для реализации атак достаточно обширна, мы решили рассмотреть два конкретных сценария применения подхода LotL — перемещение по сети с помощью протокола Удаленного Рабочего Стола Windows (Remote Desktop Protocol, RDP) и загрузка/выгрузка данных при помощи встроенных средств операционной системы Windows и некоторых популярных утилит.
Этот выбор был обусловлен тем, что RDP является не только часто используемым инструментом для перемещения по сети, но также и распространенным вектором получения первоначального доступа. Поэтому знание принципов работы различных инструментов для реализации атак с использованием RDP и, что немаловажно, криминалистических артефактов, создаваемых в процессе их работы, будет особенно полезно.
В случае, когда злоумышленники уже получили доступ к устройствам внутри сети, то им, вероятно, потребуется загрузить какие-то вспомогательные инструменты или, наоборот, выгрузить результат их работы. Кроме того, атакующие могут похитить содержимое баз данных или конфиденциальные документы. Поэтому мы и решили рассмотреть, какие нативные инструменты Windows или популярные среди администраторов утилиты могут быть использованы злоумышленниками для этих целей.
Чтобы детально разобраться в особенностях работы различных инструментов атакующими, мы подготовили практическое задание, которое полностью воспроизводит реальную атаку. Это задание включает в себя большинство техник, с которыми может столкнуться специалист по реагированию на инциденты ИБ в реальной работе. Таким образом, это отличный способ не только усвоить полученные знания, но и проверить свои навыки и понять, сможете ли вы реконструировать произошедший инцидент. А для того, чтобы направить начинающих специалистов в нужное русло, мы подготовили наводящие вопросы, решение которых сейчас и разберем.
DISCLAIMER: Для решения задания можно использовать различные утилиты и подходы, поэтому приведенные способы не являются единственно верными.
Вопрос 1.
В ночь со 2 на 3 сентября 2024 года специалисты SOC, используя телеметрию, обнаружили подозрительные подключения к рабочей станции CEOWS от имени локального администратора CEOWS\o.leg.
Чтобы упростить работу на устройстве, атакующие отключили встроенное средство защиты Windows Defender и добавили в исключения файлы с определенным расширением. Каким?
Решение.
Для ответа на вопрос сразу хочется открыть журнал Microsoft-Windows-Windows Defender%4Operational.evtx и поискать в нем события с кодом 5007 (Microsoft Defender Antivirus Configuration has changed). Но открыв его, увидим только одно событие, как результат очистки журналов злодеями (см. Рис. 1).
Рис. 1. Содержимое журнала Microsoft-Windows-Windows Defender%4Operational.evtx
Для нас это не проблема, потому что огромное количество информации о конфигурации системы и отдельных ее компонентов можно получить, анализируя файл системного реестра SOFTWARE. Так и в случае с Windows Defender — необходимая информация хранится в параметре реестра SOFTWARE\Microsoft\Windows Defender\Exclusions.
Чтобы изучить этот параметр, можно использовать любой удобный инструмент для анализа системного реестра. Мы будем использовать утилиту Registry Explorer (Eric Zimmerman). Для получения ответа на вопрос можно самостоятельно открыть расположение нужного параметра (см. Рис. 2) или же воспользоваться удобными закладками самой утилиты (Рис. 3). В любом случае в графе Extensions (Расширения) вы увидите правильный ответ — ».exe», и, что немаловажно в контексте реагирования на инцидент, время изменения этого параметра.
Рис. 2. Получение конфигурации Windows Defender из файла системного реестра SOFTWARE при помощи утилиты RegistryExplorer
Рис. 3. Получение конфигурации Windows Defender из файла системного реестра SOFTWARE при помощи утилиты RegistryExplorer (с помощью закладок)
Ответ
.exe
Вопрос 2.
Получив доступ к системе и отключив средства защиты, злоумышленники приступили к этапу получения новых аутентификационных данных.
Для этого, используя пользовательский интерфейс Windows, они загрузили набор легитимных утилит NirSoft. Для сокрытия истинного IP-адреса сервера атакующие использовали инструмент NGrok. Укажите имя загруженного злоумышленниками архива.
Решение.
Для ответа на этот вопрос необходимо чуть глубже погрузиться в анализ файлов Windows и проанализировать различные артефакты, указывающие на запуск тех или иных утилит. Но мы обратим внимание на оставленную подсказку в самом вопросе — «используя пользовательский интерфейс Windows». Логично предположить, что под этим может скрываться запуск графического интерфейса оснастки Выполнить (WIN+R). История выполненных команд при помощи этого системного интерфейса хранится в файле пользовательского реестра NTUSER.DAT — Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU. Остается только узнать, какого именно (см. Рис. 4).
Рис. 4. Перечень пользователей устройства CEOWS
Анализируя другую активность на устройстве и удаленные подключения по протоколу RDP, мы быстро придем к выводу, что на первых этапах атаки злоумышленники использовали учетную запись локального администратора o.leg.
Чтобы упростить себе жизнь, снова воспользуемся утилитой Registry Explorer и предустановленными закладками. В результате быстро получим выполненную атакующими команду, а вместе с ней и правильный ответ (см. Рис. 5).
Рис. 5. Сведения о выполненной пользователем o.leg команды при помощи оснастки Выполнить
Ответ.
pass_rec.zip
Вопрос 3.
Вероятно, результатов работы ранее загруженных утилит было недостаточно для того, чтобы получить доступ к доменному пользователю. Поэтому злоумышленники загрузили еще одну популярную утилиту, позволяющую извлекать аутентификационные данные из оперативной памяти. Для ее загрузки злоумышленники использовали встроенный инструмент Windows, предназначенный для работы со службой сертификатов. Укажите URL-адрес, который злоумышленники использовали для загрузки файла.
Решение.
В этот раз сама формулировка вопроса снова подсказывает, артефакты какой именно утилиты нам нужно проанализировать –CertUtil. В зависимости от того, с какими правами атакующие использовали утилиту CertUtil, могут различаться каталоги, где будет храниться необходимые для анализа файлы. Но мы уже знаем, что на этом этапе атаки злоумышленники использовали учетную запись o.leg, поэтому снова приступим к анализу именно ее каталогов.
В данном случае нас будет интересовать содержимое подкаталогов C:\Users\o.leg\AppData\LocalLow\Microsoft\CryptnetUrlCache (см. Рис. 6).
Рис. 6. Содержимое служебных каталогов утилиты CertUtil пользователя o.leg
Чтобы узнать откуда тот или иной файл был загружен при помощи CertUtil, необходимо проанализировать файлы из подкаталога MetaData. Но у нас их целых 18 штук и почти все легитимные (см. Рис. 6). Можно, конечно, проанализировать их все, но во время реального реагирования на инцидент это может отнять слишком много времени. Поэтому мы поступим хитрее…
Из вопроса мы знаем, что атакующие загрузили некую утилиту, а значит размер загруженного файла будет существенно больше загруженных системой сертификатов. А еще мы знаем, что CertUtil хранит сами загруженные файлы в подкаталоге Content.
Таким образом, отсортировав файлы в каталоге Content по размеру, мы сразу увидим подозрительно большой файл — 7FFA4891881698319D4B6DE9AF7ABF19 (см. Рис. 7). А зная, что CertUtil использует одинаковые имена для хранения содержимого загруженных файлов и их свойств, мы можем вернуться к анализу файлов из каталога MetaData. Нас будет интересовать файл с таким же именем — 7FFA4891881698319D4B6DE9AF7ABF19.
Рис. 7. Поиск загруженного атакующими файла при помощи утилиты CertUtil
Для анализа полученного файла воспользуемся утилитой CryptnetURLCacheParser-rs (см. Рис. 8).
Рис. 8. Анализ свойств загруженного при помощи CertUtil атакующими файла
Открыв результирующий csv файл, получим правильный ответ (см. Рис. 9).
Рис. 9. Содержимое результирующего файла CryptnetURLCacheParser-rs
Ответ.
https://gateway.pinata.cloud/ipfs/QmZGcUzbNj4pw1jeu3XJnJvwx3fGM1vbxYdqYaLNQM78sv
Вопрос 4.
Возможно загруженная утилита уже ранее была проанализирована специалистами. В таком случае нет необходимости самостоятельно разбираться с ее функционалом и имеет смысл поискать отчеты по ней, используя хеш-сумму. Укажите контрольную сумму MD5 от загруженного атакующими файла в вопросе 3.
Решение.
Все необходимое для ответа на этот вопрос мы уже разобрали, отвечая на вопрос 3. Нас интересует файл 7FFA4891881698319D4B6DE9AF7ABF19из каталога C:\Users\o.leg\AppData\LocalLow\Microsoft\CryptnetUrlCache\Content. Остается только посчитать его MD5 хеш (см. Рис. 10).
Рис. 10. Вычисление контрольной суммы MD5 загруженного атакующими файла
Ответ.
85061FB539F0E118805729C0D9EFA99E
Вопрос 5.
На предыдущем этапе злоумышленники получили доступ к аутентификационным данным доменных пользователей. Дальше атакующим необходимо было произвести разведку домена. Для этого они загрузили на устройство популярную утилиту, позволяющую осуществлять сканирование домена Active Directory. Укажите абсолютный путь до загруженного файла.
Решение.
Для ответа на этот вопрос нужно проанализировать достаточно большое количество артефактов, чтобы найти нужное нам событие. Но мы уже видим, что атакующие преимущественно используют встроенные инструменты Windows для загрузки вспомогательного инструментария. А одним из самых популярных таких инструментов является PowerShell. Открыв журналы событий, мы опять столкнемся с результатом их успешной очистки. Здесь нам на помощь придет история выполненных пользователем PowerShell команд, хранящаяся в файле ConsoleHost_history.txt. Поскольку злоумышленники активно использовали учетную запись o.leg, обратимся именно к ее файлу (см. Рис. 11).
Рис. 11. История выполненных команд пользователем o.leg на устройстве CEOWS
Здесь мы быстро обнаружим команду, осуществляющую загрузку утилиты AdFind в каталог Documents.
Ответ.
C:\Users\Public\Documents\recon.exe
Вопрос 6.
Для запуска загруженной утилиты злоумышленники использовали заранее подготовленный сценарий ansible_install.bat. В результате инструмент запускался несколько раз с различными аргументами. Укажите, сколько раз будет запущен загруженный атакующим инструмент в результате работы командного сценария.
Решение.
Из вопроса мы уже знаем, что bat-сценарий несколько раз запускает утилиту AdFind. Если бы злодеи не очистили журналы событий, можно было бы изучить цепочку порождаемых процессов на основании событий с кодом 4688 для ответа на этот вопрос (см. Рис. 12).
Рис. 12. Событие очистки журнала системных событий атакующими на устройстве CEOWS
Маленькие по размеру файлы могут храниться в MFT, значит мы можем получить их содержимое без непосредственного доступа к самому хранилищу. Поэтому воспользуемся утилитой MFTEcmd (Eric Zimmerman), чтобы восстановить все резидентные файлы (см. Рис. 13).
Рис. 13. Запуск утилитыMFTEcmd, осуществляющей восстановление резидентных файлов
В результате получим 16541 восстановленный файл и среди них только один нужный нам. В случае ошибок кодировок не всегда получится найти файл по его исходному имени. Поэтому давайте обратимся к табличному представлению MFT файла. Нас будет интересовать значение Entry Number — по сути это уникальный идентификатор каждого файла (см. Рис. 14).
Рис. 14. Получение значения Entry Number файла ansible_install.bat
А уже по нему гарантированно получится найти нужный нам файл (см. Рис. 15).
Рис. 15. Поиск искомого файла среди восстановленных
А открыв его содержимое, увидим, что утилита AdFind запускается 4 раза (см. Рис 16).
Рис. 16. Содержимое восстановленного файла ansible_install.bat
Также, зная расположение файла, можно восстановить его содержимое при помощи специализированных утилит (R-Studio) или альтернативного просмотрщика MFT –MFTExplorer (см. Рис. 17).
Рис. 17. Получение содержимого файла ansible_install.bat при помощи утилиты MFTExplorer
Ответ.
4
Вопрос 7.
Завершив разведку сети, атакующие приступили к изучению содержимого пользовательских и системных каталогов. Таким образом, злоумышленники обнаружили несколько текстовых заметок, содержащих конфиденциальную информацию, в том числе аутентификационные данные. Обнаруженные файлы атакующие заархивировали. А для их выгрузки на собственный сервер использовали уже установленную администратором утилиту RClone. Укажите имя выгруженного архива (все буквы в верхнем регистре).
Решение.
В данном случае нам поможет анализ файлов системного механизма Prefetch, которые хранят информацию о файлах, с которыми взаимодействует запущенная утилита.
Для их изучения воспользуемся программойWinPrefetchView (NirSoft). И анализируя Prefetch-файл утилиты RClone увидим имя выгруженного архива (см. Рис. 18).
Рис. 18. Анализ Prefetch-файла утилиты RClone
Тот же результат можно было получить, анализируя пользовательскую активность в период атаки.
Ответ.
TOP_SECRET_DATA.ZIP
Вопрос 8.
С точки зрения киберразведки могут быть интересны сведения о хранилище, которое использовали злоумышленники для выгрузки данных (Вопрос 7). Укажите через двоеточие логин и пароль от хранилищаMEGA, принадлежащего атакующим.
Решение.
Для ответа на этот вопрос нам понадобится содержимое конфигурационного файла Rclone. Получить его можно так же, как и в Вопросе 6 (см. Рис. 19–20).
Рис. 19. Получение содержимого конфигурационного файла утилиты RClone
Рис. 20. Содержимое конфигурационного файла утилиты RClone
Имя пользователя получаем сразу, а вот пароль в конфигурационном файле зашифрован. Для расшифровки воспользуемся утилитой rclonedeobscure (см. Рис. 21).
Рис. 21. Расшифровка пароля атакующих при помощи утилиты rclonedeobscure
Ответ.
fespobospi@gufum.com: SuperThomasSuperDiesel
Вопрос 9.
Получив достаточно сведений об устройстве инфраструктуры и необходимые аутентификационные данные, злоумышленники стали развивать атаку на других устройствах сети. Таким образом, они подключились с устройства CEOWS к контроллеру домена SRVDC1, используя учетную запись SERIOUSCATS\Administrator. Укажите время первого подключения атакующих к контроллеру домена (UTC+03:00).
Решение.
Для того, чтобы ответить на этот вопрос лучше собрать воедино то, что может позволить выявить нелегитимное RDP подключение. По временным меткам ранее выявленной активности мы точно знаем, что атакующие работали на хосте CEOWSв ночь с 2 на 3 сентября 2024 года. Еще мы знаем, что злоумышленники использовали учетные записи o.leg иAdministrator, а последняя на данный момент активность на устройстве CEOWS была зафиксирована в 03.09.2024 0:09:22 (UTC+03:00) — запуск утилиты RClone. Для удобства посмотрим IP-адрес хоста CEOWS, чтобы еще больше сузить круг поиска (см. Рис. 22).
Рис. 22. Сведения о параметрах сетевого интерфейса устройства CEOWS
Собрав все это вместе, можно пойти анализировать журналы событий RDP на SRVDC1 и найти нужное нам подключение (см. Рис. 23).
Рис. 23. Сведения о первом подключении атакующих к устройству SRVDC1
Ответ.
3.09.2024 0:11:46
Вопрос 10.
Подключившись к контроллеру домена, злоумышленники создали копию системной базы Active Directory NTDS. Укажите абсолютный путь до каталога, в котором был сохранен результат.
Решение.
Для ответа на этот вопрос необходимо изучить журналы системных событий за интересующий нас временной промежуток (см. Рис. 24).
Рис. 24. Сведения о создании копии базы данных Active Directory
Ответ.
C:\Users\Public\Temp\log\Active Directory
Вопрос 11.
Создав копию базы NTDS, злоумышленники скопировали ее в системный каталог на контроллере домена SRVDC1при помощи утилиты xcopy. Укажите UNC-путь до этого каталога.
Решение.
Чтобы получить расположение результирующего каталога, нужно узнать с каким аргументами была запущена утилита xcopy. С этим нам могли бы помочь удаленные злоумышленниками события из журнала Security.evtx с кодом 4688. Но нам приходится довольствоваться только тем, что осталось после активности атакующих. Попробуем восстановить фрагменты графического интерфейса RDP сессии злоумышленников при помощи утилиты BMC-Tools (https://github.com/ANSSI-FR/bmc-tools, см. Рис. 25).
Рис. 25. Восстановление графических фрагментов RDP сессии пользователя Administrator
Мы знаем, что xcopy– консольная утилита, поэтому икать следует фрагменты, визуально напоминающие окна CMD илиPowerShell (см. Рис. 26–27). Кстати, анализируя этот артефакт, можно также найти ответы и на другие вопросы этого задания.
Рис. 26. Восстановленные графические фрагменты RDP сессий пользователей
Рис. 27. Восстановленные аргументы запуска утилиты xcopy в рамках RDP сессии
Ответ.
\\srvdc1\netlogon
Вопрос 12.
Далее атакующие с помощью учётной записиSERIOUSCATS\Administrator подключились по протоколу RDP с рабочей станции CEOWS на хост DEVTESTWS. В рамках этой удаленной сессии злоумышленники скопировали базу NTDSна удаленный сервер при помощи утилиты scp. Укажите IP адрес сервера атакующих, на который были скопированы данные.
Решение.
Для ответа на этот вопрос необходимо проанализировать RDP Cache. На этот раз будем искать следы IP-адреса и аргументы запуска утилиты scp. Из Вопроса 11 мы знаем, что злоумышленники сохранили базу NTDS в каталог \\srvdc1\netlogon, так что и выгружать они, скорее всего, будут ее оттуда же (см. Рис. 28).
Рис. 28. Восстановленные графические фрагменты RDP сессий пользователей
Рис. 29. Восстановленные аргументы запуска утилиты scp в рамках RDP сессии
Ответ.
95.163.223.118
Вопрос 13.
Для закрепления на устройстве атакующие загрузили при помощи инструмента BITS на контроллер домена SRVDC1 утилиту, позволяющую установить SOCKS5 соединение. Укажите URL адрес, с которого злоумышленники осуществили загрузку.
Решение.
Из вопроса мы знаем, что для загрузки злоумышленники использовали инструменты BITS. Значит для анализа следует обратиться к системному файлу qmgr.dat. Для его анализа будем использовать утилиту bits_parser (https://github.com/ANSSI-FR/bits_parser, см. Рис. 30).
Рис. 30. Анализ файлов BITS при помощи утилиты bits_parser
Открыв результат при помощи Timeline Explorer (Eric Zimmerman), получим адрес, с которого был загружен файл (см. Рис. 31).
Рис. 31. Сведения о загруженном при помощи BITS атакующими файла
Ответ.
https://ipfs.io/ipfs/Qma5×8yGDJhnYcWqPVBUCvw2FsXyoqc1LjxSRWjp542ztf
Вопрос 14.
Для обеспечения автоматизированного запуска загруженного файла злоумышленники использовали параметр реестра, обеспечивающий его запуск при начале RDP сессии на устройстве. Укажите значение модифицированного параметра реестра.
Решение.
Если вы не знакомы с данной техникой, можно было оттолкнуться от уже известных данных. Известно, что загруженный файл был сохранен с именем .exe, а в самом вопросе есть упоминание модификации параметра реестра. Таким образом, для получения правильного ответа достаточно было произвести поиск по файлам реестра и определить искомый параметр. Сделать это можно было при помощи Registry Explorer (см. Рис. 32–33).
Рис. 32. Осуществление поиска по значениям параметров системного реестра
Рис. 33. Значение параметра реестра rdpwd, использованное атакующими для закрепления в системе
Ответ.
SYSTEM\ControlSet001\Control\Terminal Server\Wds\rdpwd\StartupPrograms
Вопрос 15.
Таким образом, к данному этапу атаки злоумышленники повысили привилегии и закрепились на контроллере домена. Следующим шагом они приступили к действиям, направленным на усложнение криминалистического анализа и реагирования на инцидент. Для этого атакующие загрузили на устройство CEOWS командный сценарий clean.bat. Укажите контрольную сумму MD5 этого файла.
Решение.
Для ответа на этот вопрос нам опять потребуется восстановить исходный файл, используя MFT (аналогично Вопросам 6 и 8) и посчитать его MD5 хеш (см. Рис. 34).
Рис. 34. Вычисление контрольной суммы MD5 загруженного атакующими файла
Ответ.
0727F1C9F6D47D444CEB4CED242769E1
Вопрос 16.
В результате реагирования на инцидент были выявлены скомпрометированные учетные записи и инструменты, использованные атакующими. Теперь необходимо выяснить, подключались ли злоумышленники к другим устройствам в скомпрометированной инфраструктуре. Администратор o.leg, работая на своей рабочей станции CEOWS, использовал альтернативный RDP клиент — Remote Desktop App, а для некоторых подключений даже сохранял пароль. Поэтому все устройства, с которыми работал администратор, потенциально скомпрометированы, так как атакующие активно изучали его рабочую станцию. Эти устройства необходимо выявить и дополнительно проанализировать. Укажите имена устройств, к которым подключался пользователь o.legс устройства CEOWS при помощи Remote Desktop App. Имена хостов укажите в алфавитном порядке, в верхнем регистре через запятую.
Решение.
В этом вопросе идет речь о стороннем клиенте RDP. В результате небольшого исследования можно обнаружить статью (была в подсказках), в которой описано, что история подключений Remote Desktop Appхранится в файлах в пользовательском каталоге JumpListConnectionArgs (см. Рис. 35).
Рис. 35. Содержимое каталога JumpListConnectionArgs пользователя o.leg
Изучив каждый файл по отдельности (см. Рис. 36), получим имена рабочих станций, к которым подключался пользователь.
Рис. 36. Содержимое одного из файлов каталога JumpListConnectionArgs
Ответ.
CIOWS, DEVWS, SAWS, SRAWS, SRVDC1
При желании, можно продолжить анализ и найти еще много событий инцидента, добавляющих контекста в действия атакующих. Удачи!
А также можете посетить наш Telegram-канал, где мы публикуем различные исследования, связанные с ИБ-тематикой: рассматриваем как Offensive, так и Defensive направления.