Windows Artifacts
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
У шляху \Users\<username>\AppData\Local\Microsoft\Windows\Notifications
ви можете знайти базу даних appdb.dat
(до ювілейної версії Windows) або wpndatabase.db
(після ювілейної версії Windows).
Всередині цієї бази даних SQLite ви можете знайти таблицю Notification
з усіма сповіщеннями (у форматі XML), які можуть містити цікаві дані.
Timeline - це характеристика Windows, яка надає хронологічну історію відвіданих веб-сторінок, відредагованих документів та виконаних програм.
База даних знаходиться за адресою \Users\<username>\AppData\Local\ConnectedDevicesPlatform\<id>\ActivitiesCache.db
. Цю базу даних можна відкрити за допомогою інструменту SQLite або за допомогою інструменту WxTCmd який генерує 2 файли, які можна відкрити за допомогою інструменту TimeLine Explorer.
Завантажені файли можуть містити ADS Zone.Identifier, що вказує як він був завантажений з інтра-мережі, інтернету тощо. Деяке програмне забезпечення (таке як браузери) зазвичай додає навіть більше інформації, такої як URL, з якого файл був завантажений.
У Vista/Win7/Win8/Win10 Кошик можна знайти в папці $Recycle.bin
в корені диска (C:\$Recycle.bin
).
Коли файл видаляється в цій папці, створюються 2 специфічні файли:
$I{id}
: Інформація про файл (дата, коли він був видалений)
$R{id}
: Вміст файлу
Маючи ці файли, ви можете використовувати інструмент Rifiuti, щоб отримати оригінальну адресу видалених файлів та дату, коли вони були видалені (використовуйте rifiuti-vista.exe
для Vista – Win10).
Копія тіні - це технологія, включена в Microsoft Windows, яка може створювати резервні копії або знімки комп'ютерних файлів або томів, навіть коли вони використовуються.
Ці резервні копії зазвичай розташовані в \System Volume Information
з кореня файлової системи, а назва складається з UID показаних на наступному зображенні:
Монтування образу дляensics за допомогою ArsenalImageMounter, інструмент ShadowCopyView може бути використаний для перевірки копії тіні та навіть екстракції файлів з резервних копій копії тіні.
Запис реєстру HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\BackupRestore
містить файли та ключі для не резервного копіювання:
Реєстр HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VSS
також містить інформацію про конфігурацію Копій тіней томів
.
Ви можете знайти автозбережені файли Office в: C:\Usuarios\\AppData\Roaming\Microsoft{Excel|Word|Powerpoint}\
Елемент оболонки - це елемент, який містить інформацію про те, як отримати доступ до іншого файлу.
Windows автоматично створює ці ярлики, коли користувач відкриває, використовує або створює файл в:
Win7-Win10: C:\Users\\AppData\Roaming\Microsoft\Windows\Recent\
Office: C:\Users\\AppData\Roaming\Microsoft\Office\Recent\
Коли створюється папка, також створюється посилання на папку, на батьківську папку та на бабусю папки.
Ці автоматично створені файли посилань містять інформацію про походження, наприклад, чи це файл або папка, MAC часи цього файлу, інформацію про том, де зберігається файл, та папку цільового файлу. Ця інформація може бути корисною для відновлення цих файлів у разі їх видалення.
Також, дата створення посилання файлу - це перший раз, коли оригінальний файл був використаний вперше, а дата зміни файлу посилання - це остання раз, коли оригінальний файл був використаний.
Щоб перевірити ці файли, ви можете використовувати LinkParser.
У цьому інструменті ви знайдете 2 набори часових міток:
Перший набір:
FileModifiedDate
FileAccessDate
FileCreationDate
Другий набір:
LinkModifiedDate
LinkAccessDate
LinkCreationDate.
Перший набір часових міток посилається на часові мітки самого файлу. Другий набір посилається на часові мітки пов'язаного файлу.
Ви можете отримати ту ж інформацію, запустивши інструмент CLI Windows: LECmd.exe
In this case, the information is going to be saved inside a CSV file.
Це останні файли, які вказані для кожного додатку. Це список останніх файлів, використаних додатком, до яких ви можете отримати доступ у кожному додатку. Вони можуть бути створені автоматично або бути користувацькими.
Jumplists, створені автоматично, зберігаються в C:\Users\{username}\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations\
. Jumplists називаються за форматом {id}.autmaticDestinations-ms
, де початковий ID є ID додатку.
Користувацькі jumplists зберігаються в C:\Users\{username}\AppData\Roaming\Microsoft\Windows\Recent\CustomDestination\
і зазвичай створюються додатком, коли з файлом сталося щось важливе (можливо, позначено як улюблене).
Час створення будь-якого jumplist вказує на перший раз, коли файл був відкритий і час модифікації останнього разу.
Ви можете перевірити jumplists, використовуючи JumplistExplorer.
(Зверніть увагу, що часові мітки, надані JumplistExplorer, пов'язані з файлом jumplist)
Слідуйте за цим посиланням, щоб дізнатися, що таке shellbags.
Можливо, ідентифікувати, що USB-пристрій використовувався завдяки створенню:
Папка Recent Windows
Папка Recent Microsoft Office
Jumplists
Зверніть увагу, що деякі файли LNK замість того, щоб вказувати на оригінальний шлях, вказують на папку WPDNSE:
Файли в папці WPDNSE є копією оригінальних, тому не переживуть перезавантаження ПК, а GUID береться з shellbag.
Перевірте цю сторінку, щоб дізнатися, які ключі реєстру містять цікаву інформацію про підключені USB-пристрої.
Перевірте файл C:\Windows\inf\setupapi.dev.log
, щоб отримати часові мітки про те, коли було здійснено USB-з'єднання (шукайте Section start
).
USBDetective може бути використаний для отримання інформації про USB-пристрої, які були підключені до зображення.
Заплановане завдання, відоме як 'Plug and Play Cleanup', в основному призначене для видалення застарілих версій драйверів. На відміну від його зазначеної мети зберігати останню версію пакета драйвера, онлайн-джерела вказують, що воно також націлене на драйвери, які були неактивними протягом 30 днів. Відповідно, драйвери для знімних пристроїв, які не були підключені протягом останніх 30 днів, можуть бути піддані видаленню.
Завдання розташоване за наступним шляхом: C:\Windows\System32\Tasks\Microsoft\Windows\Plug and Play\Plug and Play Cleanup
.
Скриншот, що зображує вміст завдання, надано:
Ключові компоненти та налаштування завдання:
pnpclean.dll: Ця DLL відповідає за фактичний процес очищення.
UseUnifiedSchedulingEngine: Встановлено на TRUE
, що вказує на використання загального механізму планування завдань.
MaintenanceSettings:
Period ('P1M'): Вказує планувальнику завдань ініціювати завдання очищення щомісяця під час регулярного автоматичного обслуговування.
Deadline ('P2M'): Інструктує планувальник завдань, якщо завдання не вдається протягом двох місяців поспіль, виконати завдання під час екстреного автоматичного обслуговування.
Ця конфігурація забезпечує регулярне обслуговування та очищення драйверів, з положеннями для повторної спроби завдання у разі послідовних невдач.
Для отримання додаткової інформації перевірте: https://blog.1234n6.com/2018/07/windows-plug-and-play-cleanup.html
Електронні листи містять 2 цікаві частини: заголовки та вміст електронного листа. У заголовках ви можете знайти інформацію, таку як:
Хто надіслав електронні листи (адреса електронної пошти, IP, поштові сервери, які перенаправили електронний лист)
Коли був надісланий електронний лист
Також, всередині заголовків References
та In-Reply-To
ви можете знайти ID повідомлень:
Цей додаток зберігає електронні листи у форматі HTML або тексту. Ви можете знайти електронні листи в підпапках у \Users\<username>\AppData\Local\Comms\Unistore\data\3\
. Електронні листи зберігаються з розширенням .dat
.
Метадані електронних листів та контакти можна знайти всередині EDB бази даних: \Users\<username>\AppData\Local\Comms\UnistoreDB\store.vol
Змініть розширення файлу з .vol
на .edb
, і ви можете використовувати інструмент ESEDatabaseView для його відкриття. Всередині таблиці Message
ви можете побачити електронні листи.
Коли використовуються сервери Exchange або клієнти Outlook, будуть деякі заголовки MAPI:
Mapi-Client-Submit-Time
: Час системи, коли електронний лист був надісланий
Mapi-Conversation-Index
: Кількість дочірніх повідомлень потоку та часові мітки кожного повідомлення потоку
Mapi-Entry-ID
: Ідентифікатор повідомлення.
Mappi-Message-Flags
та Pr_last_Verb-Executed
: Інформація про клієнта MAPI (повідомлення прочитано? не прочитано? відповіли? перенаправлено? у відпустці?)
У клієнті Microsoft Outlook всі надіслані/отримані повідомлення, дані контактів та дані календаря зберігаються у файлі PST у:
%USERPROFILE%\Local Settings\Application Data\Microsoft\Outlook
(WinXP)
%USERPROFILE%\AppData\Local\Microsoft\Outlook
Шлях реєстру HKEY_CURRENT_USER\Software\Microsoft\WindowsNT\CurrentVersion\Windows Messaging Subsystem\Profiles\Outlook
вказує на файл, який використовується.
Ви можете відкрити файл PST, використовуючи інструмент Kernel PST Viewer.
OST файл генерується Microsoft Outlook, коли він налаштований з IMAP або сервером Exchange, зберігаючи подібну інформацію до файлу PST. Цей файл синхронізується з сервером, зберігаючи дані за останні 12 місяців до максимального розміру 50 ГБ, і розташований в тій же директорії, що й файл PST. Щоб переглянути OST файл, можна використовувати Kernel OST viewer.
Втрачені вкладення можуть бути відновлені з:
Для IE10: %APPDATA%\Local\Microsoft\Windows\Temporary Internet Files\Content.Outlook
Для IE11 та вище: %APPDATA%\Local\Microsoft\InetCache\Content.Outlook
Thunderbird використовує MBOX файли для зберігання даних, розташованих у \Users\%USERNAME%\AppData\Roaming\Thunderbird\Profiles
.
Windows XP та 8-8.1: Доступ до папки з ескізами генерує файл thumbs.db
, що зберігає попередні перегляди зображень, навіть після видалення.
Windows 7/10: thumbs.db
створюється при доступі через мережу за допомогою UNC шляху.
Windows Vista та новіші: Попередні перегляди ескізів централізовані в %userprofile%\AppData\Local\Microsoft\Windows\Explorer
з файлами, названими thumbcache_xxx.db. Thumbsviewer та ThumbCache Viewer є інструментами для перегляду цих файлів.
Реєстр Windows, що зберігає обширні дані про активність системи та користувача, міститься у файлах у:
%windir%\System32\Config
для різних підключів HKEY_LOCAL_MACHINE
.
%UserProfile%{User}\NTUSER.DAT
для HKEY_CURRENT_USER
.
Windows Vista та новіші версії резервують файли реєстру HKEY_LOCAL_MACHINE
у %Windir%\System32\Config\RegBack\
.
Крім того, інформація про виконання програм зберігається в %UserProfile%\{User}\AppData\Local\Microsoft\Windows\USERCLASS.DAT
з Windows Vista та Windows 2008 Server.
Деякі інструменти корисні для аналізу файлів реєстру:
Registry Editor: Встановлений у Windows. Це GUI для навігації через реєстр Windows поточної сесії.
Registry Explorer: Дозволяє завантажити файл реєстру та навігувати через нього з GUI. Також містить закладки, що підкреслюють ключі з цікавою інформацією.
RegRipper: Знову ж таки, має GUI, що дозволяє навігувати через завантажений реєстр і також містить плагіни, які підкреслюють цікаву інформацію всередині завантаженого реєстру.
Windows Registry Recovery: Інша GUI програма, здатна витягувати важливу інформацію з завантаженого реєстру.
Коли ключ видаляється, він позначається як такий, але поки що зайнятий простір не буде потрібен, він не буде видалений. Тому, використовуючи інструменти, такі як Registry Explorer, можливо відновити ці видалені ключі.
Кожен Key-Value містить часову мітку, що вказує на останній раз, коли він був змінений.
Файл/хвіст SAM містить користувачів, групи та хеші паролів користувачів системи.
У SAM\Domains\Account\Users
ви можете отримати ім'я користувача, RID, останній вхід, останній невдалий вхід, лічильник входів, політику паролів та коли був створений обліковий запис. Щоб отримати хеші, вам також потрібен файл/хвіст SYSTEM.
У цьому пості ви можете дізнатися про загальні процеси Windows для виявлення підозрілої поведінки.
Всередині реєстру NTUSER.DAT
за шляхом Software\Microsoft\Current Version\Search\RecentApps
ви можете знайти підключі з інформацією про виконаний додаток, останній раз, коли він був виконаний, і кількість разів, коли він був запущений.
Ви можете відкрити файл SYSTEM
за допомогою редактора реєстру, і всередині шляху SYSTEM\CurrentControlSet\Services\bam\UserSettings\{SID}
ви можете знайти інформацію про додатки, виконані кожним користувачем (зверніть увагу на {SID}
у шляху) і в який час вони були виконані (час знаходиться всередині значення Data реєстру).
Prefetching - це техніка, яка дозволяє комп'ютеру безшумно отримувати необхідні ресурси, потрібні для відображення вмісту, до якого користувач може отримати доступ найближчим часом, щоб ресурси могли бути доступні швидше.
Windows prefetch складається зі створення кешів виконаних програм, щоб мати можливість завантажувати їх швидше. Ці кеші створюються як .pf
файли всередині шляху: C:\Windows\Prefetch
. Існує обмеження в 128 файлів у XP/VISTA/WIN7 та 1024 файлів у Win8/Win10.
Ім'я файлу створюється як {program_name}-{hash}.pf
(хеш базується на шляху та аргументах виконуваного файлу). У W10 ці файли стиснуті. Зверніть увагу, що сама наявність файлу вказує на те, що програма була виконана в якийсь момент.
Файл C:\Windows\Prefetch\Layout.ini
містить імена папок файлів, які були попередньо завантажені. Цей файл містить інформацію про кількість виконань, дати виконання та файли, відкриті програмою.
Щоб перевірити ці файли, ви можете використовувати інструмент PEcmd.exe:
Superprefetch має ту ж мету, що й prefetch, швидше завантажувати програми, передбачаючи, що буде завантажено наступним. Однак він не замінює службу prefetch.
Ця служба генерує файли бази даних у C:\Windows\Prefetch\Ag*.db
.
У цих базах даних ви можете знайти ім'я програми, кількість виконань, файли відкриті, об'єм доступу, повний шлях, часові рамки та мітки часу.
Ви можете отримати цю інформацію, використовуючи інструмент CrowdResponse.
Монітор використання системних ресурсів (SRUM) моніторить ресурси, споживані процесом. Він з'явився в W8 і зберігає дані в базі даних ESE, розташованій у C:\Windows\System32\sru\SRUDB.dat
.
Він надає таку інформацію:
AppID та Шлях
Користувач, який виконав процес
Відправлені байти
Отримані байти
Мережева інтерфейс
Тривалість з'єднання
Тривалість процесу
Ця інформація оновлюється кожні 60 хвилин.
Ви можете отримати дані з цього файлу, використовуючи інструмент srum_dump.
AppCompatCache, також відомий як ShimCache, є частиною Бази даних сумісності додатків, розробленої Microsoft для вирішення проблем сумісності додатків. Цей системний компонент записує різні метадані файлів, які включають:
Повний шлях до файлу
Розмір файлу
Час останньої модифікації під $Standard_Information (SI)
Час останнього оновлення ShimCache
Прапор виконання процесу
Такі дані зберігаються в реєстрі за певними місцями в залежності від версії операційної системи:
Для XP дані зберігаються за адресою SYSTEM\CurrentControlSet\Control\SessionManager\Appcompatibility\AppcompatCache
з ємністю для 96 записів.
Для Server 2003, а також для версій Windows 2008, 2012, 2016, 7, 8 і 10, шлях зберігання - SYSTEM\CurrentControlSet\Control\SessionManager\AppcompatCache\AppCompatCache
, що вміщує 512 і 1024 записів відповідно.
Для парсингу збереженої інформації рекомендується використовувати AppCompatCacheParser tool.
Файл Amcache.hve по суті є гніздом реєстру, яке фіксує деталі про програми, що виконувалися в системі. Зазвичай його можна знайти за адресою C:\Windows\AppCompat\Programas\Amcache.hve
.
Цей файл відзначається тим, що зберігає записи нещодавно виконаних процесів, включаючи шляхи до виконуваних файлів та їх SHA1 хеші. Ця інформація є безцінною для відстеження активності додатків у системі.
Для витягування та аналізу даних з Amcache.hve можна використовувати AmcacheParser tool. Наступна команда є прикладом того, як використовувати AmcacheParser для парсингу вмісту файлу Amcache.hve та виводу результатів у форматі CSV:
Серед згенерованих CSV файлів, Amcache_Unassociated file entries
особливо вартий уваги через багатий обсяг інформації, яку він надає про неасоційовані записи файлів.
Найцікавіший згенерований CVS файл - це Amcache_Unassociated file entries
.
Цей артефакт можна знайти лише в W7 за адресою C:\Windows\AppCompat\Programs\RecentFileCache.bcf
, і він містить інформацію про нещодавнє виконання деяких бінарних файлів.
Ви можете використовувати інструмент RecentFileCacheParse для парсингу файлу.
Ви можете витягти їх з C:\Windows\Tasks
або C:\Windows\System32\Tasks
і прочитати їх як XML.
Ви можете знайти їх у реєстрі за адресою SYSTEM\ControlSet001\Services
. Ви можете побачити, що буде виконано і коли.
Встановлені програми можна знайти в \ProgramData\Microsoft\Windows\AppRepository\
Цей репозиторій має журнал з кожною встановленою програмою в системі всередині бази даних StateRepository-Machine.srd
.
У таблиці додатків цієї бази даних можна знайти стовпці: "Application ID", "PackageNumber" та "Display Name". Ці стовпці містять інформацію про попередньо встановлені та встановлені програми, і її можна знайти, якщо деякі програми були видалені, оскільки ID встановлених програм повинні бути послідовними.
Також можливо знайти встановлену програму в реєстрі за адресою: Software\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserStore\Applications\
А видалені програми в: Software\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserStore\Deleted\
Інформація, що з'являється в подіях Windows, включає:
Що сталося
Часова мітка (UTC + 0)
Залучені користувачі
Залучені хости (ім'я хоста, IP)
Доступні активи (файли, папки, принтери, служби)
Журнали розташовані в C:\Windows\System32\config
до Windows Vista і в C:\Windows\System32\winevt\Logs
після Windows Vista. До Windows Vista журнали подій були в бінарному форматі, а після - в XML форматі і використовують розширення .evtx.
Розташування файлів подій можна знайти в реєстрі SYSTEM у HKLM\SYSTEM\CurrentControlSet\services\EventLog\{Application|System|Security}
Їх можна візуалізувати з переглядача подій Windows (eventvwr.msc
) або за допомогою інших інструментів, таких як Event Log Explorer або Evtx Explorer/EvtxECmd.
Події доступу записуються в конфігураційний файл безпеки, розташований за адресою C:\Windows\System32\winevt\Security.evtx
. Розмір цього файлу регулюється, і коли його ємність досягає межі, старі події перезаписуються. Записані події включають входи та виходи користувачів, дії користувачів і зміни налаштувань безпеки, а також доступ до файлів, папок і спільних активів.
EventID 4624: Вказує на успішну автентифікацію користувача.
EventID 4625: Сигналізує про невдачу автентифікації.
EventIDs 4634/4647: Представляють події виходу користувача.
EventID 4672: Позначає вхід з адміністративними привілеями.
Interactive (2): Прямий вхід користувача.
Network (3): Доступ до спільних папок.
Batch (4): Виконання пакетних процесів.
Service (5): Запуск служби.
Proxy (6): Проксі-автентифікація.
Unlock (7): Розблокування екрана з паролем.
Network Cleartext (8): Передача пароля у відкритому тексті, часто з IIS.
New Credentials (9): Використання інших облікових даних для доступу.
Remote Interactive (10): Вхід через віддалений робочий стіл або термінальні служби.
Cache Interactive (11): Вхід з кешованими обліковими даними без контакту з контролером домену.
Cache Remote Interactive (12): Віддалений вхід з кешованими обліковими даними.
Cached Unlock (13): Розблокування з кешованими обліковими даними.
0xC0000064: Ім'я користувача не існує - Може вказувати на атаку на перерахування імен користувачів.
0xC000006A: Правильне ім'я користувача, але неправильний пароль - Можлива спроба вгадування пароля або атака методом грубої сили.
0xC0000234: Обліковий запис користувача заблоковано - Може бути наслідком атаки методом грубої сили, що призвела до кількох невдалих входів.
0xC0000072: Обліковий запис вимкнено - Незаконні спроби доступу до вимкнених облікових записів.
0xC000006F: Вхід за межами дозволеного часу - Вказує на спроби доступу поза встановленими годинами входу, можливий знак несанкціонованого доступу.
0xC0000070: Порушення обмежень робочої станції - Може бути спробою входу з несанкціонованого місця.
0xC0000193: Закінчення терміну дії облікового запису - Спроби доступу з простроченими обліковими записами користувачів.
0xC0000071: Прострочений пароль - Спроби входу з застарілими паролями.
0xC0000133: Проблеми синхронізації часу - Великі розбіжності в часі між клієнтом і сервером можуть вказувати на більш складні атаки, такі як pass-the-ticket.
0xC0000224: Потрібна обов'язкова зміна пароля - Часті обов'язкові зміни можуть вказувати на спробу дестабілізувати безпеку облікового запису.
0xC0000225: Вказує на системну помилку, а не на проблему безпеки.
0xC000015b: Відмовлено в типі входу - Спроба доступу з несанкціонованим типом входу, наприклад, користувач намагається виконати вхід служби.
Зміна часу: Модифікація системного часу, може спотворити хронологію подій.
Запуск і завершення системи: EventID 6005 вказує на запуск системи, тоді як EventID 6006 позначає її завершення.
Видалення журналу: Очищення журналів безпеки, що часто є тривожним знаком для приховування незаконних дій.
20001 / 20003 / 10000: Перше підключення USB-пристрою.
10100: Оновлення драйвера USB.
EventID 112: Час вставки USB-пристрою.
Для практичних прикладів симуляції цих типів входу та можливостей витоку облікових даних зверніться до докладного посібника Altered Security.
Деталі подій, включаючи коди статусу та підстатусу, надають додаткову інформацію про причини подій, особливо помітні в Event ID 4625.
Щоб підвищити шанси на відновлення видалених подій Windows, рекомендується вимкнути підозрілий комп'ютер, безпосередньо витягнувши його з розетки. Bulk_extractor, інструмент відновлення, що вказує на розширення .evtx
, рекомендується для спроби відновлення таких подій.
Для всебічного посібника з використання Windows Event IDs для виявлення загальних кібер атак відвідайте Red Team Recipe.
Визначаються за кількома записами EventID 4625, за якими слідує EventID 4624, якщо атака успішна.
Записується за допомогою EventID 4616, зміни системного часу можуть ускладнити судово-медичний аналіз.
Корисні системні ID подій для відстеження USB-пристроїв включають 20001/20003/10000 для початкового використання, 10100 для оновлень драйверів і EventID 112 від DeviceSetupManager для часових міток вставки.
EventID 6005 вказує на запуск системи, тоді як EventID 6006 позначає завершення.
Security EventID 1102 сигналізує про видалення журналів, критична подія для судово-медичного аналізу.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)