Источник: https://github.com/AnaktaCTF/CTF/blob/main — Forensic/NTFS_features_to_hide_data.md
NTFS (New Technology File System) – это стандартная файловая система Windows, которая обладает множеством продвинутых функций, предназначенных для оптимизации работы системы и безопасности данных. Однако эти же функции можно использовать для сокрытия информации, что делает NTFS интересной мишенью в цифровой криминалистике (Forensics) и CTF-задачах.
В Forensics-челленджах злоумышленник может спрятать файлы так, что они не будут видны стандартными средствами. Для поиска таких данных участникам приходится разбираться в особенностях NTFS и применять специализированные инструменты.
В этой статье мы разберем несколько техник сокрытия данных:
• альтернативные потоки данных (ADS),
• манипуляции с метаданными файлов,
• использование скрытых NTFS-записей.
Альтернативные потоки данных (NTFS Alternate Data Streams, ADS)
Что такое ADS?
ADS – это особенность файловой системы NTFS, позволяющая хранить в одном файле несколько потоков данных. Основной поток данных хранится как обычно, а дополнительные — привязываются к файлу и не отображаются в стандартных командах и инструментах Windows.
Пример:
Создадим обычный текстовый файл и спрячем в нем дополнительную информацию:
Теперь, если посмотреть на secret.txt в Проводнике или командной строке (dir), его размер останется неизменным. Однако скрытый поток данных hidden никуда не пропал.
Тип потока по умолчанию — $DATA, который отвечает за хранение данных. Обычно его можно опустить.
NTFS позволяет файлам и каталогам иметь неограниченное количество потоков данных, но операционные системы Windows в стандартных утилитах (например, проводник или команда dir) показывают только основной поток.
Как обнаружить и извлечь ADS?
Чтобы проверить, есть ли у файла скрытые потоки, используем встроенную утилиту dir с ключом /r :
Dir - отображает список файлов и подкаталогов каталога. При использовании без параметров эта команда отображает метку тома диска и серийный номер, а затем список каталогов и файлов на диске (включая их имена и дату и время последнего изменения). Для файлов эта команда отображает расширение имени и размер в байтах. Эта команда также отображает общее количество файлов и каталогов, их совокупный размер и свободное пространство (в байтах), оставшееся на диске.
Ключ /r показывает альтернативные потоки данных (ADS) у файлов.
Для их извлечения можно использовать команду PowerShell:
Эта команда читает содержимое альтернативного потока данных (ADS) с именем hidden внутри файла secret.txt.
-Path secret.txt — указывает основной файл.
-Stream hidden — указывает имя ADS, который нужно открыть.
Get-Content — выводит данные из указанного потока на экран (в PowerShell).
Применение ADS в CTF-задачах
В CTF скрытые потоки часто используют для сокрытия флага. Например, организаторы могут спрятать flag.txt внутри README.md:
Чтобы найти флаг, участнику придется проверить ADS в файлах, которые кажутся бесполезными.
Манипуляции с метаданными и скрытые файлы
Атрибуты файлов (Hidden, System, Read-Only)
В Windows файлы можно скрыть простыми атрибутами:
• Hidden (H) — скрытый файл, не отображается в Проводнике по умолчанию.
• System (S) — системный файл, также скрыт.
• Read-Only (R) — файл доступен только для чтения, но не влияет на видимость.
Такой файл не отобразится в Проводнике, если не включена опция "Показывать скрытые файлы и системные файлы". Однако в CTF-задачах такие трюки легко обходятся через
attrib -s -h secret.txt.
Скрытие данных в Master File Table (MFT) – Resident Files
NTFS хранит информацию обо всех файлах и каталогах в специальной структуре — Master File Table (MFT). Каждый файл имеет собственную запись в MFT, содержащую метаданные: имя, атрибуты, размеры и ссылки на физические кластеры диска.
Resident и Non-Resident данные:
• Resident File — если файл очень маленький (обычно до ~700 байт), его содержимое может полностью храниться прямо в записи MFT.
• Non-Resident File — стандартное хранение: данные лежат в отдельных кластерах на диске, а MFT лишь ссылается на них.
Такие Resident файлы не обязательно "существуют" как отдельные видимые файлы на диске — их данные полностью прячутся внутри структуры MFT, что усложняет обнаружение стандартными методами (dir, Проводник и т.д.).
Как проверить?
Используем:
Если файл "невидим", его можно вытащить с помощью утилит вроде $MFT parser.
NTFS-записи и техники маскировки
Slack Space – остаточное пространство в кластерах
NTFS выделяет файлам кластеры фиксированного размера. Если файл занимает меньше места, чем кластер, в оставшемся пространстве могут оставаться данные от старых удаленных файлов. Это можно использовать для сокрытия данных.
Как найти Slack Space?
Используются криминалистические утилиты, такие как Autopsy или FTK Imager.
Autopsy — это бесплатная и мощная платформа для цифровой криминалистики (digital forensics). Она используется для анализа жестких дисков, образов дисков и других источников данных при расследованиях.
По сути — это графический интерфейс (GUI) над популярным forensic-фреймворком Sleuth Kit (TSK), который упрощает работу с данными.
Что умеет Autopsy?
Анализ MFT и NTFS:
• Autopsy может читать и интерпретировать Master File Table ($MFT).
• Показывает resident/non-resident данные, скрытые файлы, удалённые файлы и их фрагменты.
Работа с удалёнными файлами:
• Восстанавливает удалённые файлы из дисков или образов дисков (даже если их нет в файловой системе).
Поиск артефактов:
• Парсит лог-файлы Windows, браузерные данные, историю скачиваний, кэш браузеров и куки.
• Находит email, изображения, документы, следы мессенджеров и другие цифровые "следы".
Keyword Search:
• Можно задать поисковые слова (например, flag{, CTF{, password= и т.д.), и Autopsy будет искать их по всей файловой системе и нераспределённым секторам.
Carving:
• Инструмент может делать data carving — извлекать файлы из "сырых" байтов без опоры на файловую систему (например, вытянуть JPG или ZIP прямо из незанятых секторов).
Поддержка образов:
• Работает с образами дисков: .E01, .dd, .img, .raw, а также с физическими накопителями.
Плагины:
• Поддерживает сторонние модули для работы с сетевыми логами, артефактами мобильных устройств и др.
Autopsy часто применяют на forensic-задачах, чтобы искать флаги в скрытых файлах, извлекать данные из MFT, находить улики в slack space, делать carving "невидимых" картинок, архивов или текста.
FTK Imager — это бесплатный инструмент для быстрого создания и анализа судебных копий (образов) носителей информации. Он разработан компанией AccessData и часто используется в цифровой криминалистике и пентестах для получения данных с жёстких дисков, флешек, образов дисков и даже с оперативной памяти.
Основные возможности FTK Imager:
• Создание судебных образов (forensic image):
• Поддерживает форматы .E01, .AFF, .RAW (dd).
• Можно создать точную копию диска с сохранением всех данных и метаданных.
Просмотр дисков и образов:
• Позволяет открыть и исследовать как физические диски, так и уже существующие образы.
• Можно просматривать структуру файловой системы (NTFS, FAT, exFAT и другие).
Доступ к системным и скрытым файлам:
• Видит скрытые файлы, удалённые файлы, MFT, $LogFile, $Recycle.Bin, Volume Shadow Copy, ADS и т.п.
Поиск удалённых данных:
• Находит файлы, которые были удалены, но ещё остались в таблицах файловой системы.
• Показывает данные в unallocated space (нераспределённых секторах).
Просмотр и экспорт данных:
• Есть встроенный hex viewer.
• Можно извлечь любой файл или фрагмент данных без создания образа.
Снимок RAM:
• FTK Imager умеет создавать дампы оперативной памяти для анализа (memory acquisition).
Autopsy — мощный комбайн для комплексного анализа образов с автоматизацией (поиск удалённых файлов, артефактов ОС, веб-историй и т.д.).
FTK Imager — лёгкий и быстрый инструмент для съёма образов и ручного исследования данных (особенно полезен для "быстрого вскрытия" диска и поиска скрытых данных вроде ADS).
Жесткие ссылки (Hard Links) и Junction Points
Жёсткая ссылка — это механизм файловой системы NTFS, позволяющий создать несколько ссылок (имён) на один и тот же физический файл.
Особенности:
• Ссылки указывают на одни и те же данные (один и тот же MFT-запись).
• Удаление одной ссылки не удаляет содержимое файла, пока существует хотя бы одна ссылка.
• Все жёсткие ссылки равнозначны — нет "основного" или "вторичного" файла.
В Windows можно создать жесткую ссылку, чтобы файл существовал в нескольких местах одновременно:
Файл new_file.txt и secret.txt указывают на одно и то же содержимое. Удаление одного файла не затронет второй. Это часто применяется для маскировки файлов.
Junction Point (точка соединения) — это разновидность symbolic link в NTFS, но только для директорий.
Особенности:
• Перенаправляет доступ с одного каталога на другой.
• Работает только для папок.
• Видится системой как "обычная" папка, но на самом деле это ссылка на другой путь.
Например, можно сделать скрытую ссылку на папку с важными файлами:
Обычные проверки dir или Проводник могут не показывать такие ссылки.
Важно:
Жёсткие ссылки работают только в пределах одного тома.
Junction Points можно создавать как внутри одного диска, так и к другим разделам.
Обычный Проводник или базовые команды часто не различают настоящую папку и junction.
NTFS предоставляет мощные инструменты для хранения и организации данных, но они же могут быть использованы для скрытия информации.
Альтернативные потоки, скрытые файлы, манипуляции с MFT и Hard Links – важные техники, которые часто встречаются в CTF-задачах.
В реальной цифровой криминалистике их знание помогает расследовать инциденты, находить скрытые данные и бороться с киберпреступностью.