Во время криминалистического анализа системы Windows часто важно понять, когда и как был запущен конкретный процесс.
Чтобы идентифицировать это действие, мы можем извлечь из целевой системы набор артефактов, полезных для сбора доказательств выполнения программы.
UserAssist
В системе Windows все программы на основе графического интерфейса, запускаемые с рабочего стола, отслеживаются в следующем разделе реестра:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\{GUID}\Count
Записи содержат два подраздела GUID ( Выполнение исполняемого файла CEBFF5CD, Выполнение файла ярлыка F4E57C4B ): каждый подраздел поддерживает список системных объектов, таких как программы, ярлыки и апплеты панели управления, к которым обратился пользователь.
Значения реестра в этих подразделах зашифрованы с использованием алгоритма ROT-13, который в основном заменяет символ с позицией другого символа 13 от него в таблице ASCII.
Все значения имеют кодировку ROT-13, например:
.exe = .RKR
.lnk = .YAX
Background Activity Moderator (BAM)
BAM — это служба Windows, которая контролирует активность фоновых приложений.
Этот сервис появился в Windows 10 только после обновления Fall Creators — версия 1709
Он предоставляет полный путь к исполняемому файлу, который был запущен в системе, а также дату / время последнего выполнения и расположен в этом пути реестра:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\bam\State\UserSettings\{SID}
Ветки содержат список путей и исполняемых файлов, а значением каждого из них является время последнего выполнения в формате Filetime (64-битный метод с прямым порядком байтов) в UTC:
RecentApps
!Актуально до версии Windows 10 сборки 1803 (не включительно)
Выполнение программы, запущенной в системе Win10, отслеживается в ключе RecentApps:
HKCU\Software\Microsoft\Windows\CurrentVersion\Search\RecentApps
Каждый ключ GUID указывает на недавно запущенное приложение:
AppID = Имя приложения
LastAccessTime = Время последнего выполнения в UTC.
LaunchCount = Количество запусков
ShimCache
База данных совместимости приложений Windows используется для выявления возможных проблем совместимости приложений с исполняемыми файлами и отслеживает имя файла исполняемого файла, размер файла, время последнего изменения.
Записи о последних 1024 выполненных программ в ОС хранятся в параметре CacheMainSdb:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\AppCompatCache
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\AppCompatCache
Вы можете использовать этот ключ для идентификации систем, на которых было запущено определенное вредоносное ПО, с помощью специального инструмента, такого как ShimCacheParser.py , от Mandiant (https://github.com/mandiant/ShimCacheParser)
Заметки по параметру CacheMainSdb
- Для Windows 7/8/10 параметр содержит не более 1024 записей
- LastUpdateTime не существует в системах Win 7/ 8/10
Amcache
ProgramDataUpdater (задача, связанная со службой Application Experience) использует файл Amcache.hve для хранения данных о первом выполнении программы (даже портабельной со съемного носителя). Файл расположен:
c:\Windows\appcompat\Programs\Amcache.hve
Файл можно проанализировать с помощью плагина amcache для программы RegRipper (https://github.com/keydet89/RegRipper2.8)
Для получения дополнительной информации об Amcache и Shimcache в криминалистическом анализе, пожалуйста, обратитесь к этой статье: Amcache и Shimcache в криминалистическом анализе
Jump Lists (список прыжков)
Панель задач Windows 7-10 (список переходов) разработана для того, чтобы пользователи могли «переходить» или получать доступ к элементам, которые они часто или недавно использовали.
Данные находятся в папке:
%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations
Каждая запись это уникальный файл с добавлением AppID соответствующего приложения.
Файлы списков переходов AutomaticDestinations представляют собой OLE Compound Files, содержащие несколько потоков, из которых:
- шестнадцатеричный номер, например, «1а»
- список
Каждый из шестнадцатеричных пронумерованных файлов содержит данные, аналогичные данным ярлыка Windows.
Данные могут быть извлечены и проанализированы с помощью синтаксического анализатора LNK, например lnk-parse (https://github.com/lcorbasson/lnk-parse).
Prefetch
Файлы предварительной загрузки Windows предназначены для ускорения процесса запуска приложения. Файлы Prefetch хранятся в папке
%windir%\Prefetch
и содержит имя исполняемого файла, список Unicode библиотек DLL, используемых этим исполняемым файлом, счетчик количества выполнений исполняемого файла и отметку времени, указывающую время последнего запуска программы.
В этой папке хранятся данные о последних 128 исполняемых файлах на Win7 и последних 1024 на Win8-10.
Файл предварительной выборки можно анализировать и анализировать с помощью таких инструментов, как PeCMD (https://github.com/EricZimmerman/PECmd).