Similar presentations:
Kompyuter_Asoslari_va_Fayl_Tizimlari
1.
“KIBERXAVFSIZLIK MARKAZI” DUKKOMPYUTER ASOSLARI VA FAYL TIZIMLARI
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
mkdir C:\Temp\fs_labcd C:\Temp\fs_lab
"hello" > test.txt
icacls .\test.txt /grant "${env:USERNAME}:(R,W)"
Get-Item .\test.txt | Format-List Name,FullName,CreationTime,LastWriteTime,LastAccessTime
Linux: timestamps файла
Проверить через CMD
dir /T:C test.txt
dir /T:W test.txt
dir /T:A test.txt
Проверить изменение Modified
Add-Content .\test.txt "new line"
Проверить LastAccess
Get-Content .\test.txt
Get-Item .\test.txt | Format-List LastAccessTime
Посмотреть ACL через PowerShell
Get-Acl .\test.txt | Format-List
(Get-Acl .\test.txt).Access | Format-Table IdentityReference,FileSystemRights,AccessControlType,IsInherited
icacls test.txt
mkdir -p ~/fs_lab
cd ~/fs_lab
echo "hello" > test.txt
stat test.txt
13.
14.
fsutil usn queryjournal C:mkdir C:\Temp\journal_lab
echo hello > C:\Temp\journal_lab\test.txt
echo changed >> C:\Temp\journal_lab\test.txt
ren C:\Temp\journal_lab\test.txt secret.txt
del C:\Temp\journal_lab\secret.txt
fsutil usn readjournal C: csv > C:\Temp\usn.csv права админа
notepad C:\Temp\usn.csv
USN, Имя файла, Причина, Метка времени, Атрибуты файла, ID файла, ID родительского
файла...
Срок зависит от:
размера UsnJrnl
активности диска
количества создаваемых/удаляемых файлов
обновлений Windows
браузерного кэша
антивируса
установки программ
копирования файлов
Колонка
Значение
USN
Номер записи в журнале
Имя файла
Имя файла, с которым произошло
событие
Номер причины
Код события
Причина
Человеческое описание события
Метка времени
Когда произошло событие
Атрибуты файла
Атрибуты NTFS
ИД файла
Уникальный ID файла в MFT
ИД родительского файла
ID папки, где лежал файл
Основной номер версии
Версия формата USN-записи
Длина записи
Размер записи в журнале
15.
16.
17.
MFT (Master File Table) — ядро NTFSэто таблица, где каждая строка = один файл или
папка.
Для каждого файла:
• имя файла
• размер
• права доступа
• временные метки (создание / изменение)
• где лежат данные файла (номера
кластеров)
❗ Сами данные файла MFT не хранит
Что хранится в inode
• тип файла
• права доступа
• владелец
• размер
• временные метки
• адреса блоков с данными
18.
Что хранится в записи MFT[ MFT Header ]
[ $STANDARD_INFORMATION ]
[ $FILE_NAME ]
[ $DATA ]
[ $INDEX_ROOT ] (если папка)
[ ... ]
$STANDARD_INFORMATION
дата создания
дата изменения
права доступа (ACL)
флаги (read-only, hidden)
MFT (Master File Table) — ядро NTFS
это таблица, где каждая строка = один файл или
папка.
$FILE_NAME
имя файла
ссылка на родительскую папку
Unicode
$DATA — где хранятся данные файла
Resident file (маленький файл)
• Если файл очень маленький (≈ до 700 байт):
• данные хранятся прямо внутри MFT
• НЕ выделяются кластеры
• нет обращения к диску за данными
Non-resident file (обычный файл)
• Если файл больше:
• данные хранятся в кластерах диска
• в MFT лежат указатели (data runs)
19.
20.
Ключевые метафайлы:`$Volume` Инфо о томе:
$MFT — сама таблица MFT
$Bitmap — карта занятых/свободных кластеров
$LogFile — журнал транзакций для восстановления после сбоев
$Volume — информация о томе
$BadClus — список поврежденных кластеров
$MFT` и общая структура NTFS (в т.ч. где MFT на
диске)
fsutil fsinfo ntfsinfo C:
fsutil fsinfo volumeinfo C:
chkdsk C: /r
Почему “просто открыть C:$MFT” обычно не получается
`$Bitmap` (косвенно — свободное/занятое
место)
fsutil volume diskfree C:
`$LogFile` (косвенно — журнал и связанные
механизмы)
fsutil usn queryjournal C:
Потому что это **служебные файлы ядра NTFS**, они:
* защищены правами/атрибутами,
* часто **в использовании** (lock),
* не предназначены для обычного файлового доступа.
21.
22.
mkdir C:\Tools\EZToolscd C:\Tools\EZTools
Invoke-WebRequest -Uri "https://download.ericzimmermanstools.com/net9/MFTECmd.zip" -OutFile "MFTECmd.zip"
cd C:\Tools\EZTools
Expand-Archive -Path .\MFTECmd.zip -DestinationPath .\MFTECmd -Force
.\MFTECmd.exe -h
Если PowerShell ругается на блокировку
cd C:\Tools\EZTools
Unblock-File .\MFTECmd.zip
Get-ChildItem .\MFTECmd -Recurse | Unblock-File
$toolPath = "C:\Tools\EZTools\MFTECmd"
$userPath = [Environment]::GetEnvironmentVariable("Path", "User")
if ($userPath -notlike "*$toolPath*") {
[Environment]::SetEnvironmentVariable("Path", "$userPath;$toolPath", "User")
}
$env:Path += ";$toolPath"
mkdir C:\Temp\usn_out
MFTECmd.exe -f 'C:\$Extend\$UsnJrnl:$J' --csv C:\Temp\usn_out --csvf usn.csv
notepad C:\Temp\usn_out\usn.csv
Команда для твоей практики с $MFT
mkdir C:\Temp\mft_out
cd C:\Tools\EZTools\MFTECmd
.\MFTECmd.exe -f 'C:\$MFT' --csv C:\Temp\mft_out --csvf mft.csv
Select-String -Path C:\Temp\mft_out\mft.csv -Pattern "test.txt","secret.txt","journal_lab"
Select-String -Path C:\Temp\usn_out\usn.csv -Pattern "test.txt","secret.txt"
mkdir C:\Temp\usn_out
MFTECmd.exe -f 'C:\$Extend\$UsnJrnl:$J' -m 'C:\$MFT' --csv C:\Temp\usn_out --csvf usn.csv
23.
C:\Evidence\$MFTC:\Evidence\$J
MFTECmd.exe -f "C:\Evidence\$MFT" --csv "C:\Temp\mft_out" --csvf mft.csv
получить список файлов
увидеть timestamps
увидеть удалённые записи
увидеть путь
увидеть размер
увидеть MFT entry number
MFTECmd.exe -f "C:\Evidence\$J" -m "C:\Evidence\$MFT" --csv "C:\Temp\usn_out" --csvf usn.csv
увидеть события файловой системы:
создание
изменение
переименование
удаление
закрытие файла
MFTECmd.exe -f 'C:\$MFT' --body C:\Temp\body_out --bodyf mft.body --bdl C
создать timeline-файл
потом использовать в mactime / Plaso / super timeline
24.
ПолеЗначение Объяснение
EntryNumber
0 Номер записи в MFT
SequenceNumber
1 Версия этой записи
InUse
True
Запись активна, файл
существует
ParentEntryNumber
5 Родитель — корень диска
ParentPath
. Корневая директория
FileName
$MFT Имя системного файла
FileSize
1408499712
Размер $MFT, примерно
1.31 GB
IsDirectory
False Это файл, не папка
HasAds
False Нет Alternate Data Stream
SiFlags
`Hidden System`
SourceFile
C:\$MFT Откуда взята запись
25.
Процесс записи файла:Файловая система ищет свободные кластеры в $Bitmap
Записывает данные в найденные кластеры
Создает/обновляет запись в MFT с указателями на кластеры
Обновляет запись в каталоге (индекс)
Фиксирует транзакцию в $LogFile
Процесс удаления:
Запись в каталоге помечается как удаленная
Запись MFT помечается как свободная (флаг "FILE_RECORD_NOT_IN_USE")
Кластеры отмечаются как свободные в $Bitmap
Данные остаются на диске до перезаписи
26.
27.
28.
29.
30.
31.
32.
Лабораторная 1 — жизненный цикл файлаЦель
Понять, как в $MFT и USN Journal видны:
Лабораторная 2 — найти удалённый файл
Цель
Понять, остаются ли следы удалённого файла в $MFT
создание → изменение → переименование → удаление
mkdir C:\Temp\journal_lab
mkdir C:\Temp\delete_lab
echo hello > C:\Temp\journal_lab\test.txt
echo changed >> C:\Temp\journal_lab\test.txt
ren C:\Temp\journal_lab\test.txt secret.txt
del C:\Temp\journal_lab\secret.txt
echo very_secret_data > C:\Temp\delete_lab\passwords.txt
del C:\Temp\delete_lab\passwords.txt
MFTECmd.exe -f 'C:\$MFT' --csv C:\Temp\mft_out --csvf mft_delete.csv
mkdir C:\Temp\mft_out
mkdir C:\Temp\usn_out
Select-String -Path C:\Temp\mft_out\mft_delete.csv -Pattern "passwords.txt"
MFTECmd.exe -f 'C:\$MFT' --csv C:\Temp\mft_out --csvf mft.csv
Select-String -Path C:\Temp\usn_out\usn.csv -Pattern "passwords.txt "
MFTECmd.exe -f 'C:\$Extend\$UsnJrnl:$J' -m 'C:\$MFT' --csv C:\Temp\usn_out --csvf usn.csv
Select-String -Path C:\Temp\mft_out\mft.csv -Pattern "test.txt","secret.txt","journal_lab"
Select-String -Path C:\Temp\usn_out\usn.csv -Pattern "test.txt","secret.txt","journal_lab"
33.
New-Item -ItemType Directory -Force 'C:\Tools\EZTools' | Out-NullInvoke-WebRequest `
-Uri 'https://download.ericzimmermanstools.com/net9/TimelineExplorer.zip' `
-OutFile 'C:\Tools\EZTools\TimelineExplorer.zip'
Sequence Number
Sequence number записи. Помогает понять, переиспользовалась ли MFT-запись после
удаления старого файла.
MFTECmd.exe -f 'H:\C\$MFT' --csv 'H:\C’ --csvf MFT.csv
MFTECmd.exe -f 'H:\C\$Extend\$J' --csv 'H:\C' --csvf J.csv
34.
E’tiboringiz uchun rahmat!O‘zbekiston Respublikasi,
100115, Toshkent sh., Taras Shevchenko ko‘chasi, 20
Telefon: (99871) 203 55 11
E-mail: info@csec.uz
Veb-sayt: www.csec.uz