
Форензический инструмент для NTFS (parser, mft, bitlocker, удаленные файлы)
NTFSTool — это криминалистический инструмент, ориентированный на тома NTFS. Он поддерживает чтение информации о разделах (MBR, таблица разделов, VBR), а также информацию о главной файловой таблице, зашифрованном томе Bitlocker, зашифрованных файлах EFS, журнале USN и многое другое.
Загрузите последние бинарные файлы на AppVeyor или проверьте последние артефакты на GitHub.
Смотрите ниже некоторые примеры возможностей!
Альтернативная документация, созданная deepwiki, доступна здесь: https://deepwiki.com/thewhiteninja/ntfstool/
NTFSTool отображает полную структуру главной загрузочной записи, загрузочной записи тома, таблицы разделов и записи файла $MFT. Также возможно дампнуть любой файл (даже $MFT или SAM) или парсить и анализировать журнал USN, LogFile, включая потоки из Alternate Data Stream (ADS). $MFT может быть выгружен в формате csv или json с парсингом Zone.Identifier для быстрой идентификации загруженных файлов. Команда undelete найдет любую запись файла, отмеченную как «не используется», и позволит восстановить файл (или его часть, если он уже был перезаписан). Поддерживается ввод из файла образа, живого диска или виртуального диска, такого как VeraCrypt и TrueCrypt, но вы также можете использовать такие инструменты, как OSFMount, для монтирования образа диска. Разреженные и сжатые файлы (lznt1, xpress) также поддерживаются.
Для зашифрованных Bitlocker разделов он может отображать записи FVE, проверять пароль и ключ (bek, password, recovery key), извлекать VMK и FVEK. Функция брутфорса отсутствует, так как взлом на GPU эффективнее (см. Bitcracker и Hashcat), но вы можете получить хеш для этих инструментов.
Мастер-ключи, закрытые ключи и сертификаты могут быть перечислены, отображены и расшифрованы с использованием необходимых входных данных (SID, password). Сертификаты с закрытыми ключами могут быть экспортированы с помощью команды backup.
Повторно импортируйте резервную копию на другой машине, чтобы снова читать зашифрованный файл! Или вы можете использовать команду efs.decrypt для расшифровки файла с помощью сохраненного ключа.
Больше информации в Mimikatz Wiki
Записи журнала USN могут быть проанализированы с помощью пользовательских правил для обнаружения подозрительных программ и действий, а также для получения общего обзора журнала (% удаленных, созданных файлов ...)
Правила по умолчанию: Rules/default.json``` { "id": "lsass-dump", "description": "Dumped LSASS.exe process.", "severity": "high", "rule": { "filename": "lsass(\.(dmp|dump))?" } }
Смотрите пример запуска здесь: [usn.analyze](#usn-analyze)
### Оболочка
Есть ограниченная оболочка с несколькими командами (exit, cd, ls, cat, pwd, cp, quit, rec).
Команда `rec` показывает детали MFT-записи.
## Справка и примеры
Команда справки выводит описание и примеры для каждой команды.
Параметры могут быть введены как десятичное или шестнадцатеричное число с префиксом "0x" (например, inode).
ntfstool help [command]
| Команда | Описание |
| --- | --- |
| [info](#info) | Отобразить информацию о всех дисках и томах |
| [mbr](#mbr) | Отобразить структуру MBR, код и разделы для диска |
| [gpt](#gpt) | Отобразить структуру GPT, код и разделы для диска |
| [vbr](#vbr) | Отобразить структуру VBR и код для указанного тома (поддерживаются ntfs, fat32, fat1x, bitlocker) |
| [extract](#extract) | Извлечь файл из тома. |
| [image](#image) | Создать образ диска или тома. |
| [mft.dump](#mft-dump) | Сделать дамп файла $MFT в указанном формате: csv, json, raw. |
| [mft.record](#mft-record) | Отобразить детали FILE-записи для указанного inode MFT. Поддерживаются почти все типы атрибутов |
| [mft.btree](#mft-btree) | Отобразить содержимое VCN и B-tree индекс для inode |
| [bitlocker.info](#bitlocker-info) | Отобразить информацию и хеш ($bitlocker$) для всех VMK. Проверить пароль или ключ восстановления. |
| [bitlocker.decrypt](#bitlocker-decrypt) | Расшифровать том в файл с использованием пароля, ключа восстановления или bek. |
| [bitlocker.fve](#bitlocker-fve) | Отобразить информацию для указанного блока FVE. |
| [efs.backup](#efs-backup) | Экспортировать ключи EFS в формате PKCS12 (pfx). |
| [efs.decrypt](#efs-decrypt) | Расшифровать EFS-зашифрованный файл с использованием ключей в формате PKCS12 (pfx). |
| [efs.certificate](#efs-certificate) | Вывести список, отобразить и экспортировать системные сертификаты (SystemCertificates/My/Certificates). |
| [efs.key](#efs-key) | Вывести список, отобразить, расшифровать и экспортировать закрытые ключи (Crypto/RSA). |
| [efs.masterkey](#efs-masterkey) | Вывести список, отобразить и расшифровать мастер-ключи (Protect). |
| [reparse](#reparse) | Разобрать и отобразить точки повторной обработки из \$Extend\$Reparse. |
| [logfile.dump](#logfile-dump) | Сделать дамп файла $LogFile в указанном формате: csv, json, raw. |
| [usn.analyze](#usn-analyze) | Проанализировать файл $UsnJrnl с заданными правилами. Вывод: csv или json. |
| [usn.dump](#usn-dump) | Сделать дамп файла $UsnJrnl в указанном формате: csv, json, raw. |
| [shadow](#shadow) | Вывести список теневых копий томов с выбранного диска и тома. |
| [streams](#streams) | Отобразить альтернативные потоки данных |
| [undelete](#undelete) | Поиск и извлечение удалённых файлов для тома. |
| [shell](#shell-1) | Запустить ограниченную оболочку, похожую на Unix |
| [smart](#smart) | Отобразить данные S.M.A.R.T |
## Ограничения
- Некоторые неподдерживаемые случаи. В стадии разработки.
- Нет документации :no_mouth:.
Не стесняйтесь открыть issue или запросить новую функцию!
## Сборка
- Установите [Visual Studio 2022](https://visualstudio.microsoft.com/fr/vs/)
- Установите vcpkg (для необходимых сторонних библиотек) как описано здесь: [vcpkg#getting-started](https://github.com/microsoft/vcpkg#getting-started)
```
git clone https://github.com/microsoft/vcpkg
.\vcpkg\bootstrap-vcpkg.bat
```
- Интегрируйте его в вашу среду VisualStudio: