Анти-слідчі техніки
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.
Часові мітки
Атакуючий може бути зацікавлений у зміні часових міток файлів, щоб уникнути виявлення.
Можна знайти часові мітки всередині MFT в атрибутах $STANDARD_INFORMATION
__ та __ $FILE_NAME
.
Обидва атрибути мають 4 часові мітки: Зміна, доступ, створення та зміна реєстрації MFT (MACE або MACB).
Windows explorer та інші інструменти показують інформацію з $STANDARD_INFORMATION
.
TimeStomp - Анти-слідчий інструмент
Цей інструмент модифікує інформацію про часові мітки всередині $STANDARD_INFORMATION
, але не інформацію всередині $FILE_NAME
. Тому можливо виявити підозрілу активність.
Usnjrnl
USN Journal (Журнал номерів послідовності оновлень) є функцією NTFS (файлова система Windows NT), яка відстежує зміни обсягу. Інструмент UsnJrnl2Csv дозволяє досліджувати ці зміни.
Попереднє зображення є виходом, показаним інструментом, де можна спостерігати, що деякі зміни були виконані до файлу.
$LogFile
Всі зміни метаданих файлової системи реєструються в процесі, відомому як write-ahead logging. Зареєстровані метадані зберігаються у файлі з назвою **$LogFile**
, розташованому в кореневому каталозі файлової системи NTFS. Інструменти, такі як LogFileParser, можуть бути використані для парсингу цього файлу та виявлення змін.
Знову ж таки, у виході інструмента можна побачити, що деякі зміни були виконані.
Використовуючи той же інструмент, можна визначити, коли були змінені часові мітки:
- CTIME: Час створення файлу
- ATIME: Час зміни файлу
- MTIME: Зміна реєстрації MFT файлу
- RTIME: Час доступу до файлу
Порівняння $STANDARD_INFORMATION
та $FILE_NAME
Ще один спосіб виявити підозрілі змінені файли - це порівняти час на обох атрибутах, шукаючи невідповідності.
Наносекунди
NTFS часові мітки мають точність 100 наносекунд. Тому знаходження файлів з часовими мітками, такими як 2010-10-10 10:10:00.000:0000, є дуже підозрілим.
SetMace - Анти-слідчий інструмент
Цей інструмент може модифікувати обидва атрибути $STARNDAR_INFORMATION
та $FILE_NAME
. Однак, починаючи з Windows Vista, для зміни цієї інформації необхідна активна ОС.
Сховані дані
NFTS використовує кластер і мінімальний розмір інформації. Це означає, що якщо файл займає кластер і півтора, залишкова половина ніколи не буде використана, поки файл не буде видалено. Тоді можливо сховати дані в цьому слек-просторі.
Існують інструменти, такі як slacker, які дозволяють ховати дані в цьому "схованому" просторі. Однак аналіз $logfile
та $usnjrnl
може показати, що деякі дані були додані:
Тоді можливо відновити слек-простір, використовуючи інструменти, такі як FTK Imager. Зверніть увагу, що цей тип інструменту може зберігати вміст в обфусцированому або навіть зашифрованому вигляді.
UsbKill
Це інструмент, який вимкне комп'ютер, якщо буде виявлено будь-які зміни в USB портах.
Спосіб виявлення цього - перевірити запущені процеси та переглянути кожен запущений python-скрипт.
Живі дистрибутиви Linux
Ці дистрибутиви виконуються в пам'яті RAM. Єдиний спосіб виявити їх - якщо файлову систему NTFS змонтовано з правами на запис. Якщо вона змонтована лише з правами на читання, виявити вторгнення не вдасться.
Безпечне видалення
https://github.com/Claudio-C/awesome-data-sanitization
Налаштування Windows
Можна вимкнути кілька методів ведення журналів Windows, щоб ускладнити слідчу перевірку.
Вимкнути часові мітки - UserAssist
Це ключ реєстру, який зберігає дати та години, коли кожен виконуваний файл був запущений користувачем.
Вимкнення UserAssist вимагає двох кроків:
- Встановіть два ключі реєстру,
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Start_TrackProgs
таHKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Start_TrackEnabled
, обидва на нуль, щоб сигналізувати, що ми хочемо вимкнути UserAssist. - Очистіть свої піддерева реєстру, які виглядають як
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\<hash>
.
Вимкнути часові мітки - Prefetch
Це зберігатиме інформацію про виконувані програми з метою покращення продуктивності системи Windows. Однак це також може бути корисним для слідчих практик.
- Виконайте
regedit
- Виберіть шлях файлу
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\Memory Management\PrefetchParameters
- Клацніть правою кнопкою миші на
EnablePrefetcher
таEnableSuperfetch
- Виберіть Змінити для кожного з них, щоб змінити значення з 1 (або 3) на 0
- Перезавантажте
Вимкнути часові мітки - Час останнього доступу
Кожного разу, коли папка відкривається з обсягу NTFS на сервері Windows NT, система витрачає час на оновлення поля часової мітки для кожної вказаної папки, яке називається часом останнього доступу. На сильно завантаженому обсязі NTFS це може вплинути на продуктивність.
- Відкрийте Редактор реєстру (Regedit.exe).
- Перейдіть до
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
. - Знайдіть
NtfsDisableLastAccessUpdate
. Якщо його немає, додайте цей DWORD і встановіть його значення на 1, що вимкне процес. - Закрийте Редактор реєстру та перезавантажте сервер.
Видалити історію USB
Всі USB Device Entries зберігаються в реєстрі Windows під ключем USBSTOR, який містить підключі, які створюються щоразу, коли ви підключаєте USB-пристрій до свого ПК або ноутбука. Ви можете знайти цей ключ тут HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR
. Видаливши це, ви видалите історію USB.
Ви також можете використовувати інструмент USBDeview, щоб переконатися, що ви їх видалили (і щоб видалити їх).
Ще один файл, який зберігає інформацію про USB, - це файл setupapi.dev.log
всередині C:\Windows\INF
. Цей файл також слід видалити.
Вимкнути тіньові копії
Список тіньових копій за допомогою vssadmin list shadowstorage
Видалити їх, запустивши vssadmin delete shadow
Ви також можете видалити їх через GUI, дотримуючись кроків, запропонованих у https://www.ubackup.com/windows-10/how-to-delete-shadow-copies-windows-10-5740.html
Щоб вимкнути тіньові копії, кроки звідси:
- Відкрийте програму Служби, ввівши "services" у текстовому полі пошуку після натискання кнопки "Пуск" Windows.
- У списку знайдіть "Volume Shadow Copy", виберіть його, а потім отримайте доступ до Властивостей, клацнувши правою кнопкою миші.
- Виберіть Вимкнено з випадаючого меню "Тип запуску", а потім підтвердіть зміну, натиснувши Застосувати та ОК.
Також можливо змінити конфігурацію, які файли будуть копіюватися в тіньову копію в реєстрі HKLM\SYSTEM\CurrentControlSet\Control\BackupRestore\FilesNotToSnapshot
Перезаписати видалені файли
- Ви можете використовувати інструмент Windows:
cipher /w:C
. Це вказує шифрувати, щоб видалити будь-які дані з доступного невикористаного дискового простору всередині диска C. - Ви також можете використовувати інструменти, такі як Eraser
Видалити журнали подій Windows
- Windows + R --> eventvwr.msc --> Розгорніть "Журнали Windows" --> Клацніть правою кнопкою миші на кожній категорії та виберіть "Очистити журнал"
for /F "tokens=*" %1 in ('wevtutil.exe el') DO wevtutil.exe cl "%1"
Get-EventLog -LogName * | ForEach { Clear-EventLog $_.Log }
Вимкнути журнали подій Windows
reg add 'HKLM\\SYSTEM\\CurrentControlSet\\Services\\eventlog' /v Start /t REG_DWORD /d 4 /f
- У розділі служб вимкніть службу "Windows Event Log"
WEvtUtil.exec clear-log
абоWEvtUtil.exe cl
Вимкнути $UsnJrnl
fsutil usn deletejournal /d c:
Розширене ведення журналів та підробка трас (2023-2025)
Ведення журналів PowerShell ScriptBlock/Module
Останні версії Windows 10/11 та Windows Server зберігають багаті слідчі артефакти PowerShell під
Microsoft-Windows-PowerShell/Operational
(події 4104/4105/4106).
Атакуючі можуть вимкнути або стерти їх на льоту:
# Turn OFF ScriptBlock & Module logging (registry persistence)
New-ItemProperty -Path "HKLM:\\SOFTWARE\\Microsoft\\PowerShell\\3\\PowerShellEngine" \
-Name EnableScriptBlockLogging -Value 0 -PropertyType DWord -Force
New-ItemProperty -Path "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ModuleLogging" \
-Name EnableModuleLogging -Value 0 -PropertyType DWord -Force
# In-memory wipe of recent PowerShell logs
Get-WinEvent -LogName 'Microsoft-Windows-PowerShell/Operational' |
Remove-WinEvent # requires admin & Win11 23H2+
Захисники повинні стежити за змінами в цих ключах реєстру та за великим обсягом видалення подій PowerShell.
ETW (Event Tracing for Windows) Патч
Продукти безпеки кінцевих точок сильно покладаються на ETW. Популярний метод ухилення 2024 року полягає в патчуванні ntdll!EtwEventWrite
/EtwEventWriteFull
в пам'яті, щоб кожен виклик ETW повертав STATUS_SUCCESS
без виведення події:
// 0xC3 = RET on x64
unsigned char patch[1] = { 0xC3 };
WriteProcessMemory(GetCurrentProcess(),
GetProcAddress(GetModuleHandleA("ntdll.dll"), "EtwEventWrite"),
patch, sizeof(patch), NULL);
Public PoCs (e.g. EtwTiSwallow
) реалізують ту ж саму примітиву в PowerShell або C++.
Оскільки патч є локальним для процесу, EDR, що працюють в інших процесах, можуть його пропустити.
Виявлення: порівняйте ntdll
в пам'яті з диском або перехопіть перед режимом користувача.
Відродження альтернативних потоків даних (ADS)
Кампанії шкідливого ПЗ у 2023 році (наприклад, FIN12 завантажувачі) були помічені, коли другорядні бінарні файли розміщувалися всередині ADS, щоб залишитися поза увагою традиційних сканерів:
rem Hide cobalt.bin inside an ADS of a PDF
type cobalt.bin > report.pdf:win32res.dll
rem Execute directly
wmic process call create "cmd /c report.pdf:win32res.dll"
Перерахуйте потоки за допомогою dir /R
, Get-Item -Stream *
або Sysinternals streams64.exe
. Копіювання файлу хоста на FAT/exFAT або через SMB видалить прихований потік і може бути використано слідчими для відновлення вантажу.
BYOVD & “AuKill” (2023)
Bring-Your-Own-Vulnerable-Driver тепер регулярно використовується для антифорензіки в атаках програм-вимагачів. Відкритий інструмент AuKill завантажує підписаний, але вразливий драйвер (procexp152.sys
), щоб призупинити або завершити EDR та судово-слідчі датчики перед шифруванням та знищенням журналів:
AuKill.exe -e "C:\\Program Files\\Windows Defender\\MsMpEng.exe"
AuKill.exe -k CrowdStrike
Драйвер видаляється після цього, залишаючи мінімальні артефакти.
Заходи пом'якшення: увімкніть чорний список вразливих драйверів Microsoft (HVCI/SAC)
та сповіщайте про створення служб ядра з шляхів, доступних для запису користувачем.
Посилання
- Sophos X-Ops – “AuKill: Зброя для вразливого драйвера для відключення EDR” (березень 2023)
https://news.sophos.com/en-us/2023/03/07/aukill-a-weaponized-vulnerable-driver-for-disabling-edr - Red Canary – “Виправлення EtwEventWrite для прихованості: Виявлення та полювання” (червень 2024)
https://redcanary.com/blog/etw-patching-detection
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.