Рекламні оголошення

Криміналістичні Артефакти: докази виконання програми у системах Windows

Під час криміналістичного аналізу Windows часто важливо зрозуміти, коли і як було запущено конкретний процес.

Щоб ідентифікувати цю дію, ми можемо витягти з цільової системи набір артефактів, корисних для збирання доказів виконання програми.

UserAssist

У Windows всі програми на основі графічного інтерфейсу, що запускаються з робочого столу, відстежуються у наступному розділі реєстру:

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\{GUID}\Рахувати

Записи містять два підрозділи GUID ( Виконання виконуваного файлу CEBFF5CD, Мітка виконуваного файлу F4E57C4B ): кожен підрозділ підтримує список системних об'єктів, таких як програми, ярлики та аплети панелі управління, до яких звернувся користувач.

Значення реєстру у цих підрозділах зашифровані з використанням алгоритму ROT-13, який в основному замінює символ із позицією іншого символу 13 від нього в таблиці ASCII.

Усі значення мають кодування ROT-13, наприклад:

.exe = .RKR
.lnk = .CLOSE

Модератор фонової діяльності (БАМ)

БАМ – це служба 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

1024 програм, які запускалися в системі

Цей ключ можна використовувати для ідентифікації систем, на яких було запущено певне шкідливе ПЗ, за допомогою спеціального інструменту, такого як ShimCacheParser.py , від Mandiant (https://github.com/mandiant/ShimCacheParser)

Нотатки за параметром CacheMainSdb
  • Для Windows 7/8/10 параметр містить не більше 1024 записів
  • LastUpdateTime не існує в системах Win 7/8/10

Amcache

ProgramDataUpdater (завдання, пов'язана зі службою Досвід застосування) використовує файл Amcache.hve для зберігання даних про перше виконання програми (навіть портабельною зі знімного носія). Файл розташований:

в:\Windows\appcompat\Programs\Amcache.hve

Файл можна проаналізувати за допомогою плагіну amcache для програми RegRipper (https://github.com/keydet89/RegRipper2.8)

Для отримання додаткової інформації проAmcache іShimcache у криміналістичному аналізі, будь ласка, зверніться до цієї статті: Amcache та Shimcache у криміналістичному аналізі

Списки переходів (список стрибків)

Панель завдань Windows 7-10 (список переходів) розроблена для того, щоб користувачі могли "переходити" або отримувати доступ до елементів, які вони часто чи нещодавно використовували.

Дані перебувають у папці:

%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations
Приклад вмісту папки

Кожен запис це унікальний файл з додаванням AppID відповідного додатку.

Файли списків переходів AutomaticDestinations є Складені файли OLE, містять кілька потоків, з яких:

  • шістнадцятковий номер, наприклад, "1а"
  • перелік

Кожен із шістнадцяткових пронумерованих файлів містить дані, аналогічні даним ярлика Windows.

Дані можуть бути вилучені та проаналізовані за допомогою синтаксичного аналізатораLNK, наприклад, lnk-parse (https://github.com/lcorbasson/lnk-parse).

Попередня вибірка

Файли попереднього завантаження Windows призначені для прискорення процесу запуску програми. Файли Prefetch зберігаються у папці

%windir%\Prefetch

і містить ім'я файлу, що виконується, Список Unicode бібліотек DLL, використовуваних цим виконуваним файлом, лічильник кількості виконань виконуваного файлу та позначку часу, вказує час останнього запуску програми.

У цій папці зберігаються дані про останні 128 виконуваних файлах на Win7 та останніх 1024 на Win8-10.

Файл попередньоївибірки можна аналізувати та аналізувати за допомогою таких інструментів, якPeCMD (https://github.com/EricZimmerman/PECmd).

https://andreafortuna.org/2018/05/23/forensic-artifacts-evidences-of-program-execution-on-windows-systems/